webrtc meetup barcelona 2017

Post on 12-Apr-2017

239 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

WebRTC in Telefonicawith TU and Tuenti

Juan de Bravo@juandebravohttp://www.juandebravo.com

TU & Tuenti Products SignallingMedia

Beyond calls

TU and Tuenti1

* Telephone Extension (Wifi coverage)* Domestic cost even on roaming* Back-up (multi-device)

E2E signalling2

Incoming Call in TU Go and Tuenti

TU Go

Incoming Call

PC/Desktop Smartphone iPod touch

Tablet

CellularVoIP

Incoming call

The signalling. TU Go

NGIN SBC OB SBC TU Go FS APP 1

IAM (CAMEL)

SIP

SIP

SIP

APP 2

SIP (TLS)Parallel Ringing

SIP(VoLTE)

SMX

SIP

SIP (TLS)

SIP

Why not reusing our XMPP / Chat infrastructure…

…as our signalling transport?

The signalling. Tuenti

The signalling. Tuenti

NGIN SBC OB SBC Tuenti FS CHATSERVER

IAM (CAMEL)

SIP

SIP

SIP

APP 1

XMPPParallel Ringing

SIP-XMPP GW

SIP

SIP

APP 2

XMPP

XMPP

XMPP

Tangle!signalling protocol

over XMPP

<tangle xmlns='com:tuenti:voice:tangle' action='session-initiate' sid='cea59k47sd59n'> <sdp> <![CDATA[ SDP ]]> </sdp></tangle>

The signalling. Tuenti

Simple, right??What if the app is

not running?

The signalling

The signalling. Call pickup

FRS GCM

SIP

APNS

SIP (TLS)

SMX

SIP

SIP (TLS)

APP 1 APP 2

Incoming Call

Wake up!Wake up!

Wake up!

Wake up!Ready!

Ready!

Parallel Ringing

Call Pickup

The signalling. Call pickup

FRS GCM

SIP

APNS

SIP (TLS)

SMX APP 1 APP 2

Incoming Call

Wake up!Wake up!

Wake up!

Wake up!Ready!

Not really!

Single Ringing

Simple, right??What about the

GSM leg

The signalling

The signalling. GSM leg

NGIN SBC OB SBC TU Go FRS APP 1

IAM (CAMEL)

SIP

SIP

SIP

SIP

APP 2

SIP (TLS)Parallel Ringing

SIP(VoLTE)

SMX

SIP

SIP (TLS)

MGW

SIP

GSM

IAM

Splash Ringing?

The signalling. Avoid splash ringing

Artificial delay(in smartphones)

The signalling. Avoid splash ringing

Master Device

The signalling. Avoid splash ringing

Preferred hotspots

IMSI detection

The signalling. Avoid splash ringing

I heard something about CallKit…

The signalling

https://tu.com/en/weblog/2016/09/12/ios-10-and-tu-go-match-made-heaven/http://corporate.tuenti.com/es/blog/Integramos-totalmente-nuestra-VozDigital-con-iOS-10

The signalling

Protocol: Proprietary JSONTransport: WSS

Protocol: TangleTransport: WSS

And what about Web?

Media3

WebRTC AECNetEqualizer

Web RTC

Media stack

Multi Platform

Call establishment negotiation

ICE

NAT traversal

STUN

TURNSRTP

Codecs

• Opus • G.711• G.722 • iLBC• iSAC

Codecs

* Avoid transcoding* Prioritise, filter, etc in the service layer only

whenever needed* Licenses! (OPUS is royalty-free ;))

Codec rules

STUNTURN

WSS

NATNAT

MEDIA

SIGNALING

MEDIA

SIGNALING

TCP/TLS

Where are you?ICE

Setting up the callICE 1. Shortcut: send SDP as soon as public IP is detected

Setting up the callICE 2. ICE always tastes better when it trickles!

https://webrtchacks.com/trickle-ice/

