The Doubango Telecom webrtc2sip gateway includes an RTCWeb Breaker component. The Doubango RTCWeb Breaker is a B2BUA. It would be useful to have a Kamailio RTCWeb Breaker that is lighter-weight and which can be used without degrading the SIP signalling by using a B2BUA.

An RTCWeb Breaker converts SDP and media streams between those supported by WebRTC end-points and non-WebRTC end-points. An RTCWeb Breaker does not need to transcode the media streams; G.711 is supported by most SIP UAs and is a Mandatory To Implement (MTI) codec in WebRTC, and many SIP UAs now support OPUS and VP8 too.

Proposed RTCWeb Breaker architecture

The RTCWeb Breaker should consist of two components:

  • A Kamailio control module
  • An RTCWeb Breaker daemon

Kamailio should control the RTCWeb Breaker using a light-weight TCP protocol. SDP should be handled and manipulated by the RTCWeb daemon.

RTCWeb Breaker sessions should be initiated within Kamailio failure routes and branch-failure routes. In parallel forking scenarios Kamailio should create distinct RTCWeb Breaker sessions in branch-failure routes enabling sessions to be successfully forked to WebRTC and non-WebRTC end-points.


Example RTCWeb Breaker signalling flow



The RTCWeb Breaker SHOULD support:

  • Sessions from WebRTC to non-WebRTC end-points
  • Sessions from non-WebRTC to WebRTC end-points
  • Session renegotiation using re-INVITE and UPDATE
  • Early media (SDP in 183, PRACK, and UPDATE)
  • SDP offer in INVITE and answer in 180/183/200
  • SDP offer in 180/183/200 and answer in ACK
  • Parallel forking (distinct RTCWeb Breaker sessions for each branch that requires it)