What is WebRTC
At a high level, WebRTC is a way for browsers to have access to video, speakers and microphone directly without an intermediary like Java or Flash. It’s most common use to-date has been for voice and video calling.
WebRTC does NOT have a built-in protocol for call setup. You can use an existing call setup protocol like SIP or make your own.
OnSIP has open-sourced sip.js (https://sipjs.com/) as an OpenSource javascript library to add the SIP protocol to WebRTC.
When using SIP as the call setup protocol for WebRTC, WebRTC is simply the conduit to the camera, speakers and microphone. SIP does all the heavy lifting of notifying each end of the call and negotiating the audio and video codec.
A WebRTC call is a SIP to SIP call. On the browser side of the call the traffic is UDP and encrypted. OnSIP acts as a translator between the WebRTC side of the SIP call and the other side of the SIP call and can move the traffic from TCP to UCP and can act as a back-to-back user agent to decrypt/encrypt the packets to/from the WebRTC agent.
OnSIP cannot translate codecs. Both ends of the call must agree on an audio and/or video codec in order for the call to get setup.