#!/bin/bash # FreeSwitch 配置检查和修复脚本 # 针对 rude-rejection 问题的完整解决方案 SERVER="14.103.165.199" USERNAME="root" echo "=== FreeSwitch ESL 配置修复脚本 ===" echo "目标服务器: $SERVER" echo "时间: $(date)" echo "" echo "步骤1: 查找 FreeSwitch 配置文件..." echo "常见配置文件位置:" echo " - /etc/freeswitch/autoload_configs/event_socket.conf.xml" echo " - /usr/local/freeswitch/conf/autoload_configs/event_socket.conf.xml" echo " - /opt/freeswitch/conf/autoload_configs/event_socket.conf.xml" echo "" echo "步骤2: 生成修复用的配置文件..." # 生成正确的 event_socket.conf.xml cat > event_socket_fixed.conf.xml << 'EOF' EOF echo "✅ 已生成修复配置文件: event_socket_fixed.conf.xml" echo "" # 生成更新的 ACL 配置 cat > acl_fixed.conf.xml << 'EOF' EOF echo "✅ 已生成修复ACL配置文件: acl_fixed.conf.xml" echo "" echo "步骤3: 手动修复指令 (需要在服务器上执行)..." echo "" echo "请在服务器 $SERVER 上执行以下命令:" echo "" echo "# 1. 备份原配置" echo "sudo cp /usr/local/freeswitch/conf/autoload_configs/event_socket.conf.xml /usr/local/freeswitch/conf/autoload_configs/event_socket.conf.xml.backup.$(date +%Y%m%d)" echo "" echo "# 2. 查找实际配置文件位置" echo "sudo find /etc /usr/local /opt -name 'event_socket.conf.xml' -type f 2>/dev/null" echo "" echo "# 3. 临时移除ACL限制的配置内容:" echo "cat > /tmp/event_socket_temp.xml << 'INNER_EOF'" echo "" echo " " echo " " echo " " echo " " echo " " echo " " echo "" echo "INNER_EOF" echo "" echo "# 4. 覆盖配置文件 (请根据实际路径调整)" echo "sudo cp /tmp/event_socket_temp.xml /usr/local/freeswitch/conf/autoload_configs/event_socket.conf.xml" echo "" echo "# 5. 重新加载配置" echo "sudo fs_cli -x 'reload mod_event_socket'" echo "" echo "# 6. 如果重新加载失败,重启FreeSwitch" echo "sudo systemctl restart freeswitch" echo "# 或者" echo "sudo /etc/init.d/freeswitch restart" echo "" echo "# 7. 验证配置" echo "sudo fs_cli -x 'show modules' | grep event_socket" echo "" echo "# 8. 测试连接" echo "telnet localhost 8021" echo "" echo "步骤4: 验证修复..." echo "请在执行上述命令后,运行以下测试:" echo "" echo "# 从服务器本地测试" echo "telnet localhost 8021" echo "" echo "# 从客户端测试" echo "telnet $SERVER 8021" echo "" echo "步骤5: 如果问题仍然存在..." echo "1. 检查FreeSwitch日志:" echo " tail -f /usr/local/freeswitch/log/freeswitch.log" echo "" echo "2. 检查是否有多个FreeSwitch实例:" echo " ps aux | grep freeswitch" echo "" echo "3. 检查端口监听状态:" echo " netstat -tlnp | grep 8021" echo "" echo "4. 检查防火墙规则:" echo " iptables -L -n | grep 8021" echo "" echo "=== 脚本完成 ===" echo "注意: 此配置移除了所有ACL限制,仅用于测试。" echo "生产环境请重新添加适当的IP限制。"