4 thoughts on - WebRTC Phone

If you are going to be coding something up yourself I like the JSSIP 0.5.x javascript interfaces. If you are simply going to use a pre-canned one then sipml5 works pretty well and remembers your settings in localstorage. I
haven’t used any closed source versions since the above works really well for us.

For the server:
If you are using Asterisk 1.8 you’ll need to front it with Kamailio and rtpengine (or webrtc2sip but I have had stability issues with that). If you are using a more recent asterisk then the webrtc is built in but I haven’t used (we use Kamailio and rtpengine to bridge webrtc).

If you need the kamailio config I can send it to you (it gets complicated). The rtpengine works very well if you can run the kernel module and introduced very little cpu overhead.

Keep in mind that using Kamailio to bridge the signalling is only half of the equation. You must also bridge the media and so the rtpengine module allows Kamailio to interface with the rtpengine (https://github.com/sipwise/rtpengine) which does that half.

In the provided example Kamailio.cfg there isn’t any real hardening and it’s pretty much purely used as a bridge that would front an Asterisk 1.8
server for webrtc capabilities (but not any other sip). It uses the dispatcher module to dispatch to the underlying asterisk so you will still need to add the Asterisk to the dispatcher config.

I’ll also warn that if you do intend on doing anything with rtpengine/webrtc2sip etc. you’ll need Openssl 1.0.1j or better so that it has the proper support for DTLS-SRTP. This means you are sort of SOL if you are running CentOS5 unless you plan on building Openssl 1.0.1 manually. The websocket module is also not in the Kamailio repositories for CentOS5 and you would need to build it yourself. I’m being rather specific with Cent/RHEL just because I ran into this problem and wanted to throw it out as a warning…

Also rtpengine won’t work in kernel mode in Cent/RHEL 5. Everything is smooth sailing on CentOS 6.