2. Pedro Álvarez
Leads the IPComms' development teams within Tuenti, as engineering
manager. In recent years, he has been responsible for the evolution and
expansion of VozDigital throughout five countries.
Pablo González
During the last years, he has focused on evolving the VoIP infrastructure,
implementing new services and modernizing deployment processes using
technologies such as Docker.
ABOUT US
5. PRODUCT
APP2APP
Call from application to application using
zero rating giving free communications to our
customers.
VOZDIGITAL
Call from application to any number giving as
value to customers free roaming calls, per
sample.
9. PROBLEMS
2 Architectures
Managing two different call flows is overwork and error
prompt.
App2App and VD different products
The evolution of both product is not in parallel, we can’t
develop the same features.
Platform still not stable…
¯_(ツ)_/¯
11. PRODUCT
Call to any country
Customers can call international destinations
using vozdigital bundle.
● 41 Different countries
● Most popular:
○ USA
○ Italy
○ China
12. LCR
Least-cost routing
is the process of selecting the path of
outbound communications traffic based on
cost.
3487,Spain,ES,Spain,Zone1,F,IN,PROV,0.0054,1
3488,Spain,ES,Spain,Zone1,F,IN,PROV,0.0054,1
3489,Spain,ES,Spain,Zone1,F,IN,PROV,0.0054,1
346,Spain,ES,Spain,Zone1,M,IN,PROV,0.0142,1
347,Spain,ES,Spain,Zone1,M,IN,PROV,0.0142,1
3491,Spain,ES,Spain,Zone1,F,IN,PROV,0.006,1
3485,Spain,ES,Spain,Zone1,F,IN,PROV,0.006,1
3486,Spain,ES,Spain,Zone1,F,IN,PROV,0.006,1
3487,Spain,ES,Spain,Zone1,F,IN,PROV,0.006,1
3488,Spain,ES,Spain,Zone1,F,IN,PROV,0.006,1
3489,Spain,ES,Spain,Zone1,F,IN,PROV,0.006,1
346,Spain,ES,Spain,Zone1,M,IN,PROV,0.0149,1
347,Spain,ES,Spain,Zone1,M,IN,PROV,0.0149,1
13. CHARGING SERVICE
Diameter-RO protocol
We provide service for both prepaid and postpaid
customers, so we need to ensure billing happens in real-
time.
Based in kamailio ims_charging module
Stateful sip proxy which performs regularly CCA requests to
make time reservations, finishing both call legs when the
customer runs out of balance.
16. PRODUCT
Receive calls in the cloud (App and web)
Customers are able to receive calls in the
application, providing a full cloudphone experience.
Ability to choose modes
Users could either choose if we should try to
deliver first the calls.
Modes:
1. SIM Only
2. SIM First
3. APP Only
4. APP First
5. SIM + APP
19. CHALLENGES
Device reachability
Google and Apple restrict permanent connections, so we needed to provide a
push channel to notify the apps for calls, through which we don’t know if the app
is available or not in a timely manner and notifications can be lost.
Timers, timers, and timers
Failsafe mechanisms to avoid delaying the call too much, in case of timeouts
always deliver the call via GSM.
Splash ringing
For simultaneous ring, sometimes the app call arrived first and then the GSM
one, producing an annoying double call and sometimes one call cancelled the
other.
21. NEW REQUIREMENTS
Where we deploy this country?
In order to improve performance we decide to open a new datacenter.
Support new OCS provider
We want to use the same kamailio implementation to support two OCS
specifications.
23. CHALLENGES
Configuration as system config
● Stored in puppet
● Cloned for each datacenter (Miami, Madrid) and stage (dev, pre,
production)
● Slow to apply, easy to diverge between datacenters, hard to maintain.
We needed a way to keep config aligned while keeping flexibility.
Version bump in freeswitch
To update freeswitch, old debian wheezy was unsupported. We needed a way to
make us as independent as possible from the host machine OS.
28. PRODUCT
Receive calls in the cloud (App and web)
Customers are able to receive calls in the
application, providing a full cloudphone experience.
Main focus: Increase reachability
Usually GSM provides better quality, so the use-
case that adds more value is extending GSM
reception through WiFi networks.
One setting to rule them all: Sim First
In Spain the multi-setting was not well understood -
Favors autodiscovery of the feature
30. ARCHITECTURE
Call Forwarding-based incoming
👎 No advanced call logic available 👍
Provides the most useful use-case
of increased reachability
👎 Initial call delay in some cases due
to GSM paging 👍 Final redirects allow for some
customization
👍 Very cost-effective
👍 Easy to explain and discover
32. PRODUCT
Default setting and user choice
We need to provide a default setting, and the user
can change it on a per-call basis while the call is
active.
Save the whole call
They can change their mind during the call, but we
must save the whole call if the choice is affirmative.
43. VOZDIGITAL WEBRTC VERSION BUMP
ArgentinaVD Incoming
Peru
FiltersVDI Call Saving
Ecuador
WebRTC
Incoming
Peru
Guatemala
Movistar
44. STAGING VERSION
Update WebRTC every 3 - 6 months
Always an Android device stops working, like BQ device with WebRTC 45 one of
most uses in our user base...
APK
WebRTC 59 WebRTC 60