Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/saghul/CallRoulette
A WebRTC demo using Python (asyncio + aiohttp) as the backend
https://github.com/saghul/CallRoulette
asyncio python webrtc
Last synced: 3 months ago
JSON representation
A WebRTC demo using Python (asyncio + aiohttp) as the backend
- Host: GitHub
- URL: https://github.com/saghul/CallRoulette
- Owner: saghul
- License: mit
- Archived: true
- Created: 2015-01-31T14:58:59.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2017-04-19T15:55:17.000Z (over 7 years ago)
- Last Synced: 2024-07-31T13:42:44.607Z (3 months ago)
- Topics: asyncio, python, webrtc
- Language: JavaScript
- Size: 3.22 MB
- Stars: 103
- Watchers: 13
- Forks: 23
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- starred-awesome - CallRoulette - A WebRTC demo using Python (asyncio + aiohttp) as the backend (JavaScript)
README
# 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](http://python-fosdem.org/)
but it has since been further enhanced.The backend uses [asyncio](https://docs.python.org/3/library/asyncio.html) and
[aiohttp](http://aiohttp.readthedocs.org). The frontend uses pretty much vanilla JavaScript with
[rtcninja](https://github.com/eface2face/rtcninja.js) 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](https://raw.githubusercontent.com/saghul/CallRoulette/master/sip.jpg)
### 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](https://webrtchacks.com/trickle-ice/).The yo protocol
![yo](https://raw.githubusercontent.com/saghul/CallRoulette/master/yo.jpg)
## Author
Saúl Ibarra Corretgé
## License
MIT (check the LICENSE file)
## Thanks
- [Iñaki Baz Castillo](https://github.com/ibc) for [rtcninja](https://github.com/eface2face/rtcninja.js)
and helping me with JavaScript.
- The [aiohttp](http://aiohttp.readthedocs.io/en/stable/) [authors](https://github.com/KeepSafe/aiohttp/graphs/contributors): for making it really easy to mix HTTP servers with WebSockets in
asyncio.