您當(dāng)前的位置是:  首頁(yè) > 資訊 > 國(guó)內(nèi) >
 首頁(yè) > 資訊 > 國(guó)內(nèi) >

我們?yōu)镕reeSWITCH做了一個(gè)免費(fèi)的 Docker

2020-09-24 10:18:44   作者:杜金房   來(lái)源:CTI論壇   評(píng)論:0  點(diǎn)擊:


  很多初學(xué)FreeSWITCH的同學(xué)經(jīng)常會(huì)問(wèn)一個(gè)問(wèn)題,我該使用哪個(gè)操作系統(tǒng)?FreeSWITCH支持Linux、Mac、Windows平臺(tái),Wiki頁(yè)面上也有相關(guān)的說(shuō)明。但隨著時(shí)間的流逝,總會(huì)有一些文檔來(lái)不及更新,因此,在安裝時(shí)就總會(huì)遇到這樣那樣的問(wèn)題。
  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é)任。

專(zhuān)題

CTI論壇會(huì)員企業(yè)