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

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
 
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
 
Top 5 Challenges To Add Web Calls to Truphone VoIP Platform
Top 5 Challenges To Add Web Calls to Truphone VoIP PlatformTop 5 Challenges To Add Web Calls to Truphone VoIP Platform
Top 5 Challenges To Add Web Calls to Truphone VoIP PlatformGiacomo Vacca
 
Three Ways Kamailio Can Help Your FreeSWITCH Deployment
Three Ways Kamailio Can Help Your FreeSWITCH DeploymentThree Ways Kamailio Can Help Your FreeSWITCH Deployment
Three Ways Kamailio Can Help Your FreeSWITCH DeploymentFred Posner
 
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개OpenStack Korea Community
 
promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...
promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...
promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...Tokuhiro Matsuno
 
Infrastructure as "Code" with Pulumi
Infrastructure as "Code" with PulumiInfrastructure as "Code" with Pulumi
Infrastructure as "Code" with PulumiVenura Athukorala
 
Kamailio, FreeSWITCH, and You
Kamailio, FreeSWITCH, and YouKamailio, FreeSWITCH, and You
Kamailio, FreeSWITCH, and YouFred Posner
 
Media Handling in FreeSWITCH
Media Handling in FreeSWITCHMedia Handling in FreeSWITCH
Media Handling in FreeSWITCHMoises Silva
 
Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...
Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...
Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...Vietnam Open Infrastructure User Group
 
FreeSWITCH Monitoring
FreeSWITCH MonitoringFreeSWITCH Monitoring
FreeSWITCH MonitoringMoises Silva
 
Discover How IBM Uses InfluxDB and Grafana to Help Clients Monitor Large Prod...
Discover How IBM Uses InfluxDB and Grafana to Help Clients Monitor Large Prod...Discover How IBM Uses InfluxDB and Grafana to Help Clients Monitor Large Prod...
Discover How IBM Uses InfluxDB and Grafana to Help Clients Monitor Large Prod...InfluxData
 
Homer - Workshop at Kamailio World 2017
Homer - Workshop at Kamailio World 2017Homer - Workshop at Kamailio World 2017
Homer - Workshop at Kamailio World 2017Giacomo Vacca
 
Introduction to OpenStack Trove & Database as a Service
Introduction to OpenStack Trove & Database as a ServiceIntroduction to OpenStack Trove & Database as a Service
Introduction to OpenStack Trove & Database as a ServiceTesora
 
SIP Testing with FreeSWITCH
SIP Testing with FreeSWITCHSIP Testing with FreeSWITCH
SIP Testing with FreeSWITCHMoises Silva
 
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
 

What's hot (20)

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
 
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
 
Neutron packet logging framework
Neutron packet logging frameworkNeutron packet logging framework
Neutron packet logging framework
 
Top 5 Challenges To Add Web Calls to Truphone VoIP Platform
Top 5 Challenges To Add Web Calls to Truphone VoIP PlatformTop 5 Challenges To Add Web Calls to Truphone VoIP Platform
Top 5 Challenges To Add Web Calls to Truphone VoIP Platform
 
Kamailio - Secure Communication
Kamailio - Secure CommunicationKamailio - Secure Communication
Kamailio - Secure Communication
 
Three Ways Kamailio Can Help Your FreeSWITCH Deployment
Three Ways Kamailio Can Help Your FreeSWITCH DeploymentThree Ways Kamailio Can Help Your FreeSWITCH Deployment
Three Ways Kamailio Can Help Your FreeSWITCH Deployment
 
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
 
promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...
promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...
promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...
 
Infrastructure as "Code" with Pulumi
Infrastructure as "Code" with PulumiInfrastructure as "Code" with Pulumi
Infrastructure as "Code" with Pulumi
 
Kamailio, FreeSWITCH, and You
Kamailio, FreeSWITCH, and YouKamailio, FreeSWITCH, and You
Kamailio, FreeSWITCH, and You
 
Media Handling in FreeSWITCH
Media Handling in FreeSWITCHMedia Handling in FreeSWITCH
Media Handling in FreeSWITCH
 
Prometheus monitoring
Prometheus monitoringPrometheus monitoring
Prometheus monitoring
 
Kamailio on Docker
Kamailio on DockerKamailio on Docker
Kamailio on Docker
 
Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...
Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...
Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...
 
FreeSWITCH Monitoring
FreeSWITCH MonitoringFreeSWITCH Monitoring
FreeSWITCH Monitoring
 
Discover How IBM Uses InfluxDB and Grafana to Help Clients Monitor Large Prod...
Discover How IBM Uses InfluxDB and Grafana to Help Clients Monitor Large Prod...Discover How IBM Uses InfluxDB and Grafana to Help Clients Monitor Large Prod...
Discover How IBM Uses InfluxDB and Grafana to Help Clients Monitor Large Prod...
 
Homer - Workshop at Kamailio World 2017
Homer - Workshop at Kamailio World 2017Homer - Workshop at Kamailio World 2017
Homer - Workshop at Kamailio World 2017
 
Introduction to OpenStack Trove & Database as a Service
Introduction to OpenStack Trove & Database as a ServiceIntroduction to OpenStack Trove & Database as a Service
Introduction to OpenStack Trove & Database as a Service
 
SIP Testing with FreeSWITCH
SIP Testing with FreeSWITCHSIP Testing with FreeSWITCH
SIP Testing with FreeSWITCH
 
SIP Attack Handling (Kamailio World 2021)
SIP Attack Handling (Kamailio World 2021)SIP Attack Handling (Kamailio World 2021)
SIP Attack Handling (Kamailio World 2021)
 

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

Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
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
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
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
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 

Recently uploaded (20)

Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
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...
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
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
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 

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