SlideShare a Scribd company logo
1 of 23
Download to read offline
FreeSWITCH on Docker
Stanley Wu (吳建澄)
skyeyester@gmail.com
Sep. 04, 2015
Outline
• Background Knowledge of IP Telephony System
• Introduction to FreeSWITCH
• Introduction to Docker
• Why Use FreeSWITCH on Docker?
• How to Configure FreeSWITCH on Docker?
• How to Configure a SIP phone and Verify
FreeSWITCH?
2
Background Knowledge of IP
Telephony System (1/3)
• IP Telephony System is used to transmit voice/video calls
over the IP data network via wired or wireless network
connection.
• IP Telephony System is also known as voice/video over IP
• The benefits of IP Telephony System:
– Low Cost (Reduce telecom cost via toll by pass)
– Scalable (Add extensions flexibility)
– Mobility (Make & receive calls from any place or platform,
Android, iOS, Linux or Windows)
– More advanced features and software integration (video
conference, instant message or linking CRM System)
3
Background Knowledge of IP
Telephony System (2/3)
• The challenges of IP Telephony System:
– Complicated system configuration procedure
– Service quality depends on network quality
• Why we may notice on IP Telephony System?
– The system configuration procedure could be
simplified
– Radio access technology is improved and the
bandwidth, speed, cost are more efficiency
4
Background Knowledge of IP
Telephony System (3/3)
• The key components of IP Telephony System
– IP Phone or Softphone
• LinPhone- LinPhone is a Voice over Internet Protocol (VoIP)
software on iOS and Android platform
• SIPdroid- LinPhone is a VoIP software on Android
• Xlite - X-Lite is a proprietary freeware VoIP soft phone that
uses the Session Initiation Protocol.
– SIP Server or PBX (Private Branch Exchange)
• FreeSWITCH - Telephony platform to facilitate the creation
of voice and chat driven products
• Asterisk - Open Source VoIP PBX
• GNU Gatekeeper - VOIP gatekeeper for H.323
5
Introduction to FreeSWITCH (1/2)
• FreeSWITCH is designed to be a telephony platform, a soft
switch to route and interconnect communications
protocols using a wide range of media, all of this while
being able to handle a growing amount of work.
• Features of FreeSWITCH
– Default implementation is for a PBX or Softswitch
– Modular system allows you to extend the system easily
Applications may be written in C, Java, .NET etc.
– Handle thousands of concurrent channels with media on a
standard PC Interoperates with many different products and
protocols
• such as CallWeaver (formerly known as OpenPBX.org),
• Bayonne, Yate, sipXecs or Asterisk
• Supports SIP, H.323, IAX2 etc.
6
Introduction to FreeSWITCH(2/2)
• Functions of FreeSWITCH
– Become back-to-back user agent (B2BUA)
– Handle all SIP signaling – route calls, transfer calls,
and can even translate codecs between different
legs of the call.
– Transcode RTP streams
– Offer value-added features such as voicemail, call
transfers, and others.
7
Introduction to Docker
• Reproducible
• Portable
• Like VMs, but different
8
Why FreeSWITCH on Docker? (1/2)
• Docker makes FreeSWITCH installation,
deployment and configuration more easier
• There are a lot of concerns on using Virtual
Machines in Telephony world. Especially for the
server’s that handles the Real Time voice packets,
as voice quality is pretty important in Telephony.
• But the lightweight container can just decrease
the performance into tolerable situation
• We can enhance the whole telephony system
performance in the other part (e.g. latency via
SDN, etc)
9
Why FreeSWITCH on Docker? (2/2)
• Speed
– Each container shares the same kernel as the host operating system, so there is no
overhead of a hypervisor. Resources are allocated as needed, rather than up front.
Docker containers start in a second or less.
• Repeatability
– The way Docker images work and the fact that we can version them has some nice
qualities. A container can be created from an image on any machine and it will
always be the same. As a result of this, images can be tested locally or in a QA
environment.
• Packaging
– Everything needed to run an application is included in the image. This removes the
problem of conflicting versions of libraries on production machines. Customers can
run your image on any host that has Docker installed. Docker is compatible with
Windows, Linux, and OS X.
• Scalability
– We can run multiple containers at the same time and Docker will handle setting up
networking for us. The great thing about using Docker with SIP-related projects is
that all we have to do for a new container is add an SRV record and we are done. 10
How to Configure FreeSWITCH on
Docker? (1/9)
• Server System Environment
– CetOS 6.6 64bit
– 8GB RAM
– 10/100 NIC
– 512GB HardDisk
• Client
– Android/iOS Phone with Linphone APP (Recommend)
– Other SIP phone software
11
How to Configure FreeSWITCH on
Docker? (2/9)
• Install Docker
– $ sudo yum install docker-io
– $ sudo service docker start
– $ sudo chkconfig docker on
• Run Docker without root
– $ sudo groupadd docker
– $ sudo gpasswd -a myusername docker
– $ sudo service docker restart
– $ exit (shall re-login)
• Vertify
– $ docker –v
• Please reference the official website to get more detail (https://docs.docker.com/installation/centos/)
12
How to Configure FreeSWITCH on
Docker? (3/9)
• Prepare Install FreeSWITCH
– Download the centos docker image
• $ docker pull centos
– Verify Download
• $docker images
– Run the centos in a new docker container with port
forwarding
• $ docker run -it -p 8888:22 -p 5060:5060/udp -p
5060:5060/tcp -p 16384-16394:16384-16394/udp -p 16384-
16394:16384-16394/tcp -p 5080:5080/tcp -p 3478-
3479:3478-3479/udp -p 7077:7077/udp -p 7077:7077/tcp
centos /bin/bash
13
How to Configure FreeSWITCH on
Docker? (4/9)
• In the new CentOS container, Install FreeSWITCH
– Install the following dependencies:
• # yum install git autoconf automake libtool gcc-c++ libuuid-devel
zlib-devel libjpeg-devel ncurses-devel openssl-devel e2fsprogs-
devel ldns-devel wget python sqlite-devel libcurl-devel pcre-devel
speex-devel ldns-devel libedit-devel
– Download FreeSWITCH Source and Configure installation
• #cd /usr/local/src/
• # git clone https://freeswitch.org/stash/scm/fs/freeswitch.git
• # cd /usr/local/src/freeswitch
• # git checkout v1.5.14
• # ./bootstrap.sh
• #./configure
14
How to Configure FreeSWITCH on
Docker? (5/9)
• In the new CentOS container, Install FreeSWITCH
– Verify the “#./configure” result
15
How to Configure FreeSWITCH on
Docker? (6/9)
• In the new CentOS container, Install FreeSWITCH
– # make (This may take a few minutes.)
– Verify result
16
How to Configure FreeSWITCH on
Docker? (7/9)
• In the new CentOS container, Install FreeSWITCH
– # make install (This may take a few minutes too.)
– Verify result
17
How to Configure FreeSWITCH on
Docker? (8/9)
• In the new CentOS container, Install FreeSWITCH
– Install the voice resource
• make sounds-install
• make moh-install
– Configure the network setting
• $ cd /usr/local/freeswitch/
• Edit conf/autoload_configs/switch.conf.xml
– set rtp-start-port and rtp-end-port to the start (16384) and end (16394) of the
mapped port range.
• Edit conf/vars.xml
– update the external_rtp_ip and external_sip_ip to be the virtual IP
• Edit conf/sip_profiles/internal.xml
– Replace “auto-nat” to external IP
18
How to Configure FreeSWITCH on
Docker? (9/9)
• Simple FreeSWITCH operation
– Start FreeSWITCH
• /usr/local/freeswitch/bin/freeswitch -nc
– Stop FreeSWITCH
• freeswitch –stop
• Save the changed image as a new image
– $ docker commit [container-id] [new-image-name]
– Check by $ docker images
19
Configure a SIP phone to verify
FreeSWITCH (1/3)
• FreeSWITCH comes preconfigured with 20 SIP user
accounts. ) The user names are 1000 through 1019. You
can use any of these users for testing.
• Using Linphone (Download by Google Play)
– https://play.google.com/store/apps/details?id=org.linphon
e&hl=zh_TW
• The following are the SIP settings for user 1006:
– Username: 1006
– Authorization Username: 1006
– Password: 1234
– Domain: [IP address of your Docker Host Server]
20
Configure a SIP phone to verify
FreeSWITCH (2/3)
21
1. Configure Account 2. Configure Network 3. Wait for Registration
Configure a SIP phone to verify
FreeSWITCH (3/3)
22
4. Call 5000 to test the default IVR 5. Listen the default IVR
Reference
• https://docs.docker.com/
• https://freeswitch.org/confluence/display/FRE
ESWITCH/Installation
• http://www.linphone.org/user-guide.html
23

