I am implementing voip from android app to browser(web app).I am using sip based linphone as android client and SipML5 for browser part(webapp).Can anyone explain me what is the flow of voip call when called from sip based client like linphone to web browser.what is the role of sip in this and how the transmission of media occurs between sip and webrtc browser app.And also,what is webRtc2sip gateway in short.Please help me clear this confusion.
1
votes
2 Answers
1
votes
The call flow looks like this:
SIP client -> [SIP/RTP] -> SIP server -> [SIP/RTP] -> WebRTC-SIP gateway -> [WebSocket/DTLS/SRTP] -> WebRTC client.
(or the exact inverse direction for calls from WebRTC to SIP)
The following software will be needed:
- sip client: any SIP endpoint (softphone or IP phone such as the linphone you mentioned)
- SIP server: any softswitch or PBX such as Asterisk
- WebRTC-SIP gateway: this is a trickiest component. You need a software here which is capable to covert from simple SIP/RTP to WebRTC and inverse such as the mizu webrtc2sip gateway. (I am mentioning this because it has built-in SSL/WSS support and TURN/STUN included)
- WebRTC client: this usually runs in browsers but there are also native solutions. Make sure that it is RFC 7118 compliant. You can use SipML5 for this but I would recommend to check also SIP.js and webphone since these seems to be better maintained.
Make sure to use HTTPS to host your WebRTC client, otherwise it will not work with Chrome (Chrome allows WebRTC only from HTTPS websites and only with wss websocket connection to the WebRTC2SIP gateway.