FreeSWITCH的核心開(kāi)發(fā)人員都使用Debian,但國內好像用CentOS的比較多,再加上各種版本差異,因此,這個(gè)問(wèn)題其實(shí)沒(méi)有一個(gè)最好的答案。我們一般會(huì )推薦Debian 10,但大多數人其實(shí)不聽(tīng)我們的推薦。
不過(guò),Docker的出現在一定情況下解決了這個(gè)問(wèn)題。因此,我們做了一個(gè)xswitch-free Docker解決方案,獻給大家。希望大家能快速上手。
xswitch-free
xswitch-free是一個(gè)Docker鏡象,與https://xswitch.cn同款,有刪減。本鏡像一般都基于FreeSWITCH最新的版本,有一些我們自己的補丁。我們絕大多數的補丁都已經(jīng)合并到了上游的FreeSWITCH倉庫中,其它的一些補丁也會(huì )逐步開(kāi)源出來(lái)。
很多朋友想試用FreeSWITCH,但是從源代碼安裝比較復雜。FreeSWITCH雖然有相應的安裝包,但用起來(lái)也不那么方便。
現在,Docker已經(jīng)成了事實(shí)上的部署方式,我們xswitch.cn早已采用Docker容器化部署。為了大家更容易使用,我們做了這一鏡像,希望對大家有用。
環(huán)境準備
首先,你要有一個(gè)Docker環(huán)境,如何安裝Docker超出了本文的范圍,您可以參閱以下鏈接,或自行查找相關(guān)資料安裝。安裝時(shí)注意有選擇國內鏡像站點(diǎn)的一些設置比較有用,在以后使用的時(shí)候可以節省一些下載鏡像的時(shí)間。
https://www.runoob.com/docker/windows-docker-install.html
https://www.runoob.com/docker/ubuntu-docker-install.html
https://www.runoob.com/docker/macos-docker-install.html
https://yq.aliyun.com/articles/625403
Docker Compose也需要安裝,但不是必須的,只是下面的命令都依賴(lài)于Docker Compose。
本鏡像支持在Linux、Mac、Windows宿主機上運行。
快速上手
很簡(jiǎn)單,先看命令:
- git clone https://github.com/rts-cn/xswitch-free.git
- cd xswitch-free
- make setup # 可選,生成。env,修改生成的。env里的環(huán)境變量
- make start
首先,Clone本項目,然后進(jìn)入xswitch-free目錄,make setup會(huì )生成。env,里面是相關(guān)的環(huán)境變量,可以根據情況修改(一般至少要將EXT_IP改為你自己宿主機的IP)。最后make start會(huì )以NAT方式啟動(dòng)容器。
啟動(dòng)后,你就可以用你稱(chēng)手的軟電話(huà)注冊到FreeSWITCH的IP上(默認端口5060),用戶(hù)名密碼任意,打電話(huà)可以看到日志,注冊?xún)蓚(gè)不同的號碼可以互撥,試一把看爽不爽。
如果想進(jìn)入控制臺,可以打開(kāi)另一個(gè)終端,執行make cli。
環(huán)境變量
以下環(huán)境變量,有相關(guān)的默認值
- SIP_PORT:默認SIP端口
- SIP_TLS_PORT:SIP TLS端口
- SIP_PUBLIC_PORT SIP public Profile端口
- SIP_PUBLIC_TLS_PORT:SIP public Profile TLS端口
- RTP_START:起始RTP端口
- RTP_END:結束RTP端口
- EXT_IP:宿主機IP,或公網(wǎng)IP,默認SIP Profile中的ext-sip-ip及ext-rtp-ip會(huì )用到它。
- FREESWITCH_DOMAIN:默認的FreeSWITCH域
- LOCAL_NETWORK_ACL:默認為none,在host網(wǎng)絡(luò )模式下可以關(guān)閉。
配置
本鏡像沒(méi)有使用FreeSWITCH的默認配置,FreeSWITCH的默認配置為了展示FreeSWITCH各種強大的功能設計,復雜且初學(xué)者難以理解,所以,我們使用了最小化的配置,目標是讓使用者快速上手,并進(jìn)一步細化打造自己的鏡像和容器。
以下配置接受任何注冊和打電話(huà)。也就是說(shuō),你可以用軟電話(huà)。
param name="accept-blind-reg" value="true"/
param name="accept-blind-auth" value="true"/
如果沒(méi)有配置EXT_IP環(huán)境變量,需要將配置中如下內容注釋掉。
param name="ext-rtp-ip" value="$${ext_rtp_ip}"/
param name="ext-sip-ip" value="$${ext_sip_ip}"/
常用命令
常用命令都在Makefile中,看起來(lái)也很直觀(guān)。如果你的環(huán)境中沒(méi)有make,也可以直接運行相關(guān)的命令。
- make setup:初始化環(huán)境,如果。env不存在,會(huì )從env.example復制。
- make start:?jiǎn)?dòng)鏡像。
- make run:?jiǎn)?dòng)鏡像并進(jìn)入后臺模式。
- make cli:進(jìn)入容器并進(jìn)入fs_cli。
- make bash:進(jìn)入容器并進(jìn)入bash Shell環(huán)境。可以進(jìn)一步執行fs_cli等。
- make stop:停止容器。
- make pull:更新鏡像,更新后可以用。
如果沒(méi)有安裝Docker Compose,也可以直接使用Docker命令啟動(dòng)容器,如:
docker run --rm --name xswitch-free \
-p 5060:5060/udp \
-p 2000-2020:2000-2020/udp \
-e ext_ip=192.168.7.7 \
-e sip_port=5060 \
-e sip_public_port=5080 \
-e rtp_start=2000 \
-e rtp_end=2010 \
xswitch-free
可以看出,這樣需要輸入很多參數,所以,還是使用Docker Compose比較方便。
修改配置
可以直接進(jìn)入容器修改配置,并在終端上reload xml或重載相關(guān)模塊使之生效。但在容器重啟后修改會(huì )丟失。
如果想保持自己的修改,那就需要把配置文件放到宿主機上。通過(guò)以下命令可以生成默認的配置文件。
make eject
然后修改docker-compose.yml,取消掉以下行的注釋?zhuān)?/div>
volumes:
-conf/:/usr/local/freeswitch/conf:cached
修改后需要重啟鏡像:
- make stop
- make start
- host模式網(wǎng)絡(luò )
典型的Docker容器運行方式是NAT型的網(wǎng)絡(luò ),有時(shí)候,使用host模式網(wǎng)絡(luò )會(huì )比較方便(因為少了一層NAT)。本鏡像不需要特殊的配置就可以使用host網(wǎng)絡(luò ),只需要在docker-compose.yml中啟用即可。
如果環(huán)境變量中沒(méi)有EXT_IP,則可能無(wú)法啟動(dòng)Sofia Profile,請禁掉default.xml和public.xml中的ext-sip-ip和ext-rtp-ip參數。
默認的配置是NAT模式,我們在Profile中啟動(dòng)了如下配置:
param name="local-network-acl" value="$${local_net_acl}"/
注意,該環(huán)境變量默認為none,它實(shí)際上是一個(gè)不存在的ACL,所以FreeSWITCH對任何來(lái)源IP都會(huì )認為它在NAT后面。
如果在host網(wǎng)絡(luò )模式下可以在。env中注釋掉這個(gè)環(huán)境變量,讓它使用默認的localnet.auto。
制作自己的鏡像
你可以根據本鏡像制作自己的鏡像。ToDo
報告問(wèn)題
如果你發(fā)現有任何問(wèn)題,請到Git Hub給我們提一個(gè)Issue。
歡迎提Pull Request。
測試號碼
默認配置可以撥打如下測試號碼:
- 9196 回音測試Echo
- 888 XSWITCH技術(shù)服務(wù)電話(huà)
- 3000 進(jìn)入會(huì )議
- 其它號碼,查找本地注冊用戶(hù)
關(guān)于我們
我們是https://xswitch.cn背后的團隊。
FAQ
- Q:本鏡像是否適合在生產(chǎn)使用?
- A:我們就是在生產(chǎn)上使用的,所以,沒(méi)有任何問(wèn)題。只是,我們默認的配置是為了幫助大家學(xué)習和入門(mén),在生產(chǎn)上使用,推薦使用我們有商業(yè)技術(shù)支持的版本。
- Q:我可以安裝其它軟件嗎?
- A:本鏡像基于Debian Buster制作,你可以使用apt-get update以及apt-get install xxxx安裝任何其它軟件。
廣告福利時(shí)間:

