Real-Time Communications

Awesome Real Time Communications Awesome

Protocols and methodology for near simultaneous exchange of media and data.

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.

Media Servers

  • 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.

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 - 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.

Web/API Interfaces

  • Kazoo - Carrier-grade VoIP API platform using FreeSWITCH and Kamailio.
  • FusionPBX - Multitenant system built on top of FreeSWITCH.
  • FreePBX - Web Manager for Asterisk.

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.

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.

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.

Contribute

Contributions welcome! Read the contribution guidelines first.