XSwitch运维手册
常用操作
XSwitch 默认使用 Makefile 来管理容器,如果您不熟悉 Makefile,可以到这里快速学习。
启动容器:
make up
停止:
make down
进入容器:
make bash # 进入XSwitch容器 make pg-bash # 进入PostgreSQL容器
查看日志
日志文件默认在宿主机的data/log
目录下。
查看日志要使用“只读”的查看工具,如tail
、less
等,不推荐使用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 日志。