MGCP协议附加业务---拍叉转移
| |
业务描述:
用户A呼叫B
B摘机接听
B拍叉,保持A(MGC给用户A播放等待音乐)
B拨打用户C的号码
C振铃
用户B挂机
用户A听回铃音
C摘机
用户A与用户C通话
| |
1
|
MG_A检测到摘机以ntfy命令上报
|
MGC接收到命令之后回复200 确认
| |
2
|
MGC下发RQNT(携带数图描述符,信号描述符,请求事件描述符)命令,指示MG_A检测拨号事件,并且号码按照数图规则收号,同时给话机下发拨号音
|
MG接收命令执行动作之后回复200确认
| |
3
|
MG_A按照数图规则收号并以ntfy(号码携带在观察事件描述符号)命令上报
|
MGC接收到命令之后回复200 确认
| |
4
|
MGC下发RQNT(携带请求事件描述符),指示MG_A检测后续拨号事件
|
MG接收命令之后回复200确认
| |
MGC分析号码并指定呼出路由
| |
5
|
MGC给主叫MG_A下发CRCX,指示MG创建连接
—
收集主被叫媒体连接参数的过程
|
MG接收命令执行之后回复200确认
—
响应中携带自身的媒体连接参数
| |
MGC给被叫MG_B下发CRCX,指示MG创建连接
—
命令中携带上述步骤收集到主叫的媒体连接参数
| |
MG接收命令执行之后回复200确认
—
被叫根据主叫的媒体参数协商出通话所需参数
| |
6
|
MGC给主叫MG_A下发RQNT(携带信号描述符),指示MG给话机下发回铃音
|
MG接收命令执行之后回复200确认
| |
MGC给被叫MG_B下发RQNT(携带信号描述符),指示MG给话机下发振铃音
| |
MG接收命令执行之后回复200确认
| |
7
|
被叫MG检测到摘机以ntfy上报
|
MGC接收到命令之后回复200 确认
| |
8
|
MGC给主叫MG下发MDCX,指示MG修改连接模式(RC
à
SR)
|
MG接收命令执行之后回复200确认
| |
MGC给被叫MG下发MDCX,指示MG修改连接模式(RC
à
SR)
| |
MG接收命令执行之后回复200确认
| |
用户A和用户B开始通话
| |
9
|
MC_B检测到话机拍叉以ntfy上报
|
MGC接收命令回复200确认
| |
10
|
MGC给被叫MG_B下发MDCX,指示MG修改连接模式(SR
à
IN)
|
MG接收命令执行之后回复200确认
| |
MGC给被叫MG_A下发MDCX,指示MG保持当前会话(rtp的负载格式:telephone-event-->无(普通rtp流))
| |
MG接收命令执行之后回复200确认
| |
11
|
MG_B以ntfy命令上报号码(每拨一位便上报一位)
|
MGC接收命令回复200确认
| |
MGC分析号码并指定呼出路由
| |
12
|
MGC给主叫MG_C下发CRCX,指示MG_C创建连接
—
命令携带已经协商完成的媒体连接参数
|
MG接收命令执行之后回复200确认
—
被叫根据主叫的媒体参数协商出通话所需参数
| |
13
|
MGC给主叫MG_B下发RQNT(携带信号描述符),指示MG给话机下发回铃音
|
MG接收命令执行之后回复200确认
| |
MGC给被叫MG_C下发RQNT(携带信号描述符),指示MG给话机下发振铃音
| |
MG接收命令执行之后回复200确认
| |
14
|
MG_B检测到挂机机以ntfy命令上报
—
但目标号码C开始振铃的时候,呼叫已经成功转移
|
MGC接收到命令之后回复200 确认
| |
MG_C检测到摘机以ntfy命令上报
—
但目标号码C摘机接听
| |
MGC接收到命令之后回复200 确认
| |
15
|
MGC给被叫MG_A下发MDCX,指示MG进入通话模式(rtp的负载格式:无(普通)
à
telephone-event)
|
MG接收命令执行之后回复200确认
| |
MGC给被叫MG_C下发MDCX,指示MG_C修改连接模式(IN
à
SR)
| |
MG接收命令执行之后回复200确认
| |
用户A与用户C开始通话,若需要继续拍叉则重复步骤9
—
步骤15
|
转载于:https://blog.51cto.com/940137/434937