CallRoulette icon indicating copy to clipboard operation
CallRoulette copied to clipboard

A WebRTC demo using Python (asyncio + aiohttp) as the backend

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

SIP

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

yo

Author

Saúl Ibarra Corretgé [email protected]

License

MIT (check the LICENSE file)

Thanks