More Related Content

What's hot

Scaling FreeSWITCH Performance
Scaling FreeSWITCH PerformanceScaling FreeSWITCH Performance
Scaling FreeSWITCH PerformanceMoises Silva
 
SIPREC RTPEngine Media Forking
SIPREC RTPEngine Media ForkingSIPREC RTPEngine Media Forking
SIPREC RTPEngine Media ForkingHossein Yavari
 
Introduction to FreeSWITCH
Introduction to FreeSWITCHIntroduction to FreeSWITCH
Introduction to FreeSWITCHChien Cheng Wu
 
VPN site-to-site.pdf
VPN site-to-site.pdfVPN site-to-site.pdf
VPN site-to-site.pdfgorguindiaye
 
Kamailio with Docker and Kubernetes
Kamailio with Docker and KubernetesKamailio with Docker and Kubernetes
Kamailio with Docker and KubernetesPaolo Visintin
 
Alphorm.com Support de la formation Vmware Esxi 6.0
Alphorm.com Support de la formation Vmware Esxi 6.0Alphorm.com Support de la formation Vmware Esxi 6.0
Alphorm.com Support de la formation Vmware Esxi 6.0Alphorm
 
SIP Attack Handling (Kamailio World 2021)
SIP Attack Handling (Kamailio World 2021)SIP Attack Handling (Kamailio World 2021)
SIP Attack Handling (Kamailio World 2021)Fred Posner
 
