SlideShare una empresa de Scribd logo
1 de 17
Descargar para leer sin conexión
rtpengine & kamailio
or how to simulate calls at scale
Andreas Granig <agranig@sipfront.com>
AT THE NETWORK EDGE
rtpengine & kamailio
Load Testing
Architecture
RTP Sinkhole NAT Piercing RTP Echo RTP PubSub
LOAD TESTING
ARCHITECTURE
rtpengine & kamailio
● Context
○ At sipfront.com, we develop a
SaaS for Telco Test Automation
● Load testing is resource intensive
○ sipp for signaling
○ tcpreplay for media
● kamailio & rtpengine to the rescue
○ protocol conversion for signaling
○ reflection & termination for media
LOAD TESTING ARCHITECTURE
rtpengine & kamailio
tcpreplay
+ RTP patch 1
sipp
SIP
RTP
kamailio
rtpengine
sinkhole
kamailio sipp
rtpengine
pierce-nat + echo
system
under
test
SDP info ctrl ctrl
NAT NAT
1
https://github.com/agranig/tcpreplay/tree/agranig/sipfront-rtp-edit
RTP SINKHOLE
rtpengine & kamailio
● Sometimes, you just don’t wanna talk…
○ but want to keep track of stats
○ and want to avoid ICMP port
unreachable messages
RTP SINKHOLE
rtpengine & kamailio
rtpengine
kamailio
SIP
RTP
media-echo=sinkhole
RTCP
MQTT stats
route {
# ...
if (outwards) {
rtpengine_offer("
direction=internal direction=external
media-echo=sinkhole generate-RTCP
");
}
# ...
}
reply_route {
# ...
if (outwards) {
rtpengine_answer("
direction=internal direction=external
media-echo=sinkhole generate-RTCP
");
}
# ...
}
RTP SINKHOLE
rtpengine & kamailio
rtpengine 
--interface=internal/192.168.0.100 
--interface=external/192.168.0.100!1.2.3.4 
--listen-ng=127.0.0.1:12221
Kamailio Config rtpengine
NAT PIERCING
rtpengine & kamailio
● “you start first” - “no, you start first”
○ If you’d like to echo media
○ but the peer can’t send you anything
to echo back
NAT PIERCING
rtpengine & kamailio
kamailio
SIP
RTP
pierce-NAT
rtpengine
dummy RTP
NAT
route {
# ...
if (inwards) {
rtpengine_offer("
direction=external direction=internal
pierce-NAT
");
}
# ...
}
reply_route {
# ...
if (outwards) {
rtpengine_answer("
direction=external direction=internal
pierce-NAT
");
}
# ...
}
NAT PIERCING
rtpengine & kamailio
rtpengine 
--interface=internal/192.168.0.100 
--interface=external/192.168.0.100!1.2.3.4 
--listen-ng=127.0.0.1:12221
Kamailio Config rtpengine
RTP ECHO
rtpengine & kamailio
● “You made this? I made this!”
○ send back incoming media with
new SSRC
○ for when you need two-way media
without the generation overhead
RTP ECHO
rtpengine & kamailio
kamailio
SIP
RTP
media-echo=forward | backward
rtpengine
RTP echo
route {
# ...
if (outwards) {
rtpengine_offer("
direction=internal direction=external
media-echo=backward
");
}
# ...
}
reply_route {
# ...
if (outwards) {
rtpengine_answer("
direction=internal direction=external
media-echo=forward
");
}
# ...
}
RTP ECHO
rtpengine & kamailio
rtpengine 
--interface=internal/192.168.0.100 
--interface=external/192.168.0.100!1.2.3.4 
--listen-ng=127.0.0.1:12221
Kamailio Config rtpengine
RTP PUBSUB
rtpengine & kamailio
● “Listen up, everybody…”
○ Send an RTP stream once
○ and duplicate it to multiple
recipients
○ for SFU, SIPREC, Interception, …
RTP PUBSUB
rtpengine & kamailio
rtpengine
Kamailio
SIP - cid=X, ftag=A, ttag=B
RTP
offer
in: SDP
out: SDP
answer
in: SDP
out: SDP
subscribe-request
in: cid=X, ftag=A
out: SDP
SIP - cid=Y, ftag=C, ttag=D
subscribe-answer
in: cid=X, ftag=A, ttag=C, SDP
RTP
send-only
App Interceptor
publish
in: SDP
out: SDP
or optionally (if no SIP context):
RTP PUBSUB
rtpengine & kamailio
https://github.com/davehorton/rtpengine-client hopefully soon!
const Client = require('rtpengine-client').Client;
const client = new Client();
client
.subscribeRequest(12280, '127.0.0.1', {
'call-id': 'test-call-id',
'from-tag': 'test-tag'
})
.then((res) => {
console.log(`Received ${JSON.stringify(res)}`);
})
.catch((err) => {
console.log(`Error: ${err}`);
});
rtpengine 
--interface=internal/192.168.0.100 
--interface=external/192.168.0.100!1.2.3.4 
--listen-ng=127.0.0.1:12221 
--listen-http=127.0.0.1:12280
NodeJS rtpengine-client rtpengine
THANK YOU
Questions?
or any time online
Twitter: @andreasgranig
Email: agranig@sipfront.com
join private beta at
https://sipfront.com

Más contenido relacionado

La actualidad más candente

Expanding Asterisk with Kamailio
Expanding Asterisk with KamailioExpanding Asterisk with Kamailio
Expanding Asterisk with KamailioFred Posner
 
Kamailio with Docker and Kubernetes
Kamailio with Docker and KubernetesKamailio with Docker and Kubernetes
Kamailio with Docker and KubernetesPaolo Visintin
 
Using Asterisk and Kamailio for Reliable, Scalable and Secure Communication S...
Using Asterisk and Kamailio for Reliable, Scalable and Secure Communication S...Using Asterisk and Kamailio for Reliable, Scalable and Secure Communication S...
Using Asterisk and Kamailio for Reliable, Scalable and Secure Communication S...Fred Posner
 
Kamailio, FreeSWITCH, and You
Kamailio, FreeSWITCH, and YouKamailio, FreeSWITCH, and You
Kamailio, FreeSWITCH, and YouFred Posner
 
SIPREC RTPEngine Media Forking
SIPREC RTPEngine Media ForkingSIPREC RTPEngine Media Forking
SIPREC RTPEngine Media ForkingHossein Yavari
 
Kamailio :: A Quick Introduction
Kamailio :: A Quick IntroductionKamailio :: A Quick Introduction
Kamailio :: A Quick IntroductionOlle E Johansson
 
Using Kamailio for Scalability and Security
Using Kamailio for Scalability and SecurityUsing Kamailio for Scalability and Security
Using Kamailio for Scalability and SecurityFred Posner
 
Scaling FreeSWITCH Performance
Scaling FreeSWITCH PerformanceScaling FreeSWITCH Performance
Scaling FreeSWITCH PerformanceMoises Silva
 
FreeSWITCH as a Microservice
FreeSWITCH as a MicroserviceFreeSWITCH as a Microservice
FreeSWITCH as a MicroserviceEvan McGee
 
Why is Kamailio so different? An introduction.
Why is Kamailio so different? An introduction.Why is Kamailio so different? An introduction.
Why is Kamailio so different? An introduction.Olle E Johansson
 
Getting started with SIP Express Media Server SIP app server and SBC - workshop
Getting started with SIP Express Media Server SIP app server and SBC - workshopGetting started with SIP Express Media Server SIP app server and SBC - workshop
Getting started with SIP Express Media Server SIP app server and SBC - workshopstefansayer
 
FreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBCFreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBCMoises Silva
 
Kamalio and Asterisk: What, Why & How
Kamalio and Asterisk: What, Why & HowKamalio and Asterisk: What, Why & How
Kamalio and Asterisk: What, Why & HowFred Posner
 
Continuous Integration and Kamailio
Continuous Integration and KamailioContinuous Integration and Kamailio
Continuous Integration and KamailioGiacomo Vacca
 
Using ARI and AGI to Connect Asterisk Instances
Using ARI and AGI to Connect Asterisk Instances Using ARI and AGI to Connect Asterisk Instances
Using ARI and AGI to Connect Asterisk Instances Jöran Vinzens
 
Homer - Workshop at Kamailio World 2017
Homer - Workshop at Kamailio World 2017Homer - Workshop at Kamailio World 2017
Homer - Workshop at Kamailio World 2017Giacomo Vacca
 

La actualidad más candente (20)

Expanding Asterisk with Kamailio
Expanding Asterisk with KamailioExpanding Asterisk with Kamailio
Expanding Asterisk with Kamailio
 
Kamailio with Docker and Kubernetes
Kamailio with Docker and KubernetesKamailio with Docker and Kubernetes
Kamailio with Docker and Kubernetes
 
Using Asterisk and Kamailio for Reliable, Scalable and Secure Communication S...
Using Asterisk and Kamailio for Reliable, Scalable and Secure Communication S...Using Asterisk and Kamailio for Reliable, Scalable and Secure Communication S...
Using Asterisk and Kamailio for Reliable, Scalable and Secure Communication S...
 
Kamailio, FreeSWITCH, and You
Kamailio, FreeSWITCH, and YouKamailio, FreeSWITCH, and You
Kamailio, FreeSWITCH, and You
 
SIPREC RTPEngine Media Forking
SIPREC RTPEngine Media ForkingSIPREC RTPEngine Media Forking
SIPREC RTPEngine Media Forking
 
Astricon 10 (October 2013) - SIP over WebSocket on Kamailio
Astricon 10 (October 2013) - SIP over WebSocket on KamailioAstricon 10 (October 2013) - SIP over WebSocket on Kamailio
Astricon 10 (October 2013) - SIP over WebSocket on Kamailio
 
Kamailio :: A Quick Introduction
Kamailio :: A Quick IntroductionKamailio :: A Quick Introduction
Kamailio :: A Quick Introduction
 
Kamailio - SIP Routing in Lua
Kamailio - SIP Routing in LuaKamailio - SIP Routing in Lua
Kamailio - SIP Routing in Lua
 
Using Kamailio for Scalability and Security
Using Kamailio for Scalability and SecurityUsing Kamailio for Scalability and Security
Using Kamailio for Scalability and Security
 
Kamailio - Secure Communication
Kamailio - Secure CommunicationKamailio - Secure Communication
Kamailio - Secure Communication
 
Scaling FreeSWITCH Performance
Scaling FreeSWITCH PerformanceScaling FreeSWITCH Performance
Scaling FreeSWITCH Performance
 
FreeSWITCH as a Microservice
FreeSWITCH as a MicroserviceFreeSWITCH as a Microservice
FreeSWITCH as a Microservice
 
Why is Kamailio so different? An introduction.
Why is Kamailio so different? An introduction.Why is Kamailio so different? An introduction.
Why is Kamailio so different? An introduction.
 
Getting started with SIP Express Media Server SIP app server and SBC - workshop
Getting started with SIP Express Media Server SIP app server and SBC - workshopGetting started with SIP Express Media Server SIP app server and SBC - workshop
Getting started with SIP Express Media Server SIP app server and SBC - workshop
 
Kamailio on Docker
Kamailio on DockerKamailio on Docker
Kamailio on Docker
 
FreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBCFreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBC
 
Kamalio and Asterisk: What, Why & How
Kamalio and Asterisk: What, Why & HowKamalio and Asterisk: What, Why & How
Kamalio and Asterisk: What, Why & How
 
Continuous Integration and Kamailio
Continuous Integration and KamailioContinuous Integration and Kamailio
Continuous Integration and Kamailio
 
Using ARI and AGI to Connect Asterisk Instances
Using ARI and AGI to Connect Asterisk Instances Using ARI and AGI to Connect Asterisk Instances
Using ARI and AGI to Connect Asterisk Instances
 
Homer - Workshop at Kamailio World 2017
Homer - Workshop at Kamailio World 2017Homer - Workshop at Kamailio World 2017
Homer - Workshop at Kamailio World 2017
 

Similar a rtpengine and kamailio - or how to simulate calls at scale

netfilter and iptables
netfilter and iptablesnetfilter and iptables
netfilter and iptablesKernel TLV
 
A Framework for Efficient Rapid Prototyping by Virtually Enlarging FPGA Resou...
A Framework for Efficient Rapid Prototyping by Virtually Enlarging FPGA Resou...A Framework for Efficient Rapid Prototyping by Virtually Enlarging FPGA Resou...
A Framework for Efficient Rapid Prototyping by Virtually Enlarging FPGA Resou...Shinya Takamaeda-Y
 
JavaOne - A Sip Of Java - RJ Auburn
JavaOne - A Sip Of Java - RJ AuburnJavaOne - A Sip Of Java - RJ Auburn
JavaOne - A Sip Of Java - RJ AuburnVoxeo Corp
 
OSTU - hrPING QuickStart Part 1 (by Tony Fortunato & Peter Ciuffreda)
OSTU - hrPING QuickStart Part 1 (by Tony Fortunato & Peter Ciuffreda)OSTU - hrPING QuickStart Part 1 (by Tony Fortunato & Peter Ciuffreda)
OSTU - hrPING QuickStart Part 1 (by Tony Fortunato & Peter Ciuffreda)Denny K
 
Comparing On-The-Fly Accelerating Packages: Numba, TensorFlow, Dask, etc
Comparing On-The-Fly Accelerating Packages: Numba, TensorFlow, Dask, etcComparing On-The-Fly Accelerating Packages: Numba, TensorFlow, Dask, etc
Comparing On-The-Fly Accelerating Packages: Numba, TensorFlow, Dask, etcYukio Okuda
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Eplan P8 Data Portal Crackbfdcm
Eplan P8 Data Portal CrackbfdcmEplan P8 Data Portal Crackbfdcm
Eplan P8 Data Portal CrackbfdcmCherylMorgan25
 
KCD Zurich 2023 — Bridge Dev & Ops with eBPF.pdf
KCD Zurich 2023 — Bridge Dev & Ops with eBPF.pdfKCD Zurich 2023 — Bridge Dev & Ops with eBPF.pdf
KCD Zurich 2023 — Bridge Dev & Ops with eBPF.pdfRaphaël PINSON
 
PLNOG 13: P. Kupisiewicz, O. Pelerin: Make IOS-XE Troubleshooting Easy – Pack...
PLNOG 13: P. Kupisiewicz, O. Pelerin: Make IOS-XE Troubleshooting Easy – Pack...PLNOG 13: P. Kupisiewicz, O. Pelerin: Make IOS-XE Troubleshooting Easy – Pack...
PLNOG 13: P. Kupisiewicz, O. Pelerin: Make IOS-XE Troubleshooting Easy – Pack...PROIDEA
 
True stories on the analysis of network activity using Python
True stories on the analysis of network activity using PythonTrue stories on the analysis of network activity using Python
True stories on the analysis of network activity using Pythondelimitry
 
Brightcove live tech overview
Brightcove live tech overviewBrightcove live tech overview
Brightcove live tech overviewJordi Cenzano
 
Architecture Aware Partitioning of Open-CL Programs
Architecture Aware Partitioning of Open-CL Programs Architecture Aware Partitioning of Open-CL Programs
Architecture Aware Partitioning of Open-CL Programs Ankit Singh
 
LCDS - State Presentation
LCDS - State PresentationLCDS - State Presentation
LCDS - State PresentationRuochun Tzeng
 
Detecting Spoofing at IXPs
Detecting Spoofing at IXPsDetecting Spoofing at IXPs
Detecting Spoofing at IXPsAPNIC
 
Detecting spoofing at IxP's
Detecting spoofing at IxP'sDetecting spoofing at IxP's
Detecting spoofing at IxP'sTom Paseka
 
nftables - the evolution of Linux Firewall
nftables - the evolution of Linux Firewallnftables - the evolution of Linux Firewall
nftables - the evolution of Linux FirewallMarian Marinov
 
Hacking With Nmap - Scanning Techniques
Hacking With Nmap - Scanning TechniquesHacking With Nmap - Scanning Techniques
Hacking With Nmap - Scanning Techniquesamiable_indian
 
Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...
Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...
Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...Paolo Saviano
 

Similar a rtpengine and kamailio - or how to simulate calls at scale (20)

netfilter and iptables
netfilter and iptablesnetfilter and iptables
netfilter and iptables
 
A Framework for Efficient Rapid Prototyping by Virtually Enlarging FPGA Resou...
A Framework for Efficient Rapid Prototyping by Virtually Enlarging FPGA Resou...A Framework for Efficient Rapid Prototyping by Virtually Enlarging FPGA Resou...
A Framework for Efficient Rapid Prototyping by Virtually Enlarging FPGA Resou...
 
JavaOne - A Sip Of Java - RJ Auburn
JavaOne - A Sip Of Java - RJ AuburnJavaOne - A Sip Of Java - RJ Auburn
JavaOne - A Sip Of Java - RJ Auburn
 
OSTU - hrPING QuickStart Part 1 (by Tony Fortunato & Peter Ciuffreda)
OSTU - hrPING QuickStart Part 1 (by Tony Fortunato & Peter Ciuffreda)OSTU - hrPING QuickStart Part 1 (by Tony Fortunato & Peter Ciuffreda)
OSTU - hrPING QuickStart Part 1 (by Tony Fortunato & Peter Ciuffreda)
 
Comparing On-The-Fly Accelerating Packages: Numba, TensorFlow, Dask, etc
Comparing On-The-Fly Accelerating Packages: Numba, TensorFlow, Dask, etcComparing On-The-Fly Accelerating Packages: Numba, TensorFlow, Dask, etc
Comparing On-The-Fly Accelerating Packages: Numba, TensorFlow, Dask, etc
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Eplan P8 Data Portal Crackbfdcm
Eplan P8 Data Portal CrackbfdcmEplan P8 Data Portal Crackbfdcm
Eplan P8 Data Portal Crackbfdcm
 
KCD Zurich 2023 — Bridge Dev & Ops with eBPF.pdf
KCD Zurich 2023 — Bridge Dev & Ops with eBPF.pdfKCD Zurich 2023 — Bridge Dev & Ops with eBPF.pdf
KCD Zurich 2023 — Bridge Dev & Ops with eBPF.pdf
 
PLNOG 13: P. Kupisiewicz, O. Pelerin: Make IOS-XE Troubleshooting Easy – Pack...
PLNOG 13: P. Kupisiewicz, O. Pelerin: Make IOS-XE Troubleshooting Easy – Pack...PLNOG 13: P. Kupisiewicz, O. Pelerin: Make IOS-XE Troubleshooting Easy – Pack...
PLNOG 13: P. Kupisiewicz, O. Pelerin: Make IOS-XE Troubleshooting Easy – Pack...
 
True stories on the analysis of network activity using Python
True stories on the analysis of network activity using PythonTrue stories on the analysis of network activity using Python
True stories on the analysis of network activity using Python
 
Brightcove live tech overview
Brightcove live tech overviewBrightcove live tech overview
Brightcove live tech overview
 
Architecture Aware Partitioning of Open-CL Programs
Architecture Aware Partitioning of Open-CL Programs Architecture Aware Partitioning of Open-CL Programs
Architecture Aware Partitioning of Open-CL Programs
 
Services
ServicesServices
Services
 
LCDS - State Presentation
LCDS - State PresentationLCDS - State Presentation
LCDS - State Presentation
 
Detecting Spoofing at IXPs
Detecting Spoofing at IXPsDetecting Spoofing at IXPs
Detecting Spoofing at IXPs
 
Detecting spoofing at IxP's
Detecting spoofing at IxP'sDetecting spoofing at IxP's
Detecting spoofing at IxP's
 
nftables - the evolution of Linux Firewall
nftables - the evolution of Linux Firewallnftables - the evolution of Linux Firewall
nftables - the evolution of Linux Firewall
 
Hacking With Nmap - Scanning Techniques
Hacking With Nmap - Scanning TechniquesHacking With Nmap - Scanning Techniques
Hacking With Nmap - Scanning Techniques
 
Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...
Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...
Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...
 
OpenMP.pptx
OpenMP.pptxOpenMP.pptx
OpenMP.pptx
 

Último

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
🐬 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
 
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
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 

Último (20)

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 

rtpengine and kamailio - or how to simulate calls at scale

  • 1. rtpengine & kamailio or how to simulate calls at scale Andreas Granig <agranig@sipfront.com>
  • 2. AT THE NETWORK EDGE rtpengine & kamailio Load Testing Architecture RTP Sinkhole NAT Piercing RTP Echo RTP PubSub
  • 3. LOAD TESTING ARCHITECTURE rtpengine & kamailio ● Context ○ At sipfront.com, we develop a SaaS for Telco Test Automation ● Load testing is resource intensive ○ sipp for signaling ○ tcpreplay for media ● kamailio & rtpengine to the rescue ○ protocol conversion for signaling ○ reflection & termination for media
  • 4. LOAD TESTING ARCHITECTURE rtpengine & kamailio tcpreplay + RTP patch 1 sipp SIP RTP kamailio rtpengine sinkhole kamailio sipp rtpengine pierce-nat + echo system under test SDP info ctrl ctrl NAT NAT 1 https://github.com/agranig/tcpreplay/tree/agranig/sipfront-rtp-edit
  • 5. RTP SINKHOLE rtpengine & kamailio ● Sometimes, you just don’t wanna talk… ○ but want to keep track of stats ○ and want to avoid ICMP port unreachable messages
  • 6. RTP SINKHOLE rtpengine & kamailio rtpengine kamailio SIP RTP media-echo=sinkhole RTCP MQTT stats
  • 7. route { # ... if (outwards) { rtpengine_offer(" direction=internal direction=external media-echo=sinkhole generate-RTCP "); } # ... } reply_route { # ... if (outwards) { rtpengine_answer(" direction=internal direction=external media-echo=sinkhole generate-RTCP "); } # ... } RTP SINKHOLE rtpengine & kamailio rtpengine --interface=internal/192.168.0.100 --interface=external/192.168.0.100!1.2.3.4 --listen-ng=127.0.0.1:12221 Kamailio Config rtpengine
  • 8. NAT PIERCING rtpengine & kamailio ● “you start first” - “no, you start first” ○ If you’d like to echo media ○ but the peer can’t send you anything to echo back
  • 9. NAT PIERCING rtpengine & kamailio kamailio SIP RTP pierce-NAT rtpengine dummy RTP NAT
  • 10. route { # ... if (inwards) { rtpengine_offer(" direction=external direction=internal pierce-NAT "); } # ... } reply_route { # ... if (outwards) { rtpengine_answer(" direction=external direction=internal pierce-NAT "); } # ... } NAT PIERCING rtpengine & kamailio rtpengine --interface=internal/192.168.0.100 --interface=external/192.168.0.100!1.2.3.4 --listen-ng=127.0.0.1:12221 Kamailio Config rtpengine
  • 11. RTP ECHO rtpengine & kamailio ● “You made this? I made this!” ○ send back incoming media with new SSRC ○ for when you need two-way media without the generation overhead
  • 12. RTP ECHO rtpengine & kamailio kamailio SIP RTP media-echo=forward | backward rtpengine RTP echo
  • 13. route { # ... if (outwards) { rtpengine_offer(" direction=internal direction=external media-echo=backward "); } # ... } reply_route { # ... if (outwards) { rtpengine_answer(" direction=internal direction=external media-echo=forward "); } # ... } RTP ECHO rtpengine & kamailio rtpengine --interface=internal/192.168.0.100 --interface=external/192.168.0.100!1.2.3.4 --listen-ng=127.0.0.1:12221 Kamailio Config rtpengine
  • 14. RTP PUBSUB rtpengine & kamailio ● “Listen up, everybody…” ○ Send an RTP stream once ○ and duplicate it to multiple recipients ○ for SFU, SIPREC, Interception, …
  • 15. RTP PUBSUB rtpengine & kamailio rtpengine Kamailio SIP - cid=X, ftag=A, ttag=B RTP offer in: SDP out: SDP answer in: SDP out: SDP subscribe-request in: cid=X, ftag=A out: SDP SIP - cid=Y, ftag=C, ttag=D subscribe-answer in: cid=X, ftag=A, ttag=C, SDP RTP send-only App Interceptor publish in: SDP out: SDP or optionally (if no SIP context):
  • 16. RTP PUBSUB rtpengine & kamailio https://github.com/davehorton/rtpengine-client hopefully soon! const Client = require('rtpengine-client').Client; const client = new Client(); client .subscribeRequest(12280, '127.0.0.1', { 'call-id': 'test-call-id', 'from-tag': 'test-tag' }) .then((res) => { console.log(`Received ${JSON.stringify(res)}`); }) .catch((err) => { console.log(`Error: ${err}`); }); rtpengine --interface=internal/192.168.0.100 --interface=external/192.168.0.100!1.2.3.4 --listen-ng=127.0.0.1:12221 --listen-http=127.0.0.1:12280 NodeJS rtpengine-client rtpengine
  • 17. THANK YOU Questions? or any time online Twitter: @andreasgranig Email: agranig@sipfront.com join private beta at https://sipfront.com