HowTo文档

一台服务器启动多版本 XSwitch

在实际测试当中,资源很紧缺,一台服务器上需要跑很多进程或 Docker 容器。

XSwitch 多版本在一台服务器中部署及运行。注意事项如下:

下载资源

可以到 XSwitch 官网下载社区版及企业版安装资源。

解压文件

将下载不同版本的文件解压到相应的目录中,建议安装在/usr/local/目录下。

tar zxvf xswitch-community6.0.0.tar.gz -C /usr/local
tar zxvf xswitch6.0.0.tar.gz -C /usr/local

修改 docker-compose.yml 文件

在一台服务器中容器的名字不允许相同。如果不修改会报以下错误:

Creating xswitch-pg ... error

ERROR: for xswitch-pg  Cannot create container for service xswitch-pg: Conflict.
The container name "/xswitch-pg" is already in use by container "d7b27c5bcf19c68b83c8898d93d7890884b81fce5040752bf8bff7ca2e3e8632".
You have to remove (or rename) that container to be able to reuse that name.

这时我们要对第 2 个 XSwitch 的容器名称进行修改。以xswitch为例:

# 社区版
version: "3"

services:
  xswitch:
    container_name: "xswitch"
    image: ccr.ccs.tencentyun.com/free/xswitch-community:6.0.0-beta2

# 社区版
version: "3"

services:
  xswitch:
    container_name: "xswitch-2"
    image: ccr.ccs.tencentyun.com/xswitch/xswitch:6.0.0-beta2

修改.env 文件

在一台服务器中,XSwitch 容器启动是以host模式启动,开启多版本 XSwitch,需要修改.env 文件中的端口,确保 2 台 XSwitch 端口不冲突,这样Docker才能正常启动。 以社区版及企业版为例:

# 社区版
SIP_PORT=7060
SIP_TLS_PORT=7061
SIP_PUBLIC_PORT=7080
SIP_PUBLIC_TLS_PORT=7081
VERTO_WS_PORT=8081
VERTO_WSS_PORT=8082
RTP_START=10000
RTP_END=10099
ESL_PORT=8021
EXT_IP=192.168.3.149
LOCAL_IP=192.168.3.149

#企业版
SIP_PORT=5060
SIP_TLS_PORT=5061
SIP_PUBLIC_PORT=5080
SIP_PUBLIC_TLS_PORT=5081
VERTO_WS_PORT=9081
VERTO_WSS_PORT=9082
RTP_START=20000
RTP_END=20099
ESL_PORT=9021
EXT_IP=192.168.3.149
LOCAL_IP=192.168.3.149

数据库端口修改

因为 XSwitch 启动是使用 PostgreSQL 的默认端口5432,这时我们要区分每个版本的数据库端口。在 env 配置中进行修改相应的连接与端口。

# 社区版
DSN=postgresql://xui:xui@127.0.0.1/xui

# 企业版
DSN=postgresql://xswitch:xswitch@127.0.0.1:4432/xswitch

这时你就可以在一台机器上启动 XSwitch 社区版及企业版了。如果要开启 N 个,那就要按照上述的方法进行处理。看了这么多,亲自动手操作吧!

如何在XSwitch中使用ASR及TTS(二)