CallRoulette
Overview and motivation
CallRoulette is a simple web application for experimenting with WebRTC technologies using Python on the backend. It was initially coded for the Python FOSDEM devroom but it has since been further enhanced.
The backend uses asyncio and aiohttp. The frontend uses pretty much vanilla JavaScript with rtcninja as the WebRTC adapter.
Protocol
V1 - (not really) SIP
The protocol for communicating clients is dead simple: a WebSocket connection is used with 3 types of messages: 'offer_request', 'offer' and 'answer'. There is no message to end the communication, this is intentional, in order to keep it as simple as possible.
(not really) SIP: Saghul's Imbecile Protocol
V2 - yo
The yo protocol is an improvement over (not really) SIP used in version 1. It maintains the original spirit of simplicity (only 4 message types), but it uses Trickle ICE.
The yo protocol
Author
Saúl Ibarra Corretgé [email protected]
License
MIT (check the LICENSE file)
Thanks
- Iñaki Baz Castillo for rtcninja and helping me with JavaScript.
- The aiohttp authors: for making it really easy to mix HTTP servers with WebSockets in asyncio.