Automating with NX-OS: Let's Get Started!
Automating with NX-OS: Let's Get Started!Automating with NX-OS: Let's Get Started!
Automating with NX-OS: Let's Get Started!Cisco DevNet
 
Cisco Live! :: Cisco ASR 9000 Architecture :: BRKARC-2003 | Las Vegas 2017
Cisco Live! :: Cisco ASR 9000 Architecture :: BRKARC-2003 | Las Vegas 2017Cisco Live! :: Cisco ASR 9000 Architecture :: BRKARC-2003 | Las Vegas 2017
Cisco Live! :: Cisco ASR 9000 Architecture :: BRKARC-2003 | Las Vegas 2017Bruno Teixeira
 
Introduction to Software Defined WANs
Introduction to Software Defined WANsIntroduction to Software Defined WANs
Introduction to Software Defined WANsAPNIC
 
VXLAN BGP EVPN: Technology Building Blocks
VXLAN BGP EVPN: Technology Building BlocksVXLAN BGP EVPN: Technology Building Blocks
VXLAN BGP EVPN: Technology Building BlocksAPNIC
 
An SFU/MCU integration for heterogeneous environments
An SFU/MCU integration for heterogeneous environmentsAn SFU/MCU integration for heterogeneous environments
An SFU/MCU integration for heterogeneous environmentsGiacomo Vacca
 
