- creating and joining conversation rooms
- capturing audio from any connected device with microphone
- capturing video from a webcam
- transferring audio and video to all room participants
- playing sound and displaying video of all participants
On startup the application registers itself on a Supervisor server, obtaining userId.
After creating/joining a room, it starts to transmit media Datagram packets (audio and video separately) to the Rumba server and to listen for incoming packets. Each packet is provided with header, containing userId and roomId. Supervisor manages rooms and Rumba workers, which dispatch packets between users. Video is ripped into tiles, compressed with JPEG to ensure small package size and low network bandwith usage.