18 KiB
18 KiB
Awesome Real Time Communications !Awesome (https://awesome.re/badge.svg) (https://awesome.re)
▐ Protocols and methodology for near simultaneous exchange of media and data.
Contents
- Server Software (#server-software)
- General Purpose (#general-purpose)
- SIP Servers (#sip-servers)
- Media Servers (#media-servers)
- STUN/TURN (#stunturn)
- Operations (#operations)
- Monitoring (#monitoring)
- Testing (#testing)
- Deployment (#deployment)
- Web/API Interfaces (#webapi-interfaces)
- Billing (#billing)
- Developer Resources (#developer-resources)
- Tutorials (#tutorials)
- JavaScript Libraries (#javascript-libraries)
- C/C++ Libraries (#cc-libraries)
- Go Libraries (#go-libraries)
- PHP Libraries (#php-libraries)
- Python Libraries (#python-libraries)
- Erlang Libraries (#erlang-libraries)
- Rust Libraries (#rust-libraries)
- Dart Libraries (#dart-libraries)
- Blogs (#blogs)
- Discussion (#discussion)
- Events (#events)
- Related Lists (#related-lists)
- Contribute (#contribute)
Server Software
General Purpose
- FreeSWITCH (http://freeswitch.org) - Open source multi-protocol, cross-platform and software switch.
- Asterisk (http://asterisk.org) - PBX framework supporting multiple protocols and platforms.
SIP Servers
- Kamailio (http://www.kamailio.org) - Open source SIP server widely deployed by carriers and providers. Formerly known as OpenSER.
- OpenSIPS (http://www.opensips.org) - Open source SIP server, tracing its roots in OpenSER (presently Kamailio).
- Routr (https://routr.io) - Lightweight SIP proxy, location server, and registrar written in Node.js.
- Sippy B2BUA (https://github.com/sippy/b2bua) - Back-to-back user agent server written in Python.
- Flexisip (https://github.com/BelledonneCommunications/flexisip) - SIP server suite comprising proxy, presence and group chat functions.
Media Servers
- Janus (https://janus.conf.meetecho.com) - Lightweight open source, general purpose, WebRTC gateway.
- RTPProxy (https://www.rtpproxy.org) - General purpose high performance RTP proxy.
- RTP:Engine (https://github.com/sipwise/rtpengine) - RTP and UDP based media traffic proxy, usable as a kernel module.
- mediasoup (https://mediasoup.org) - Specialized WebRTC conferencing system.
- SEMS (https://github.com/sems-server/sems) - Open source media and application server for SIP based VoIP services.
- Jitsi (https://jitsi.org/projects) - A collection of RTC open source projects, with a focus on conferencing software.
STUN/TURN
- coturn (https://github.com/coturn/coturn) - Fully featured TURN/STUN server supporting multiple platforms.
- STUNTMAN (https://github.com/jselbie/stunserver) - RFC compliant open source STUN implementation.
Operations
Monitoring
- sngrep (https://github.com/irontec/sngrep) - Terminal based SIP flow viewer.
- sipgrep (https://github.com/sipcapture/sipgrep) - Console tool for sniffing, capturing and exploring SIP traffic.
- rtpbreak (https://github.com/Naishy/rtpsplit) - Detect, reconstruct and analyze RTP sessions.
- HOMER (https://github.com/sipcapture/homer) - Multi-protocol capturing and monitoring framework for RTC.
- WebRTC Troubleshooter (https://github.com/webrtc/testrtc) - Self-hosted one stop client-side WebRTC troubleshooter.
- Trickle ICE (https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice) - Exposes client-side NAT traversal debug data.
- SIP3 (https://sip3.io) - VoIP & RTC traffic monitoring and analysis platform.
Testing
- SIPp (http://sipp.sourceforge.net) - Traffic generator for the SIP protocol.
- SIPVicious (https://github.com/EnableSecurity/sipvicious) - Suite of security tools that can be used to audit SIP based VoIP systems.
- sipsak (https://github.com/nils-ohlmeier/sipsak) - SIP stress and diagnostics utility.
- sipexer (https://github.com/miconda/sipexer) - Modern and flexible SIP command line tool.
Deployment
- slimswitch (https://github.com/rtckit/slimswitch) - Tooling for creating lean secure FreeSWITCH Docker images.
Web/API Interfaces
- Eqivo (https://eqivo.org) - Open source programmable-voice/telephony API platform.
- Kazoo (https://www.2600hz.org) - Carrier-grade VoIP API platform using FreeSWITCH and Kamailio.
- FusionPBX (https://www.fusionpbx.com) - Multitenant system built on top of FreeSWITCH.
- FreePBX (https://www.freepbx.org) - Web Manager for Asterisk.
- Fonoster (https://github.com/fonoster/fonoster) - Telecommunication stack built with Node.js.
- Wazo (https://wazo-platform.org) - VoIP API platform built on top of Asterisk, Kamailio and RTPEngine.
- jambonz (https://www.jambonz.org) - Open source CPaaS built for communications service providers.
- IVOZ Provider (https://github.com/irontec/ivozprovider) - Multitenant solution for VoIP telephony providers.
Billing
- CGRateS (http://cgrates.org) - Carrier grade open source billing/rating server.
- A2Billing (http://www.asterisk2billing.org) - Billing system for Asterisk for multiple applications.
- PyFreeBilling (https://github.com/mwolff44/pyfreebilling) - Wholesale billing platform for Kamailio and FreeSWITCH.
Developer Resources
Tutorials
- Official Website (https://webrtc.org) - Entry level WebRTC resources.
- Getting Started With WebRTC (https://www.html5rocks.com/en/tutorials/webrtc/basics) - WebRTC tutorial by HTML5 Rocks.
- WebRTC Samples (https://webrtc.github.io/samples) - Collection of samples demonstrating various parts of the WebRTC APIs.
- WebRTC Experiments (https://www.webrtc-experiment.com) - Comprehensive list of samples by Muaz Khan.
- Interactive Codelab (https://codelabs.developers.google.com/codelabs/webrtc-web) - 30 minutes step by step live tutorial by Google.
JavaScript Libraries
- drachtio (https://drachtio.org) - Node.js SIP server framework.
- adapter.js (https://github.com/webrtcHacks/adapter) - JavaScript shim for abstracting WebRTC spec changes and inconsistencies.
- JsSIP (http://jssip.net) - Lightweight open source JavaScript SIP library.
- sipML5 (https://www.doubango.org/sipml5) - Open source JavaScript SIP client with WebRTC media stack.
- simple-peer (https://github.com/feross/simple-peer) - WebRTC video, voice, and data channels abstraction for Node.js and the browser.
- Netflux (https://github.com/coast-team/netflux) - Isomorphic JavaScript peer to peer transport API for client and server.
- PeerJS (https://peerjs.com) - Data and media peer-to-peer connection API implemented over WebRTC.
C/C++ Libraries
- libre (https://github.com/creytiv/re) - Portable SIP Stack along with companion libraries for media handling, STUN/TURN and a modular user agent.
- PJSIP (https://www.pjsip.org) - Multi-protocol RTC library written in C.
- eXosip (http://savannah.nongnu.org/projects/exosip) - eXtended osip is a mature C library for abstracting the SIP protocol.
- libdatachannel (https://github.com/paullouisageneau/libdatachannel) - Standalone WebRTC DataChannels C++ implementation.
- libSRTP (https://github.com/cisco/libsrtp) - Secure Real-time Transport Protocol (SRTP) library for C.
- usrsctp (https://github.com/sctplab/usrsctp) - Portable Stream Control Transmission Protocol (SCTP) user-land stack.
- rawrtc (https://github.com/rawrtc/rawrtc) - WebRTC and ORTC library with a small footprint.
- OSS Core (https://github.com/joegen/oss_core) - General purpose C++ library for Real Time Communications.
- Open WebRTC Toolkit (https://01.org/open-webrtc-toolkit) - WebRTC development toolkit with bindings for multiple platforms.
- Sofia-SIP (https://github.com/freeswitch/sofia-sip) - Open source SIP library used by FreeSWITCH.
Go Libraries
- Pion (https://pion.ly) - Extensive software stack for WebRTC written in Go.
- gossip (https://github.com/StefanKopieczek/gossip) - SIP stack for stateful user agents written in Go.
- siprocket (https://github.com/marv2097/siprocket) - Fast SIP and SDP packet parser.
- go-diameter (https://github.com/fiorix/go-diameter) - RFC compliant Diameter protocol library.
PHP Libraries
- RTCKit/SIP (https://github.com/rtckit/php-sip) - RFC 3261 compliant SIP parsing and rendering library for PHP 7.4+.
Python Libraries
- aiortc (https://github.com/aiortc/aiortc) - WebRTC and ORTC implementation for Python using asyncio.
- Katari (https://github.com/hyperioxx/Katari) - SIP stack application framework.
- peerjs-python (https://github.com/ambianic/peerjs-python) - Python port of the PeerJS peer-to-peer connection library.
Erlang Libraries
- NkSIP (https://github.com/NetComposer/nksip) - Extendable SIP server framework.
- ersip (https://github.com/poroh/ersip) - Library comprising building blocks for SIP applications.
Rust Libraries
- libsip (https://docs.rs/libsip/0.2.4/libsip) - SIP implementation, with a focus towards softphone clients.
- sipcore (https://github.com/armatusmiles/sipcore) - Rust framework for creating SIP applications.
- rtcrs/webrtc (https://github.com/rtcrs/webrtc) - WebRTC stack, supporting SDP, RTP, RTCP and SRTP.
Dart Libraries
- dart-sip-ua (https://github.com/cloudwebrtc/dart-sip-ua) - Dart-lang port of JsSIP, capable of SIP over WebSocket.
Blogs
- BlogGeekMe (https://bloggeek.me/blog) - Blog by Tsahi Levent-Levi with a strong focus on WebRTC.
- SIP Adventures (https://andrewjprokop.wordpress.com) - Unified communications blog by Andrew Prokop.
- WebRTCHacks (https://webrtchacks.com) - WebRTC blog by independent technologists.
Discussion
- FreeSWITCH Slack (https://signalwire.community) - Join #freeswitch and #freeswitch-dev for user and developer support.
- discuss-webrtc (https://groups.google.com/forum/?fromgroups#!forum/discuss-webrtc) - Developer oriented Google Group for WebRTC discussions.
Events
- ClueCon (http://cluecon.com) - Annual conference held in Chicago for telecommunications developers. Birthplace of FreeSWITCH.
- Kamailio World (https://www.kamailioworld.com) - Berlin hosted annual event focused on Kamailio as well as VoIP, WebRTC, IMS, VoLTE and more.
- AstriCon (https://www.asterisk.org/community/astricon-user-conference) - Asterisk focus event held every year across the US.
- CommCon (https://commcon.xyz) - Annual conference held in the UK focused on telecommunications in general and WebRTC in particular.
- OpenSIPS Summit (https://www.opensips.org/events) - Meeting place for the OpenSIPS community.
- Kranky Geek (https://krankygeek.com) - AI and RTC event in San Francisco.
- FOSDEM (https://fosdem.org) - Free event for software developers, with a RTC component, held every year in Europe.
- JanusCon (https://www.januscon.it) - JanusCon is a live event for Janus and RTC implementers.
- TADHack (https://tadhack.com) - Global hackathon focused on programmable communications.
Related Lists
- Awesome RIPT (https://github.com/rtckit/awesome-ript) - Real Time Internet Peering for Telephony.
- Awesome RTC Hacking (https://github.com/EnableSecurity/awesome-rtc-hacking) - Real Time Communications hacking and penetration testing resources.
- Awesome 5G (https://github.com/calee0219/awesome-5g) - 5G frameworks, libraries, software and resources.
- Awesome Cellular Hacking (https://github.com/W00t3k/Awesome-Cellular-Hacking) - Research resources in the 3G/4G/5G Cellular security space.
- Awesome Telco (https://github.com/ravens/awesome-telco) - Telco resources and projects.
- SIP Resources (https://github.com/miconda/sip-resources) - Useful SIP resources curated by Kamailio's head developer.
Contribute
Contributions welcome! Read the contribution guidelines (CONTRIBUTING.md) first.
rtc Github: https://github.com/rtckit/awesome-rtc
▐ Protocols and methodology for near simultaneous exchange of media and data.
Contents
- Server Software (#server-software)
- General Purpose (#general-purpose)
- SIP Servers (#sip-servers)
- Media Servers (#media-servers)
- STUN/TURN (#stunturn)
- Operations (#operations)
- Monitoring (#monitoring)
- Testing (#testing)
- Deployment (#deployment)
- Web/API Interfaces (#webapi-interfaces)
- Billing (#billing)
- Developer Resources (#developer-resources)
- Tutorials (#tutorials)
- JavaScript Libraries (#javascript-libraries)
- C/C++ Libraries (#cc-libraries)
- Go Libraries (#go-libraries)
- PHP Libraries (#php-libraries)
- Python Libraries (#python-libraries)
- Erlang Libraries (#erlang-libraries)
- Rust Libraries (#rust-libraries)
- Dart Libraries (#dart-libraries)
- Blogs (#blogs)
- Discussion (#discussion)
- Events (#events)
- Related Lists (#related-lists)
- Contribute (#contribute)
Server Software
General Purpose
- FreeSWITCH (http://freeswitch.org) - Open source multi-protocol, cross-platform and software switch.
- Asterisk (http://asterisk.org) - PBX framework supporting multiple protocols and platforms.
SIP Servers
- Kamailio (http://www.kamailio.org) - Open source SIP server widely deployed by carriers and providers. Formerly known as OpenSER.
- OpenSIPS (http://www.opensips.org) - Open source SIP server, tracing its roots in OpenSER (presently Kamailio).
- Routr (https://routr.io) - Lightweight SIP proxy, location server, and registrar written in Node.js.
- Sippy B2BUA (https://github.com/sippy/b2bua) - Back-to-back user agent server written in Python.
- Flexisip (https://github.com/BelledonneCommunications/flexisip) - SIP server suite comprising proxy, presence and group chat functions.
Media Servers
- Janus (https://janus.conf.meetecho.com) - Lightweight open source, general purpose, WebRTC gateway.
- RTPProxy (https://www.rtpproxy.org) - General purpose high performance RTP proxy.
- RTP:Engine (https://github.com/sipwise/rtpengine) - RTP and UDP based media traffic proxy, usable as a kernel module.
- mediasoup (https://mediasoup.org) - Specialized WebRTC conferencing system.
- SEMS (https://github.com/sems-server/sems) - Open source media and application server for SIP based VoIP services.
- Jitsi (https://jitsi.org/projects) - A collection of RTC open source projects, with a focus on conferencing software.
STUN/TURN
- coturn (https://github.com/coturn/coturn) - Fully featured TURN/STUN server supporting multiple platforms.
- STUNTMAN (https://github.com/jselbie/stunserver) - RFC compliant open source STUN implementation.
Operations
Monitoring
- sngrep (https://github.com/irontec/sngrep) - Terminal based SIP flow viewer.
- sipgrep (https://github.com/sipcapture/sipgrep) - Console tool for sniffing, capturing and exploring SIP traffic.
- rtpbreak (https://github.com/Naishy/rtpsplit) - Detect, reconstruct and analyze RTP sessions.
- HOMER (https://github.com/sipcapture/homer) - Multi-protocol capturing and monitoring framework for RTC.
- WebRTC Troubleshooter (https://github.com/webrtc/testrtc) - Self-hosted one stop client-side WebRTC troubleshooter.
- Trickle ICE (https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice) - Exposes client-side NAT traversal debug data.
- SIP3 (https://sip3.io) - VoIP & RTC traffic monitoring and analysis platform.
Testing
- SIPp (http://sipp.sourceforge.net) - Traffic generator for the SIP protocol.
- SIPVicious (https://github.com/EnableSecurity/sipvicious) - Suite of security tools that can be used to audit SIP based VoIP systems.
- sipsak (https://github.com/nils-ohlmeier/sipsak) - SIP stress and diagnostics utility.
- sipexer (https://github.com/miconda/sipexer) - Modern and flexible SIP command line tool.
Deployment
- slimswitch (https://github.com/rtckit/slimswitch) - Tooling for creating lean secure FreeSWITCH Docker images.
Web/API Interfaces
- Eqivo (https://eqivo.org) - Open source programmable-voice/telephony API platform.
- Kazoo (https://www.2600hz.org) - Carrier-grade VoIP API platform using FreeSWITCH and Kamailio.
- FusionPBX (https://www.fusionpbx.com) - Multitenant system built on top of FreeSWITCH.
- FreePBX (https://www.freepbx.org) - Web Manager for Asterisk.
- Fonoster (https://github.com/fonoster/fonoster) - Telecommunication stack built with Node.js.
- Wazo (https://wazo-platform.org) - VoIP API platform built on top of Asterisk, Kamailio and RTPEngine.
- jambonz (https://www.jambonz.org) - Open source CPaaS built for communications service providers.
- IVOZ Provider (https://github.com/irontec/ivozprovider) - Multitenant solution for VoIP telephony providers.
Billing
- CGRateS (http://cgrates.org) - Carrier grade open source billing/rating server.
- A2Billing (http://www.asterisk2billing.org) - Billing system for Asterisk for multiple applications.
- PyFreeBilling (https://github.com/mwolff44/pyfreebilling) - Wholesale billing platform for Kamailio and FreeSWITCH.
Developer Resources
Tutorials
- Official Website (https://webrtc.org) - Entry level WebRTC resources.
- Getting Started With WebRTC (https://www.html5rocks.com/en/tutorials/webrtc/basics) - WebRTC tutorial by HTML5 Rocks.
- WebRTC Samples (https://webrtc.github.io/samples) - Collection of samples demonstrating various parts of the WebRTC APIs.
- WebRTC Experiments (https://www.webrtc-experiment.com) - Comprehensive list of samples by Muaz Khan.
- Interactive Codelab (https://codelabs.developers.google.com/codelabs/webrtc-web) - 30 minutes step by step live tutorial by Google.
JavaScript Libraries
- drachtio (https://drachtio.org) - Node.js SIP server framework.
- adapter.js (https://github.com/webrtcHacks/adapter) - JavaScript shim for abstracting WebRTC spec changes and inconsistencies.
- JsSIP (http://jssip.net) - Lightweight open source JavaScript SIP library.
- sipML5 (https://www.doubango.org/sipml5) - Open source JavaScript SIP client with WebRTC media stack.
- simple-peer (https://github.com/feross/simple-peer) - WebRTC video, voice, and data channels abstraction for Node.js and the browser.
- Netflux (https://github.com/coast-team/netflux) - Isomorphic JavaScript peer to peer transport API for client and server.
- PeerJS (https://peerjs.com) - Data and media peer-to-peer connection API implemented over WebRTC.
C/C++ Libraries
- libre (https://github.com/creytiv/re) - Portable SIP Stack along with companion libraries for media handling, STUN/TURN and a modular user agent.
- PJSIP (https://www.pjsip.org) - Multi-protocol RTC library written in C.
- eXosip (http://savannah.nongnu.org/projects/exosip) - eXtended osip is a mature C library for abstracting the SIP protocol.
- libdatachannel (https://github.com/paullouisageneau/libdatachannel) - Standalone WebRTC DataChannels C++ implementation.
- libSRTP (https://github.com/cisco/libsrtp) - Secure Real-time Transport Protocol (SRTP) library for C.
- usrsctp (https://github.com/sctplab/usrsctp) - Portable Stream Control Transmission Protocol (SCTP) user-land stack.
- rawrtc (https://github.com/rawrtc/rawrtc) - WebRTC and ORTC library with a small footprint.
- OSS Core (https://github.com/joegen/oss_core) - General purpose C++ library for Real Time Communications.
- Open WebRTC Toolkit (https://01.org/open-webrtc-toolkit) - WebRTC development toolkit with bindings for multiple platforms.
- Sofia-SIP (https://github.com/freeswitch/sofia-sip) - Open source SIP library used by FreeSWITCH.
Go Libraries
- Pion (https://pion.ly) - Extensive software stack for WebRTC written in Go.
- gossip (https://github.com/StefanKopieczek/gossip) - SIP stack for stateful user agents written in Go.
- siprocket (https://github.com/marv2097/siprocket) - Fast SIP and SDP packet parser.
- go-diameter (https://github.com/fiorix/go-diameter) - RFC compliant Diameter protocol library.
PHP Libraries
- RTCKit/SIP (https://github.com/rtckit/php-sip) - RFC 3261 compliant SIP parsing and rendering library for PHP 7.4+.
Python Libraries
- aiortc (https://github.com/aiortc/aiortc) - WebRTC and ORTC implementation for Python using asyncio.
- Katari (https://github.com/hyperioxx/Katari) - SIP stack application framework.
- peerjs-python (https://github.com/ambianic/peerjs-python) - Python port of the PeerJS peer-to-peer connection library.
Erlang Libraries
- NkSIP (https://github.com/NetComposer/nksip) - Extendable SIP server framework.
- ersip (https://github.com/poroh/ersip) - Library comprising building blocks for SIP applications.
Rust Libraries
- libsip (https://docs.rs/libsip/0.2.4/libsip) - SIP implementation, with a focus towards softphone clients.
- sipcore (https://github.com/armatusmiles/sipcore) - Rust framework for creating SIP applications.
- rtcrs/webrtc (https://github.com/rtcrs/webrtc) - WebRTC stack, supporting SDP, RTP, RTCP and SRTP.
Dart Libraries
- dart-sip-ua (https://github.com/cloudwebrtc/dart-sip-ua) - Dart-lang port of JsSIP, capable of SIP over WebSocket.
Blogs
- BlogGeekMe (https://bloggeek.me/blog) - Blog by Tsahi Levent-Levi with a strong focus on WebRTC.
- SIP Adventures (https://andrewjprokop.wordpress.com) - Unified communications blog by Andrew Prokop.
- WebRTCHacks (https://webrtchacks.com) - WebRTC blog by independent technologists.
Discussion
- FreeSWITCH Slack (https://signalwire.community) - Join #freeswitch and #freeswitch-dev for user and developer support.
- discuss-webrtc (https://groups.google.com/forum/?fromgroups#!forum/discuss-webrtc) - Developer oriented Google Group for WebRTC discussions.
Events
- ClueCon (http://cluecon.com) - Annual conference held in Chicago for telecommunications developers. Birthplace of FreeSWITCH.
- Kamailio World (https://www.kamailioworld.com) - Berlin hosted annual event focused on Kamailio as well as VoIP, WebRTC, IMS, VoLTE and more.
- AstriCon (https://www.asterisk.org/community/astricon-user-conference) - Asterisk focus event held every year across the US.
- CommCon (https://commcon.xyz) - Annual conference held in the UK focused on telecommunications in general and WebRTC in particular.
- OpenSIPS Summit (https://www.opensips.org/events) - Meeting place for the OpenSIPS community.
- Kranky Geek (https://krankygeek.com) - AI and RTC event in San Francisco.
- FOSDEM (https://fosdem.org) - Free event for software developers, with a RTC component, held every year in Europe.
- JanusCon (https://www.januscon.it) - JanusCon is a live event for Janus and RTC implementers.
- TADHack (https://tadhack.com) - Global hackathon focused on programmable communications.
Related Lists
- Awesome RIPT (https://github.com/rtckit/awesome-ript) - Real Time Internet Peering for Telephony.
- Awesome RTC Hacking (https://github.com/EnableSecurity/awesome-rtc-hacking) - Real Time Communications hacking and penetration testing resources.
- Awesome 5G (https://github.com/calee0219/awesome-5g) - 5G frameworks, libraries, software and resources.
- Awesome Cellular Hacking (https://github.com/W00t3k/Awesome-Cellular-Hacking) - Research resources in the 3G/4G/5G Cellular security space.
- Awesome Telco (https://github.com/ravens/awesome-telco) - Telco resources and projects.
- SIP Resources (https://github.com/miconda/sip-resources) - Useful SIP resources curated by Kamailio's head developer.
Contribute
Contributions welcome! Read the contribution guidelines (CONTRIBUTING.md) first.
rtc Github: https://github.com/rtckit/awesome-rtc