WebRTC meetup barcelona 2017
-
Upload
juan-de-bravo -
Category
Technology
-
view
239 -
download
1
Transcript of WebRTC meetup barcelona 2017
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="[email protected]" 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:[email protected] SIP/2.0 Via: SIP/2.0/TLS 192.168.1.81:52863;rport;branch=z9hG4bKPjiVYvvw9wG9vTUzIJ6YQh37yx0DD4AyUX;alias From: "JuanB" <sip:[email protected]>;tag=LonKEsTSSsoaKFmn1xhXTn9HMnAI9xeb To: sip:[email protected] 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:[email protected]>;tag=LonKEsTSSsoaKFmn1xhXTn9HMnAI9xeb To: <sip:[email protected]>;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