vozdigital devfest 31/10/14
DESCRIPTION
Presentation for DevFest Madrid 2014TRANSCRIPT
VozDigitalbridging calls
between WebRTC and SIP
Javier Fernández Seco
● VozDigital
● What is WebRTC?
● Jingle signaling
● Tangle!!!!!
● VoIP in tuenti
● SIP signaling
● Signaling gateway
● High availability
An inbound & outbound VoIP
service…using the customer’s GSM number!
…with no additional data charges!
…integrated with existing Tuenti chat infrastructure
Why not using a SIP SoftPhone?
Let’s recap what we already have...
WebRTC for App2App calls
Multiple resources
Will he be
available??
Always Connected Application
Let’s dig into W3C’s WebRTC“The mission of the Web Real-Time Communications
Working Group, part of the Ubiquitous Web Applications
Activity, is to define client-side APIs to enable Real-Time
Communications in Web browsers. These APIs should
enable building applications that can be run inside a
browser, requiring no extra downloads or plugins, that
allow communication between parties using audio, video
and supplementary real-time communication, without
having to use intervening servers (unless needed for
firewall traversal, or for providing intermediary services)”
What is WebRTC
Transports for signaling
o TCP
o UDP
o SCTP
Transports for streaming
o SDES
o DTLS-SRTP
SDP v=0
o=jinglephone 372345681 372345681 IN IP4 192.168.1.2
s=Jingle Softphone
c=IN IP4 192.168.1.2
t=0 0
m=audio 1940 RTP/AVP 0 99 18 101
a=rtpmap:0 PCMU/8000
a=rtpmap:99 ILBC/8000
a=rtpmap:18 G729/8000
a=rtpmap:101 telephone-event/8000
a=rtcp:1942
a=ptime:20
m=video 1944 RTP/AVP 96 34
a=rtpmap:96 H264/90000
a=rtpmap:34 H263/90000
a=rtcp:1946
● local
● STUN - reflexive
● TURN - relay
ICE
Connectivity scenarios
ICE protocol phases
WebRTC compatibility
ORTC (Object Real-Time Communications)
“Our mission: To enable rich, high quality, RTC
applications to be developed in mobile endpoints and
servers via native toolkits, simple Javascript APIs and
HTML5. It is also a mandate that Object RTC be
compatible with WebRTC.”
Microsoft’s response to WebRTC
Y dónde se posiciona Apple?
Solution Overview
Signaling over XMPP● Jingle protocol
<jingle xmlns='urn:xmpp:jingle:1'
action='session-initiate'
initiator='[email protected]/orchard'
sid='a73sjjvkla37jfea'>
<content creator='initiator' name='voice'>
<description xmlns='urn:xmpp:jingle:apps:rtp:1' media='audio'>
<payload-type id='96' name='speex' clockrate='16000'/>
<payload-type id='97' name='speex' clockrate='8000'/>
<payload-type id='18' name='G729'/>
<payload-type id='0' name='PCMU' />
<payload-type id='103' name='L16' clockrate='16000' channels='2'/>
<payload-type id='98' name='x-ISAC' clockrate='8000'/>
</description>
</content>
</jingle>
SDP over XMPP in tuenti● Tangle protocol
<tangle xmlns='urn:tuenti:tangle:1'
action='session-initiate'
initiator='[email protected]'
sid='a73sjjvkla37jfea'>
<sdp><![CDATA[SDP]]></sdp>
</tangle>
VoIP message sequence chart
Tangle multiple resources
SIP 2.0 - RFC 3261
● Controls multimedia comms over IP.
● Can rely on SDP
● Use of different transports for signaling
● Signaling may be encrypted with TLS
● Use of different transports for streaming
SIP scenario
We need a SIP stack!
Carlos Gonzalez Florido
https://github.com/kalta/nksip
@carlosjgf
NkSIP
SIP Servlets API
SIP Protocol support with a full stack
SIP Servlets Implementation
Let’s see how everything
fits together
VoIP message sequence chart
SIP message sequence chart
Merging the message sequence charts
Signaling gateway
Voice Gateway● Handles signaling between protocols
● Is a Servlet
● Uses a SipServlets framework
● Uses Squirrel State Machine
● Uses Guice Servlet Injection FW
Mobicents SipServlets 3.0
HTTP servlets V.S. SIP servlets
● return HTML pages
● client-server
● does not originate
requests
● request/response
● a request is handled
by one servlet
● connect SIP clients
● peer to peer
● creates requests
● request/multiple
responses
● a request can be
handled by multiple
Converged Applications
HTTP Client HTTP Servlet SIP agent SIP Servlet SIP agent
HTTP servlet SIP servlet
Voice Gateway Overview
Messenger
AppChat Server
Http
Server
SIP Servlets Application SIP provider
xmpp http SIP
Servlet architecture
SIP Servlets (Mobicents)
Call Bridge SpecTangle
Spec
Call Bridge Impl
Tangle
Servlet
Spec
SIP
Servlet
Spec (Oracle)Voice Call Bridge Servlet
Development approach
● SIP gateway scenarios/use cases
● MSC charts
● Integration Tests
● Development
Outbound Call State Machine
But, what about the media?
Media connection
High availability
SIP
HTTP
Tangl
e
Tools
EndQuestions?
Thank you!