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

Expanding Asterisk with Kamailio
Expanding Asterisk with KamailioExpanding Asterisk with Kamailio
Expanding Asterisk with KamailioFred Posner
 
FreeSWITCH Modules for Asterisk Developers
FreeSWITCH Modules for Asterisk DevelopersFreeSWITCH Modules for Asterisk Developers
FreeSWITCH Modules for Asterisk DevelopersMoises Silva
 
Asterisk presentation v1.1
Asterisk presentation v1.1Asterisk presentation v1.1
Asterisk presentation v1.1Farhan Fuad
 
Kamailio :: A Quick Introduction
Kamailio :: A Quick IntroductionKamailio :: A Quick Introduction
Kamailio :: A Quick IntroductionOlle E Johansson
 
Cisco Live Brksec 3032 - NGFW Clustering
Cisco Live Brksec 3032 - NGFW ClusteringCisco Live Brksec 3032 - NGFW Clustering
Cisco Live Brksec 3032 - NGFW Clusteringib_cims
 
Enable DPDK and SR-IOV for containerized virtual network functions with zun
Enable DPDK and SR-IOV for containerized virtual network functions with zunEnable DPDK and SR-IOV for containerized virtual network functions with zun
Enable DPDK and SR-IOV for containerized virtual network functions with zunheut2008
 
session initiation protocol - SIP
session initiation protocol - SIPsession initiation protocol - SIP
session initiation protocol - SIPMahmoud Abudaqa
 
Nhóm 9-khái-niệm-ims
Nhóm 9-khái-niệm-imsNhóm 9-khái-niệm-ims
Nhóm 9-khái-niệm-imsNhân Nhầm
 
FreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBCFreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBCMoises Silva
 
Đồ án điện tử viễn thông Nghiên cứu về OPENSIPS - sdt/ ZALO 093 189 2701
Đồ án điện tử viễn thông Nghiên cứu về OPENSIPS - sdt/ ZALO 093 189 2701Đồ án điện tử viễn thông Nghiên cứu về OPENSIPS - sdt/ ZALO 093 189 2701
Đồ án điện tử viễn thông Nghiên cứu về OPENSIPS - sdt/ ZALO 093 189 2701Viết thuê báo cáo thực tập giá rẻ
 
What is-twamp
What is-twampWhat is-twamp
What is-twampNir Cohen
 
Diameter Processing with Kamailio
Diameter Processing with KamailioDiameter Processing with Kamailio
Diameter Processing with KamailioCarsten Bock
 
pfSense firewall workshop guide
pfSense firewall workshop guidepfSense firewall workshop guide
pfSense firewall workshop guideSopon Tumchota
 
50137078 đề-tai-giao-thức-sip (1)
50137078 đề-tai-giao-thức-sip (1)50137078 đề-tai-giao-thức-sip (1)
50137078 đề-tai-giao-thức-sip (1)didauday01
 
Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험
Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험
Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험Seung-Hoon Baek
 
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
 

What's hot (20)

Expanding Asterisk with Kamailio
Expanding Asterisk with KamailioExpanding Asterisk with Kamailio
Expanding Asterisk with Kamailio
 
FreeSWITCH Modules for Asterisk Developers
FreeSWITCH Modules for Asterisk DevelopersFreeSWITCH Modules for Asterisk Developers
FreeSWITCH Modules for Asterisk Developers
 
Asterisk presentation v1.1
Asterisk presentation v1.1Asterisk presentation v1.1
Asterisk presentation v1.1
 
VXLAN
VXLANVXLAN
VXLAN
 
Kamailio :: A Quick Introduction
Kamailio :: A Quick IntroductionKamailio :: A Quick Introduction
Kamailio :: A Quick Introduction
 
Cisco Live Brksec 3032 - NGFW Clustering
Cisco Live Brksec 3032 - NGFW ClusteringCisco Live Brksec 3032 - NGFW Clustering
Cisco Live Brksec 3032 - NGFW Clustering
 
Enable DPDK and SR-IOV for containerized virtual network functions with zun
Enable DPDK and SR-IOV for containerized virtual network functions with zunEnable DPDK and SR-IOV for containerized virtual network functions with zun
Enable DPDK and SR-IOV for containerized virtual network functions with zun
 
session initiation protocol - SIP
session initiation protocol - SIPsession initiation protocol - SIP
session initiation protocol - SIP
 
LPWAN for IoT
LPWAN for IoTLPWAN for IoT
LPWAN for IoT
 
Nhóm 9-khái-niệm-ims
Nhóm 9-khái-niệm-imsNhóm 9-khái-niệm-ims
Nhóm 9-khái-niệm-ims
 
FreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBCFreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBC
 
Đồ án điện tử viễn thông Nghiên cứu về OPENSIPS - sdt/ ZALO 093 189 2701
Đồ án điện tử viễn thông Nghiên cứu về OPENSIPS - sdt/ ZALO 093 189 2701Đồ án điện tử viễn thông Nghiên cứu về OPENSIPS - sdt/ ZALO 093 189 2701
Đồ án điện tử viễn thông Nghiên cứu về OPENSIPS - sdt/ ZALO 093 189 2701
 
What is-twamp
What is-twampWhat is-twamp
What is-twamp
 
Diameter Processing with Kamailio
Diameter Processing with KamailioDiameter Processing with Kamailio
Diameter Processing with Kamailio
 
Introduction to vxlan
Introduction to vxlanIntroduction to vxlan
Introduction to vxlan
 
Cours syslog
Cours syslogCours syslog
Cours syslog
 
pfSense firewall workshop guide
pfSense firewall workshop guidepfSense firewall workshop guide
pfSense firewall workshop guide
 
50137078 đề-tai-giao-thức-sip (1)
50137078 đề-tai-giao-thức-sip (1)50137078 đề-tai-giao-thức-sip (1)
50137078 đề-tai-giao-thức-sip (1)
 
Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험
Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험
Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험
 
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
 

Similar to FreeSWITCH 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
 
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
 
Deploying WSO2 Middleware on Containers
Deploying WSO2 Middleware on ContainersDeploying WSO2 Middleware on Containers
Deploying WSO2 Middleware on ContainersImesh Gunaratne
 
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 FreeSWITCH 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
 
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
 
Deploying WSO2 Middleware on Containers
Deploying WSO2 Middleware on ContainersDeploying WSO2 Middleware on Containers
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

The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
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
 
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.
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
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
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 

Recently uploaded (20)

The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
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)
 
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
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
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
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 

FreeSWITCH 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