1. FreeSWITCH 相关命令
FusionPBX 基于 FreeSWITCH,因此需要掌握 FreeSWITCH 的管理命令。
1.1 启动/停止/重启 FreeSWITCH
systemctl start freeswitch # 启动 FreeSWITCH
systemctl stop freeswitch # 停止 FreeSWITCH
systemctl restart freeswitch # 重启 FreeSWITCH
systemctl status freeswitch # 查看 FreeSWITCH 运行状态
1.2 进入 FreeSWITCH CLI
fs_cli
1.3 退出 FreeSWITCH CLI
/exit
1.4 重新加载配置
fs_cli -x 'reloadxml' # 重新加载 XML 配置
fs_cli -x 'reloadacl' # 重新加载 ACL 规则
1.5 查看 FreeSWITCH 版本
fs_cli -x 'version'
2. 用户和通话管理
2.1 查看在线用户
fs_cli -x 'show registrations'
2.2 查看当前活动的通话
fs_cli -x 'show calls'
2.3 挂断所有通话
fs_cli -x 'fsctl hupall'
2.4 挂断特定通话
fs_cli -x 'uuid_kill <UUID>'
可以使用 fs_cli -x 'show calls'
获取 UUID。
2.5 启用/禁用通话录音
fs_cli -x 'uuid_record <UUID> start /var/recordings/<file_name>.wav' # 开始录音
fs_cli -x 'uuid_record <UUID> stop' # 停止录音
3. SIP 相关命令
3.1 查看 SIP 网关状态
fs_cli -x 'sofia status'
3.2 查看特定 SIP Profile 状态
fs_cli -x 'sofia status profile internal'
fs_cli -x 'sofia status profile external'
3.3 重新注册所有 SIP 账户
fs_cli -x 'sofia profile internal rescan'
fs_cli -x 'sofia profile external rescan'
3.4 重新启动 SIP 网关
fs_cli -x 'sofia profile internal restart'
fs_cli -x 'sofia profile external restart'
4. 监听和调试
4.1 查看系统日志
journalctl -u freeswitch -f
4.2 在 FreeSWITCH CLI 中查看调试日志
fs_cli -x 'loglevel debug' # 设置日志级别为 debug
fs_cli -x 'loglevel info' # 设置日志级别为 info
fs_cli -x 'loglevel warning' # 设置日志级别为 warning
4.3 监听特定通话的 RTP 流
fs_cli -x 'uuid_media_reneg <UUID>'
4.4 捕获 SIP 报文
tcpdump -i any -n port 5060 -vvv -s 0 -w sip_capture.pcap
然后可以使用 Wireshark 分析 sip_capture.pcap
。
5. 备份和恢复
5.1 备份 FusionPBX 数据库
pg_dump -U fusionpbx -h localhost fusionpbx > /root/fusionpbx_backup.sql
5.2 恢复 FusionPBX 数据库
psql -U fusionpbx -h localhost fusionpbx < /root/fusionpbx_backup.sql
5.3 备份 FreeSWITCH 配置
tar -czvf /root/freeswitch_config_backup.tar.gz /etc/freeswitch
5.4 恢复 FreeSWITCH 配置
tar -xzvf /root/freeswitch_config_backup.tar.gz -C /
6. 其他常用命令
6.1 清理日志文件
rm -rf /var/log/freeswitch/*
6.2 更新 FusionPBX
cd /var/www/fusionpbx
git pull origin master
6.3 更新数据库结构
cd /var/www/fusionpbx
php /var/www/fusionpbx/core/upgrade/upgrade.php
6.4 修改管理员密码
psql -U fusionpbx -d fusionpbx -c "UPDATE v_users SET password = md5('new_password') WHERE username = 'admin';"
6.5 重新启动服务器
reboot
以上命令涵盖了 FusionPBX 的常用管理、SIP 诊断、调试、备份和更新等操作,适用于日常运维管理。