XSwitch运维手册

常用操作

XSwitch 默认使用 Makefile 来管理容器,如果您不熟悉 Makefile,可以到这里快速学习

启动容器:

make up

停止:

make down

进入容器:

make bash # 进入XSwitch容器
make pg-bash # 进入PostgreSQL容器

查看日志

日志文件默认在宿主机的data/log目录下。

查看日志要使用“只读”的查看工具,如tailless等,不推荐使用vim这样的工具。

查看 XSwitch 实时日志

可以用tail -f实时跟踪日志(Ctrl+C退出):

tail -f log/freeswitch.log

显示最后 1000 行日志:

tail -n 1000 log/freeswitch.log

使用less分页查看日志:

less log/freeswitch.log

使用less的 Follow 模式,类似tail -f

less +F log/freeswitch.log

通过控制台实时查看日志

可以直接连到控制台进行日志跟踪,注意如果在通话量比较大的时候,日志会比较多,注意过滤。

make bash   # 进入容器
fs_cli -l 0 # 使用日志级别0,只能看到`CONSOLE`级别的日志,可以输入命令
fs_cli -l 1 # 使用日志级别1
fs_cli -l 2 # 使用日志级别2

直接执行一条命令后退出:

fs_cli -x "status"

搜索日志

XSwitch 的日志文件分自动轮转,文件名会以日期和时间分开,格式如下:

freeswitch.log.YYYY-MM-DD-HH-mm-SS.1
freeswitch.log.2022-07-22-16-47-30.1

根据话单中的通话时间可以查到大致的时间,如果不确定,也可以通过通话 UUID 搜索,注意由于 Log 文件比较多,最好限定到文件名的年月日,小时等,如:

grep uuid freeswitch.log.2022-07-22-*
grep uuid freeswitch.log.2022-07-22-16*

查到文件后,可以使用less之类的查看日志。

完整通话日志

可以根据 A 腿 uuid 找到 B 腿 UUID

对于呼入的呼叫,有一条日志记录,包含 SIP Call-ID 以及通话的 UUID,如:

uuid=0f9c932e-e675-449d-91dd-eb032dcfd58b 2023-03-08 08:58:40.056722 99.77% [INFO] sofia.c:10755 sofia/default/1002@192.168.219.129 receiving invite from 192.168.219.1:55243 version: 1.10.9.1 git 21eee7b 2023-02-22 10:05:08Z 64bit call-id=367bee812f7f494db5b0abbf929314a9

如果是 Bridge 呼叫,可以通过话单看到另一条腿的 UUID,对于外呼的呼叫,通常 SIP Call-ID 和 UUID 是一致的,这样就可以关联到两条腿的 SIP 和 XSwitch 日志。

持久化存储