SlideShare uma empresa Scribd logo
1 de 58
Baixar para ler offline
Tuenti + WebRTC 
Telco 2.0 ’s Challenges 
! 
! 
! 
! 
Pablo Ruiz 
pruiz@tuenti.com 
! 
! 
! 
! 
Pedro Álvarez 
palvarez@tuenti.com
Why we are here? 
Recount our journey, from the very 
beginning to our success.. :P
Our Mission! 
Provide the best 
over-the-top 
experience to 
Tuenti’s customers.
An inbound & outbound VoIP service 
… 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)!
why choosing 
WebRTC in first place? 0
…Or, what’s wrong with 
using a SIP SoftPhone?
already using 
WebRTC 
for 
App2App calls
THE CHALLENGES
Challenge #1: Multiples platforms..
Challenge #2: The signaling.. 
WebRTC has no ‘official’ signaling…
Challenge #2: The signaling.. (II) 
Why not reusing our XMPP / Chat 
infrastructure… 
…as our signaling transport?
Challenge #2: The signaling.. (III) 
<tangle action='session-initiate' sid='dd'> 
<sdp> 
<![CDATA[ 
Tangle! 
signaling protocol 
over XMPP 
SDP 
]]> 
</sdp> 
</tangle>
Challenge #2: The signaling.. (IV) 
Got it, but… 
What’s wrong with WebRTC + SIP? 
WebRTC 
+ 
SIP
Challenge #3: Talking SIP.. 
However, we should be talking SIP 
to our SBCs… but, how?
Challenge #3: Talking SIP.. (II) 
And, how can we develop an ALG? 
Say hello to Mobicents Java Stack
Challenge #4: Telco incompatibilities 
WebRTC has quite funny requirements 
• SRTP 
• TURN 
• STUN 
• ICE
But don´t worry, 
your vendor is there 
to help you!
Challenge #5: The codec.. 
• G.729? 
• G.723? 
• iLBC? 
iLBC, for the win?
GGSN 
SBCs 
BSS 
SMSC 
HLR 
OCS 
AuC 
STP 
FreeSwitch 
Kamailio 
This was our existing environment… 
WAS 
DataBase 
REST / WS 
. HAProxy 
IM / Chat 
…with the void we had to fill
Attempt 
Let’s ¿KISS?! 1
GGSN 
SBCs 
BSS 
SMSC 
HLR 
OCS 
AuC 
STP 
Our first attempt looked like: 
DataBase 
REST / WS 
. HAProxy 
IM / Chat 
Beautifully simple, isn’t it? 
. HAProxy . HAProxy 
ALG+MLB 
ALG+MLB 
ALG+MLB 
ALG+MLB
Session replications? 
Only if you use Jboss 5.1 
(released on 2009)
Well, not really.. even using Jboss 
5.1, session replication is not 
available at Mobicents’ master
Mobicents LB.. WTF? 
Houston, we need a (real) load balancer
ABORT!! 
ABORT!! 
MISSION!!!
Attempt 
This time using a real 
load balancer 2
GGSN 
SBCs 
BSS 
SMSC 
HLR 
OCS 
AuC 
STP 
Our second attempt looked like: 
DataBase 
REST / WS 
. HAProxy 
IM / Chat 
ALG+MLB 
ALG+MLB 
ALG+MLB 
Ok, still a somewhat ‘simple’ setup… 
ALG#1 
ALG#2 
ALG#3 
ALG#4 
Kamailio Kamailio 
. HAProxy . HAProxy 
ALG+MLB
But.. humm.. ehmm.. ehem.. 
our SBCs support ICE?
Ooops.. ABORT!
Attempt 
We need to handle 
media too… 3
GGSN 
SBCs 
BSS 
SMSC 
HLR 
OCS 
AuC 
STP 
Our third attempt looked like: 
DataBase 
REST / WS 
. HAProxy 
IM / Chat 
Kamailio Kamailio 
May be not so KISS, anymore.. :( 
ALG#1 
ALG#2 
ALG#3 
ALG#4 
. HAProxy . HAProxy 
RTPEngine 
RTPEngine
ISSUES 
ISSUES EVERYWHERE
Well in the end RTPEngine was 
too good to be true ™, and not 
‘mature enough’..
… ABORT! …
Attempt 
FreeSwitch as media 
transcoder FTW! 4
GGSN 
SBCs 
BSS 
SMSC 
HLR 
OCS 
AuC 
STP 
Our fourth attempt looked like: 
DataBase 
REST / WS 
. HAProxy 
IM / Chat 
RTPEngine 
Kamailio 
Kamailio 
RTPEngine 
Dude this is starting to look a bit messy.. 
ALG#1 
ALG#2 
ALG#3 
ALG#4 
. HAProxy . HAProxy 
Trans #1 
Trans #2 
Trans #3 
Trans #4
SUCCESS!! o/ 
CHALLENGE 
ACCOMPLISHED
Achieving nirvana! 
Yes.. success! But this is 
really the ‘best experience’ 
we were looking for? 5
iLBC they said..
Do all codecs perform the same on every 
platform? Not really.. :( 
OPUS ISAC OPUS 
(NB, 8k, VBR)
And even in some extreme cases, 
some terminals had not enough 
power to move WebRTC (with 
any valuable codec)
(Codec) Performance testing
! 
Diagnosing… 
what’s going on in our house?
Devastating 
Victory
Summarizing 
when using WebRTC against your 
favorite telco...
Do not believe it when a SBC/ 
Switch vendor tells you it 
‘supports’ WebRTC.
Avoid SIP/TLS if you can.. 
(or at least do not try to do SIP/TLS 
end2end against your telco stuff)
Try to setup something in between 
in charge of SRTP, ICE & Media 
Transcoding..
Choose carefully the codecs and 
their parameters..
Consider implementing a feature 
capabilities mechanism into your 
application..
Setup a smart load-balancing 
& failover strategy..
Thanks!

Mais conteúdo relacionado

Semelhante a Tuenti's Journey to Deliver an Over-the-top VoIP Service Using WebRTC

Beyond the Hype: 4 Years of Go in Production
Beyond the Hype: 4 Years of Go in ProductionBeyond the Hype: 4 Years of Go in Production
Beyond the Hype: 4 Years of Go in ProductionC4Media
 
Perforce Helix Never Dies: DevOps at Bandai Namco Studios
Perforce Helix Never Dies: DevOps at Bandai Namco StudiosPerforce Helix Never Dies: DevOps at Bandai Namco Studios
Perforce Helix Never Dies: DevOps at Bandai Namco StudiosPerforce
 
Oh the compilers you'll build
Oh the compilers you'll buildOh the compilers you'll build
Oh the compilers you'll buildMark Stoodley
 
CC-Castle; The best Real-Time/Embedded/HighTech language EVER?
CC-Castle; The best Real-Time/Embedded/HighTech language EVER?CC-Castle; The best Real-Time/Embedded/HighTech language EVER?
CC-Castle; The best Real-Time/Embedded/HighTech language EVER?Albert Mietus
 
Go After 4 Years in Production - QCon 2015
Go After 4 Years in Production - QCon 2015Go After 4 Years in Production - QCon 2015
Go After 4 Years in Production - QCon 2015Travis Reeder
 
Baking a Microservice PI(e)
Baking a Microservice PI(e)Baking a Microservice PI(e)
Baking a Microservice PI(e)Roberto Cortez
 
Github github-github
Github github-githubGithub github-github
Github github-githubfusion2011
 
Call your key to phone all
Call your key to phone allCall your key to phone all
Call your key to phone allGerard Fuguet
 
How go makes us faster (May 2015)
How go makes us faster (May 2015)How go makes us faster (May 2015)
How go makes us faster (May 2015)Wilfried Schobeiri
 
Streaming 101: Hello World
Streaming 101:  Hello WorldStreaming 101:  Hello World
Streaming 101: Hello WorldJosh Fischer
 
Alfresco Rumors: XMPP Enable Alfresco nodes (POC)
Alfresco Rumors: XMPP Enable Alfresco nodes (POC)Alfresco Rumors: XMPP Enable Alfresco nodes (POC)
Alfresco Rumors: XMPP Enable Alfresco nodes (POC)Jared Ottley
 
Twiliocon Europe 2013: From PoC to Production, Lessons Learnt, by Erol Ziya &...
Twiliocon Europe 2013: From PoC to Production, Lessons Learnt, by Erol Ziya &...Twiliocon Europe 2013: From PoC to Production, Lessons Learnt, by Erol Ziya &...
Twiliocon Europe 2013: From PoC to Production, Lessons Learnt, by Erol Ziya &...eazynow
 
The 1990s Called. They Want Their Code Back.
The 1990s Called. They Want Their Code Back.The 1990s Called. They Want Their Code Back.
The 1990s Called. They Want Their Code Back.Jonathan Oliver
 
What is WebRTC? What can I do with it?
What is WebRTC? What can I do with it?What is WebRTC? What can I do with it?
What is WebRTC? What can I do with it?Dan Jenkins
 
Orchestrating the execution of workflows for media streaming service and even...
Orchestrating the execution of workflows for media streaming service and even...Orchestrating the execution of workflows for media streaming service and even...
Orchestrating the execution of workflows for media streaming service and even...Shuen-Huei Guan
 
Raising the Bar on Robotics Code Quality
Raising the Bar on Robotics Code QualityRaising the Bar on Robotics Code Quality
Raising the Bar on Robotics Code QualityThomas Moulard
 
Open frameworks 101_fitc
Open frameworks 101_fitcOpen frameworks 101_fitc
Open frameworks 101_fitcbenDesigning
 

Semelhante a Tuenti's Journey to Deliver an Over-the-top VoIP Service Using WebRTC (20)

Test
TestTest
Test
 
Beyond the Hype: 4 Years of Go in Production
Beyond the Hype: 4 Years of Go in ProductionBeyond the Hype: 4 Years of Go in Production
Beyond the Hype: 4 Years of Go in Production
 
Perforce Helix Never Dies: DevOps at Bandai Namco Studios
Perforce Helix Never Dies: DevOps at Bandai Namco StudiosPerforce Helix Never Dies: DevOps at Bandai Namco Studios
Perforce Helix Never Dies: DevOps at Bandai Namco Studios
 
12 tricks to avoid hackers breaks your CI / CD
12 tricks to avoid hackers breaks your  CI / CD12 tricks to avoid hackers breaks your  CI / CD
12 tricks to avoid hackers breaks your CI / CD
 
Oh the compilers you'll build
Oh the compilers you'll buildOh the compilers you'll build
Oh the compilers you'll build
 
CC-Castle; The best Real-Time/Embedded/HighTech language EVER?
CC-Castle; The best Real-Time/Embedded/HighTech language EVER?CC-Castle; The best Real-Time/Embedded/HighTech language EVER?
CC-Castle; The best Real-Time/Embedded/HighTech language EVER?
 
Go After 4 Years in Production - QCon 2015
Go After 4 Years in Production - QCon 2015Go After 4 Years in Production - QCon 2015
Go After 4 Years in Production - QCon 2015
 
Baking a Microservice PI(e)
Baking a Microservice PI(e)Baking a Microservice PI(e)
Baking a Microservice PI(e)
 
Github github-github
Github github-githubGithub github-github
Github github-github
 
Call your key to phone all
Call your key to phone allCall your key to phone all
Call your key to phone all
 
How go makes us faster (May 2015)
How go makes us faster (May 2015)How go makes us faster (May 2015)
How go makes us faster (May 2015)
 
Streaming 101: Hello World
Streaming 101:  Hello WorldStreaming 101:  Hello World
Streaming 101: Hello World
 
Websocket 101 in Python
Websocket 101 in PythonWebsocket 101 in Python
Websocket 101 in Python
 
Alfresco Rumors: XMPP Enable Alfresco nodes (POC)
Alfresco Rumors: XMPP Enable Alfresco nodes (POC)Alfresco Rumors: XMPP Enable Alfresco nodes (POC)
Alfresco Rumors: XMPP Enable Alfresco nodes (POC)
 
Twiliocon Europe 2013: From PoC to Production, Lessons Learnt, by Erol Ziya &...
Twiliocon Europe 2013: From PoC to Production, Lessons Learnt, by Erol Ziya &...Twiliocon Europe 2013: From PoC to Production, Lessons Learnt, by Erol Ziya &...
Twiliocon Europe 2013: From PoC to Production, Lessons Learnt, by Erol Ziya &...
 
The 1990s Called. They Want Their Code Back.
The 1990s Called. They Want Their Code Back.The 1990s Called. They Want Their Code Back.
The 1990s Called. They Want Their Code Back.
 
What is WebRTC? What can I do with it?
What is WebRTC? What can I do with it?What is WebRTC? What can I do with it?
What is WebRTC? What can I do with it?
 
Orchestrating the execution of workflows for media streaming service and even...
Orchestrating the execution of workflows for media streaming service and even...Orchestrating the execution of workflows for media streaming service and even...
Orchestrating the execution of workflows for media streaming service and even...
 
Raising the Bar on Robotics Code Quality
Raising the Bar on Robotics Code QualityRaising the Bar on Robotics Code Quality
Raising the Bar on Robotics Code Quality
 
Open frameworks 101_fitc
Open frameworks 101_fitcOpen frameworks 101_fitc
Open frameworks 101_fitc
 

Último

SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 

Último (20)

SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 

Tuenti's Journey to Deliver an Over-the-top VoIP Service Using WebRTC