2020年最新一期FreeSWITCH高級培訓正在火熱報名中。現在掃描圖片二維碼還可以享受8折優(yōu)惠,想報名的小伙伴要抓緊時(shí)間啦!
另外,該鏡像是我們在xswitch.cn上使用的鏡像的精簡(jiǎn)版,如果你想了解更多不妨閱讀下面的幾篇文章:
XSWITCH,我自己的通信助手
XSWITCH大規模視頻會(huì )議解決方案
說(shuō)說(shuō)遠程辦公和視頻會(huì )議
文章詳情https://github.com/rts-cn/xswitch-free了解~
【免責聲明】本文僅代表作者本人觀(guān)點(diǎn),與CTI論壇無(wú)關(guān)。CTI論壇對文中陳述、觀(guān)點(diǎn)判斷保持中立,不對所包含內容的準確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔全部責任。
相關(guān)閱讀:
- ·FreeSWITCH高級培訓2020秋季班(北京站)2020-09-21 14:01:09
- ·FreeSWITCH 福利|內部培訓課大公開(kāi)2020-07-29 15:56:13
- ·FreeSWITCH中文社區RTS線(xiàn)上交流會(huì )2020-07-24 14:31:08
- ·FreeSWITCH中文社區RTS線(xiàn)上交流會(huì )2020-07-15 14:59:19
- ·FreeSWITCH 1.10.3發(fā)布2020-05-13 09:16:26
- ·當你發(fā)現了FreeSWITCH Slack中文頻道2020-03-24 16:24:45
- ·教你一個(gè)建立企業(yè)通信黑名單的方法2019-12-30 13:47:51
- ·2019 FreeSWITCH高級培訓班 北京站圓滿(mǎn)結束2019-12-02 09:34:02
- ·FreeSWITCH第八屆開(kāi)發(fā)者沙龍圓滿(mǎn)結束2019-11-28 13:56:43
- ·星昊通科技攜手TelcoBridges出席FreeSWITCH開(kāi)發(fā)者沙龍2019-11-14 09:46:29