Videre
Instant Messaging and Video Calling
Overview
Application Videre allows users to exchange instant messages via WebSockets, make audio and video calls via WebRTC, and be notified via Web Push.
Usage
To call each other, users must register in the application and add each other to their contact list from among registered users.
When adding a user to your contacts list, the app will ask for permission to send notifications and subscribe to the push notification service.
The app uses the browser's push notification service to notify the callee of an incoming video or audio call.
By accepting the call, a peer-to-peer encrypted video/audio session will start between the caller and the callee as described by the WebRTC protocol.
Superuser
- Username
$YESOD_SUPERUSER_USERNAME
- Password
$YESOD_SUPERUSER_PASSWORD
A superuser account is defined at deployment time. The superuser manages other users and grants or revokes administrator privileges to specific users.
Integration with external APIs
- Email:
Gmail API
- Client id
$YESOD_GOOGLE_CLIENT_ID
- Client secret
$YESOD_GOOGLE_CLIENT_SECRET
- Web Real-Time Communication:
WebRTC API
- Configuration
$YESOD_RTC_PEER_CONNECTION_CONFIG
The configuration can be provided as a textual representation of a JSON object as described in RTCPeerConnection() constructor.
Mainly used to specify STUN and TURN servers.
Search Engine Optimization
- Google SEO
$YESOD_GOOGLE_SITE_VERIFICATION
- Bing SEO
$YESOD_MS_VALIDATE
- Yandex SEO
$YESOD_YANDEX_VERIFICATION
Basic Entities
User
A new user can sign up using an existing Google account or using a verified email address. Gmail API is used as an intermediary to send verification links to the user's inbox.
A user can be grated the administrator role by a superuser or by another administrator. Only users with the administrator role have access to administrative data.
Contact
A contact is created when a user adds another user to their contact list. If each user has each other in their contact list, then they can call each other.
Push subscription
A push subscription is created when the user is added to the contact list, or it can be deferred until later.
The subscription can be checked or renewed from the “View contact” menu item.
Web Push Notifications are used to notify a callee of an incoming video/audio call. It is also used to end the video/audio session.
Call
The entity Call represents outgoing and incoming calls to the currently logged in user.
Chat
The Chat entity represents messages exchanged between two users. By default, chat messages are exchanged and stored using the WebSockets protocol. Peer-to-peer messaging without intermediate storage is planned for future releases.
Support for text formatting using Markdown.
Ringtone
New ringtones can be added by an administrator in the "Ringtones" section of the "Data" menu.
An administrator can also set default ringtones for each call type, outgoing or incoming call.
Users can change their preferred ringtones in their account settings.
ER Diagram
Source code
Project repository on GitHub.
Issue tracking
Please note that the application currently running is a demo application. Any actions are allowed and encouraged. Report issues on GitHub.