docker 部署freeswitch(非编译方式)
一:安装部署
1.拉取镜像
参考:https://hub.docker.com/r/safarov/freeswitch
docker pull safarov/freeswitch
2.启动镜像
docker run --net=host --name freeswitch \
-e SOUND_RATES=8000:16000 \
-e SOUND_TYPES=music:en-us-callie \
-v /home/xx/freeswitch-sounds:/usr/share/freeswitch/sounds \
-v /etc/freeswitch/:/etc/freeswitch \
safarov/freeswitch
启动后出错:
这里的错误影响不是很大,可以不用管,主要是把语音相关文件补回去,不然拨打后拿文件会出错
手动下载:freeswitch-sounds-en-us-callie-8000-1.0.51.tar 解压到/home/xx/freeswitch-sounds
操作后重启镜像
3.宿主机关防火墙
sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo systemctl status firewalld
4.至此基本能用了,使用方式
账号:1000到1019
密码:/etc/freeswitch/vars.xml
查找关键字:default_password,就能看到
服务器地址:宿主机ip:5060,例如:1.1.1.1:5060
二:添加账号
参考目录:/etc/freeswitch/directory/default
下面1000.xml,拷贝把文件名和内容的1000全部替换,例如1020
添加后进入容器
docker exec -it freeswitch /bin/bash
执行
fs_cli -x "reloadxml"
生效
三:拨打定制特定号码服务端的响应计划
举例:想要配置拨打10086的时候,先振铃5秒,再拨打一段语音,然后挂断
打开/etc/freeswitch/dialplan/default.xml
添加下面的配置
<extension name="zhauto_answer">
<condition field="destination_number" expression="^10086$">
<action application="ring_ready"/>
<action application="sleep" data="5000"/>
<action application="answer"/>
<action application="sleep" data="1000"/>
<action application="playback" data="/usr/share/freeswitch/sounds/partita-no-3-in-e-major-bwv-1006-1-preludio.wav"/>
<action application="hangup"/>
</condition>
</extension>
重启容器即可