<iq id=“2586b46a-9ae8-4fb6-a314-a0219ca566a9" to="34684292758@msisdn.tuenti.com" type="set" xmlns=“jabber:client"> <tangle action="transport-info" sid=“30643dde-e346-4be3-94ae-873f12bd191f" xmlns=“urn:xmpp:tangle:1"> <sdp> a=candidate:4036649468 1 udp 1686052607 83.61.156.2 63502 typ srflx raddr 192.168.1.50 rport 63502 generation 0 ufrag H+Ma network-id 1 network-cost 10 </sdp> </tangle></iq>

Securing your call

Securing your call

SRTPSDES

DTLS{

Securing your callSRTP: SDESINVITE sip:00346476067XX@o2uk.pstn.gconnect.jajah.com SIP/2.0 Via: SIP/2.0/TLS 192.168.1.81:52863;rport;branch=z9hG4bKPjiVYvvw9wG9vTUzIJ6YQh37yx0DD4AyUX;alias From: "JuanB" <sip:4475681157XX@voip.gconnect.jajah.com>;tag=LonKEsTSSsoaKFmn1xhXTn9HMnAI9xeb To: sip:346476067XX@o2uk.pstn.gconnect.jajah.com CSeq: 1744 INVITE [...] Content-Type: application/sdp Content-Length: 688

v=0 o=- 3697196302 3697196302 IN IP4 192.168.1.81 s=pjmedia m=audio 10000 RTP/SAVP 120 104 8 [...] a=crypto:1 AES_256_CM_HMAC_SHA1_80 inline:HC8dcW1ClfJVndzSXkcb7WDea1qAU9ema20CuCpMYh6/z+Vxu4CLC/cS7xOwSA== a=crypto:2 AES_256_CM_HMAC_SHA1_32 inline:gTqaxyolB4Ugz6dBDGCochn1YxDb5NtLhPtVu0ng7RFrQS1gMzUOlHsfn5y3LQ== a=crypto:3 AES_CM_128_HMAC_SHA1_80 inline:yxLnTeZnPHZSjyiuP0AlL/cxzzRn4uOiINchJ9ts a=crypto:4 AES_CM_128_HMAC_SHA1_32 inline:IqFbpQS2VTKXV/czYya+ArB7O2h4naS1vSVqE70Y

Securing your call

SIP/2.0 200 OK Via: SIP/2.0/TLS 192.168.1.81:52863;received=83.61.156.2;branch=z9hG4bKPjiVYvvw9wG9vTUzIJ6YQh37yx0DD4AyUX;alias;rport=52863 From: "JuanB" <sip:447568115722@voip.gconnect.jajah.com>;tag=LonKEsTSSsoaKFmn1xhXTn9HMnAI9xeb To: <sip:34647606749@o2uk.pstn.gconnect.jajah.com>;tag=eZc259D0a38rQ CSeq: 1744 INVITE Content-Type: application/sdp Content-Length: 354

v=0 o=FreeSWITCH 1488174929 1488174930 IN IP4 91.220.9.42 s=FreeSWITCH c=IN IP4 91.220.9.42 t=0 0 m=audio 22572 RTP/SAVP 104 101 a=rtpmap:104 iLBC/8000 a=fmtp:104 mode=30 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-16 a=silenceSupp:off - - - - a=ptime:30 a=crypto:3 AES_CM_128_HMAC_SHA1_80 inline:v8Swaxd7oSV4h3sF2nst/tFAcgSnIBlYGnln3m6V

SRTP: SDES

Securing your callSRTP: DTLS[…] a=fingerprint:sha-256 FE:6E:45:10:C1:D4:0A:F4:55:E4:83:93:AD:6E:A7:BD:F9:24:CE:3A:EA:51:01:81:3F:95:1A:3E:20:C3:2E:AE a=setup:actpass a=mid:audio a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=sendrecv a=rtcp-mux […]

Securing your callSRTP: DTLS

[…] a=fingerprint:sha-256 A5:53:D0:1F:FF:C9:56:CA:C9:7B:3B:5B:8D:2B:EE:D0:40:96:A5:BE:67:64:EE:3D:2D:04:42:B2:01:19:68:58 a=setup:active a=rtcp-mux […]

Beyond calls4

Filters

Call Recording

Video Calls

poweredby

Thanks!

Juan de Bravo@juandebravohttp://www.juandebravo.com

top related