sdmswitch/README.md
2023-10-11 04:42:30 +00:00

129 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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要具有使用智能语音交互的权限
## 使用方法
初次使用时,当确定满足系统要求和业务要求的情况下,直接执行
```sh
./install.sh
```
如果没有执行权限就手动加一下`chmod +x install.sh`。
安装过程中会要求填入阿里云的AccessKeyID、AccessKeySecret、appkey参数这些参数以后可以在`sdm/data/nls-cloud-sdm/conf/`中的配置文件中修改。
安装过程会随机生成FreeSWITCH的ESL密码和默认SIP密码这些参数以后可以在`switch/conf/`中的配置文件中修改。
安装程序会自动启动容器。
### 进入fs_cli
```sh
./fs_cli.sh
```
如果没有执行权限就手动加一下`chmod +x fs_cli.sh`。
如果执行后无法进入请检查:
- 检查switch容器是否启动
- 检查.fs_cli_conf中的密码和端口是否与event_socket.conf.xml中一致
- 也有可能是FreeSWITCH服务还没有完全启动好。
### 重启服务
无论修改sdm配置还是switch配置都得在服务重启后才会生效fs_cli中也有reloadxml等重载配置的命令
```sh
# 重启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执行下面的命令
```sh
bgapi originate user/1001 &lua(demo/tts.lua)
```
1001应该可以接到电话电话接起来后可以听到“你好我是机器人XXX很高兴认识你……”。
### ASR演示
进入fs_cli执行下面的命令
```sh
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文件可以节省一点磁盘空间。