+ All Categories
Home > Documents > WEBRTC : EXPLORATION THROUGH THE QUESTION OF...

WEBRTC : EXPLORATION THROUGH THE QUESTION OF...

Date post: 02-Aug-2020
Category:
Upload: others
View: 5 times
Download: 0 times
Share this document with a friend
32
WEBRTC : EXPLORATION THROUGH THE QUESTION OF INTEROPERABILITY WITH SIP Soutenance 17/06/2013 Ornella Annicchiarico, Benoit Le Quéau, Mouhcine Mendil, Florian Seka 1
Transcript
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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

• 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

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

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

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

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

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

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

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

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

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

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

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

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

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

APPENDIX

• https://wiki.asterisk.org/wiki/display/AST/Video+Telephony

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

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

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


Recommended