Awesome Real Time Communications
Protocols and methodology for near simultaneous exchange of media and data.
Contents
Server Software
General Purpose
-
FreeSWITCH - Open source multi-protocol, cross-platform and software switch.
-
Asterisk - PBX framework supporting multiple protocols and platforms.
SIP Servers
-
Kamailio - Open source SIP server widely deployed by carriers and providers. Formerly known as OpenSER.
-
OpenSIPS - Open source SIP server, tracing its roots in OpenSER (presently Kamailio).
-
Routr - Lightweight SIP proxy, location server, and registrar written in Node.js.
-
Sippy B2BUA - Back-to-back user agent server written in Python.
-
Flexisip - SIP server suite comprising proxy, presence and group chat functions.
-
Janus - Lightweight open source, general purpose, WebRTC gateway.
-
RTPProxy - General purpose high performance RTP proxy.
-
RTP:Engine - RTP and UDP based media traffic proxy, usable as a kernel module.
-
mediasoup - Specialized WebRTC conferencing system.
-
SEMS - Open source media and application server for SIP based VoIP services.
-
Jitsi - A collection of RTC open source projects, with a focus on conferencing software.
STUN/TURN
-
coturn - Fully featured TURN/STUN server supporting multiple platforms.
-
STUNTMAN - RFC compliant open source STUN implementation.
Operations
Monitoring
-
sngrep - Terminal based SIP flow viewer.
-
sipgrep - Console tool for sniffing, capturing and exploring SIP traffic.
-
rtpbreak - Detect, reconstruct and analyze RTP sessions.
-
HOMER - Multi-protocol capturing and monitoring framework for RTC.
-
WebRTC Troubleshooter - Self-hosted one stop client-side WebRTC troubleshooter.
-
Trickle ICE - Exposes client-side NAT traversal debug data.
-
SIP3 - VoIP & RTC traffic monitoring and analysis platform.
Testing
-
SIPp - Traffic generator for the SIP protocol.
-
SIPVicious - Suite of security tools that can be used to audit SIP based VoIP systems.
-
sipsak - SIP stress and diagnostics utility.
-
sipexer - Modern and flexible SIP command line tool.
Deployment
-
slimswitch - Tooling for creating lean secure FreeSWITCH Docker images.
Web/API Interfaces
-
Eqivo - Open source programmable-voice/telephony API platform.
-
Kazoo - Carrier-grade VoIP API platform using FreeSWITCH and Kamailio.
-
FusionPBX - Multitenant system built on top of FreeSWITCH.
-
FreePBX - Web Manager for Asterisk.
-
Fonoster - Telecommunication stack built with Node.js.
-
Wazo - VoIP API platform built on top of Asterisk, Kamailio and RTPEngine.
-
jambonz - Open source CPaaS built for communications service providers.
-
IVOZ Provider - Multitenant solution for VoIP telephony providers.
Billing
-
CGRateS - Carrier grade open source billing/rating server.
-
A2Billing - Billing system for Asterisk for multiple applications.
-
PyFreeBilling - Wholesale billing platform for Kamailio and FreeSWITCH.
Developer Resources
Tutorials
JavaScript Libraries
-
drachtio - Node.js SIP server framework.
-
adapter.js - JavaScript shim for abstracting WebRTC spec changes and inconsistencies.
-
JsSIP - Lightweight open source JavaScript SIP library.
-
sipML5 - Open source JavaScript SIP client with WebRTC media stack.
-
simple-peer - WebRTC video, voice, and data channels abstraction for Node.js and the browser.
-
Netflux - Isomorphic JavaScript peer to peer transport API for client and server.
-
PeerJS - Data and media peer-to-peer connection API implemented over WebRTC.
C/C++ Libraries
-
libre - Portable SIP Stack along with companion libraries for media handling, STUN/TURN and a modular user agent.
-
PJSIP - Multi-protocol RTC library written in C.
-
eXosip - eXtended osip is a mature C library for abstracting the SIP protocol.
-
libdatachannel - Standalone WebRTC DataChannels C++ implementation.
-
libSRTP - Secure Real-time Transport Protocol (SRTP) library for C.
-
usrsctp - Portable Stream Control Transmission Protocol (SCTP) user-land stack.
-
rawrtc - WebRTC and ORTC library with a small footprint.
-
OSS Core - General purpose C++ library for Real Time Communications.
-
Open WebRTC Toolkit - WebRTC development toolkit with bindings for multiple platforms.
-
Sofia-SIP - Open source SIP library used by FreeSWITCH.
Go Libraries
-
Pion - Extensive software stack for WebRTC written in Go.
-
gossip - SIP stack for stateful user agents written in Go.
-
siprocket - Fast SIP and SDP packet parser.
-
go-diameter - RFC compliant Diameter protocol library.
PHP Libraries
-
RTCKit/SIP - RFC 3261 compliant SIP parsing and rendering library for PHP 7.4+.
Python Libraries
-
aiortc - WebRTC and ORTC implementation for Python using asyncio.
-
Katari - SIP stack application framework.
-
peerjs-python - Python port of the PeerJS peer-to-peer connection library.
Erlang Libraries
-
NkSIP - Extendable SIP server framework.
-
ersip - Library comprising building blocks for SIP applications.
Rust Libraries
-
libsip - SIP implementation, with a focus towards softphone clients.
-
sipcore - Rust framework for creating SIP applications.
-
rtcrs/webrtc - WebRTC stack, supporting SDP, RTP, RTCP and SRTP.
Dart Libraries
-
dart-sip-ua - Dart-lang port of JsSIP, capable of SIP over WebSocket.
Blogs
-
BlogGeekMe - Blog by Tsahi Levent-Levi with a strong focus on WebRTC.
-
SIP Adventures - Unified communications blog by Andrew Prokop.
-
WebRTCHacks - WebRTC blog by independent technologists.
Discussion
-
FreeSWITCH Slack - Join #freeswitch and #freeswitch-dev for user and developer support.
-
discuss-webrtc - Developer oriented Google Group for WebRTC discussions.
Events
-
ClueCon - Annual conference held in Chicago for telecommunications developers. Birthplace of FreeSWITCH.
-
Kamailio World - Berlin hosted annual event focused on Kamailio as well as VoIP, WebRTC, IMS, VoLTE and more.
-
AstriCon - Asterisk focus event held every year across the US.
-
CommCon - Annual conference held in the UK focused on telecommunications in general and WebRTC in particular.
-
OpenSIPS Summit - Meeting place for the OpenSIPS community.
-
Kranky Geek - AI and RTC event in San Francisco.
-
FOSDEM - Free event for software developers, with a RTC component, held every year in Europe.
-
JanusCon - JanusCon is a live event for Janus and RTC implementers.
-
TADHack - Global hackathon focused on programmable communications.
Contribute
Contributions welcome! Read the contribution guidelines first.