结合sdm的freeswitch一键启动镜像
Go to file
2024-08-07 11:40:27 +08:00
sdm v1.10.10 2023-10-11 04:39:21 +00:00
switch v1.10.10 2023-10-11 04:39:21 +00:00
docker-compose.yml 更新 'docker-compose.yml' 2024-08-07 11:40:27 +08:00
fs_cli.sh v1.10.10 2023-10-11 04:39:21 +00:00
install.sh v1.10.10 2023-10-11 04:39:21 +00:00
README.md README 2023-10-11 04:42:30 +00:00
restart.sh v1.10.10 2023-10-11 04:39:21 +00:00

docker一键运行阿里云SDMMRCP和FreeSWITCH

版本

  • FreeSWITCH 1.10.10
  • SDM单机版支持100路asr并发+100路tts并发

系统要求

  • linux
  • docker
  • docker compose (安装docker engine时会自动安装好)
  • lua5.1
  • luarocks
  • jq
  • openssl

业务要求

在阿里云开通“智能语音交互”业务完成创建项目并生成AccessKeyID和AccessKeySecret需要得到AccessKeyID、AccessKeySecret和appkey这几个参数注意AccessKey要具有使用智能语音交互的权限

使用方法

初次使用时,当确定满足系统要求和业务要求的情况下,直接执行

./install.sh

如果没有执行权限就手动加一下chmod +x install.sh

安装过程中会要求填入阿里云的AccessKeyID、AccessKeySecret、appkey参数这些参数以后可以在sdm/data/nls-cloud-sdm/conf/中的配置文件中修改。

安装过程会随机生成FreeSWITCH的ESL密码和默认SIP密码这些参数以后可以在switch/conf/中的配置文件中修改。

安装程序会自动启动容器。

进入fs_cli

./fs_cli.sh

如果没有执行权限就手动加一下chmod +x fs_cli.sh

如果执行后无法进入请检查:

  • 检查switch容器是否启动
  • 检查.fs_cli_conf中的密码和端口是否与event_socket.conf.xml中一致
  • 也有可能是FreeSWITCH服务还没有完全启动好。

重启服务

无论修改sdm配置还是switch配置都得在服务重启后才会生效fs_cli中也有reloadxml等重载配置的命令

# 重启sdm和switch
./restart.sh
# 重启sdm
./restart.sh sdm
# 重启switch
./restart.sh switch

在switch/scripts中写的lua脚本修改后不需要重启服务就能生效。

默认端口

这个包完全修改了FreeSWITCH的默认端口号具体如下

业务 端口号
internal_sip_port 62260
internal_tls_port 62261
external_sip_port 62280
external_tls_port 62281
ws-binding 62266
wss-binding 62243
event_socket 62221
rtp-start-port 30000
rtp-end-port 39999
(mrcp)rtp-port-min 20000
(mrcp)rtp-port-max 29999

除了FreeSWITCH外SDM也是以host模式启动其占用的端口都是阿里云出厂时的默认值

业务 端口号
SIP 7010
MRCP 1544、1554
RTP 10000 - 20000

测试演示

分机注册

容器启动后通过SIP端口使用1001-1019分机号和安装时生成的默认SIP密码应该可以正确注册成功。

回声演示

分机注册成功后用分机呼叫9196应该可以启动回声应答你说什么它同时给你放什么

TTS演示

进入fs_cli执行下面的命令

bgapi originate user/1001 &lua(demo/tts.lua)

1001应该可以接到电话电话接起来后可以听到“你好我是机器人XXX很高兴认识你……”。

ASR演示

进入fs_cli执行下面的命令

bgapi originate user/1001 &lua(demo/asr.lua)

1001应该可以接到电话电话接起来后可以跟机器人做“复读游戏”你说一句它用asr识别后再用tts给你复读一句。

如果asr.lua执行出错请按照switch/scripts/demo/asr.lua中的注释安装lua依赖包再试试。

开发建议

请不要把业务代码提交到这个仓库里来,建议你把仓库接到你的业务目录中后直接删除.git目录让你的业务仓库接管后面的代码管理工作。

安装成功后删除switch/sounds/sounds.tar.bz2文件可以节省一点磁盘空间。