Submit Search
Upload
Media Handling in FreeSWITCH
•
5 likes
•
9,392 views
Moises Silva
Follow
Handling different codecs, sampling rates, bit rates and media modes in FreeSWITCH
Read less
Read more
Report
Share
Report
Share
1 of 35
Download now
Download to read offline
Recommended
FreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBC
Moises Silva
SIP Testing with FreeSWITCH
SIP Testing with FreeSWITCH
Moises Silva
Scaling FreeSWITCH Performance
Scaling FreeSWITCH Performance
Moises Silva
Kamailio :: A Quick Introduction
Kamailio :: A Quick Introduction
Olle E Johansson
rtpengine and kamailio - or how to simulate calls at scale
rtpengine and kamailio - or how to simulate calls at scale
Andreas Granig
Kamailio with Docker and Kubernetes
Kamailio with Docker and Kubernetes
Paolo Visintin
Kamailio on Docker
Kamailio on Docker
Chien Cheng Wu
rtpengine - Media Relaying and Beyond
rtpengine - Media Relaying and Beyond
Andreas Granig
Recommended
FreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBC
Moises Silva
SIP Testing with FreeSWITCH
SIP Testing with FreeSWITCH
Moises Silva
Scaling FreeSWITCH Performance
Scaling FreeSWITCH Performance
Moises Silva
Kamailio :: A Quick Introduction
Kamailio :: A Quick Introduction
Olle E Johansson
rtpengine and kamailio - or how to simulate calls at scale
rtpengine and kamailio - or how to simulate calls at scale
Andreas Granig
Kamailio with Docker and Kubernetes
Kamailio with Docker and Kubernetes
Paolo Visintin
Kamailio on Docker
Kamailio on Docker
Chien Cheng Wu
rtpengine - Media Relaying and Beyond
rtpengine - Media Relaying and Beyond
Andreas Granig
Kamailio, FreeSWITCH, and You
Kamailio, FreeSWITCH, and You
Fred Posner
An SFU/MCU integration for heterogeneous environments
An SFU/MCU integration for heterogeneous environments
Giacomo Vacca
Kamailio - Load Balancing Load Balancers
Kamailio - Load Balancing Load Balancers
Daniel-Constantin Mierla
SIP Attack Handling (Kamailio World 2021)
SIP Attack Handling (Kamailio World 2021)
Fred Posner
Introduction to Kamailio (TADSummit 2020 Asia)
Introduction to Kamailio (TADSummit 2020 Asia)
Fred Posner
Top 5 Challenges To Add Web Calls to Truphone VoIP Platform
Top 5 Challenges To Add Web Calls to Truphone VoIP Platform
Giacomo Vacca
Continuous Integration and Kamailio
Continuous Integration and Kamailio
Giacomo Vacca
SIPREC RTPEngine Media Forking
SIPREC RTPEngine Media Forking
Hossein Yavari
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 - workshop
stefansayer
Why is Kamailio so different? An introduction.
Why is Kamailio so different? An introduction.
Olle E Johansson
Sipwise rtpengine
Sipwise rtpengine
Andreas Granig
FreeSWITCH on Docker
FreeSWITCH on Docker
建澄 吳
Getting a live_transcript_of_your_call_using_the_ari
Getting a live_transcript_of_your_call_using_the_ari
Pascal Cadotte-Michaud
FreeSWITCH Monitoring
FreeSWITCH Monitoring
Moises Silva
Embedded TCP/IP stack for FreeRTOS
Embedded TCP/IP stack for FreeRTOS
艾鍗科技
SIP transfer with Janus/WebRTC @ OpenSIPS 2022
SIP transfer with Janus/WebRTC @ OpenSIPS 2022
Lorenzo Miniero
Expanding Asterisk with Kamailio
Expanding Asterisk with Kamailio
Fred Posner
Session initiation protocol SIP
Session initiation protocol SIP
Laraib Khan
FreeSWITCH as a Microservice
FreeSWITCH as a Microservice
Evan McGee
Cilium - BPF & XDP for containers
Cilium - BPF & XDP for containers
Docker, Inc.
Freeswitch
Freeswitch
Suneet Saini
FreeSWITCH Modules for Asterisk Developers
FreeSWITCH Modules for Asterisk Developers
Moises Silva
More Related Content
What's hot
Kamailio, FreeSWITCH, and You
Kamailio, FreeSWITCH, and You
Fred Posner
An SFU/MCU integration for heterogeneous environments
An SFU/MCU integration for heterogeneous environments
Giacomo Vacca
Kamailio - Load Balancing Load Balancers
Kamailio - Load Balancing Load Balancers
Daniel-Constantin Mierla
SIP Attack Handling (Kamailio World 2021)
SIP Attack Handling (Kamailio World 2021)
Fred Posner
Introduction to Kamailio (TADSummit 2020 Asia)
Introduction to Kamailio (TADSummit 2020 Asia)
Fred Posner
Top 5 Challenges To Add Web Calls to Truphone VoIP Platform
Top 5 Challenges To Add Web Calls to Truphone VoIP Platform
Giacomo Vacca
Continuous Integration and Kamailio
Continuous Integration and Kamailio
Giacomo Vacca
SIPREC RTPEngine Media Forking
SIPREC RTPEngine Media Forking
Hossein Yavari
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 - workshop
stefansayer
Why is Kamailio so different? An introduction.
Why is Kamailio so different? An introduction.
Olle E Johansson
Sipwise rtpengine
Sipwise rtpengine
Andreas Granig
FreeSWITCH on Docker
FreeSWITCH on Docker
建澄 吳
Getting a live_transcript_of_your_call_using_the_ari
Getting a live_transcript_of_your_call_using_the_ari
Pascal Cadotte-Michaud
FreeSWITCH Monitoring
FreeSWITCH Monitoring
Moises Silva
Embedded TCP/IP stack for FreeRTOS
Embedded TCP/IP stack for FreeRTOS
艾鍗科技
SIP transfer with Janus/WebRTC @ OpenSIPS 2022
SIP transfer with Janus/WebRTC @ OpenSIPS 2022
Lorenzo Miniero
Expanding Asterisk with Kamailio
Expanding Asterisk with Kamailio
Fred Posner
Session initiation protocol SIP
Session initiation protocol SIP
Laraib Khan
FreeSWITCH as a Microservice
FreeSWITCH as a Microservice
Evan McGee
Cilium - BPF & XDP for containers
Cilium - BPF & XDP for containers
Docker, Inc.
What's hot
(20)
Kamailio, FreeSWITCH, and You
Kamailio, FreeSWITCH, and You
An SFU/MCU integration for heterogeneous environments
An SFU/MCU integration for heterogeneous environments
Kamailio - Load Balancing Load Balancers
Kamailio - Load Balancing Load Balancers
SIP Attack Handling (Kamailio World 2021)
SIP Attack Handling (Kamailio World 2021)
Introduction to Kamailio (TADSummit 2020 Asia)
Introduction to Kamailio (TADSummit 2020 Asia)
Top 5 Challenges To Add Web Calls to Truphone VoIP Platform
Top 5 Challenges To Add Web Calls to Truphone VoIP Platform
Continuous Integration and Kamailio
Continuous Integration and Kamailio
SIPREC RTPEngine Media Forking
SIPREC RTPEngine Media Forking
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 - workshop
Why is Kamailio so different? An introduction.
Why is Kamailio so different? An introduction.
Sipwise rtpengine
Sipwise rtpengine
FreeSWITCH on Docker
FreeSWITCH on Docker
Getting a live_transcript_of_your_call_using_the_ari
Getting a live_transcript_of_your_call_using_the_ari
FreeSWITCH Monitoring
FreeSWITCH Monitoring
Embedded TCP/IP stack for FreeRTOS
Embedded TCP/IP stack for FreeRTOS
SIP transfer with Janus/WebRTC @ OpenSIPS 2022
SIP transfer with Janus/WebRTC @ OpenSIPS 2022
Expanding Asterisk with Kamailio
Expanding Asterisk with Kamailio
Session initiation protocol SIP
Session initiation protocol SIP
FreeSWITCH as a Microservice
FreeSWITCH as a Microservice
Cilium - BPF & XDP for containers
Cilium - BPF & XDP for containers
Viewers also liked
Freeswitch
Freeswitch
Suneet Saini
FreeSWITCH Modules for Asterisk Developers
FreeSWITCH Modules for Asterisk Developers
Moises Silva
Voip FreeSwitch
Voip FreeSwitch
bamaemmanuel
Introduction to FreeSWITCH
Introduction to FreeSWITCH
Chien Cheng Wu
Architettura VoIP con FreeSWITCH + gazzurbo
Architettura VoIP con FreeSWITCH + gazzurbo
Alessandro Antani
開發人員不可不知的 Windows Container 容器技術預覽
開發人員不可不知的 Windows Container 容器技術預覽
Will Huang
Viewers also liked
(6)
Freeswitch
Freeswitch
FreeSWITCH Modules for Asterisk Developers
FreeSWITCH Modules for Asterisk Developers
Voip FreeSwitch
Voip FreeSwitch
Introduction to FreeSWITCH
Introduction to FreeSWITCH
Architettura VoIP con FreeSWITCH + gazzurbo
Architettura VoIP con FreeSWITCH + gazzurbo
開發人員不可不知的 Windows Container 容器技術預覽
開發人員不可不知的 Windows Container 容器技術預覽
Similar to Media Handling in FreeSWITCH
WebRTC Standards from Tim Panton
WebRTC Standards from Tim Panton
Alan Quayle
WebRTC overview
WebRTC overview
Rouyun Pan
Bridging_WebRTC_with_SIP_Alberto_WebRTCventures_Cluecon2023_NoVideo.pptx
Bridging_WebRTC_with_SIP_Alberto_WebRTCventures_Cluecon2023_NoVideo.pptx
Alberto González Trastoy
Track F- Designing the kiler soc - sonics
Track F- Designing the kiler soc - sonics
chiportal
Building a WebRTC Communication and collaboration platform - techleash barcamp
Building a WebRTC Communication and collaboration platform - techleash barcamp
ALTANAI BISHT
Lagopus presentation on 14th Annual ON*VECTOR International Photonics Workshop
Lagopus presentation on 14th Annual ON*VECTOR International Photonics Workshop
Lagopus SDN/OpenFlow switch
DPDK Summit - 08 Sept 2014 - NTT - High Performance vSwitch
DPDK Summit - 08 Sept 2014 - NTT - High Performance vSwitch
Jim St. Leger
9.) audio video ethernet (avb cobra net dante)
9.) audio video ethernet (avb cobra net dante)
Jeff Green
WebRTC Real time media P2P, Server, Infrastructure, and Platform
WebRTC Real time media P2P, Server, Infrastructure, and Platform
Ryan Jespersen
WebRTC, Whats in it for me?
WebRTC, Whats in it for me?
SeanDuBois3
Mellanox Approach to NFV & SDN
Mellanox Approach to NFV & SDN
Mellanox Technologies
Ryu SDN Framework
Ryu SDN Framework
APNIC
Thinking about IP migration
Thinking about IP migration
Dr. Mohieddin Moradi
TADS Developer Summit WebRTC Dan Burnett
TADS Developer Summit WebRTC Dan Burnett
Alan Quayle
Monitoring whole mpeg transport stream
Monitoring whole mpeg transport stream
Volicon
Prashant Resume
Prashant Resume
Prashant Desai
Jawdat NGN IDNOG v1.0 public
Jawdat NGN IDNOG v1.0 public
Himawan Nugroho
03 (IDNOG01) NGN Next Generation Networks by Himawan Nugroho
03 (IDNOG01) NGN Next Generation Networks by Himawan Nugroho
Indonesia Network Operators Group
JAWDAT NGN IDNOG v1.0 (public)[COPY]
JAWDAT NGN IDNOG v1.0 (public)[COPY]
Mahadiputra S
R43019698
R43019698
IJERA Editor
Similar to Media Handling in FreeSWITCH
(20)
WebRTC Standards from Tim Panton
WebRTC Standards from Tim Panton
WebRTC overview
WebRTC overview
Bridging_WebRTC_with_SIP_Alberto_WebRTCventures_Cluecon2023_NoVideo.pptx
Bridging_WebRTC_with_SIP_Alberto_WebRTCventures_Cluecon2023_NoVideo.pptx
Track F- Designing the kiler soc - sonics
Track F- Designing the kiler soc - sonics
Building a WebRTC Communication and collaboration platform - techleash barcamp
Building a WebRTC Communication and collaboration platform - techleash barcamp
Lagopus presentation on 14th Annual ON*VECTOR International Photonics Workshop
Lagopus presentation on 14th Annual ON*VECTOR International Photonics Workshop
DPDK Summit - 08 Sept 2014 - NTT - High Performance vSwitch
DPDK Summit - 08 Sept 2014 - NTT - High Performance vSwitch
9.) audio video ethernet (avb cobra net dante)
9.) audio video ethernet (avb cobra net dante)
WebRTC Real time media P2P, Server, Infrastructure, and Platform
WebRTC Real time media P2P, Server, Infrastructure, and Platform
WebRTC, Whats in it for me?
WebRTC, Whats in it for me?
Mellanox Approach to NFV & SDN
Mellanox Approach to NFV & SDN
Ryu SDN Framework
Ryu SDN Framework
Thinking about IP migration
Thinking about IP migration
TADS Developer Summit WebRTC Dan Burnett
TADS Developer Summit WebRTC Dan Burnett
Monitoring whole mpeg transport stream
Monitoring whole mpeg transport stream
Prashant Resume
Prashant Resume
Jawdat NGN IDNOG v1.0 public
Jawdat NGN IDNOG v1.0 public
03 (IDNOG01) NGN Next Generation Networks by Himawan Nugroho
03 (IDNOG01) NGN Next Generation Networks by Himawan Nugroho
JAWDAT NGN IDNOG v1.0 (public)[COPY]
JAWDAT NGN IDNOG v1.0 (public)[COPY]
R43019698
R43019698
More from Moises Silva
Interfaces de Scripting para librerias en C
Interfaces de Scripting para librerias en C
Moises Silva
Vulnerabilidades en Aplicaciones Web PHP
Vulnerabilidades en Aplicaciones Web PHP
Moises Silva
Manejo de Medios en FreeSWITCH
Manejo de Medios en FreeSWITCH
Moises Silva
Implementation Lessons using WebRTC in Asterisk
Implementation Lessons using WebRTC in Asterisk
Moises Silva
FreeSWITCH: Asterisk con Esteroides
FreeSWITCH: Asterisk con Esteroides
Moises Silva
Negociacion de Codecs en Asterisk
Negociacion de Codecs en Asterisk
Moises Silva
Sangoma en el Ecosistema Open Source
Sangoma en el Ecosistema Open Source
Moises Silva
FreeTDM PRI Passive Recording
FreeTDM PRI Passive Recording
Moises Silva
Asterisk PRI Passive Call Recording
Asterisk PRI Passive Call Recording
Moises Silva
OpenR2 in Asterisk
OpenR2 in Asterisk
Moises Silva
More from Moises Silva
(10)
Interfaces de Scripting para librerias en C
Interfaces de Scripting para librerias en C
Vulnerabilidades en Aplicaciones Web PHP
Vulnerabilidades en Aplicaciones Web PHP
Manejo de Medios en FreeSWITCH
Manejo de Medios en FreeSWITCH
Implementation Lessons using WebRTC in Asterisk
Implementation Lessons using WebRTC in Asterisk
FreeSWITCH: Asterisk con Esteroides
FreeSWITCH: Asterisk con Esteroides
Negociacion de Codecs en Asterisk
Negociacion de Codecs en Asterisk
Sangoma en el Ecosistema Open Source
Sangoma en el Ecosistema Open Source
FreeTDM PRI Passive Recording
FreeTDM PRI Passive Recording
Asterisk PRI Passive Call Recording
Asterisk PRI Passive Call Recording
OpenR2 in Asterisk
OpenR2 in Asterisk
Media Handling in FreeSWITCH
1.
Media Handling in
FreeSWITCH Moisés Silva Software Engineer / Manager moy@sangoma.com
2.
Agenda •
Audio Codecs • Transcoding • Codec Negotiation • Bypass Media • Proxy Media • Sangoma Transcoding © 2011 Sangoma Technologies 8/10/2011 2
3.
Audio Codecs © 2011
Sangoma Confidential 8/10/2011 3
4.
Audio Codecs • Codecs
encode and decode voice for network transmission – Algorithm (compression technology) – Bit rate – Sampling rate – Packetization • Algorithm is the core of the codec • Bit rate defines bandwidth required. (how many bits per second) • Sampling rate defines the quality. (all other things being equal) • Packetization affects latency and bandwidth overhead © 2011 Sangoma Technologies 8/10/2011 4
5.
Audio Codecs • G.711
(PCMU/PCMA, Ulaw/Alaw) – Narrowband. – 64kbps per second (Bit rate) – 8kHz (Sampling rate) – 10ms, 20ms, 30ms, 40ms … + (Packetization) • G.722 – Wideband – 48kbps, 56kbps and 64kbps – 16kHz (IANA clocks it at 8kHz due to historical error in RFC1890) – 10ms, 20ms, 30ms, 40ms … + • G.722.1 Annex C - Ultra-wideband – 48kbps – 32kHz – 20ms, 40ms, 60ms © 2011 Sangoma Technologies 8/10/2011 5
6.
FreeSWITCH Audio Codecs •
FreeSWITCH supports a wide range of codecs – Narrowband (G.711, G.726, G.723.1, G.729AB, Speex …) – Wideband (G.722, G.722.1, G.722.2, Speex …) – Ultra-wideband (G.722.1C, Speex) – CD-quality (CELT) • FreeSWITCH core requires the media to be in L16 (signed linear, raw digital audio) format for manipulation (mixing, tone detection etc) • Codec modules encode and decode from/to L16 format • Pass-thru codec modules are dummies (mod_g729, mod_g723_1) © 2011 Sangoma Technologies 8/10/2011 6
7.
FreeSWITCH Audio Codecs
© 2011 Sangoma Technologies 8/10/2011 7
8.
Transcoding © 2011 Sangoma
Confidential 8/10/2011 8
9.
Transcoding • Required when
endpoints have no codec in common • FreeSWITCH must stay in the media path • Increases CPU usage (particularly if done in software) • Is a must if you need: – Call recording – Tone detection – Play announcements or tones © 2011 Sangoma Technologies 8/10/2011 9
10.
FreeSWITCH Transcoding • Transcoding
in one-legged call © 2011 Sangoma Technologies 8/10/2011 10
11.
FreeSWITCH Transcoding • Transcoding
2 SIP legs © 2011 Sangoma Technologies 8/10/2011 11
12.
FreeSWITCH codec pass-thru •
Pass-thru codecs do not do transcoding © 2011 Sangoma Technologies 8/10/2011 12
13.
Codec Negotiation © 2011
Sangoma Confidential 8/10/2011 13
14.
Codec Negotiation • Decisions
to be made to choose a codec for a call • From a list of codecs, pick one! • You can choose when this happens (early vs late) • Early happens before call hits the dial plan • Late will happen when the leg is answered (or in pre- answer) © 2011 Sangoma Technologies 8/10/2011 14
15.
Codec Negotiation • 3
inbound negotiation algorithms – generous – greedy – Scrooge (Bah HUMBUG!) • Use inbound-codec-negotiation in SIP profile • Use sip_codec_negotiation variable in the dial plan © 2011 Sangoma Technologies 8/10/2011 15
16.
Codec Negotiation
© 2011 Sangoma Technologies 8/10/2011 16
17.
Early Negotiation • Default
negotiation mode in FreeSWITCH • The codec is chosen matching SDP vs inbound-codec- prefs in the SIP profile • “disable-transcoding” offers the same codec chosen for the inbound leg to the outbound leg • absolute_codec_str is a good brute-force approach © 2011 Sangoma Technologies 8/10/2011 17
18.
Early Negotiation
© 2011 Sangoma Technologies 8/10/2011 18
19.
Late Negotiation • “Smarter”
approach to codec negotiation • “inbound-late-negotiation” set to “true” in the SIP profile • Call will hit the dial plan without looking at codecs • Negotiation will occur when incoming leg is answered (or requires early media) © 2011 Sangoma Technologies 8/10/2011 19
20.
Late Negotiation • You
can examine the incoming SDP and re-write SDP to fit your own needs • “inherit_codec” variable is available to try to use the codec from the B leg for the A leg • “ep_codec_string” contains the codecs offered by the endpoint © 2011 Sangoma Technologies 8/10/2011 20
21.
Late Negotiation
© 2011 Sangoma Technologies 8/10/2011 21
22.
Media Modes © 2011
Sangoma Confidential 8/10/2011 22
23.
Bypass Media • Media
goes around FreeSWITCH (not through) directly between the endpoints • SIP signaling stays in FreeSWITCH • Enable by setting variable “bypass_media=true” before bridging • Set inbound-no-media or inbound-bypass-media in the SIP profile for a permanent solution © 2011 Sangoma Technologies 8/10/2011 23
24.
Bypass Media • You
can still play files! (uuid_broadcast) • uuid_media [off] can re-invite FreeSWITCH on/off the media path • Recording will fail unless you manually put back FreeSWITCH on the media path © 2011 Sangoma Technologies 8/10/2011 24
25.
Bypass Media
© 2011 Sangoma Technologies 8/10/2011 25
26.
Proxy Media • Also
called “transparent proxy mode” for the RTP • No media capabilities enabled • Only the “c=” part in the SDP is modified • Allows FreeSWITCH to pass-thru codec media that does not support © 2011 Sangoma Technologies 8/10/2011 26
27.
Proxy Media • Set
“proxy_media=true” variable before the bridge to enable it • Set “inbound-proxy-media” in the SIP profile for a permanent solution • You most likely want to have “late negotiation” enabled © 2011 Sangoma Technologies 8/10/2011 27
28.
Proxy Media
© 2011 Sangoma Technologies 8/10/2011 28
29.
Sangoma Transcoding © 2011
Sangoma Confidential 8/10/2011 29
30.
Sangoma Transcoding • Wider
codec support in the industry • Seen as an ethernet interface by the operating system • SOAP interface for transcoding control • Multiple servers can use a single card • Firmware upgradable on the field • License upgradable (from 30 licenses to 400) © 2011 Sangoma Technologies 8/10/2011 30
31.
Capacity Codec/P Time
10 ms 20 ms 30 ms 40 ms 50 ms G.729 AB 300 440 459 462 466 G.722 290 388 410 388 GSM 480 AMR 12.20 200 226 AMR 4.75 258 281 ILBC 15.2 310 298 ILBC 13.3 273 G.723 5.3 200 G.723 6.3 200 G.726 32 310 450 480 480 480 PCM/U 310 390 420 440 460 PCM/A 310 390 420 440 460 © 2011 Sangoma Technologies 8/10/2011 31
32.
Single Server Setup
FreeSWITCH I/O core codec module SOAP client (libsngtc-‐node) Control (SOAP TCP connecTon) SOAP server RTP (Voice) API Board discovery (libsng-‐tc) at Install Tme Ethernet Driver © 2011 Sangoma Technologies 8/10/2011 32
33.
Distributed Setup
Transcoding App Server Server FreeSWITCH I/O core codec module SOAP client (libsngtc-‐node) Control RTP (SOAP TCP connecTon) (Voice) SOAP server App API (libsng-‐tc) Server FreeSWITCH I/O core Ethernet Driver codec module SOAP client (libsngtc-‐node) RTP (Voice) © 2011 Sangoma Technologies 8/10/2011 33
34.
Supported Codecs •
G.729 • G.726-32 • G.722 • G.722.1 • G.723.1 • iLBC • AMR – *more codecs supported by the D-series cards but not yet implemented by FreeSWITCH codec module © 2011 Sangoma Technologies 8/10/2011 34
35.
THANK YOU © 2011
Sangoma Confidential 8/10/2011 35
Download now