Perhaps updating for this is worth the effort.
WebRTC is now implemented in Firefox and Chrome (and is missing in IE, Edge, and Safari).
For legacy SIP in WebRTC, some conversions are needed. With WebRTC, you can use anything for signaling, usually through a WebSocket. You can implement your proprietary protocol, however if you are looking for SIP compatibility, then the most natural approach is WebSocket to SIP .
WebRTC encodes media in DTLS / SRTP, so you have to decode it in pure RTP as well. This means that on the server side you will use a software switch with built-in WebRTC support or a WebRTC gateway for SIP. Be sure to select a software switch / gateway with full multimedia transcoding support. WebRTC currently supports G.711, G.722, and Opus. For an outdated SIP network, your server usually just selects G.711, and everything is perfect. In some cases, you may need to convert multimedia to other popular codecs, such as G.729, G.723 or GSM.
Usually you have the following protocol coverage:
- Signaling (it's simple): SIP via WebSocket in TLS -> clear SIP through UDP / TCP
- Media (this is more complicated): DTLS / SRTP encoded RTP with PCMU -> clear RTP with PCMU
WebRTC-enabled software switch:
WebRTC for SIP gateways:
WebRTC Clients with SIP Support (RFC 7118):
You should also deploy and use your own STUN and TURN servers (some servers / gateways have these built-in functions, otherwise use coturn rfc5766-turn-server ).
After starting and starting the server side, you can easily create your own client solution based on the above webrtc clients, since each of them has an easy-to-use JavaScript API.
Isstvan
source share