WEBRTC : EXPLORATION THROUGH THE QUESTION OF INTEROPERABILITY WITH SIP Soutenance 17/06/2013 Ornella Annicchiarico, Benoit Le Quéau, Mouhcine Mendil, Florian Seka 1
CONTENT I. Objectives II. Infrastructure solutions III. Experiments IV. Demonstration 2
OBJECTIVES Browser Bloc SIPphone 3
OBJECTIVES Browser Bloc SIPphone WebRTC 3
OBJECTIVES Browser Bloc SIPphone WebRTC 3
WEBRTC 4
Browser SIPML 5 Bloc SIPphone SipML5 5
Browser SIPML 5 Bloc SIPphone SipML5 Sip stack WebRTC 5
Browser ARCHITECTURE Bloc SipML5 Sip stack WebRTC SIPphone 6
Browser ARCHITECTURE HTTP server Bloc Websocket server SipML5 Sip stack Registrar Proxy SIP WebRTC RTP Engine SIPphone 6
Browser ARCHITECTURE HTML webapp.js HTTP GET HTTP server Bloc Websocket server SipML5 Registrar Proxy SIP Sip stack WebRTC RTP Engine SIPphone 6
Browser ARCHITECTURE HTML webapp.js HTTP GET HTTP server Bloc SipML5 SIP over WS Websocket server SIP Registrar Proxy SIP Sip stack WebRTC RTP Engine SIP SIPphone 6
Browser ARCHITECTURE HTML webapp.js HTTP GET HTTP server Bloc SipML5 SIP over WS Websocket server SIP Registrar Proxy SIP Sip stack WebRTC SRTP RTP Engine SIP SIPphone 6 RTP
Browser ARCHITECTURE HTML webapp.js HTTP GET HTTP server Bloc SipML5 SIP over WS Websocket server SIP Registrar Proxy SIP Sip stack WebRTC SRTP RTP Engine SIP SIPphone 6 RTP
OUR SOLUTION Proxy and server SIP : - Asterisk v 11.2.2 Asterisk 11.2.2 - Additional patch for VP8 support 7
SCENARIOS AND TESTS sipml5 PC javascript WebRTC Virtual Machine eth0 Asterisk RTP debug SIP debug (CLI) FireBug Wireshark 8
SCENARIO 1: AUDIO CALL Scenario : an audio call between a browser and a softphone Host machine Asterisk Registration is performed Need a websocket server and a proxy SIP (provided by Asterisk) VM network is on bridge 192.168.0.11 192.168.0.25 Chrome X Lite 192.168.0.45 192.168.0.46 g711 g711 9
Browser WS[REGISTER] Asterisk Softphone (already registered) AUDIO CALL CALL FLOW WS[401 Unauthorized] WS[REGISTER] WS[200 OK] INVITE SDP 401 Unauthorized ACK INVITE SDP Signaling encapsuled in 100 Trying Websocket WS [INVITE SDP] WS [100 Trying] WS [180 Ringing] Les trames SRTP ne sont pas encapsulées dans du websocket. Notre version de wireshark ne reconnait pas SRTP, il indique que c est sur de l UDP. WS [200 OK] SRTP 180 Ringing 200 OK RTP 10
Browser WS[REGISTER] Asterisk Softphone (already registered) AUDIO CALL CALL FLOW WS[401 Unauthorized] WS[REGISTER] WS[200 OK] INVITE SDP 401 Unauthorized ACK INVITE SDP Signaling encapsuled in 100 Trying Websocket WS [INVITE SDP] WS [100 Trying] WS [180 Ringing] Les trames SRTP ne sont pas encapsulées dans du websocket. Notre version de wireshark ne reconnait pas SRTP, il indique que c est sur de l UDP. WS [200 OK] SRTP 180 Ringing 200 OK RTP 10
Browser WS[REGISTER] Asterisk Softphone (already registered) AUDIO CALL CALL FLOW WS[401 Unauthorized] WS[REGISTER] WS[200 OK] INVITE SDP 401 Unauthorized ACK INVITE SDP Signaling encapsuled in 100 Trying Websocket WS [INVITE SDP] WS [100 Trying] WS [180 Ringing] Les trames SRTP ne sont pas encapsulées dans du websocket. Notre version de wireshark ne reconnait pas SRTP, il indique que c est sur de l UDP. WS [200 OK] SRTP 180 Ringing 200 OK RTP 10
SCENARIO II: AUDIOCONFERENCE Host machine Asterisk 192.168.0.11 192.168.0.25 adding modules in Asterisk: MeetMe, ConfBridge LinPhone Dial-In DTMF in SIP INFO 192.168.0.33 g711 192.168.0.46 g711 192.168.0.45 g711 11
Browser Asterisk SCENARIO III: PRESENCE Status of userx? WS[SUSCRIBE] WS[401 Unauthorized] Host machine Asterisk WS[SUSCRIBE] WS[200 OK] WS [NOTIFY] 192.168.0.11 192.168.0.25 WS [200 OK] WS [NOTIFY] Change of userx s status X Lite WS [200 OK] 192.168.0.45 192.168.0.46 g711 g711 12
Browser Asterisk SCENARIO III: PRESENCE Status of userx? WS[SUSCRIBE] WS[401 Unauthorized] Host machine Asterisk WS[SUSCRIBE] WS[200 OK] WS [NOTIFY] 192.168.0.11 192.168.0.25 WS [200 OK] WS [NOTIFY] Change of userx s status X Lite WS [200 OK] 192.168.0.45 192.168.0.46 g711 g711 12
SCENARIO IV: VIDEO Host machine Asterisk Works between softphones using h264, h263, VP8 192.168.0.11 192.168.0.25 Asterisk needs to be patched to be VP8- compliant X Lite idoubs 192.168.0.25 192.168.0.46 h.264 h.264 13
CONCLUSION WebRTC: - only VP8 available - works only with Chrome and Firefox Asterisk: - No video transcoding external transcoder: webrtc2sip? - WebRTC users Softphone users other solutions: jssip/oversip... 14
DEMONSTRATION!
OUR HTML5 CLIENT Deployed on Asterisk HTTP Server 16
APPENDIX SIP messages encapsulated in WebSocket. No WebSocket on media plan.
APPENDIX https://wiki.asterisk.org/wiki/display/ast/video+telephony
APPENDIX http://www.virtualbox.org/manual/ch06.html
VARIABILITY OF TESTS OS du PBX CentOS Ubuntu PBX PIAF-Green Asterisk Kamailo OverSIP OS utilisateur Windows 8 OS X Ubuntu Android ios Softphone SipInside, X Lite Telephone, idoubs Zoiper Sipdroid Linphone, Media5-fone Navigateur Firefox Nightly Chrome Bowser
CONFERENCE CALL FLOW Computer Asterisk Computer Asterisk Softphone WS[INVITE SDP] WS[INVITE SDP] INVITE SDP WS[401 Unauthorized] WS[ACK] WS[INVITE SDP] WS[100 Trying] WS[200 OK] WS[ACK] WS[401 Unauthorized] WS[ACK] WS[INVITE SDP] WS[100 Trying] WS[200 OK] WS[ACK] 401 Unauthorized ACK INVITE SDP 100 Trying 200 OK ACK UDP UDP RTP