WEBRTC : EXPLORATION THROUGH THE QUESTION OF...
Transcript of WEBRTC : EXPLORATION THROUGH THE QUESTION OF...
![Page 1: WEBRTC : EXPLORATION THROUGH THE QUESTION OF …ensiwiki.ensimag.fr/images/6/62/Soutenance_webrtc.pdf · 2013-06-19 · WebRTC Bloc Registrar Proxy SIP RTP Engine HTTP server Websocket](https://reader033.fdocuments.net/reader033/viewer/2022050411/5f87b1eca5cd5c084a5db8af/html5/thumbnails/1.jpg)
WEBRTC : EXPLORATION THROUGH THE QUESTIONOF INTEROPERABILITY WITH SIP
Soutenance17/06/2013
Ornella Annicchiarico, Benoit Le Quéau, Mouhcine Mendil, Florian Seka
1
![Page 2: WEBRTC : EXPLORATION THROUGH THE QUESTION OF …ensiwiki.ensimag.fr/images/6/62/Soutenance_webrtc.pdf · 2013-06-19 · WebRTC Bloc Registrar Proxy SIP RTP Engine HTTP server Websocket](https://reader033.fdocuments.net/reader033/viewer/2022050411/5f87b1eca5cd5c084a5db8af/html5/thumbnails/2.jpg)
CONTENT
2
I. Objectives
II. Infrastructure solutions
III. Experiments
IV. Demonstration
![Page 3: WEBRTC : EXPLORATION THROUGH THE QUESTION OF …ensiwiki.ensimag.fr/images/6/62/Soutenance_webrtc.pdf · 2013-06-19 · WebRTC Bloc Registrar Proxy SIP RTP Engine HTTP server Websocket](https://reader033.fdocuments.net/reader033/viewer/2022050411/5f87b1eca5cd5c084a5db8af/html5/thumbnails/3.jpg)
OBJECTIVES I-Objectives II- Infrastructure solutions III-Experiments
Browser BlocSIPphone
3
![Page 4: WEBRTC : EXPLORATION THROUGH THE QUESTION OF …ensiwiki.ensimag.fr/images/6/62/Soutenance_webrtc.pdf · 2013-06-19 · WebRTC Bloc Registrar Proxy SIP RTP Engine HTTP server Websocket](https://reader033.fdocuments.net/reader033/viewer/2022050411/5f87b1eca5cd5c084a5db8af/html5/thumbnails/4.jpg)
OBJECTIVES I-Objectives II- Infrastructure solutions III-Experiments
Browser BlocSIPphone
WebRTC
3
![Page 5: WEBRTC : EXPLORATION THROUGH THE QUESTION OF …ensiwiki.ensimag.fr/images/6/62/Soutenance_webrtc.pdf · 2013-06-19 · WebRTC Bloc Registrar Proxy SIP RTP Engine HTTP server Websocket](https://reader033.fdocuments.net/reader033/viewer/2022050411/5f87b1eca5cd5c084a5db8af/html5/thumbnails/5.jpg)
OBJECTIVES I-Objectives II- Infrastructure solutions III-Experiments
Browser BlocSIPphone
WebRTC
3
![Page 6: WEBRTC : EXPLORATION THROUGH THE QUESTION OF …ensiwiki.ensimag.fr/images/6/62/Soutenance_webrtc.pdf · 2013-06-19 · WebRTC Bloc Registrar Proxy SIP RTP Engine HTTP server Websocket](https://reader033.fdocuments.net/reader033/viewer/2022050411/5f87b1eca5cd5c084a5db8af/html5/thumbnails/6.jpg)
WEBRTC
4
I-Objectives II- Infrastructure solutions III-Experiments
![Page 7: WEBRTC : EXPLORATION THROUGH THE QUESTION OF …ensiwiki.ensimag.fr/images/6/62/Soutenance_webrtc.pdf · 2013-06-19 · WebRTC Bloc Registrar Proxy SIP RTP Engine HTTP server Websocket](https://reader033.fdocuments.net/reader033/viewer/2022050411/5f87b1eca5cd5c084a5db8af/html5/thumbnails/7.jpg)
SIPML 5 Browser
SipML5
BlocSIPphone
I-Objectives II- Infrastructure solutions III-Experiments
5
![Page 8: WEBRTC : EXPLORATION THROUGH THE QUESTION OF …ensiwiki.ensimag.fr/images/6/62/Soutenance_webrtc.pdf · 2013-06-19 · WebRTC Bloc Registrar Proxy SIP RTP Engine HTTP server Websocket](https://reader033.fdocuments.net/reader033/viewer/2022050411/5f87b1eca5cd5c084a5db8af/html5/thumbnails/8.jpg)
SIPML 5 Browser
SipML5
Sip stack
WebRTC
BlocSIPphone
I-Objectives II- Infrastructure solutions III-Experiments
5
![Page 9: WEBRTC : EXPLORATION THROUGH THE QUESTION OF …ensiwiki.ensimag.fr/images/6/62/Soutenance_webrtc.pdf · 2013-06-19 · WebRTC Bloc Registrar Proxy SIP RTP Engine HTTP server Websocket](https://reader033.fdocuments.net/reader033/viewer/2022050411/5f87b1eca5cd5c084a5db8af/html5/thumbnails/9.jpg)
ARCHITECTURE Browser
SipML5
Sip stack
WebRTC
Bloc
SIPphone
I-Objectives II- Infrastructure solutions III-Experiments
6
![Page 10: WEBRTC : EXPLORATION THROUGH THE QUESTION OF …ensiwiki.ensimag.fr/images/6/62/Soutenance_webrtc.pdf · 2013-06-19 · WebRTC Bloc Registrar Proxy SIP RTP Engine HTTP server Websocket](https://reader033.fdocuments.net/reader033/viewer/2022050411/5f87b1eca5cd5c084a5db8af/html5/thumbnails/10.jpg)
ARCHITECTURE Browser
SipML5
Sip stack
WebRTC
Bloc
RegistrarProxy SIP
RTPEngine
HTTP server
Websocket server
SIPphone
I-Objectives II- Infrastructure solutions III-Experiments
6
![Page 11: WEBRTC : EXPLORATION THROUGH THE QUESTION OF …ensiwiki.ensimag.fr/images/6/62/Soutenance_webrtc.pdf · 2013-06-19 · WebRTC Bloc Registrar Proxy SIP RTP Engine HTTP server Websocket](https://reader033.fdocuments.net/reader033/viewer/2022050411/5f87b1eca5cd5c084a5db8af/html5/thumbnails/11.jpg)
ARCHITECTURE Browser
SipML5
Sip stack
WebRTC
Bloc
RegistrarProxy SIP
RTPEngine
HTTP server
Websocket server
SIPphone
HTMLwebapp.js
HTTP GET
I-Objectives II- Infrastructure solutions III-Experiments
6
![Page 12: WEBRTC : EXPLORATION THROUGH THE QUESTION OF …ensiwiki.ensimag.fr/images/6/62/Soutenance_webrtc.pdf · 2013-06-19 · WebRTC Bloc Registrar Proxy SIP RTP Engine HTTP server Websocket](https://reader033.fdocuments.net/reader033/viewer/2022050411/5f87b1eca5cd5c084a5db8af/html5/thumbnails/12.jpg)
ARCHITECTURE Browser
SipML5
Sip stack
WebRTC
Bloc
RegistrarProxy SIP
RTPEngine
HTTP server
Websocket server
SIPphone
HTMLwebapp.js
HTTP GET
SIP over
WS SIP
SIP
I-Objectives II- Infrastructure solutions III-Experiments
6
![Page 13: WEBRTC : EXPLORATION THROUGH THE QUESTION OF …ensiwiki.ensimag.fr/images/6/62/Soutenance_webrtc.pdf · 2013-06-19 · WebRTC Bloc Registrar Proxy SIP RTP Engine HTTP server Websocket](https://reader033.fdocuments.net/reader033/viewer/2022050411/5f87b1eca5cd5c084a5db8af/html5/thumbnails/13.jpg)
ARCHITECTURE Browser
SipML5
Sip stack
WebRTC
Bloc
RegistrarProxy SIP
RTPEngine
HTTP server
Websocket server
SIPphone
HTMLwebapp.js
HTTP GET
SIP over
WS SIP
SIPSRTP
RTP
I-Objectives II- Infrastructure solutions III-Experiments
6
![Page 14: WEBRTC : EXPLORATION THROUGH THE QUESTION OF …ensiwiki.ensimag.fr/images/6/62/Soutenance_webrtc.pdf · 2013-06-19 · WebRTC Bloc Registrar Proxy SIP RTP Engine HTTP server Websocket](https://reader033.fdocuments.net/reader033/viewer/2022050411/5f87b1eca5cd5c084a5db8af/html5/thumbnails/14.jpg)
ARCHITECTURE Browser
SipML5
Sip stack
WebRTC
Bloc
RegistrarProxy SIP
RTPEngine
HTTP server
Websocket server
SIPphone
HTMLwebapp.js
HTTP GET
SIP over
WS SIP
SIPSRTP
RTP
I-Objectives II- Infrastructure solutions III-Experiments
6
![Page 15: WEBRTC : EXPLORATION THROUGH THE QUESTION OF …ensiwiki.ensimag.fr/images/6/62/Soutenance_webrtc.pdf · 2013-06-19 · WebRTC Bloc Registrar Proxy SIP RTP Engine HTTP server Websocket](https://reader033.fdocuments.net/reader033/viewer/2022050411/5f87b1eca5cd5c084a5db8af/html5/thumbnails/15.jpg)
• Proxy and server SIP :
- Asterisk v 11.2.2
- Additional patch for VP8 support
OUR SOLUTION
7
Asterisk11.2.2
I-Objectives II- Infrastructure solutions III-Experiments
![Page 16: WEBRTC : EXPLORATION THROUGH THE QUESTION OF …ensiwiki.ensimag.fr/images/6/62/Soutenance_webrtc.pdf · 2013-06-19 · WebRTC Bloc Registrar Proxy SIP RTP Engine HTTP server Websocket](https://reader033.fdocuments.net/reader033/viewer/2022050411/5f87b1eca5cd5c084a5db8af/html5/thumbnails/16.jpg)
SCENARIOS AND TESTS
8
sipML5
javascript
WebRTC
FireBug
PCVirtual Machine
Asterisk
RTP debugSIP debug
(CLI)
Wireshark
eth0
I-Objectives II- Infrastructure solutions III-Experiments
![Page 17: WEBRTC : EXPLORATION THROUGH THE QUESTION OF …ensiwiki.ensimag.fr/images/6/62/Soutenance_webrtc.pdf · 2013-06-19 · WebRTC Bloc Registrar Proxy SIP RTP Engine HTTP server Websocket](https://reader033.fdocuments.net/reader033/viewer/2022050411/5f87b1eca5cd5c084a5db8af/html5/thumbnails/17.jpg)
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
9
Chrome
I-Objectives II- Infrastructure solutions III-Experiments
192.168.0.45 192.168.0.46
192.168.0.11
Asterisk
192.168.0.25
g711
X Lite
g711
Host machine
![Page 18: WEBRTC : EXPLORATION THROUGH THE QUESTION OF …ensiwiki.ensimag.fr/images/6/62/Soutenance_webrtc.pdf · 2013-06-19 · WebRTC Bloc Registrar Proxy SIP RTP Engine HTTP server Websocket](https://reader033.fdocuments.net/reader033/viewer/2022050411/5f87b1eca5cd5c084a5db8af/html5/thumbnails/18.jpg)
AUDIO CALL CALL FLOW
Browser Softphone(already registered)
Asterisk
INVITE SDP
401 Unauthorized
ACK
INVITE SDP
100 Trying
WS [INVITE SDP]
180 Ringing
WS [200 OK]
RTP
WS [100 Trying]WS [180 Ringing]
SRTP
200 OK
• 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.
WS[REGISTER]
WS[401 Unautho
rized]
WS[REGISTER]
10
WS[200 OK]
![Page 19: WEBRTC : EXPLORATION THROUGH THE QUESTION OF …ensiwiki.ensimag.fr/images/6/62/Soutenance_webrtc.pdf · 2013-06-19 · WebRTC Bloc Registrar Proxy SIP RTP Engine HTTP server Websocket](https://reader033.fdocuments.net/reader033/viewer/2022050411/5f87b1eca5cd5c084a5db8af/html5/thumbnails/19.jpg)
AUDIO CALL CALL FLOW
Browser Softphone(already registered)
Asterisk
INVITE SDP
401 Unauthorized
ACK
INVITE SDP
100 Trying
WS [INVITE SDP]
180 Ringing
WS [200 OK]
RTP
WS [100 Trying]WS [180 Ringing]
SRTP
200 OK
• 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.
WS[REGISTER]
WS[401 Unautho
rized]
WS[REGISTER]
10
WS[200 OK]
![Page 20: WEBRTC : EXPLORATION THROUGH THE QUESTION OF …ensiwiki.ensimag.fr/images/6/62/Soutenance_webrtc.pdf · 2013-06-19 · WebRTC Bloc Registrar Proxy SIP RTP Engine HTTP server Websocket](https://reader033.fdocuments.net/reader033/viewer/2022050411/5f87b1eca5cd5c084a5db8af/html5/thumbnails/20.jpg)
AUDIO CALL CALL FLOW
Browser Softphone(already registered)
Asterisk
INVITE SDP
401 Unauthorized
ACK
INVITE SDP
100 Trying
WS [INVITE SDP]
180 Ringing
WS [200 OK]
RTP
WS [100 Trying]WS [180 Ringing]
SRTP
200 OK
• 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.
WS[REGISTER]
WS[401 Unautho
rized]
WS[REGISTER]
10
WS[200 OK]
![Page 21: WEBRTC : EXPLORATION THROUGH THE QUESTION OF …ensiwiki.ensimag.fr/images/6/62/Soutenance_webrtc.pdf · 2013-06-19 · WebRTC Bloc Registrar Proxy SIP RTP Engine HTTP server Websocket](https://reader033.fdocuments.net/reader033/viewer/2022050411/5f87b1eca5cd5c084a5db8af/html5/thumbnails/21.jpg)
SCENARIO II:AUDIOCONFERENCE
• adding modules in Asterisk: MeetMe, ConfBridge
• Dial-In
• DTMF in SIP INFO 192.168.0.33
192.168.0.46
192.168.0.45
11
192.168.0.11
AsteriskHost machine
192.168.0.25
g711
g711
g711
LinPhone
I-Objectives II- Infrastructure solutions III-Experiments
![Page 22: WEBRTC : EXPLORATION THROUGH THE QUESTION OF …ensiwiki.ensimag.fr/images/6/62/Soutenance_webrtc.pdf · 2013-06-19 · WebRTC Bloc Registrar Proxy SIP RTP Engine HTTP server Websocket](https://reader033.fdocuments.net/reader033/viewer/2022050411/5f87b1eca5cd5c084a5db8af/html5/thumbnails/22.jpg)
SCENARIO III:PRESENCE
12
Browser Asterisk
WS [NOTIFY]
WS [200 OK]
WS[SUSCRIBE]
WS[401 Unautho
rized]
WS[200 OK]
WS[SUSCRIBE]
Status of userX ?
I-Objectives II- Infrastructure solutions III-Experiments
Change of userX’s status
WS [NOTIFY]
WS [200 OK]
192.168.0.45 192.168.0.46
192.168.0.11
Asterisk
192.168.0.25
g711
X Lite
g711
Host machine
![Page 23: WEBRTC : EXPLORATION THROUGH THE QUESTION OF …ensiwiki.ensimag.fr/images/6/62/Soutenance_webrtc.pdf · 2013-06-19 · WebRTC Bloc Registrar Proxy SIP RTP Engine HTTP server Websocket](https://reader033.fdocuments.net/reader033/viewer/2022050411/5f87b1eca5cd5c084a5db8af/html5/thumbnails/23.jpg)
SCENARIO III:PRESENCE
12
Browser Asterisk
WS [NOTIFY]
WS [200 OK]
WS[SUSCRIBE]
WS[401 Unautho
rized]
WS[200 OK]
WS[SUSCRIBE]
Status of userX ?
I-Objectives II- Infrastructure solutions III-Experiments
Change of userX’s status
WS [NOTIFY]
WS [200 OK]
192.168.0.45 192.168.0.46
192.168.0.11
Asterisk
192.168.0.25
g711
X Lite
g711
Host machine
![Page 24: WEBRTC : EXPLORATION THROUGH THE QUESTION OF …ensiwiki.ensimag.fr/images/6/62/Soutenance_webrtc.pdf · 2013-06-19 · WebRTC Bloc Registrar Proxy SIP RTP Engine HTTP server Websocket](https://reader033.fdocuments.net/reader033/viewer/2022050411/5f87b1eca5cd5c084a5db8af/html5/thumbnails/24.jpg)
SCENARIO IV: VIDEO
• Works between softphones using h264, h263, VP8
• Asterisk needs to be patched to be VP8-compliant
192.168.0.25 192.168.0.46
13
192.168.0.11
Asterisk
192.168.0.25
h.264 h.264
X Lite iDoubs
I-Objectives II- Infrastructure solutions III-Experiments
Host machine
![Page 25: WEBRTC : EXPLORATION THROUGH THE QUESTION OF …ensiwiki.ensimag.fr/images/6/62/Soutenance_webrtc.pdf · 2013-06-19 · WebRTC Bloc Registrar Proxy SIP RTP Engine HTTP server Websocket](https://reader033.fdocuments.net/reader033/viewer/2022050411/5f87b1eca5cd5c084a5db8af/html5/thumbnails/25.jpg)
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
![Page 26: WEBRTC : EXPLORATION THROUGH THE QUESTION OF …ensiwiki.ensimag.fr/images/6/62/Soutenance_webrtc.pdf · 2013-06-19 · WebRTC Bloc Registrar Proxy SIP RTP Engine HTTP server Websocket](https://reader033.fdocuments.net/reader033/viewer/2022050411/5f87b1eca5cd5c084a5db8af/html5/thumbnails/26.jpg)
DEMONSTRATION !
![Page 27: WEBRTC : EXPLORATION THROUGH THE QUESTION OF …ensiwiki.ensimag.fr/images/6/62/Soutenance_webrtc.pdf · 2013-06-19 · WebRTC Bloc Registrar Proxy SIP RTP Engine HTTP server Websocket](https://reader033.fdocuments.net/reader033/viewer/2022050411/5f87b1eca5cd5c084a5db8af/html5/thumbnails/27.jpg)
OUR HTML5 CLIENT
16
• Deployed on Asterisk HTTP Server
![Page 28: WEBRTC : EXPLORATION THROUGH THE QUESTION OF …ensiwiki.ensimag.fr/images/6/62/Soutenance_webrtc.pdf · 2013-06-19 · WebRTC Bloc Registrar Proxy SIP RTP Engine HTTP server Websocket](https://reader033.fdocuments.net/reader033/viewer/2022050411/5f87b1eca5cd5c084a5db8af/html5/thumbnails/28.jpg)
APPENDIX
• SIP messages encapsulated in WebSocket.
• No WebSocket on media plan.
![Page 29: WEBRTC : EXPLORATION THROUGH THE QUESTION OF …ensiwiki.ensimag.fr/images/6/62/Soutenance_webrtc.pdf · 2013-06-19 · WebRTC Bloc Registrar Proxy SIP RTP Engine HTTP server Websocket](https://reader033.fdocuments.net/reader033/viewer/2022050411/5f87b1eca5cd5c084a5db8af/html5/thumbnails/29.jpg)
APPENDIX
• https://wiki.asterisk.org/wiki/display/AST/Video+Telephony
![Page 30: WEBRTC : EXPLORATION THROUGH THE QUESTION OF …ensiwiki.ensimag.fr/images/6/62/Soutenance_webrtc.pdf · 2013-06-19 · WebRTC Bloc Registrar Proxy SIP RTP Engine HTTP server Websocket](https://reader033.fdocuments.net/reader033/viewer/2022050411/5f87b1eca5cd5c084a5db8af/html5/thumbnails/30.jpg)
APPENDIX
• http://www.virtualbox.org/manual/ch06.html
![Page 31: WEBRTC : EXPLORATION THROUGH THE QUESTION OF …ensiwiki.ensimag.fr/images/6/62/Soutenance_webrtc.pdf · 2013-06-19 · WebRTC Bloc Registrar Proxy SIP RTP Engine HTTP server Websocket](https://reader033.fdocuments.net/reader033/viewer/2022050411/5f87b1eca5cd5c084a5db8af/html5/thumbnails/31.jpg)
VARIABILITY OF TESTSOS du PBX CentOS Ubuntu
PBX PIAF-Green Asterisk Kamailo OverSIP
OS utilisateur
Windows 8 OS X Ubuntu Android iOS
SoftphoneSipInside,
X LiteTelephone,
iDoubs Zoiper Sipdroid Linphone,Media5-fone
NavigateurFirefox Nightly Chrome Bowser
![Page 32: WEBRTC : EXPLORATION THROUGH THE QUESTION OF …ensiwiki.ensimag.fr/images/6/62/Soutenance_webrtc.pdf · 2013-06-19 · WebRTC Bloc Registrar Proxy SIP RTP Engine HTTP server Websocket](https://reader033.fdocuments.net/reader033/viewer/2022050411/5f87b1eca5cd5c084a5db8af/html5/thumbnails/32.jpg)
CONFERENCE CALL FLOWComputer ComputerAsterisk SoftphoneAsterisk
INVITE SDP
401 Unauthorized
ACK
INVITE SDP
100 Trying
200 OK
ACK
RTP
WS[INVITE SDP]
WS[401 Unauthorized]
WS[ACK]
WS[INVITE SDP]
WS[100 Trying]WS[200 OK]
WS[ACK]
UDP
WS[INVITE SDP]
WS[401 Unauthorized]
WS[ACK]
WS[INVITE SDP]
WS[100 Trying]
WS[200 OK]
WS[ACK]
UDP