58
Pablo Ruiz [email protected] Tuenti + WebRTC Telco 2.0 ’s Challenges Pedro Álvarez [email protected]

2014 pablo ruiz tuenti webrtc

Embed Size (px)

DESCRIPTION

Tuenti + WebRTC Telco 2.0´s Challenges

Citation preview

Page 1: 2014 pablo ruiz tuenti webrtc

!

!

!

!

Pablo Ruiz [email protected]

Tuenti + WebRTC Telco 2.0 ’s Challenges

!

!

!

!

Pedro Álvarez [email protected]

Page 2: 2014 pablo ruiz tuenti webrtc

Why we are here? Recount our journey, from the very beginning to our success.. :P

Page 3: 2014 pablo ruiz tuenti webrtc

Our Mission! Provide the best over-the-top experience to Tuenti’s customers.

Page 4: 2014 pablo ruiz tuenti webrtc

… Using the customer’s already existing GSM number!

… With no additional data charges!

… Working on any environment condition!

… With the best voice quality available!

… Integrated with existing Tuenti features (like chat, social app, etc.)

… Available on any platform (iOS, Android & Web)!

An inbound & outbound VoIP service

Page 5: 2014 pablo ruiz tuenti webrtc

why choosing WebRTC in first place?0

Page 6: 2014 pablo ruiz tuenti webrtc

…Or, what’s wrong with using a SIP SoftPhone?

Page 7: 2014 pablo ruiz tuenti webrtc

already using WebRTC

for App2App calls

Page 8: 2014 pablo ruiz tuenti webrtc

THE CHALLENGES

Page 9: 2014 pablo ruiz tuenti webrtc

Challenge #1: Multiples platforms..

Page 10: 2014 pablo ruiz tuenti webrtc

WebRTC has no ‘official’ signaling…

Challenge #2: The signaling..

Page 11: 2014 pablo ruiz tuenti webrtc

Why not reusing our XMPP / Chat infrastructure…

…as our signaling transport?

Challenge #2: The signaling.. (II)

Page 12: 2014 pablo ruiz tuenti webrtc

Tangle! signaling protocol

over XMPP

<tangle action='session-initiate' sid='dd'> <sdp> <![CDATA[ SDP ]]> </sdp> </tangle>

Challenge #2: The signaling.. (III)

Page 13: 2014 pablo ruiz tuenti webrtc

Got it, but… What’s wrong with WebRTC + SIP?

WebRTC +

SIP

Challenge #2: The signaling.. (IV)

Page 14: 2014 pablo ruiz tuenti webrtc

Challenge #3: Talking SIP..

However, we should be talking SIP to our SBCs… but, how?

Page 15: 2014 pablo ruiz tuenti webrtc

And, how can we develop an ALG? Say hello to Mobicents Java Stack

Challenge #3: Talking SIP.. (II)

Page 16: 2014 pablo ruiz tuenti webrtc

Challenge #4: Telco incompatibilities

WebRTC has quite funny requirements

• SRTP • TURN • STUN • ICE

Page 17: 2014 pablo ruiz tuenti webrtc

But don´t worry, your vendor is there

to help you!

Page 18: 2014 pablo ruiz tuenti webrtc

Challenge #5: The codec..

• G.729? • G.723? • iLBC?

iLBC, for the win?

Page 19: 2014 pablo ruiz tuenti webrtc
Page 20: 2014 pablo ruiz tuenti webrtc

GGSN

HLR

SMSC

BSSO

CS

AuC

SBCs

STP

Free

Swit

ch

Kam

ailio

WA

S IM / Chat

REST / WS

DataBase

. HAProxy

This was our existing environment…

…with the void we had to fill

Page 21: 2014 pablo ruiz tuenti webrtc

Attempt Let’s ¿KISS?!1

Page 22: 2014 pablo ruiz tuenti webrtc

GGSN

HLR

SMSC

BSSO

CS

AuC

SBCs

STP

IM / Chat

REST / WS

DataBase

. HAProxy

Our first attempt looked like:

Beautifully simple, isn’t it?

.

HA

Prox

y

.

H

APr

oxy

ALG+MLB

ALG+MLB

ALG+MLB

ALG+MLB

Page 23: 2014 pablo ruiz tuenti webrtc

Session replications? Only if you use Jboss 5.1 (released on 2009)

Page 24: 2014 pablo ruiz tuenti webrtc

Well, not really.. even using Jboss 5.1, session replication is not available at Mobicents’ master

Page 25: 2014 pablo ruiz tuenti webrtc

Mobicents LB.. WTF? Houston, we need a (real) load balancer

Page 26: 2014 pablo ruiz tuenti webrtc

ABORT!! ABORT!! MISSION!!!

