#Designing a realtime audio/video conferencing service ## Features Functionality to consider when considering tool/platform. * topology + mesh (P2P) all processing at end-points, participants limited by bandwidth + routing (SFU) light server processing, participants limited by bandwidth + mixing (MCU) heavy server processing * stream source efficiency + Support [simulcast](https://webrtcglossary.com/simulcast/) i.e. encode multiple streams that an SFU can "hop" between + Support spatial/temporal/quality [SVC](https://webrtcglossary.com/svc/) i.e. encode a stream that an SFU can efficiently "slice" without recoding + Support suspending simulcast streams + Support [SCReAM](https://github.com/EricssonResearch/scream) * security + Support [PERC](https://webrtcglossary.com/perc/) + Support [ZRTP](https://en.wikipedia.org/wiki/ZRTP) * stream forwarding efficiency * meeting management + Personalized Meeting rooms + Scheduled/Meet-me Meetings + Instant/Direct Meetings + Presence Support + Recording + Text chat + Screen sharing * conference stream efficiency + Skip video streams beyond a threshold of participants + Skip video streams tied to quiet audio streams + Skip streams of explicitly tagged non-speaker participants * conference management + Conference Recording + force-mute participants + "Raise a hand" for muted participants * meeting room + Dual stream for dual screen * Dial in from telephone * Dial in from SIP audio-only * Dial in from SIP with video * Dial in from SIP with SIMPLE text chat ## See also ### Tools [Janus Gateway](https://janus.conf.meetecho.com/) WebRTC SFU/bridge/broker written in C [Mediasoup](https://mediasoup.org/) WebRTC SFU written in C [Kurento](https://www.kurento.org/) WebRTC MCU written in C++ [drachtio](https://drachtio.org/) SIP "SFU" written in C++ [Licode](https://lynckia.com/licode/) WebRTC MCU written in C++ [Medooze WebRTC Media Server](https://github.com/medooze/media-server) WebRTC/SIP MCU written in C++ [SylkServer](https://sylkserver.com/) SIP "SFU" written in Python [Spreed WebRTC](https://github.com/strukturag/spreed-webrtc) WebRTC SFU written in NodeJS and Go [Jitsi Videobridge](https://jitsi.org/jitsi-videobridge/) XMPP SFU written in Java [Jigasi](https://jitsi.org/jitsi-meet/) WebRTC bridge to Jitsi Videobridge written in Java ### Platforms [multiparty-meeting](https://github.com/havfo/multiparty-meeting) using Mediasoup (and optionally drachtio and Kurento) written in JavaScript hosted at [Jangouts](https://github.com/jangouts/jangouts) using Janus written in CoffeeScript [tawk.space](https://github.com/invisible-college/tawk.space) using Janus written in CoffeeScript hosted at [SIP2SIP](https://ag-projects.com/sip2sip/) using SylkServer and Janus hosted at and [Roll Call](https://github.com/mikeal/roll-call) audio-only hosted at [Spreed.ME](https://www.spreed.me/) using Spreed WebRTC [Nextcloud Talk](https://nextcloud.com/talk/) using Spreed WebRTC [Jitsi Meet](https://jitsi.org/jitsi-meet/) using Jigasi and Jitsi Videobridge hosted at [Matrix](https://matrix.org/) using Jigasi and Jitsi Videobridge [BigBlueButton](https://bigbluebutton.org/) using Kurento written in Java [mConf](http://mconf.org/) using Kurento written in Java and Ruby [OpenMeeting](https://openmeetings.apache.org/) written in Java [Wire](https://wire.com/) proprietary-protocol [Free Software](https://github.com/wireapp/wire) stack written in Haskell, Rust, C [Talky](https://about.talky.io/) cloud SFU service hosted at [Me](https://join.me/) cloud SFU service GoToMeeting cloud SFU service [Zoom Meetings](https://zoom.us/) cloud SFU service supporting "up to 50 participants at once" (but client bandwidth and resource demands and stability of such session is unknown) Hangouts Meet cloud SFU service Webex Meetings cloud SFU service Skype cloud SFU service suporting "up to 25 participants at once" (but client bandwidth and resource demands and stability of such session is unknown) MoxieMeet cloud SFU service requiring Google account supporting "up to 32 users all on video together" (but client bandwidth and resource demands and stability of such session is unknown) TeamViewer cloud SFU service