# 解决 Cisco FXO 端口上的主叫号码和呼叫断开问题


## FXO 端口上的呼叫断开检测

在 FXO（外来交换局）端口上正确检测呼叫断开对于保持清晰的语音连接和高效的资源利用至关重要。Cisco FXO 端口通常检测来自 PSTN 线路的断开音调，以便在呼叫结束时自动释放端口。

### 标准配置

Cisco FXO 端口上断开检测的最常见配置包括：

```
voice-port x/x/x
  supervisory disconnect dualtone mid-call
  cptone CN
  timeouts call-disconnect 1
```

在大多数情况下，此配置使系统能够检测断开音调，并在远端挂机后正确释放语音端口。`cptone CN` 命令设置路由器使用中国标准进行音调检测。

### 自定义断开音调配置

在某些情况下，标准的 `cptone CN` 可能无法有效工作。在这种情况下，您可以手动定义断开音调检测参数：

```
voice class custom-cptone CHN
  dualtone disconnect
  frequency 440
  cadence 350 350
!
voice-port 0/0/0
  supervisory disconnect dualtone mid-call
  supervisory custom-cptone CHN
  timeouts call-disconnect 1
```

在中国，标准的忙音/断开音调是 440Hz，断续比为 350ms 通 350ms 断。外部断开单元也检测此音调以强制释放语音端口。对于未来需要断开单元的项目，首先尝试 `cptone CN`，如果失败，则实施如上所示的自定义断开检测。这种方法应该能解决大多数断开检测问题。

[Cisco 参考](http://www.cisco.com/en/US/docs/ios/12_1/12_1xm/feature/guide/dt_dscon.html)

## 主叫号码配置

当主叫号码服务激活时，格式可能因运营商设备而异。存在两种主要格式：

### FSK（频移键控）
- 通常在第一和第二振铃之间传输
- 通常伴随时间信息，兼容设备可以用于自动时间调整
- 存在三种不同的 FSK 格式，用于不同国家

### DTMF（双音多频）
- 通常在第一次振铃之前传输

大多数电话设备自动处理格式兼容性，可以检测不同的主叫号码格式而不会出现问题。（强烈要求 Cisco 实现自适应主叫号码检测！）

Cisco 路由器默认使用美国 cptone 设置。修改 cptone 时，主叫号码格式也会自动调整。没有直接命令可以独立修改主叫号码格式。

### 故障排除主叫号码失败

如果您已确认主叫号码服务处于活动状态（通过测试显示来电号码的普通电话），但路由器在 `debug vpm all` 输出中显示 `caller id receive failed`，则问题可能是格式兼容性问题。尝试更改 `cptone` 设置以调整检测参数并重新测试。

不幸的是，您不能指望运营商技术人员提供详细的技术规格——至少我从未遇到过能做到这一点的人。

在通过 cptone 更改解决主叫号码问题时，请注意这可能会影响 FXO 断开检测。在这种情况下，请参考本文前面描述的断开检测方法。