Volume Encryption In CloudStack
Volume Encryption In CloudStackVolume Encryption In CloudStack
Volume Encryption In CloudStackShapeBlue
 
The Basic Introduction of Open vSwitch
The Basic Introduction of Open vSwitchThe Basic Introduction of Open vSwitch
The Basic Introduction of Open vSwitchTe-Yen Liu
 
eBPF in the view of a storage developer
eBPF in the view of a storage developereBPF in the view of a storage developer
eBPF in the view of a storage developerRichárd Kovács
 
06 evpn use-case_reviewv1
06 evpn use-case_reviewv106 evpn use-case_reviewv1
06 evpn use-case_reviewv1ronsito
 

What's hot (20)

Scaling FreeSWITCH Performance
Scaling FreeSWITCH PerformanceScaling FreeSWITCH Performance
Scaling FreeSWITCH Performance
 
SIPREC RTPEngine Media Forking
SIPREC RTPEngine Media ForkingSIPREC RTPEngine Media Forking
SIPREC RTPEngine Media Forking
 
Introduction to FreeSWITCH
Introduction to FreeSWITCHIntroduction to FreeSWITCH
Introduction to FreeSWITCH
 
VPN site-to-site.pdf
VPN site-to-site.pdfVPN site-to-site.pdf
VPN site-to-site.pdf
 
Kamailio with Docker and Kubernetes
Kamailio with Docker and KubernetesKamailio with Docker and Kubernetes
Kamailio with Docker and Kubernetes
 
BGP Advanced topics
BGP Advanced topicsBGP Advanced topics
BGP Advanced topics
 
Alphorm.com Support de la formation Vmware Esxi 6.0
Alphorm.com Support de la formation Vmware Esxi 6.0Alphorm.com Support de la formation Vmware Esxi 6.0
Alphorm.com Support de la formation Vmware Esxi 6.0
 
SIP Attack Handling (Kamailio World 2021)
SIP Attack Handling (Kamailio World 2021)SIP Attack Handling (Kamailio World 2021)
SIP Attack Handling (Kamailio World 2021)
 
Automating with NX-OS: Let's Get Started!
Automating with NX-OS: Let's Get Started!Automating with NX-OS: Let's Get Started!
Automating with NX-OS: Let's Get Started!
 
Cisco Live! :: Cisco ASR 9000 Architecture :: BRKARC-2003 | Las Vegas 2017
Cisco Live! :: Cisco ASR 9000 Architecture :: BRKARC-2003 | Las Vegas 2017Cisco Live! :: Cisco ASR 9000 Architecture :: BRKARC-2003 | Las Vegas 2017
Cisco Live! :: Cisco ASR 9000 Architecture :: BRKARC-2003 | Las Vegas 2017
 
Introduction to Software Defined WANs
Introduction to Software Defined WANsIntroduction to Software Defined WANs
Introduction to Software Defined WANs
 
VXLAN BGP EVPN: Technology Building Blocks
VXLAN BGP EVPN: Technology Building BlocksVXLAN BGP EVPN: Technology Building Blocks
VXLAN BGP EVPN: Technology Building Blocks
 
An SFU/MCU integration for heterogeneous environments
An SFU/MCU integration for heterogeneous environmentsAn SFU/MCU integration for heterogeneous environments
An SFU/MCU integration for heterogeneous environments
 
Volume Encryption In CloudStack
Volume Encryption In CloudStackVolume Encryption In CloudStack
Volume Encryption In CloudStack
 
The Basic Introduction of Open vSwitch
The Basic Introduction of Open vSwitchThe Basic Introduction of Open vSwitch
The Basic Introduction of Open vSwitch
 
Kamailio - SIP Routing in Lua
Kamailio - SIP Routing in LuaKamailio - SIP Routing in Lua
Kamailio - SIP Routing in Lua
 
eBPF in the view of a storage developer
eBPF in the view of a storage developereBPF in the view of a storage developer
eBPF in the view of a storage developer
 
