webrtc : exploration through the question of
Transcription
webrtc : exploration through the question of
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 I-Objectives II- Infrastructure solutions III-Experiments OBJECTIVES Bloc Browser 3 SIPphone I-Objectives II- Infrastructure solutions III-Experiments OBJECTIVES Bloc Browser WebRTC 3 SIPphone I-Objectives II- Infrastructure solutions III-Experiments OBJECTIVES Bloc Browser WebRTC 3 SIPphone I-Objectives II- Infrastructure solutions III-Experiments WEBRTC 4 I-Objectives II- Infrastructure solutions III-Experiments SIPML 5 Browser Bloc SIPphone SipML5 5 I-Objectives II- Infrastructure solutions III-Experiments SIPML 5 Browser Bloc SIPphone SipML5 Sip stack WebRTC 5 I-Objectives II- Infrastructure solutions III-Experiments ARCHITECTURE Browser Bloc SipML5 Sip stack SIPphone WebRTC 6 I-Objectives II- Infrastructure solutions III-Experiments ARCHITECTURE Browser Bloc HTTP server SipML5 Websocket server Sip stack WebRTC RTP Engine Registrar Proxy SIP SIPphone 6 I-Objectives II- Infrastructure solutions III-Experiments ARCHITECTURE Browser HTTP GET HTML webapp.js SipML5 Bloc HTTP server Websocket server Sip stack WebRTC RTP Engine Registrar Proxy SIP SIPphone 6 I-Objectives II- Infrastructure solutions III-Experiments ARCHITECTURE Browser HTTP GET HTML webapp.js SipML5 S rW e v o P Bloc HTTP server Websocket server SI Sip stack WebRTC RTP Engine SIP Registrar Proxy SIP SIP 6 SIPphone I-Objectives II- Infrastructure solutions III-Experiments ARCHITECTURE Browser HTTP GET HTML webapp.js SipML5 S rW e v o P Bloc HTTP server Websocket server SI Sip stack WebRTC SRTP SIP Registrar Proxy SIP RTP Engine SIP RTP 6 SIPphone I-Objectives II- Infrastructure solutions III-Experiments ARCHITECTURE Browser HTTP GET HTML webapp.js SipML5 S rW e v o P Bloc HTTP server Websocket server SI Sip stack WebRTC SRTP SIP Registrar Proxy SIP RTP Engine SIP RTP 6 SIPphone I-Objectives II- Infrastructure solutions III-Experiments OUR SOLUTION • Proxy and server SIP : - Asterisk v 11.2.2 - Additional patch for VP8 support Asterisk 11.2.2 7 I-Objectives II- Infrastructure solutions III-Experiments SCENARIOS AND TESTS sipML5 PC Virtual Machine javascript eth0 WebRTC FireBug Asterisk Wireshark 8 RTP debug SIP debug (CLI) I-Objectives II- Infrastructure solutions III-Experiments SCENARIO 1: AUDIO CALL • Scenario : an audio call between a browser and a softphone • Registration is performed • Need a websocket server and a proxy SIP (provided by Asterisk) • VM network is on bridge Host machine 192.168.0.11 Asterisk 192.168.0.25 Chrome X Lite 192.168.0.45 g711 9 192.168.0.46 g711 Browser AUDIO CALL CALL FLOW Softphone Asterisk WS[REGISTE (already registered) R] ze i r o h t Unau WS[401 WS[REGISTE d] R] OK] 0 0 2 [ WS DP INVITE S 401 Unau thorize ACK DP S E T I V N I • Signaling encapsuled in Websocket 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. 100 Tr ying DP] S E T I V N WS [I WS [10 0 Tryi ng] WS [18 0 Ring ing] WS [20 0 OK] 180 Ri nging 200 OK SRTP 10 RTP d Browser AUDIO CALL CALL FLOW Softphone Asterisk WS[REGISTE (already registered) R] ze i r o h t Unau WS[401 WS[REGISTE d] R] OK] 0 0 2 [ WS DP INVITE S 401 Unau thorize ACK DP S E T I V N I • Signaling encapsuled in Websocket 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. 100 Tr ying DP] S E T I V N WS [I WS [10 0 Tryi ng] WS [18 0 Ring ing] WS [20 0 OK] 180 Ri nging 200 OK SRTP 10 RTP d Browser AUDIO CALL CALL FLOW Softphone Asterisk WS[REGISTE (already registered) R] ze i r o h t Unau WS[401 WS[REGISTE d] R] OK] 0 0 2 [ WS DP INVITE S 401 Unau thorize ACK DP S E T I V N I • Signaling encapsuled in Websocket 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. 100 Tr ying DP] S E T I V N WS [I WS [10 0 Tryi ng] WS [18 0 Ring ing] WS [20 0 OK] 180 Ri nging 200 OK SRTP 10 RTP d I-Objectives II- Infrastructure solutions III-Experiments SCENARIO II: AUDIOCONFERENCE Host machine Asterisk 192.168.0.11 • • • adding modules in Asterisk: MeetMe, ConfBridge 192.168.0.25 LinPhone Dial-In DTMF in SIP INFO 192.168.0.33 g711 11 192.168.0.46 g711 192.168.0.45 g711 I-Objectives II- Infrastructure solutions III-Experiments SCENARIO III: PRESENCE Host machine Status of userX ? Asterisk Browser Asterisk WS[SUSCRIB WS[401 U E] zed i r o h t nau WS[SUSCRIB ] E] K] O 0 0 2 WS[ Y] F I T O N [ WS 192.168.0.11 192.168.0.25 WS [20 0 OK] FY] WS [NOTI X Lite 192.168.0.45 g711 WS [20 0 OK] 192.168.0.46 g711 12 Change of userX’s status I-Objectives II- Infrastructure solutions III-Experiments SCENARIO III: PRESENCE Host machine Status of userX ? Asterisk Browser Asterisk WS[SUSCRIB WS[401 U E] zed i r o h t nau WS[SUSCRIB ] E] K] O 0 0 2 WS[ Y] F I T O N [ WS 192.168.0.11 192.168.0.25 WS [20 0 OK] FY] WS [NOTI X Lite 192.168.0.45 g711 WS [20 0 OK] 192.168.0.46 g711 12 Change of userX’s status I-Objectives II- Infrastructure solutions III-Experiments SCENARIO IV: VIDEO Host machine Asterisk • Works between softphones using h264, h263,VP8 192.168.0.11 • Asterisk needs to be patched to be VP8compliant X Lite 192.168.0.25 h.264 13 192.168.0.25 iDoubs 192.168.0.46 h.264 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 X Ubuntu Android iOS Sipdroid Linphone, Media5-fone OS Windows 8 utilisateur Softphone SipInside, X Lite Telephone, iDoubs Zoiper Navigateur Firefox Nightly Chrome Bowser CONFERENCE CALL FLOW Computer Computer Asterisk WS[INVIT oriz h t u a n U WS[401 ed] WS[ACK] WS[INVIT E SDP] g] n i y r T 0 WS[10 K] WS[200 O WS[401 Unauth orized Softphone P INVITE SD DP] S E T I V N I WS[ E SDP] Asterisk ] 401 Un author ized WS[ACK] ACK DP] S E T I V N WS[I DP S E T I V N I WS[100 Trying WS[200 OK] WS[ACK] WS[ACK] UDP UDP ] 100 Tr ying 200 OK ACK RTP