FreeSWITCH的核心開(kāi)發(fā)人員都使用Debian,但國(guó)內(nèi)好像用CentOS的比較多,再加上各種版本差異,因此,這個(gè)問(wèn)題其實(shí)沒(méi)有一個(gè)最好的答案。我們一般會(huì)推薦Debian 10,但大多數(shù)人其實(shí)不聽(tīng)我們的推薦。
不過(guò),Docker的出現(xiàn)在一定情況下解決了這個(gè)問(wèn)題。因此,我們做了一個(gè)xswitch-free Docker解決方案,獻(xiàn)給大家。希望大家能快速上手。
xswitch-free
xswitch-free是一個(gè)Docker鏡象,與https://xswitch.cn同款,有刪減。本鏡像一般都基于FreeSWITCH最新的版本,有一些我們自己的補(bǔ)丁。我們絕大多數(shù)的補(bǔ)丁都已經(jīng)合并到了上游的FreeSWITCH倉(cāng)庫(kù)中,其它的一些補(bǔ)丁也會(huì)逐步開(kāi)源出來(lái)。
很多朋友想試用FreeSWITCH,但是從源代碼安裝比較復(fù)雜。FreeSWITCH雖然有相應(yīng)的安裝包,但用起來(lái)也不那么方便。
現(xiàn)在,Docker已經(jīng)成了事實(shí)上的部署方式,我們xswitch.cn早已采用Docker容器化部署。為了大家更容易使用,我們做了這一鏡像,希望對(duì)大家有用。
環(huán)境準(zhǔn)備
首先,你要有一個(gè)Docker環(huán)境,如何安裝Docker超出了本文的范圍,您可以參閱以下鏈接,或自行查找相關(guān)資料安裝。安裝時(shí)注意有選擇國(guó)內(nèi)鏡像站點(diǎn)的一些設(shè)置比較有用,在以后使用的時(shí)候可以節(jié)省一些下載鏡像的時(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也需要安裝,但不是必須的,只是下面的命令都依賴于Docker Compose。
本鏡像支持在Linux、Mac、Windows宿主機(jī)上運(yùn)行。
快速上手
很簡(jiǎn)單,先看命令:
- git clone https://github.com/rts-cn/xswitch-free.git
- cd xswitch-free
- make setup # 可選,生成。env,修改生成的。env里的環(huán)境變量
- make start
首先,Clone本項(xiàng)目,然后進(jìn)入xswitch-free目錄,make setup會(huì)生成。env,里面是相關(guān)的環(huán)境變量,可以根據(jù)情況修改(一般至少要將EXT_IP改為你自己宿主機(jī)的IP)。最后make start會(huì)以NAT方式啟動(dòng)容器。
啟動(dòng)后,你就可以用你稱(chēng)手的軟電話注冊(cè)到FreeSWITCH的IP上(默認(rèn)端口5060),用戶名密碼任意,打電話可以看到日志,注冊(cè)兩個(gè)不同的號(hào)碼可以互撥,試一把看爽不爽。
如果想進(jìn)入控制臺(tái),可以打開(kāi)另一個(gè)終端,執(zhí)行make cli。
環(huán)境變量
以下環(huán)境變量,有相關(guān)的默認(rèn)值
- SIP_PORT:默認(rèn)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:結(jié)束RTP端口
- EXT_IP:宿主機(jī)IP,或公網(wǎng)IP,默認(rèn)SIP Profile中的ext-sip-ip及ext-rtp-ip會(huì)用到它。
- FREESWITCH_DOMAIN:默認(rèn)的FreeSWITCH域
- LOCAL_NETWORK_ACL:默認(rèn)為none,在host網(wǎng)絡(luò)模式下可以關(guān)閉。
配置
本鏡像沒(méi)有使用FreeSWITCH的默認(rèn)配置,F(xiàn)reeSWITCH的默認(rèn)配置為了展示FreeSWITCH各種強(qiáng)大的功能設(shè)計(jì),復(fù)雜且初學(xué)者難以理解,所以,我們使用了最小化的配置,目標(biāo)是讓使用者快速上手,并進(jìn)一步細(xì)化打造自己的鏡像和容器。
以下配置接受任何注冊(cè)和打電話。也就是說(shuō),你可以用軟電話。
param name="accept-blind-reg" value="true"/
param name="accept-blind-auth" value="true"/
如果沒(méi)有配置EXT_IP環(huán)境變量,需要將配置中如下內(nèi)容注釋掉。
param name="ext-rtp-ip" value="$${ext_rtp_ip}"/
param name="ext-sip-ip" value="$${ext_sip_ip}"/
常用命令
常用命令都在Makefile中,看起來(lái)也很直觀。如果你的環(huán)境中沒(méi)有make,也可以直接運(yùn)行相關(guān)的命令。
- make setup:初始化環(huán)境,如果。env不存在,會(huì)從env.example復(fù)制。
- make start:?jiǎn)?dòng)鏡像。
- make run:?jiǎn)?dòng)鏡像并進(jìn)入后臺(tái)模式。
- make cli:進(jìn)入容器并進(jìn)入fs_cli。
- make bash:進(jìn)入容器并進(jìn)入bash Shell環(huán)境。可以進(jìn)一步執(zhí)行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
可以看出,這樣需要輸入很多參數(shù),所以,還是使用Docker Compose比較方便。
修改配置
可以直接進(jìn)入容器修改配置,并在終端上reload xml或重載相關(guān)模塊使之生效。但在容器重啟后修改會(huì)丟失。
如果想保持自己的修改,那就需要把配置文件放到宿主機(jī)上。通過(guò)以下命令可以生成默認(rèn)的配置文件。
make eject
然后修改docker-compose.yml,取消掉以下行的注釋?zhuān)?/div>
volumes:
-conf/:/usr/local/freeswitch/conf:cached
修改后需要重啟鏡像:
- make stop
- make start
- host模式網(wǎng)絡(luò)
典型的Docker容器運(yùn)行方式是NAT型的網(wǎng)絡(luò),有時(shí)候,使用host模式網(wǎng)絡(luò)會(huì)比較方便(因?yàn)樯倭艘粚覰AT)。本鏡像不需要特殊的配置就可以使用host網(wǎng)絡(luò),只需要在docker-compose.yml中啟用即可。
如果環(huán)境變量中沒(méi)有EXT_IP,則可能無(wú)法啟動(dòng)Sofia Profile,請(qǐng)禁掉default.xml和public.xml中的ext-sip-ip和ext-rtp-ip參數(shù)。
默認(rèn)的配置是NAT模式,我們?cè)赑rofile中啟動(dòng)了如下配置:
param name="local-network-acl" value="$${local_net_acl}"/
注意,該環(huán)境變量默認(rèn)為none,它實(shí)際上是一個(gè)不存在的ACL,所以FreeSWITCH對(duì)任何來(lái)源IP都會(huì)認(rèn)為它在NAT后面。
如果在host網(wǎng)絡(luò)模式下可以在。env中注釋掉這個(gè)環(huán)境變量,讓它使用默認(rèn)的localnet.auto。
制作自己的鏡像
你可以根據(jù)本鏡像制作自己的鏡像。ToDo
報(bào)告問(wèn)題
如果你發(fā)現(xiàn)有任何問(wèn)題,請(qǐng)到Git Hub給我們提一個(gè)Issue。
歡迎提Pull Request。
測(cè)試號(hào)碼
默認(rèn)配置可以撥打如下測(cè)試號(hào)碼:
- 9196 回音測(cè)試Echo
- 888 XSWITCH技術(shù)服務(wù)電話
- 3000 進(jìn)入會(huì)議
- 其它號(hào)碼,查找本地注冊(cè)用戶
關(guān)于我們
我們是https://xswitch.cn背后的團(tuán)隊(duì)。
FAQ
- Q:本鏡像是否適合在生產(chǎn)使用?
- A:我們就是在生產(chǎn)上使用的,所以,沒(méi)有任何問(wèn)題。只是,我們默認(rèn)的配置是為了幫助大家學(xué)習(xí)和入門(mén),在生產(chǎn)上使用,推薦使用我們有商業(yè)技術(shù)支持的版本。
- Q:我可以安裝其它軟件嗎?
- A:本鏡像基于Debian Buster制作,你可以使用apt-get update以及apt-get install xxxx安裝任何其它軟件。
廣告福利時(shí)間:
2020年最新一期FreeSWITCH高級(jí)培訓(xùn)正在火熱報(bào)名中,F(xiàn)在掃描圖片二維碼還可以享受8折優(yōu)惠,想報(bào)名的小伙伴要抓緊時(shí)間啦!
另外,該鏡像是我們?cè)趚switch.cn上使用的鏡像的精簡(jiǎn)版,如果你想了解更多不妨閱讀下面的幾篇文章:
XSWITCH,我自己的通信助手
XSWITCH大規(guī)模視頻會(huì)議解決方案
說(shuō)說(shuō)遠(yuǎn)程辦公和視頻會(huì)議
文章詳情https://github.com/rts-cn/xswitch-free了解~
【免責(zé)聲明】本文僅代表作者本人觀點(diǎn),與CTI論壇無(wú)關(guān)。CTI論壇對(duì)文中陳述、觀點(diǎn)判斷保持中立,不對(duì)所包含內(nèi)容的準(zhǔn)確性、可靠性或完整性提供任何明示或暗示的保證。請(qǐng)讀者僅作參考,并請(qǐng)自行承擔(dān)全部責(zé)任。
相關(guān)熱詞搜索: FreeSWITCH 小櫻桃
上一篇:VOS的開(kāi)源競(jìng)爭(zhēng)對(duì)手-基于Kamailio的開(kāi)源計(jì)費(fèi)系統(tǒng)-Yeti
下一篇:最后一頁(yè)
相關(guān)閱讀:
- ·FreeSWITCH高級(jí)培訓(xùn)2020秋季班(北京站)2020-09-21 14:01:09
- ·FreeSWITCH 福利|內(nèi)部培訓(xùn)課大公開(kāi)2020-07-29 15:56:13
- ·FreeSWITCH中文社區(qū)RTS線上交流會(huì)2020-07-24 14:31:08
- ·FreeSWITCH中文社區(qū)RTS線上交流會(huì)2020-07-15 14:59:19
- ·FreeSWITCH 1.10.3發(fā)布2020-05-13 09:16:26
- ·當(dāng)你發(fā)現(xiàn)了FreeSWITCH Slack中文頻道2020-03-24 16:24:45
- ·教你一個(gè)建立企業(yè)通信黑名單的方法2019-12-30 13:47:51
- ·2019 FreeSWITCH高級(jí)培訓(xùn)班 北京站圓滿結(jié)束2019-12-02 09:34:02
- ·FreeSWITCH第八屆開(kāi)發(fā)者沙龍圓滿結(jié)束2019-11-28 13:56:43
- ·星昊通科技攜手TelcoBridges出席FreeSWITCH開(kāi)發(fā)者沙龍2019-11-14 09:46:29