Sipwise rtpengine
Sipwise rtpengineSipwise rtpengine
Sipwise rtpengine
 
EVPN Introduction
EVPN IntroductionEVPN Introduction
EVPN Introduction
 
06 evpn use-case_reviewv1
06 evpn use-case_reviewv106 evpn use-case_reviewv1
06 evpn use-case_reviewv1
 

Similar to Configure FreeSWITCH VoIP PBX on Docker

Killer Docker Workflows for Development
Killer Docker Workflows for DevelopmentKiller Docker Workflows for Development
Killer Docker Workflows for DevelopmentChris Tankersley
 
Docker-Hanoi @DKT , Presentation about Docker Ecosystem
Docker-Hanoi @DKT , Presentation about Docker EcosystemDocker-Hanoi @DKT , Presentation about Docker Ecosystem
Docker-Hanoi @DKT , Presentation about Docker EcosystemVan Phuc
 
Detailed Introduction To Docker
Detailed Introduction To DockerDetailed Introduction To Docker
Detailed Introduction To Dockernklmish
 
Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Arun prasath
 
Docker Internet Money Gateway
Docker Internet Money GatewayDocker Internet Money Gateway
Docker Internet Money GatewayMathieu Buffenoir
 
Linux Containers and Docker SHARE.ORG Seattle 2015
Linux Containers and Docker SHARE.ORG Seattle 2015Linux Containers and Docker SHARE.ORG Seattle 2015
Linux Containers and Docker SHARE.ORG Seattle 2015Filipe Miranda
 
Docker and IBM Integration Bus
Docker and IBM Integration BusDocker and IBM Integration Bus
Docker and IBM Integration BusGeza Geleji
 
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018Mandi Walls
 
What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017Patrick Chanezon
 
OpenShift_Installation_Deep_Dive_Robert_Bohne.pdf
OpenShift_Installation_Deep_Dive_Robert_Bohne.pdfOpenShift_Installation_Deep_Dive_Robert_Bohne.pdf
OpenShift_Installation_Deep_Dive_Robert_Bohne.pdfssuser9e06a61
 
Deploying WSO2 Middleware on Containers
Deploying WSO2 Middleware on ContainersDeploying WSO2 Middleware on Containers
Deploying WSO2 Middleware on ContainersImesh Gunaratne
 
WSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on Containers
WSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on ContainersWSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on Containers
WSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on ContainersLakmal Warusawithana
 
OpenShift 4 installation
OpenShift 4 installationOpenShift 4 installation
OpenShift 4 installationRobert Bohne
 
Week 8 lecture material
Week 8 lecture materialWeek 8 lecture material
Week 8 lecture materialAnkit Gupta
 
Import golang; struct microservice - Codemotion Rome 2015
Import golang; struct microservice - Codemotion Rome 2015Import golang; struct microservice - Codemotion Rome 2015
Import golang; struct microservice - Codemotion Rome 2015Giorgio Cefaro
 
OSDC 2014: Nat Morris - Open Network Install Environment
OSDC 2014: Nat Morris - Open Network Install EnvironmentOSDC 2014: Nat Morris - Open Network Install Environment
OSDC 2014: Nat Morris - Open Network Install EnvironmentNETWAYS
 
WebSphere Application Server Liberty Profile and Docker
WebSphere Application Server Liberty Profile and DockerWebSphere Application Server Liberty Profile and Docker
WebSphere Application Server Liberty Profile and DockerDavid Currie
 
ContainerDayVietnam2016: Dockerize a small business
ContainerDayVietnam2016: Dockerize a small businessContainerDayVietnam2016: Dockerize a small business
ContainerDayVietnam2016: Dockerize a small businessDocker-Hanoi
 

Similar to Configure FreeSWITCH VoIP PBX on Docker (20)

Killer Docker Workflows for Development
Killer Docker Workflows for DevelopmentKiller Docker Workflows for Development
Killer Docker Workflows for Development
 
