Modern VoIP in Modern
Infrastructures
Designing and implementing VoIP architectures in the
cloud and container era
Federico Cabiddu - RTC Architect @ Libon
Giacomo Vacca - RTC Architect @ Nexmo
About me
● Working in VoIP since 2001
● VoIP/RTC passionate
● Libon Voice Team Tech Coordinator
● Kamailio developer
● Sipcapture team member
Overview
● Infrastructures evolution
● Impacts on VoIP
● Short term and long term
How it used to be
How we’d like it to be
Why the Cloud?
● Customers expect it (sales are easier)
● Scalability
● Consistency
● Smaller upfront investment
● Faster provisioning
● Easier geographic distribution
● Off the shelf advanced tools (HTTP LBs, HA, DNS mgmt, etc)
● New tools (containers, istio, etc)
What challenges come with the Cloud?
● Provider-specific tools to learn
● Moving to a Cloud infrastructure typically requires a re-design (not free)
○ Choosing one provider is a big task for any company
○ At some point you need to take technical decisions that are not easy to change in the
future
● Can be hard to migrate from one provider to another
● Resources are not always dedicated
● No standard solution for providers’ interconnection
What impacts specifically VoIP?
● IP addresses are ephemeral
● NAT
● No VoIP-specific components available
● Packet rate vs Bandwidth (small packets)
● (Shared resources when high load? Transcoding, mixing, etc)
● Instances or containers are intrinsically ephemeral
○ Active calls, logs, traces, etc
The evolution of virtualization
Most of VoIP applications have been designed to run as Linux daemons,
accessing the network interfaces of the host machines.
This moved from running on the metal, to virtual machines and now to
containers.
What changes in design and administration?
Infrastructure evolution
2001: first VMWare Server
release
2004: AWS public launch
2006: other cloud platforms
2013: Docker
2015: Kubernetes 1.0
VoIP is “old”
Most of the protocols used in VoIP
(e.g. SIP) pre-date modern
infrastructures.
What’s changed throughout the
years, but more importantly: how can
we design VoIP networks that get the
most out of today’s platforms?
VoIP sessions are sticky
In comparison with HTTP request/response models, VoIP requires some sort
of state.
This poses challenges with platforms that are designed to scale up/down
continuously.
While state can be minimised, what’s the right balance between immutability
and volatility?
IP addresses are ephemeral
For similar reasons to scaling up and down, modern platforms don’t work well
when using IP addresses.
Internal routing benefits from DNS: use it and SRV as much as you can.
But then DNS must be fast and flexible.
No easy and general solution for RTP
Lack of native components
● No native SIP balancer
● Network LB can be used as a partial solution
● No easy solution for outbound SNAT/balancing
“High bandwidth” is not enough
● VoIP uses small packets, but typically bandwidth is estimated with large
(jumbo) packets
● Packet rate is critical
● Cloud services must provide tools to monitor packet rate saturation
● Do you think you know the packet rate limit of your infrastructure?
Current Clouds don’t know about RTC QoS
● No specific stats on RTP, packet rate etc
● No control over the network
● Need to build your own tools (Homer?)
● Think about webrtc-internals in Chrome and imagine it associated with an
AWS instance
Debugging
● Enabling debug often means replacing the container.
● Are traditional tools (TCPdump, wireshark) still enough/useful?
● Hard capturing on a container (https://github.com/eldadru/ksniff)
● Is it still possible to troubleshoot live?
● Should debugging tools be part of the cloud offer?
Interconnecting Clouds
Often you can’t have everything on the same platform.
Interconnecting systems running on separate providers is not easy, and when
supported may be expensive.
What do people usually do? VPNs? Special agreements? TLS over public?
How much control do we have on Service
Level?
Service Level Objectives: how do VoIP
providers change their SLOs based on
Cloud providers?
https://ai.google/research/pubs/pub48033
Today’s workarounds
● Manual allocation of Static IPs
● Dedicated nodes for media
● hostNetwork
● Keepalive at L3
● Drain scripts
The Future?
● QUIC
● HTTP/3
● RIPP
https://tools.ietf.org/html/draft-rosenbergjennings-dispat
ch-ripp-03
The reality
SIP and RTP are not going to disappear any time soon.
WebRTC has lowered the barrier of entry for new RTC
services, which in turn increases demand for VoIP
solutions.
Questions for the long term
● How can we design VoIP networks that get the most out of today’s
platforms?
● Should we, as a community, try to push standard components like “VoIP
ELBs” for AWS, or VoIP Ingress for k8s?
● Best practices for the cloud?
● How to avoid vendor lock-in?
● Do we need to design new protocols (e.g. RIPP)?
Thanks!
Contact us:
federico.cabiddu@gmail.com
giacomo.vacca@gmail.com

Modern VoIP in Modern Infrastructures

  • 1.
    Modern VoIP inModern Infrastructures Designing and implementing VoIP architectures in the cloud and container era Federico Cabiddu - RTC Architect @ Libon Giacomo Vacca - RTC Architect @ Nexmo
  • 2.
    About me ● Workingin VoIP since 2001 ● VoIP/RTC passionate ● Libon Voice Team Tech Coordinator ● Kamailio developer ● Sipcapture team member
  • 3.
    Overview ● Infrastructures evolution ●Impacts on VoIP ● Short term and long term
  • 4.
  • 5.
  • 6.
    Why the Cloud? ●Customers expect it (sales are easier) ● Scalability ● Consistency ● Smaller upfront investment ● Faster provisioning ● Easier geographic distribution ● Off the shelf advanced tools (HTTP LBs, HA, DNS mgmt, etc) ● New tools (containers, istio, etc)
  • 7.
    What challenges comewith the Cloud? ● Provider-specific tools to learn ● Moving to a Cloud infrastructure typically requires a re-design (not free) ○ Choosing one provider is a big task for any company ○ At some point you need to take technical decisions that are not easy to change in the future ● Can be hard to migrate from one provider to another ● Resources are not always dedicated ● No standard solution for providers’ interconnection
  • 8.
    What impacts specificallyVoIP? ● IP addresses are ephemeral ● NAT ● No VoIP-specific components available ● Packet rate vs Bandwidth (small packets) ● (Shared resources when high load? Transcoding, mixing, etc) ● Instances or containers are intrinsically ephemeral ○ Active calls, logs, traces, etc
  • 9.
    The evolution ofvirtualization Most of VoIP applications have been designed to run as Linux daemons, accessing the network interfaces of the host machines. This moved from running on the metal, to virtual machines and now to containers. What changes in design and administration?
  • 10.
    Infrastructure evolution 2001: firstVMWare Server release 2004: AWS public launch 2006: other cloud platforms 2013: Docker 2015: Kubernetes 1.0
  • 11.
    VoIP is “old” Mostof the protocols used in VoIP (e.g. SIP) pre-date modern infrastructures. What’s changed throughout the years, but more importantly: how can we design VoIP networks that get the most out of today’s platforms?
  • 12.
    VoIP sessions aresticky In comparison with HTTP request/response models, VoIP requires some sort of state. This poses challenges with platforms that are designed to scale up/down continuously. While state can be minimised, what’s the right balance between immutability and volatility?
  • 13.
    IP addresses areephemeral For similar reasons to scaling up and down, modern platforms don’t work well when using IP addresses. Internal routing benefits from DNS: use it and SRV as much as you can. But then DNS must be fast and flexible. No easy and general solution for RTP
  • 14.
    Lack of nativecomponents ● No native SIP balancer ● Network LB can be used as a partial solution ● No easy solution for outbound SNAT/balancing
  • 15.
    “High bandwidth” isnot enough ● VoIP uses small packets, but typically bandwidth is estimated with large (jumbo) packets ● Packet rate is critical ● Cloud services must provide tools to monitor packet rate saturation ● Do you think you know the packet rate limit of your infrastructure?
  • 16.
    Current Clouds don’tknow about RTC QoS ● No specific stats on RTP, packet rate etc ● No control over the network ● Need to build your own tools (Homer?) ● Think about webrtc-internals in Chrome and imagine it associated with an AWS instance
  • 17.
    Debugging ● Enabling debugoften means replacing the container. ● Are traditional tools (TCPdump, wireshark) still enough/useful? ● Hard capturing on a container (https://github.com/eldadru/ksniff) ● Is it still possible to troubleshoot live? ● Should debugging tools be part of the cloud offer?
  • 18.
    Interconnecting Clouds Often youcan’t have everything on the same platform. Interconnecting systems running on separate providers is not easy, and when supported may be expensive. What do people usually do? VPNs? Special agreements? TLS over public?
  • 19.
    How much controldo we have on Service Level? Service Level Objectives: how do VoIP providers change their SLOs based on Cloud providers? https://ai.google/research/pubs/pub48033
  • 20.
    Today’s workarounds ● Manualallocation of Static IPs ● Dedicated nodes for media ● hostNetwork ● Keepalive at L3 ● Drain scripts
  • 21.
    The Future? ● QUIC ●HTTP/3 ● RIPP https://tools.ietf.org/html/draft-rosenbergjennings-dispat ch-ripp-03
  • 22.
    The reality SIP andRTP are not going to disappear any time soon. WebRTC has lowered the barrier of entry for new RTC services, which in turn increases demand for VoIP solutions.
  • 23.
    Questions for thelong term ● How can we design VoIP networks that get the most out of today’s platforms? ● Should we, as a community, try to push standard components like “VoIP ELBs” for AWS, or VoIP Ingress for k8s? ● Best practices for the cloud? ● How to avoid vendor lock-in? ● Do we need to design new protocols (e.g. RIPP)?
  • 24.