Meeting Open-source video conference application with SHA-256 encryption
Support Development
PayPal ● 
Bitcoin Address: bc1qh7juzrxrawpr65elm4qs285m5rdhnhgsn7h2jf
 ● 
Lightning Address: bhjmq@getalby.com
Your Input Matters
Review
Advertisement
Screenshot
The "Meeting" extension is a secure peer-to-peer video and audio conference application that tries to eliminate the server's need. Meeting uses a WebSocket just for the initial signaling, and the actual video and audio streams are sent over the peer-to-peer network. For Meeting to work, your browser must support the WebRTC protocol. Meeting allows joining an unlimited number of attendees as far as your bandwidth supports the streamings. For your privacy, all communications that involve external servers (WebSocket in our case) are encrypted using SHA-256 encoding. All peers on the network need to know the password to decrypt signaling messages. Also, to improve communication security, Meeting disconnects you from the signaling server about 10 minutes after attendance. When there is no connection to the signaling server, no one else can join the conference. To improve the video and audio quality, Meeting reduces to the video stream to the needed size. So you can simply improve the quality just by shrinking the Meeting's window size. The Meeting's server is a simple token-based WebSocket. If you need to improve your communication privacy, you can fork the server code and change the server to your own.

Features

FAQs

  1. What is the "Meeting" extension and how does it work?

    Meeting is meant to provide a secure peer-to-peer video and audio chatting without any registering required. The idea is to use a signaling server to introduce two or multiple peers and when peers receive communication data, they can build their network without any server being involved. Meeting is a distributed chat application in which each peer is responsible for providing streams to the other members. Since the signaling server is shared between all TTS users, this application uses a password to encrypt the communication data between peers. Only those peers that have the password can decrypt the messaging. TTS even allows you to join into the multiple channels at once. Simply click on the toolbar button to initiate a new instance. Set the channel number and the unique password to join the new channel. Note that all members of a chat need to know the channel number and the secure password to be able to join the meeting. Also, all members need to join the channel within the 10 minutes of the channel creation, otherwise, the other members will get disconnected from the singling server. This significantly improves the communication security.

  2. What's new in this version?

    Please check the Logs section.

  3. Is it possible to have a different signaling server than the one provided by this application?

    Yes, go to the options page of the extension and set up your server. There are two keywords for the server. "[CHANNEL_ID]" and "[API_KEY]". The "[API_KEY]" is used to validate the server access and "[CHANNEL_ID]" is meant to have multiple isolated WebSocket channels on a single server. Each client only receives messages from peers of the same channel id. You can visit the application's GitHub page to fork the server code. You need to have a NodeJS server for this code to work. The server is a simple WebSocket server so you can simply write the code in other server-side languages too. If you want to use this application on a local network, you can run a local server and there is no need for internet access for the peers to be able to join the meetings. The idea is to encrypt all messages on the client-side so that even if somebody has access to the server's data, they cannot use this data to access the client's information. It is important that all clients use the same secure password to guarantee safe communication.

  4. Why no one else can join the meeting after about 10 minutes of the channel creation?

    This is to improve the communication security. Since the singling server is the only place where a new user can send requests to all members, and this server is shared between the Meeting users, you will get disconnected from this server about 10 minutes after joining to prevent any new communication request. If a new member wants to join the chat after this period, a member inside the room can press the "Allow Joining" button and wait for a few seconds so that all members automatically reconnect to the signaling server. Once all members join the signaling server, a new member can join.

  5. I would like to join a meeting and only see a particular member (e.g. a speaker). Is it possible to disconnect from other members of the channel?

    Once the communication is established, you will get a close button on each stream. Press the close button to get disconnected from this particular peer. Alternatively, you can mute all members except the speaker one.

  6. Since the signaling server is shared, what happens if an unauthorized client tries to connect?

    It is recommended to use a random channel id between 1 and 1000 to reduce the risk of an unauthorized client finding your channel. Note that all communication messages passing through the singling server are encrypted in the client-side, so this application simply ignores the messages that cannot be decrypted with the given password. Also, you get disconnected from this server after about 10 minutes or as soon as the "Allow Joining" button is unchecked. It is recommended to manually get yourself disconnected from the server once all members joined.

  7. We would like to have our own server, but I don't want to get involved with the server-side coding. Are there any free WebSocket server providers?

    Register a free account on www.websocket.in and get a token. Paste the token and server URL on the options page. This service works for small meetings. If you want to create large meetings, fork the server code from the application's GitHub page and use www.openode.io to register a free account. If you only want to join a meeting over a local network, simply use NodeJS with the server code to set up a local server.

Matched Content

Reviews

Please keep reviews clean, avoid improper language, and do not post any personal information. Also, please consider sharing your valuable input on the official store.

What's new in this version

Version--
Published--/--/--
Change Logs:
    Last 10 commits on GitHub
    Hover over a node to see more details

    Need help?

    If you have questions about the extension, or ideas on how to improve it, please post them on the  support site. Don't forget to search through the bug reports first as most likely your question/bug report has already been reported or there is a workaround posted for it.

    Open IssuesIssuesForks

    Permissions are explained

    PermissionDescription
    storageto keep the custom singling server and its token value

    Recent Blog Posts