VozDigital DevFest 31/10/14

  • View
    121

  • Download
    0

  • Category

    Mobile

Preview:

DESCRIPTION

Presentation for DevFest Madrid 2014

Citation preview

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='romeo@montague.lit/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='javierf@tuenti.com'

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

carlosj.gf@gmail.com

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!