MGCP 是什么
MGCP(RFC 3435)把呼叫控制与媒体处理拆开:呼叫代理(Call Agent,也叫软交换)负责决策,媒体网关负责实际建立语音通道,两者之间用 2427 端口的 MGCP 报文通信。呼叫代理用 CRCX、MDCX、DLCX 之类的命令指挥网关创建、修改与删除连接,网关则按 RQNT 要求上报摘机、拨号等事件。协议本身没有认证机制。
基本信息
| 服务 | MGCP gateway(RFC 3435) |
|---|---|
| 协议 | TCP/UDP 2427;呼叫代理侧常见 2727 |
| 同类协议 | Megaco/H.248 走 2944 |
| 典型设备 | 语音网关、IAD、软交换(运营商与 IP-PBX 场景) |
| 安全等级 | 仅限语音专网,禁止跨网段可达 |
典型使用场景
- 网关注册与呼叫控制:软交换下发命令,网关执行拨号音、振铃与接续
- 运营商语音接入:接入网关与呼叫代理之间的标准接口
- 排障:确认 2427 可达、端点命名是否匹配、命令响应码是否正常
- 安全评估:检查网关是否暴露到数据网或公网
- 话单核对:把网关侧事件与话单系统记录比对,识别异常外呼
检查网关是否监听
检查网关是否监听
nc -zuv gateway 2427; nc -zv gateway 2427
sudo tcpdump -ni eth0 'port 2427' -A -c 20 # 观察命令与响应码
ss -lntup | grep -E ':(2427|2727)'
# 抓包关键词:CRCX(创建连接)、MDCX(修改)、DLCX(删除)、RQNT(事件请求)MGCP 常用命令与响应
| 命令 | 作用 | 关注点 |
|---|---|---|
| CRCX | 创建连接 | 本地 SDP 与媒体端口分配 |
| MDCX | 修改连接 | 对端地址或编码变更 |
| DLCX | 删除连接 | 统计与挂断原因 |
| RQNT | 请求上报事件 | 摘机、拨号、闪断 |
| 200 / 5xx | 响应码 | 5xx 多为端点不存在或参数错误 |
MGCP 自身没有认证机制:伪造的 CreateConnection 报文可以让网关向任意号码外呼,是话费欺诈的经典手法;语音网关务必与数据网络隔离,并对呼叫代理地址做白名单。
媒体链路提示:语音流的 RTP 端口由 SDP 动态协商,只放行 2427 会出现信令通、无声音的现象;排障时应把信令端口与媒体端口段一起纳入放行与抓包范围。
防护要点
- 网关只允许呼叫代理网段访问,拒绝其它来源的报文
- 在边界对 2427 与 2727 做双向过滤并记录日志
- 话单与网关事件定期比对,异常外呼及时拦截
- 淘汰或隔离无认证能力的老网关,优先演进到带安全能力的方案