MGCP是Media Gateway Control Protocol,即媒体网关控制协议。它应用于分解式媒体网关:Call Agent保留呼叫控制逻辑,媒体网关负责电话线路接口及媒体转换。RFC 3435记录MGCP 1.0并替代早期RFC 2705,其文档类别为Informational,不宜笼统称为IETF标准轨协议。

集中控制的价值与边界

MGCP吸收了SGCP与IPDC等早期方案的思路。集中控制可简化接入网关的业务逻辑,并使号码路由和业务策略由中心统一管理。但终端固件、接口参数与安全补丁仍需维护,不能把业务集中误解为“以后只升级中心即可”。
在传统电话网互通中,信令网关可适配SS7,媒体网关处理TDM与IP语音,呼叫代理协调两者。MGCP用于呼叫代理与媒体网关之间,不是替代SS7适配层,也不是传送语音的RTP协议。
Endpoint与Connection
Endpoint是能够发送或接收媒体的端点,例如模拟线、数字中继中的媒体资源或特定虚拟资源。Connection是在端点上建立的媒体连接,带有标识符、模式和本地/远端会话描述等信息。一个端点可以关联多个连接,具体能力受设备和扩展包限制。
MGCP使用端点名、连接标识与呼叫标识定位相关操作。文本格式方便阅读,但排障仍需完整事务、响应码和上下文,不能只凭某一行消息判断呼叫成功。
常见命令与事件流程
| 命令 | 作用 |
|---|---|
| CRCX / CreateConnection | 创建媒体连接并返回相关描述 |
| MDCX / ModifyConnection | 修改远端描述、连接模式等 |
| DLCX / DeleteConnection | 删除连接并可取得统计 |
| RQNT / NotificationRequest | 请求检测事件并发送相应信号 |
| NTFY / Notify | 报告检测到的事件 |
| AUEP、AUCX | 审计端点或连接状态 |
| RSIP / RestartInProgress | 通报服务重启或状态变化 |
从摘机到释放的一种呼叫示例
- 呼叫代理通过RQNT要求接入网关检测摘机事件。
- 电话摘机后,网关发送NTFY;呼叫代理据此要求发送拨号音并收集号码。
- 收号完成后,呼叫代理分析路由,在相应端点上创建连接。
- 网关返回本地媒体描述,呼叫代理将媒体参数协调给另一侧。
- 当远端描述可用时,通过MDCX调整媒体地址和连接模式。
- 传统电话网一侧的振铃与应答,由相应信令和网关状态共同处理。
- 通话结束后删除连接,并使端点恢复到可接续状态。
这是简化流程。初始连接可以采用不同模式;不能把单向RTP阶段称为模拟电路意义的“半双工通道”,也不能根据示例推断每次呼叫的消息顺序完全相同。
安全性、速度与NAT不能由协议名称保证
MGCP的集中控制模式便于统一授权,但不天然防盗打。攻击者仍可能利用弱口令、暴露的控制接口或错误路由。应限制控制节点来源、保护管理面、设置呼出权限并监测异常费用和话务。
“MGCP三秒振铃、H.323七秒”“H.323必须以井号结束拨号”“MGCP天然动态穿透NAT”等说法,不是协议的普遍保证。接续时延受收号规则、网络和路由影响;NAT涉及控制地址与媒体地址,应使用设备实际支持的部署方式和受控边界策略。
部署时核对端点命名、扩展包、定时器、重传和重启处理,测试并发与异常释放。H.248有不同连接模型和扩展体系,并非MGCP报文兼容的高版本,进一步比较见H.248与MGCP的部署差异。
常见问题
MGCP网关一定要注册账号吗?
不能照搬SIP账号注册概念。网关与Call Agent的服务关系、重启通知和端点配置应按实际MGCP实现核对。
控制消息通了为什么没有声音?
控制与媒体路径不同。还要核对会话描述中的IP和端口、连接模式、编解码以及防火墙对媒体的放行。