Upperside WebRTC Conference - Mobicents, HTML5 and SIP over WebSockets
1. Mobicents, HTML5
WebRTC
SIP Over WebSockets
Jean Deruelle - TeleStax, Inc
12th October 2012, UpperSide WebRTC
Conference
2. Questions ???
Don't Wait 'til the end, interrupt is mandatory !!!
3. HTML5 WebRTC
Signaling and Media
● WebRTC is
independent of
WebSockets
● Can use anything
for signalling
including Ajax,
server push or
plain HTTP
● Media is peer to
peer and can
handle both audio
and video
4. SIP Over WebSockets
Typical Flow
WebSocket
Browser Browser
Server
HTTP GET
HTTP 200 OK
SIP REGISTER
SIP OK Other server
SIP INVITE
5. SIP Over WebSockets
Flow Detailed
http://tools.ietf.org/html/draft-ietf-sipcore-sip-websocket-04 : Still a draft
Browser WebSocket ● Regular HTTP request with
Server
Upgrade header
● Switch to normal mode
○ No HTTP any more, just plain
subprotocol
○ ..except it's masked so plaintext
can't be misinterpreted and avoid
security issues
● SIP Messages carried in
WebSocket Data
● New SIP Transports : WS or
WSS (for Secure using TLS)
○ Addresses advertised by
browsers are invalid => literally
"df7jal23ls0d.invalid"
○ Via, Contact, everything
6. Peer to Peer ?
Browser Another browser
Browser to
HTTP GET Browser can't
be done
HTTP 200 OK
through HTTP,
SIP REGISTER
really need a
Server !
SIP OK
SIP INVITE
7. Use Mobicents as
The Server of Choice
● Deliver support for reusable applications that
don't care about transport
● Applications see the real addresses instead
of the invalid ones
● Applications can still determine the transport
type
● Transparent B2BUA, UAC, UAS and Proxy
8. Implemented inside
JAIN SIP Stack
● Automatically adds WebSocket support to any JAIN SIP
based server (SIP Stack used by Mobicents and Google)
○ SIP Servlets http://dev.telestax.com/sipservlets/
○ JAIN SLEE SIP RA http://dev.telestax.com/jain-slee/
○ standalone JAIN SIP http://dev.telestax.com/jain-sip/
● Doesn't add new dependencies But a huge thank you to
Netty.io
9. NAT Concerns
● Since the socket is reused there will be no
NAT issues when clients are behind the
firewall.
● If the server is behind firewall it's still a bit
difficult, but manageable.
● The RTP is the most important NAT
problem, but it is browser responsibility to fix
this
○ They are doing a great job at this
■ STUN/ICE is a built-in and mandatory
■ Chrome to Chrome interop is practically
guaranteed