Page 27: 2014 pablo ruiz tuenti webrtc

Attempt This time using a real load balancer2

Page 28: 2014 pablo ruiz tuenti webrtc

GGSN

HLR

SMSC

BSSO

CS

AuC

SBCs

STP

IM / Chat

REST / WS

DataBase

. HAProxy

Our second attempt looked like:

Ok, still a somewhat ‘simple’ setup…

ALG#1

ALG#2

ALG#4

ALG#3

Kam

ailio

Kam

ailio

.

HA

Prox

y

.

H

APr

oxy

ALG+MLB

ALG+MLB

ALG+MLB

ALG+MLB

Page 29: 2014 pablo ruiz tuenti webrtc

But.. humm.. ehmm.. ehem.. our SBCs support ICE?

Page 30: 2014 pablo ruiz tuenti webrtc

Ooops.. ABORT!

Page 31: 2014 pablo ruiz tuenti webrtc

Attempt We need to handle media too…3

Page 32: 2014 pablo ruiz tuenti webrtc

GGSN

HLR

SMSC

BSSO

CS

AuC

SBCs

STP

IM / Chat

REST / WS

DataBase

. HAProxy

Our third attempt looked like:

May be not so KISS, anymore.. :(

ALG#1

ALG#2

ALG#4

ALG#3.

H

APr

oxy

.

HA

Prox

y

RTPEngine

RTPEngine

Kam

ailio

Kam

ailio

Page 33: 2014 pablo ruiz tuenti webrtc

ISSUES

ISSUES EVERYWHERE

Page 34: 2014 pablo ruiz tuenti webrtc

Well in the end RTPEngine was too good to be true ™, and not

‘mature enough’..

Page 35: 2014 pablo ruiz tuenti webrtc

… ABORT! …

Page 36: 2014 pablo ruiz tuenti webrtc

Attempt FreeSwitch as media transcoder FTW!4

Page 37: 2014 pablo ruiz tuenti webrtc

GGSN

HLR

SMSC

BSSO

CS

AuC

SBCs

STP

IM / Chat

REST / WS

DataBase

. HAProxy

Our fourth attempt looked like:

Dude this is starting to look a bit messy..

ALG#1

ALG#2

ALG#4

ALG#3.

H

APr

oxy

.

HA

Prox

y

Trans #1

Trans #2

Trans #3

Trans #4

RTPEngine

RTPEngine

Kamailio

Kamailio

Page 38: 2014 pablo ruiz tuenti webrtc

SUCCESS!! \o/CHALLENGE

ACCOMPLISHED

Page 39: 2014 pablo ruiz tuenti webrtc

Achieving nirvana! Yes.. success! But this is really the ‘best experience’ we were looking for?5

Page 40: 2014 pablo ruiz tuenti webrtc

iLBC they said..

Page 41: 2014 pablo ruiz tuenti webrtc

OPUS ISAC OPUS (NB, 8k, VBR)

Do all codecs perform the same on every platform? Not really.. :(

Page 42: 2014 pablo ruiz tuenti webrtc

And even in some extreme cases, some terminals had not enough power to move WebRTC (with

any valuable codec)

Page 43: 2014 pablo ruiz tuenti webrtc

(Codec) Performance testing

Page 44: 2014 pablo ruiz tuenti webrtc

!

Diagnosing… what’s going on in our house?

Page 45: 2014 pablo ruiz tuenti webrtc
Page 46: 2014 pablo ruiz tuenti webrtc
Page 47: 2014 pablo ruiz tuenti webrtc
Page 48: 2014 pablo ruiz tuenti webrtc
Page 49: 2014 pablo ruiz tuenti webrtc
Page 50: 2014 pablo ruiz tuenti webrtc

Devastating Victory

Page 51: 2014 pablo ruiz tuenti webrtc

Summarizing when using WebRTC against your favorite telco...

Page 52: 2014 pablo ruiz tuenti webrtc

Do not believe it when a SBC/Switch vendor tells you it

‘supports’ WebRTC.

Page 53: 2014 pablo ruiz tuenti webrtc

Avoid SIP/TLS if you can.. (or at least do not try to do SIP/TLS end2end against your telco stuff)

Page 54: 2014 pablo ruiz tuenti webrtc

Try to setup something in between in charge of SRTP, ICE & Media Transcoding..

Page 55: 2014 pablo ruiz tuenti webrtc

Choose carefully the codecs and their parameters..

Page 56: 2014 pablo ruiz tuenti webrtc

Consider implementing a feature capabilities mechanism into your application..

Page 57: 2014 pablo ruiz tuenti webrtc

Setup a smart load-balancing & failover strategy..

Page 58: 2014 pablo ruiz tuenti webrtc

Thanks!