# FreeSwitch ESL "rude-rejection" 问题诊断报告
## 问题摘要
**问题现象**: 即使修改了FreeSwitch配置文件后,Java应用连接ESL时仍然收到 `text/rude-rejection` 错误。
**关键发现**:
- ✅ 网络连接正常 (端口8021可达)
- ❌ FreeSwitch仍返回 "Access Denied, go away" 消息
- 🔍 配置修改可能未生效
## 根本原因分析
### 1. 配置文件位置问题
FreeSwitch可能从不同的路径读取配置文件:
- `/etc/freeswitch/autoload_configs/`
- `/usr/local/freeswitch/conf/autoload_configs/`
- `/opt/freeswitch/conf/autoload_configs/`
### 2. 配置重新加载问题
修改配置后需要:
- 重新加载 `mod_event_socket` 模块,或
- 完全重启FreeSwitch服务
### 3. 可能的配置覆盖
- 其他配置文件可能覆盖了ACL设置
- 系统级防火墙可能在应用层面阻止连接
## 立即修复方案
### 方案A: 使用自动修复脚本 (推荐)
1. **将修复脚本上传到服务器**:
```bash
scp freeswitch_acl_fix.sh root@14.103.165.199:/tmp/
```
2. **在服务器上执行修复**:
```bash
ssh root@14.103.165.199
chmod +x /tmp/freeswitch_acl_fix.sh
sudo /tmp/freeswitch_acl_fix.sh
```
### 方案B: 手动修复步骤
在FreeSwitch服务器 (14.103.165.199) 上执行:
```bash
# 1. 查找实际配置文件位置
sudo find /etc /usr/local /opt -name "event_socket.conf.xml" -type f 2>/dev/null
# 2. 备份原配置
sudo cp /usr/local/freeswitch/conf/autoload_configs/event_socket.conf.xml /tmp/
# 3. 创建无ACL限制的配置
sudo tee /usr/local/freeswitch/conf/autoload_configs/event_socket.conf.xml > /dev/null << 'EOF'
EOF
# 4. 重启FreeSwitch服务
sudo systemctl restart freeswitch
# 5. 等待服务启动
sleep 5
# 6. 验证修复
telnet localhost 8021
```
### 方案C: 应急SSH隧道方案
如果服务器配置无法修改,可以使用SSH隧道:
```bash
# 在本地执行 (Mac终端)
ssh -L 8021:localhost:8021 root@14.103.165.199
# 修改Java应用配置连接到本地
bytedesk.freeswitch.server=127.0.0.1
bytedesk.freeswitch.esl-port=8021
```
## 验证修复
修复后使用以下方法验证:
### 1. 网络层测试
```bash
telnet 14.103.165.199 8021
```
应该收到 `auth/request` 而不是 `rude-rejection`
### 2. Java应用测试
```bash
# 检查健康状态
curl http://localhost:9003/actuator/health/freeSwitch
# 测试连接
curl -X POST http://localhost:9003/api/v1/freeswitch/test-connection
```
### 3. FreeSwitch日志
```bash
# 在服务器上检查日志
tail -f /usr/local/freeswitch/log/freeswitch.log
```
## 安全注意事项
⚠️ **临时解决方案警告**:
- 当前修复移除了所有ACL限制
- 生产环境应重新添加IP白名单
- 建议使用防火墙进行额外保护
### 生产环境ACL配置示例
```xml
```
## 后续监控
1. **设置健康检查**: 定期检查ESL连接状态
2. **日志监控**: 监控FreeSwitch连接日志
3. **告警配置**: 连接失败时发送告警
---
**生成时间**: 2025-06-08 14:42
**问题状态**: 🔴 待修复
**优先级**: 高
**预计修复时间**: 5-10分钟