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
2
I. Objectives
II. Infrastructure solutions
III. Experiments
OBJECTIVES
I-Objectives II- Infrastructure solutions III-Experiments
Browser
Bloc
SIPphone
OBJECTIVES
I-Objectives II- Infrastructure solutions III-Experiments
Browser
Bloc
SIPphone
WebRTC
OBJECTIVES
I-Objectives II- Infrastructure solutions III-Experiments
Browser
Bloc
SIPphone
WebRTC
WEBRTC
4 I-Objectives II- Infrastructure solutions III-Experiments
SIPML 5
Browser
SipML5
Bloc
SIPphone
I-Objectives II- Infrastructure solutions III-Experiments
SIPML 5
Browser
SipML5
Sip stack
WebRTC
Bloc
SIPphone
I-Objectives II- Infrastructure solutions III-Experiments
ARCHITECTURE
Browser
SipML5
Sip stack
WebRTC
Bloc
SIPphone
I-Objectives II- Infrastructure solutions III-Experiments
ARCHITECTURE
Browser
SipML5
Sip stack
WebRTC
Bloc
Registrar
Proxy SIP
RTP
Engine
HTTP
server
Websocket
server
SIPphone
I-Objectives II- Infrastructure solutions III-Experiments
ARCHITECTURE
Browser
SipML5
Sip stack
WebRTC
Bloc
Registrar
Proxy SIP
RTP
Engine
HTTP
server
Websocket
server
SIPphone
HTML
webapp.js
HTTP GETI-Objectives II- Infrastructure solutions III-Experiments
ARCHITECTURE
Browser
SipML5
Sip stack
WebRTC
Bloc
Registrar
Proxy SIP
RTP
Engine
HTTP
server
Websocket
server
SIPphone
HTML
webapp.js
HTTP GET SIP ov er W S SIP SIPI-Objectives II- Infrastructure solutions III-Experiments
ARCHITECTURE
Browser
SipML5
Sip stack
WebRTC
Bloc
Registrar
Proxy SIP
RTP
Engine
HTTP
server
Websocket
server
SIPphone
HTML
webapp.js
HTTP GET SIP ov er W S SIP SIP SRTP RTPI-Objectives II- Infrastructure solutions III-Experiments
ARCHITECTURE
Browser
SipML5
Sip stack
WebRTC
Bloc
Registrar
Proxy SIP
RTP
Engine
HTTP
server
Websocket
server
SIPphone
HTML
webapp.js
HTTP GET SIP ov er W S SIP SIP SRTP RTPI-Objectives II- Infrastructure solutions III-Experiments
•
Proxy and server SIP :
-
Asterisk v 11.2.2
-
Additional patch
for VP8 support
OUR SOLUTION
7Asterisk
11.2.2
SCENARIOS AND TESTS
8sipML5
javascript
WebRTC
FireBug
PC
Virtual Machine
Asterisk
RTP debug
SIP debug
(CLI)
Wireshark
eth0 I-Objectives II- Infrastructure solutions III-ExperimentsSCENARIO 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 machineAUDIO 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 Unauthorized]
WS[REGISTER]
10
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 Unauthorized]
WS[REGISTER]
10
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 Unauthorized]
WS[REGISTER]
10
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 Asterisk Host machine 192.168.0.25 g711 g711 g711LinPhone
SCENARIO III:
PRESENCE
12 Browser Asterisk WS [NOTIFY] WS [200 OK] WS[SUSCRIBE] WS[401 Unauthorized] WS[200 OK] WS[SUSCRIBE] Status of userX ? I-Objectives II- Infrastructure solutions III-ExperimentsChange 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 machineSCENARIO III:
PRESENCE
12 Browser Asterisk WS [NOTIFY] WS [200 OK] WS[SUSCRIBE] WS[401 Unauthorized] WS[200 OK] WS[SUSCRIBE] Status of userX ? I-Objectives II- Infrastructure solutions III-ExperimentsChange 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 machineSCENARIO 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.264X Lite
iDoubs
I-Objectives II- Infrastructure solutions III-Experiments
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...
OUR HTML5
CLIENT
16•
Deployed on
Asterisk HTTP
Server
APPENDIX
•
SIP messages encapsulated in WebSocket.
•
No WebSocket on media plan.
APPENDIX
APPENDIX
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
Media5-fone
Linphone,
CONFERENCE
CALL FLOW
Computer Asterisk Computer Asterisk Softphone
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