Docker-Hanoi @DKT , Presentation about Docker Ecosystem
Docker-Hanoi @DKT , Presentation about Docker EcosystemDocker-Hanoi @DKT , Presentation about Docker Ecosystem
Docker-Hanoi @DKT , Presentation about Docker Ecosystem
 
Detailed Introduction To Docker
Detailed Introduction To DockerDetailed Introduction To Docker
Detailed Introduction To Docker
 
Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment
 
Docker Internet Money Gateway
Docker Internet Money GatewayDocker Internet Money Gateway
Docker Internet Money Gateway
 
Docker img-no-disclosure
Docker img-no-disclosureDocker img-no-disclosure
Docker img-no-disclosure
 
Linux Containers and Docker SHARE.ORG Seattle 2015
Linux Containers and Docker SHARE.ORG Seattle 2015Linux Containers and Docker SHARE.ORG Seattle 2015
Linux Containers and Docker SHARE.ORG Seattle 2015
 
Docker and IBM Integration Bus
Docker and IBM Integration BusDocker and IBM Integration Bus
Docker and IBM Integration Bus
 
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
 
What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017
 
moscmy2016: Extending Docker
moscmy2016: Extending Dockermoscmy2016: Extending Docker
moscmy2016: Extending Docker
 
OpenShift_Installation_Deep_Dive_Robert_Bohne.pdf
OpenShift_Installation_Deep_Dive_Robert_Bohne.pdfOpenShift_Installation_Deep_Dive_Robert_Bohne.pdf
OpenShift_Installation_Deep_Dive_Robert_Bohne.pdf
 
Deploying WSO2 Middleware on Containers
Deploying WSO2 Middleware on ContainersDeploying WSO2 Middleware on Containers
Deploying WSO2 Middleware on Containers
 
WSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on Containers
WSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on ContainersWSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on Containers
WSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on Containers
 
OpenShift 4 installation
OpenShift 4 installationOpenShift 4 installation
OpenShift 4 installation
 
Week 8 lecture material
Week 8 lecture materialWeek 8 lecture material
Week 8 lecture material
 
Import golang; struct microservice - Codemotion Rome 2015
Import golang; struct microservice - Codemotion Rome 2015Import golang; struct microservice - Codemotion Rome 2015
Import golang; struct microservice - Codemotion Rome 2015
 
OSDC 2014: Nat Morris - Open Network Install Environment
OSDC 2014: Nat Morris - Open Network Install EnvironmentOSDC 2014: Nat Morris - Open Network Install Environment
OSDC 2014: Nat Morris - Open Network Install Environment
 
WebSphere Application Server Liberty Profile and Docker
WebSphere Application Server Liberty Profile and DockerWebSphere Application Server Liberty Profile and Docker
WebSphere Application Server Liberty Profile and Docker
 
ContainerDayVietnam2016: Dockerize a small business
ContainerDayVietnam2016: Dockerize a small businessContainerDayVietnam2016: Dockerize a small business
ContainerDayVietnam2016: Dockerize a small business
 

Recently uploaded

Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptrcbcrtm
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 

Recently uploaded (20)

Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.ppt
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 

Configure FreeSWITCH VoIP PBX on Docker

  • 1. FreeSWITCH on Docker Stanley Wu (吳建澄) skyeyester@gmail.com Sep. 04, 2015
  • 2. Outline • Background Knowledge of IP Telephony System • Introduction to FreeSWITCH • Introduction to Docker • Why Use FreeSWITCH on Docker? • How to Configure FreeSWITCH on Docker? • How to Configure a SIP phone and Verify FreeSWITCH? 2
  • 3. Background Knowledge of IP Telephony System (1/3) • IP Telephony System is used to transmit voice/video calls over the IP data network via wired or wireless network connection. • IP Telephony System is also known as voice/video over IP • The benefits of IP Telephony System: – Low Cost (Reduce telecom cost via toll by pass) – Scalable (Add extensions flexibility) – Mobility (Make & receive calls from any place or platform, Android, iOS, Linux or Windows) – More advanced features and software integration (video conference, instant message or linking CRM System) 3
  • 4. Background Knowledge of IP Telephony System (2/3) • The challenges of IP Telephony System: – Complicated system configuration procedure – Service quality depends on network quality • Why we may notice on IP Telephony System? – The system configuration procedure could be simplified – Radio access technology is improved and the bandwidth, speed, cost are more efficiency 4
  • 5. Background Knowledge of IP Telephony System (3/3) • The key components of IP Telephony System – IP Phone or Softphone • LinPhone- LinPhone is a Voice over Internet Protocol (VoIP) software on iOS and Android platform • SIPdroid- LinPhone is a VoIP software on Android • Xlite - X-Lite is a proprietary freeware VoIP soft phone that uses the Session Initiation Protocol. – SIP Server or PBX (Private Branch Exchange) • FreeSWITCH - Telephony platform to facilitate the creation of voice and chat driven products • Asterisk - Open Source VoIP PBX • GNU Gatekeeper - VOIP gatekeeper for H.323 5
  • 6. Introduction to FreeSWITCH (1/2) • FreeSWITCH is designed to be a telephony platform, a soft switch to route and interconnect communications protocols using a wide range of media, all of this while being able to handle a growing amount of work. • Features of FreeSWITCH – Default implementation is for a PBX or Softswitch – Modular system allows you to extend the system easily Applications may be written in C, Java, .NET etc. – Handle thousands of concurrent channels with media on a standard PC Interoperates with many different products and protocols • such as CallWeaver (formerly known as OpenPBX.org), • Bayonne, Yate, sipXecs or Asterisk • Supports SIP, H.323, IAX2 etc. 6
  • 7. Introduction to FreeSWITCH(2/2) • Functions of FreeSWITCH – Become back-to-back user agent (B2BUA) – Handle all SIP signaling – route calls, transfer calls, and can even translate codecs between different legs of the call. – Transcode RTP streams – Offer value-added features such as voicemail, call transfers, and others. 7
  • 8. Introduction to Docker • Reproducible • Portable • Like VMs, but different 8
  • 9. Why FreeSWITCH on Docker? (1/2) • Docker makes FreeSWITCH installation, deployment and configuration more easier • There are a lot of concerns on using Virtual Machines in Telephony world. Especially for the server’s that handles the Real Time voice packets, as voice quality is pretty important in Telephony. • But the lightweight container can just decrease the performance into tolerable situation • We can enhance the whole telephony system performance in the other part (e.g. latency via SDN, etc) 9
  • 10. Why FreeSWITCH on Docker? (2/2) • Speed – Each container shares the same kernel as the host operating system, so there is no overhead of a hypervisor. Resources are allocated as needed, rather than up front. Docker containers start in a second or less. • Repeatability – The way Docker images work and the fact that we can version them has some nice qualities. A container can be created from an image on any machine and it will always be the same. As a result of this, images can be tested locally or in a QA environment. • Packaging – Everything needed to run an application is included in the image. This removes the problem of conflicting versions of libraries on production machines. Customers can run your image on any host that has Docker installed. Docker is compatible with Windows, Linux, and OS X. • Scalability – We can run multiple containers at the same time and Docker will handle setting up networking for us. The great thing about using Docker with SIP-related projects is that all we have to do for a new container is add an SRV record and we are done. 10
  • 11. How to Configure FreeSWITCH on Docker? (1/9) • Server System Environment – CetOS 6.6 64bit – 8GB RAM – 10/100 NIC – 512GB HardDisk • Client – Android/iOS Phone with Linphone APP (Recommend) – Other SIP phone software 11
  • 12. How to Configure FreeSWITCH on Docker? (2/9) • Install Docker – $ sudo yum install docker-io – $ sudo service docker start – $ sudo chkconfig docker on • Run Docker without root – $ sudo groupadd docker – $ sudo gpasswd -a myusername docker – $ sudo service docker restart – $ exit (shall re-login) • Vertify – $ docker –v • Please reference the official website to get more detail (https://docs.docker.com/installation/centos/) 12
  • 13. How to Configure FreeSWITCH on Docker? (3/9) • Prepare Install FreeSWITCH – Download the centos docker image • $ docker pull centos – Verify Download • $docker images – Run the centos in a new docker container with port forwarding • $ docker run -it -p 8888:22 -p 5060:5060/udp -p 5060:5060/tcp -p 16384-16394:16384-16394/udp -p 16384- 16394:16384-16394/tcp -p 5080:5080/tcp -p 3478- 3479:3478-3479/udp -p 7077:7077/udp -p 7077:7077/tcp centos /bin/bash 13
  • 14. How to Configure FreeSWITCH on Docker? (4/9) • In the new CentOS container, Install FreeSWITCH – Install the following dependencies: • # yum install git autoconf automake libtool gcc-c++ libuuid-devel zlib-devel libjpeg-devel ncurses-devel openssl-devel e2fsprogs- devel ldns-devel wget python sqlite-devel libcurl-devel pcre-devel speex-devel ldns-devel libedit-devel – Download FreeSWITCH Source and Configure installation • #cd /usr/local/src/ • # git clone https://freeswitch.org/stash/scm/fs/freeswitch.git • # cd /usr/local/src/freeswitch • # git checkout v1.5.14 • # ./bootstrap.sh • #./configure 14
  • 15. How to Configure FreeSWITCH on Docker? (5/9) • In the new CentOS container, Install FreeSWITCH – Verify the “#./configure” result 15
  • 16. How to Configure FreeSWITCH on Docker? (6/9) • In the new CentOS container, Install FreeSWITCH – # make (This may take a few minutes.) – Verify result 16
  • 17. How to Configure FreeSWITCH on Docker? (7/9) • In the new CentOS container, Install FreeSWITCH – # make install (This may take a few minutes too.) – Verify result 17
  • 18. How to Configure FreeSWITCH on Docker? (8/9) • In the new CentOS container, Install FreeSWITCH – Install the voice resource • make sounds-install • make moh-install – Configure the network setting • $ cd /usr/local/freeswitch/ • Edit conf/autoload_configs/switch.conf.xml – set rtp-start-port and rtp-end-port to the start (16384) and end (16394) of the mapped port range. • Edit conf/vars.xml – update the external_rtp_ip and external_sip_ip to be the virtual IP • Edit conf/sip_profiles/internal.xml – Replace “auto-nat” to external IP 18
  • 19. How to Configure FreeSWITCH on Docker? (9/9) • Simple FreeSWITCH operation – Start FreeSWITCH • /usr/local/freeswitch/bin/freeswitch -nc – Stop FreeSWITCH • freeswitch –stop • Save the changed image as a new image – $ docker commit [container-id] [new-image-name] – Check by $ docker images 19
  • 20. Configure a SIP phone to verify FreeSWITCH (1/3) • FreeSWITCH comes preconfigured with 20 SIP user accounts. ) The user names are 1000 through 1019. You can use any of these users for testing. • Using Linphone (Download by Google Play) – https://play.google.com/store/apps/details?id=org.linphon e&hl=zh_TW • The following are the SIP settings for user 1006: – Username: 1006 – Authorization Username: 1006 – Password: 1234 – Domain: [IP address of your Docker Host Server] 20
  • 21. Configure a SIP phone to verify FreeSWITCH (2/3) 21 1. Configure Account 2. Configure Network 3. Wait for Registration
  • 22. Configure a SIP phone to verify FreeSWITCH (3/3) 22 4. Call 5000 to test the default IVR 5. Listen the default IVR