
| 资料编码 | 产品名称 | UA5000 | |
| 使用对象 | 华为工程师 | 产品版本 | |
| 编写部门 | 固网技术支持部 | 资料版本 |
| 拟 制: | 余 强 | 日 期: | 2006-10-28 |
| 审 核: | 日 期: | ||
| 审 核: | 日 期: | ||
| 批 准: | 日 期: |
华 为 技 术 有 限 公 司
版权所有 侵权必究
修订记录
| 日期 | 修订版本 | 描述 | 作者 |
一、 H.248协议基本概念介绍 1
二、 H.248协议呼叫实例模型 1
三、 H.248协议呼叫流程 1
四、 H.248协议信令分析 1
五、 附件 1
特性名、事件名和信号举例 1
包分类列表 1
H.248协议命令 1
H.248消息的结构 1
关键词:
H.248 MG MGC 呼叫流程
摘 要:
该文档主要用于帮助处理H.248协议的VOIP业务方面的问题,在理解和掌握协议和呼叫流程的基础上,根据跟踪的信令或抓取的H.248协议包,分析定位问题故障原因。本文主要针对同一个MG接口下两个用户正常的呼叫流程信令来解析。
缩略语清单:
参考资料清单
随着NGN网络和VOIP业务的不断应用和发展,H248协议在目前应用中越来越广泛。对于协议和整个呼叫流程的理解和掌握,将非常有助于我们故障定位和问题处理。
一、H.248协议基本概念介绍
H.248协议,也叫MeGaCo协议,是媒体网关控制器(MGC)与媒体网关(MG)之间的一种媒体网关控制协议。它提供了MGC在呼叫处理过程中控制MG中各类静态及动态资源(IP/ATM/TDM)的能力(包括终端属性、终端连接交换关系及其承载的媒体流);还提供了于呼叫的MG状态维护与管理能力。
二、H.248协议呼叫实例模型
图1-1 H.248呼叫实例模型
同一MG下的两个终端之间的呼叫建立和释放流程如图1-22所示。不同MG下的两个终端之间的呼叫建立和释放流程与该流程基本相同,在此不再赘述。
本流程示例基于以下约定:
●Termination1的物理终端ID为A0,UserA与A0连接;
●Termination2的物理终端ID为A1,UserB与A1连接;
●UserA为主叫,UserB为被叫,主叫先挂机;
●SoftX3000的IP地址和端口号为:192.168.100.1:2944;
●MG的IP地址和端口号为:192.168.100.70:2944。
三、H.248协议呼叫流程
图1-1 同一MG下的两个终端之间的H.248呼叫流程示例
四、H.248协议信令分析
事件1:主叫用户摘机
MG设备检测到终端A0对应的主叫用户UserA摘机,并通过NTFY_REQ
命令,把摘机事件通知给MGC。
NTFY_REQ命令的文本描述
MEGACO/1 [192.168.100.70]:2944
T=883{C= - {
N=A0{
OE=369109250{al/of}}}}
第一行:MEGACO即H..248协议,版本为1。表示由MG发给MGC的消息MG的IP地址和端口号为:[192.168.100.70]:2944
第二行:T表示Transaction事务,此为请求事务,事务ID为“883”;
C表示Context关联,“-”表示此时封装的关联为空。
第三行:N表示Notify通知命令,该命令作用于终端A0。
第四行:OE表示Observe Event观测到的事件描述符。此时,TerminationA所在的MG观测到UserA摘机,向MGC汇报该事件。RequestID为“369109250”。
MGC确认收到用户摘机事件,回应答消息。
NTFY_REPLY响应的文本描述
MEGACO/1 [192.168.100.1]:2944
P=883{C= - {
N=A0}}
第一行:MEGACO即H..248协议,版本为1。表示由MGC发给MG的消息MGC的IP地址和端口号为:[192.168.100.1]:2944
第二行:P表示Reply响应事务,事务ID为“883”,与请求事务ID一致;
C表示Context关联,“-”表示此时封装的关联为空。
响应有两种:“Reply”和“Pending”。“Reply”表示已经完成了命令执行,返回执行成功或失败信息;“Pending” 指示命令正在处理,但仍然没有完成。当命令处理时间较长时,可以防止发送者重发事务请求。
第三行:N表示Notify通知命令,该命令作用于终端A0。
事件2:MG给主叫放拨号音
MGC收到主叫用户摘机事件后,通过MOD_REQ命令指示MG给A0终
端对应的UserA放拨号音,并且把DigitMap(拨号计划dmap1)通知给MG,
要求根据DigitMap收号,并同时检测用户挂机事件。
MOD_REQ命令的文本描述
MEGACO/1 [192.168.100.1]:2944
T=372771555{
C= - {
MF=A0{
E=369109251{
dd/ce{DigitMap=dmap1},al/*},
SG{cg/dt},
DM=dmap1{
([2-9]xxxxxx|13xxxxxxxxx|0xxxxxxxxx|9xxxx|1[0124-9]x|E|x.F|[0-9EF].L)}}}}
第一行:MEGACO协议的版本为1,以及消息发送者标识(MID)。
第二行:请求事务ID为“372771555”,该事务ID用于将该请求事务和其触发的响应事务相关联。
第三行:此时,该事务封装的关联为空。
第四行:MF表示Modify 命令,用来修改终端A0的特性、事件和信号。
第五行:E表示Event事务描述符,其RequestID为“369109251”。通过RequestID 可以将事件请求命令和事件发生通知Notify 命令关联起来。
第六行:MGC请求MG监视终端A0发生的以下事件:事件一,根据Digit Map规定的拨号计划(dmap1)收号。事件二,请求MG检测模拟线包(al)中的所有事件。
第七行:SG表示Signal信号描述符。表示MGC请求MG给终端A0送拨号音(dt:dial tone)。
第八行:DM表示Digit Map数图描述符。MGC给MG下发拨号计划dmap1。
第九行:拨号计划dmap1。其中,“[2-9]xxxxxx”表示用户可以拨2~9中任意一位数字开头的任意7位号码;“13xxxxxxxxx”表示13开头的任意11号码;“0xxxxxxxxx”表示0开头的任意10位号码;“9xxxx”表示9开头的任意5位号码;“1[0124-9]x”表示1开头,3以外的十进制数为第二位的任意3位号码;“E”表示字母“*”;“F”表示字母“#”;“[0-9EF].L”表示拨以数字0~9、字母“*”、“#”开头的任意位等长定时器超时之后就会上报。
协议中定义的数字表:
| 数字或字符 | 含义 |
| 0~9 | - |
| A~D | - |
| X | 通配值,表示“0~9”之间的任意数字 |
| T | 表示检测到定时器超时,即在匹配完拨号方案后,如果仍然有号码,系统将逐位上报号码 |
| * | 表示DTMF方式中的“*” |
| # | 表示DTMF方式中的“#” |
| . | 表示其前面的数字或字符可以出现任意多个,包括0个 |
| | | 用于分隔字符串,表示每个字符串为一个可选择的拨号方案 |
| [ ] | 表示在其中的数字或字符串中任选一位 |
MOD_REPLY响应的文本描述
MEGACO/1 [192.168.100.70]:2944
P=372771555{
C= - {
MF=A0}}
第一行:MEGACO协议的版本为1,以及消息发送者标识(MID)。
第二行:响应事务ID为“372771555”,该事务ID用于和请求事务相关联。
第三行:此时,该事务封装的关联为空。
第四行:MF表示Modify 命令,用来修改终端A0的特性、事件和信号。
事件3:主叫用户拨号
UserA拨号, MG对所拨号码进行收集,并与对应的DigitMap进
行匹配,匹配成功,通过NTFY_REQ命令发送给MGC。
NTFY_REQ命令的文本描述
MEGACO/1 [192.168.100.70]:2944
T=884{C= - {
N=A0{
OE=369109251{
20030429T06132700:
dd/ce
{Meth=UM,ds=6540100}}}}}
第一行:MEGACO协议的版本为1,以及消息发送者标识(MID)。
第二行:请求事务ID为884。此时,该事务封装的关联为空。MGC的实现方式为主叫拨号之后才建立关联,以免主叫摘机不拨号、所拨的号码不存在等原因引起的资源浪费。
第三行:Notify命令,该命令作用于终端A0。
第四行:观测到的事件描述符。RequestID为“369109251”,与上文MOD_REQ命令的RequestID相同,表示该通知由此MOD_REQ命令触发。
第五行:上报DigitMap事件 的时间戳。“20030429T06132700”表示2003年4月29日早上6时13分27秒。
第六行:终端A0观测到的事件为DTMF检测包中的DigitMap Completion事件。该事件的两个参数为:DigitMap结束方式(Meth)和数字串(ds)。
第七行:Meth为DigitMap结束方式。数字串“ds”,此时表示UserA所拨的号码为“6540100”。
DigitMap结束方式(Meth)有3个可能值:
“UM”:明确匹配。如果恰好只剩下一个候选拨号序列且完全匹配,就会产生一个“明确匹配”的DigitMapCompletion 事件。
“PM”:部分匹配。在每一步中,等待下一拨号事件的定时器将采用缺省的定时原则,或者参照一个或多个拨号事件序列中明确规定的定时器。若定时器超时,且不能与候选拨号事件集完全匹配或没有候选拨号事件可以匹配,则报告“定时器超时,部分匹配”。
“FM”:完全匹配。若定时器超时,且能与候选拨号事件集中的一个拨号事件完全匹配,则报告“定时器超时,完全匹配”。
MGC发NTFY_REPLY响应确认收到MG的NTFY_REQ命令。
NTFY_REPLY响应的文本描述
MEGACO/1 [192.168.100.1]:2944
P=884{C= - {
N=A0}}
第一行:MEGACO协议的版本为1,以及消息发送者标识(MID)。
第二行:请求事务ID为884。此时,该事务封装的关联为空。
第三行:Notify命令,该命令作用于终端A0。
事件4:在主叫用户侧增加新的关联
MGC在MG中创建一个新context,并在context中加入TDM termination
和RTP termination。
ADD_REQ命令的文本描述
MEGACO/1 [192.168.100.1]:2944
T=369363687{
C=${
A=A0{
M{O{MO=SR,RV=OFF,RG=OFF}},
E=369109253{al/*},
SG{}},
A=${
M{O{MO=IN,RV=OFF,RG=OFF,nt/jit=40},
L{v=0 c=IN IP4 $ m=audio $ RTP/AVP 8}}}}}
第一行:MEGACO协议的版本为1,以及消息发送者标识(MID)。
第二行:请求事务ID为“369363687”。
第三行:“$”表示请求MG创建一个新关联。由于目前关联还不确定,所以使用“$”。
第四行:A表示ADD命令,将终端A0加入到新增的关联中。
第五行:M表示Media媒体描述符。“O”表示LocalControl本地控制描述符。MO表示Modify命令,修改终端A0的属性为收发模式(SR),预留组属性(RG)、预留值属性(RV)均为“OFF”。
第六行:事件描述符。RequestID为“369109253”,MGC请求MG检测模拟线包中所有事件的发生,例如挂机事件。
第七行:信号描述符。此时信号为空,表示MGC要求MG停止目前所播放的任何信号。
第八行:ADD命令,将某个RTP终端加入新增关联。其中,新的RTP终端为临时终端,由于RTP终端的描述符没有确定,所以使用“$”。
第九行:媒体描述符。“O”表示本地控制描述符,MO表示Modify命令,此时修改RTP终端模式为去激活(INACTIVE),预留组属性(RG)、预留值属性(RV)均为“OFF”,“nt/jit=40”表示Network Package中的抖动缓存最大值为40毫秒。
第十行:L表示Local,MGC建议新的RTP终端采用一系列本地描述参数。“v=0” 表示SDP(Session Description Protocol)会话描述协议版本为0。“c=IN IP4 $”表示RTP终端的关联信息,IN表示关联的网络标识为Internet,关联地址类型为IP4,“$”表示目前本地IP地址未知。“m=audio $ RTP/AVP 8”表示MGC建议新的RTP终端的媒体描述,“audio”表示RTP终端的媒体类型为音频,“$”表示RTP终端的媒体端口号目前未知,“RTP/AVP”为传送层协议,其值和“c”行中的地址类型有关,对于IP4来说,大多数媒体业务流都在RTP/UDP上传送,已定义如下两类协议:RTP/AVP,音频/视频应用文档,在UDP上传送;Udp,UDP协议。“8”对于音频和视频来说,就是RTP音频/视频应用文档中定义的媒体静荷类型。表示MGC建议RTP终端媒体编码格式采用G.711A。
H.248协议规定RTP静荷类型至编码的映射关系为:
G.711U = 0;G.726 = 2;G.723,G.7231 = 4;G.711A = 8;G.729,G.729A = 18。
MG返回ADD_REPLY响应,分配新的连接描述符,新的RTP终端描述符。
ADD_REPLY响应的文本描述
MEGACO/1 [192.168.100.70]:2944
P=369363687{C=286{
A=A0,A=A100000034{
M{O{MO=IN,RV=OFF,RG=OFF,nt/jit=40},
L{v=0 c=IN IP4 192.168.100.70 m=audio 18300 RTP/AVP 8}}}}}
第一行:MEGACO协议的版本为1,以及消息发送者标识(MID)。
第二行:响应事务ID为“369363687”。“C=286”表示关联已建立,MG赋予一个关联ID“286”来标识这个关联。
第三行:确认物理终端A0和临时终端A100000034已经加入关联286。
第四行:媒体描述符。
第五行:根据MGC的建议,网关确认A100000034终端采用G.711A媒体编码格式,设置其RTP端口号为18300,填充本地IP地址192.168.100.70。
事件5:在被叫用户侧增加新的关联
MGC进行被叫号码分析后,确定被叫UserB与MG的物理终端A1相连。
因此,MGC使用ADD_REQ请求MG把物理终端A1和某个RTP终端加入到一
个新的关联中。MG返回ADD_REPLY响应,分配新的连接描述符为287,新的
RTP终端描述符为A100000035。MG根据MGC的建议,决定MG的
A100000035终端采用G.711A编解码方式,设置其RTP端口号为18296,填充
本地IP地址192.168.100.70,同时设置A100000035终端为去激活(Inactive)
模式。
ADD_REQ命令的文本描述
MEGACO/1 [192.168.100.1]:2944
T=369363688{
C=${
A=A1{
M{O{MO=SR,RV=OFF,RG=OFF}},
E=3691098{al/*},
SG{}},
A=${
M={O{MO=IN,RV=OFF,RG=OFF,nt/jit=40},
L{v=0 c=IN IP4 $ m=audio $ RTP/AVP 8}}}}}
各个参数的详细解释可参考事件4。
ADD_REPLY响应的文本描述
MEGACO/1 [192.168.100.70]:2944
P=369363688{C=287{
A=A1,A=A100000035{
M{O{MO=IN,RV=OFF,RG=OFF,nt/jit=40},
L{v=0 c=IN IP4 192.168.100.70 m=audio 18296 RTP/AVP 8}}}}}
各个参数的详细解释可参考事件4。
事件6:MG给被叫用户放振铃音
MGC发送MOD_REQ命令给终端A1,修改终端A1的属性并请求MG给
UserB放振铃音。
MOD_REQ命令的文本描述
MEGACO/1 [192.168.100.1]:2944
T=372771561{C=287{
MF=A1{
E=3691099{al/*},
SG{al/ri}}}}
第一行:MEGACO协议的版本为1,以及消息发送者标识(MID)。
第二行:请求事务ID为“372771561”。“C=287”表示关联已建立,MG赋予一个关联ID“287”来标识这个关联。
第三行:MF表示Modify命令,该命令作用于终端A1。
第四行:事件描述符。RequestID为“3691099”,MGC请求MG检测模拟线包中所有事件的发生,例如挂机事件。
第五行:信号描述符。ri即ring,此时MGC要求MG给被叫UserB放振铃音。
MG返回MOD_REPLY响应进行确认。MOD_REPLY响应的文本描述:
MEGACO/1 [192.168.100.70]:2944
P=372771561{C=287{MF=A1}}
第一行:MEGACO协议的版本为1,以及消息发送者标识(MID)。
第二行:响应事务ID为“372771561”,与请求事务ID一致。
事件7:MG给主叫用户放回铃音
MGC发送MOD_REQ命令给终端A0,修改终端A0的属性并请求MG给
UserA放回铃音。
MOD_REQ命令的文本描述
MEGACO/1 [192.168.100.1]:2944
T=372771562{C=286{
MF=A0{
E=369109256{al/*},
SG{cg/rt}}}}
第一行:MEGACO协议的版本为1,以及消息发送者标识(MID)。
第二行:请求事务ID为“372771562”。“C=286”表示关联ID为286。
第三行:MF表示Modify命令,该命令作用于终端A0。
第四行:事件描述符。RequestID为“369109256”,MGC请求MG检测模拟线包中所有事件的发生,例如挂机事件。
第五行:信号描述符。rt即ringback tone,此时MGC要求MG给被叫UserA放回铃音。
MG返回MOD_REPLY响应进行确认。MOD_REPLY响应的文本描述:
MEGACO/1 [192.168.100.70]:2944
P=372771562{C=286{MF=A0}}
各个参数的详细解释可参考事件6
事件8:被叫用户摘机
被叫UserB摘机,MG把摘机事件通过NTFY_REQ命令通知MGC。
NTFY_REQ命令的文本描述
MEGACO/1 [192.168.100.70]:2944
T=885{C=287{
N=A1{
OE=3691099{al/of}}}}
第一行:MEGACO协议的版本为1,以及消息发送者标识(MID)。
第二行:请求事务ID为“885”。“C=287”表示关联ID为287。
第三行:N表示Notify命令,该命令作用于终端A1。
第四行:OE表示Observe Event观测事件。MG观测到UserB摘机(of:off -hook),向MGC汇报该事件,事件ID为“3691099”。
MGC返回NTFY_REPLY响应进行确认。NTFY_REPLY响应的文本描述
MEGACO/1 [192.168.100.1]:2944
P=885{C=287{N=A1}}
各个参数的详细解释可参考事件6
事件9:MG给被叫停放振铃音
MGC把与终端A0关联的RTP终端A100000034的连接描述通过
MOD_REQ命令送给与终端A1关联的RTP终端A100000035。并且修改RTP
终端A100000035的模式为收/发。
MOD_REQ命令的文本描述
MEGACO/1 [192.168.100.1]:2944
T=370281195{C=287{
MF=A1{M{O{MO=SR,RV=OFF,RG=OFF,tdmc/ec=ON}},
E=369109001{al/*},
SG{}},
MF=A100000035{M{O{MO=SR,RV=OFF,RG=OFF},
L{v=0 c=IN IP4 - m=audio - RTP/AVP 8},
R{v=0 c=IN IP4 192.168.100.70 m=audio 18300 RTP/AVP 8}}}}}
第一行:MEGACO协议的版本为1,以及消息发送者标识(MID)。
第二行:请求事务ID为“370281195”,关联ID为“287”,即MGC和Termination2建立的关联。
第三行:Modify命令,修改终端A1的属性。“M”表示媒体描述符,“O”表示LocalControl描述符,“MO=SR”表示MGC修改终端A1的模式为收/发,“RV=OFF,RG=OFF”表示预留组属性、预留值属性均为“OFF”,“tdmc/ec=ON”表示MGC建议MG TDM电路包中的回声取消特性为“ON”。
第四行:MGC请求MG检测终端A1发生的事件,例如挂机等。
第五行:信号描述符。此时信号为空,表示MGC要求MG停止目前所播放的任何信号。
第六行:Modify命令,修改RTP终端A100000035的属性。“M”表示媒体描述符,“O”表示LocalControl描述符,“MO=SR”表示MGC修改RTP终端A100000035的模式为收/发,“RV=OFF,RG=OFF”表示预留组属性、预留值属性均为“OFF”。
第七行:Local描述符,包含本端RTP(与终端A1关联)终端A100000035的连接描述。
第八行:Remote描述符,包含远端RTP(与终端A0关联的)终端A100000034的连接描述。
MG返回MOD_REPLY响应进行确认。MOD_REPLY响应的文本描述:
MEGACO/1 [191.165.15.122]:2944
P=370281195{C=287{
MF=A1,MF=A100000035{
M{L{v=0 c=IN IP4 192.168.100.70 m=audio 18296 RTP/AVP 8}}}}}
各个参数的详细解释可参考事件4
事件10:MG给主叫停放回铃音
MGC把与终端A1关联的RTP终端A100000035的连接描述通过
MOD_REQ命令送给与终端A0关联的RTP终端A100000034。并且修改RTP
终端A100000034的模式为收/发。
MOD_REQ命令的文本描述
MEGACO/1 [192.168.100.1]:2944
T=370281196{C=286{
MF=A0{M{O{MO=SR,RV=OFF,RG=OFF,tdmc/ec=ON}},
E=369109258{al/*},
SG{}},
MF=A100000034{M{O{MO=SR,RV=OFF,RG=OFF},
L{v=0 c=IN IP4 - m=audio - RTP/AVP 8},
R{v=0 c=IN IP4 192.168.100.70 m=audio 18296 RTP/AVP 8}}}}}
各个参数的详细解释可参考事件9。
MG返回MOD_REPLY响应进行确认。此后终端A0和终端A1都知道了本端
和对端的连接信息。具备了通话条件,开始通话。MOD_REPLY响应的文本描述
MEGACO/1 [191.165.15.122]:2944
P=370281196{C=286{
MF=A0,MF=A100000034{
M{L{v=0 c=IN IP4 192.168.100.70 m=audio 18300 RTP/AVP 8}}}}}
事件11:主叫用户挂机
MG检测到主叫用户UserA挂机后发送NTFY_REQ命令通知MGC。
NTFY_REQ命令的文本描述
MEGACO/1 [192.168.100.70]:2944
T=886{C=286{
N=A0{OE=369109258{al/on}}}}
第一行:MEGACO协议的版本为1,以及消息发送者标识(MID)。
第二行:请求事务ID为“886”。“C=286”表示关联ID为286。
第三行:当MG观测到UserA挂机后(on:On-hook),通过Notify命令向MGC汇报该事件,事件ID为“369109258”。
MGC发NTFY_REPLY确认已收到通知命令。NTFY_REPLY响应的文本描述
MEGACO/1 [192.168.100.1]:2944
P=886{N=A0}}
事件12:MGC请求MG监测用户是否有摘机事件
当MGC收到UserA的挂机事件,MGC给MG发送MOD_REQ命令修改
终端A0属性,请求MG进一步检测终端A0发生的事件,如摘机事件等,并且
修改RTP终端A100000034的模式为去激活。
MOD_REQ命令的文本描述
MEGACO/1 [192.168.100.1]:2944
T=370281199{C=286{
MF=A0{E=369109259{al/*},SG{}},
MF=A100000034{M{O{MO=IN,RV=OFF,RG=OFF}}}}}
第一行:MEGACO协议的版本为1,以及消息发送者标识(MID)。
第二行:请求事务ID为“370281199”,关联ID为“286”,即MGC和Termination1建立的关联。
第三行:Modify命令,修改终端A0的属性。并检测终端A0模拟线路上所有事件,此时停放任何信号音。
第四行:Modify命令,修改终端A100000034的属性。“M”表示媒体描述符,“O”表示LocalControl描述符,“MO=SR”表示MGC修改终端A100000034的模式为去激活(IN:Inactive),“RV=OFF,RG=OFF”表示预留组属性、预留值属性均为“OFF”。
MG发送MOD_REPLY响应确认已接收MOD_REQ命令并执行。
MOD_REPLY响应的文本描述
MEGACO/1 [192.168.100.70]:2944
P=370281199{C=286{MF=A0,MF=A100000034}}
事件13:MG给主叫用户拆线
MGC收到UserA的挂机事件后,将向MG发送SUB_REQ命令,把关联286中的所有的半永久型终端和临时的RTP终端删除,从而删除关联,拆除呼叫。
SUB_REQ命令的文本描述
MEGACO/1 [192.168.100.1]:2944
T=372509424{C=286{O-S=*}}
第一行:MEGACO协议的版本为1,以及消息发送者标识(MID)。
第二行:请求事务ID为“372509424”,关联ID为“286”。“O-S=*”中“O”表示Optional,“S”表示Subtract,“*”表示ALL。由此,“O-S=*”表示删除286 context中的所有终端。
MG返回SUB_REPLY响应确认已接收SUB_REQ命令。
SUB_REPLY响应的文本描述
MEGACO/1 [192.168.100.70]:2944
P=372509424{C=286{
S=A0,S=A100000034}}
事件14:MG给被叫放忙音,并监测被叫是否有挂机事件。
MGC给MG发MOD_REQ命令修改终端A1的属性,请求MG监测终端
A1发生的事件,如挂机等,并且请求MG给终端A1送忙音。
MOD_REQ命令的文本描述
MEGACO/1 [192.168.100.1]:2944
T=372771569{C=287{
MF=A1{E=369109004{al/*},SG{cg/bt}}}}
第一行:MEGACO协议的版本为1,以及消息发送者标识(MID)。
第二行:请求事务ID为“372771569”,关联ID为“287”,即MGC和Termination2建立的关联。
第三行:Modify命令,修改终端A1的属性。并检测终端A1模拟线路上所有事件,例如挂机事件。并给终端A1放忙音(bt :busy tone)。
MG返回MOD_REPLY响应确认收到MOD_REQ命令。
MOD_REPLY响应的文本描述
MEGACO/1 [192.168.100.70]:2944
P=372771569{C=287{MF=A1}}
事件15:MGC请求MG监测主叫用户是否有摘机事件
终端A0、RTP终端、MGC之间的关联和呼叫拆除之后。MGC向MG
发送MOD_REQ命令,请求MG监测终端A0发生的事件,如摘机事件等。
MOD_REQ命令的文本描述
MEGACO/1 [192.168.100.1]:2944
T=372771570{C= - {
MF=A0{E=369109261{al/*},SG{}}}}
第一行:MEGACO协议的版本为1,以及消息发送者标识(MID)。
第二行:请求事务ID为“372771570”,关联ID为空。
第三行:Modify命令,修改终端A0的属性。并检测终端A0模拟线路上所有事件,例如挂机事件,并停放任何信号音。
MG返回MOD_REPLY响应确认已接收MOD_REQ命令。此时关联为空。
MOD_REPLY响应的文本描述
MEGACO/1 [192.168.100.70]:2944
P=372771570{C= - {MF=A0}}
事件16:被叫用户挂机
MG监测到被叫用户UserB挂机事件,并发送NTFY_REQ命令通知MGC。
NTFY_REQ命令的文本描述
MEGACO/1 [192.168.100.70]:2944
T=887{C=287{
N=A1{OE=369109004{al/on}}}}
第一行:MEGACO协议的版本为1,以及消息发送者标识(MID)。
第二行:请求事务ID为“887”,关联ID为“287”。
第三行:Notify命令,向MGC上报终端A1的挂机事件(on:On-hook)。Request ID为369109004,和事件14 MOD_REQ命令的Request ID相同,表示该NTFY_REQ命令由事件14的MOD_REQ命令触发。
MGC发NTFY_REPLY确认已收到通知命令。
NTFY_REPLY响应的文本描述
MEGACO/1 [192.168.100.1]:2944
P=887{C=287{N=A1}}
事件17:MG给被叫用户拆线
MGC收到UserB的挂机事件后,将向MG发送SUB_REQ命令,把关联287
中的半永久型终端和临时的RTP终端删除,从而删除关联,拆除呼叫。
SUB_REQ命令的文本描述
MEGACO/1 [192.168.100.1]:2944
T=372509427{C=287{O-S=*}}
第一行:MEGACO协议的版本为1,以及消息发送者标识(MID)。
第二行:请求事务ID为“372509427”,关联ID为“287”。“O-S=*”中“O”表示Optional,“S”表示Subtract,“*”表示ALL。由此,“O-S=*”表示删除287 context中的所有终端。
MG返回SUB_REPLY响应确认已接收SUB_REQ命令。
SUB_REPLY响应的文本描述
MEGACO/1 [192.168.100.70]:2944
P=372509427{C=287{
S=A1,S=A100000035}}
事件18:MGC请求MG监测被叫用户是否有摘机事件
终端A1、RTP终端、MGC之间的关联和呼叫拆除之后。MGC向MG发送
MOD_REQ命令,请求MG监测终端A1发生的事件,如摘机事件等。
MOD_REQ命令的文本描述
MEGACO/1 [192.168.100.1]:2944
T=372771572{C= - {
MF=A1{E=369109006{al/*},SG{}}}}
第一行:MEGACO协议的版本为1,以及消息发送者标识(MID)。
第二行:请求事务ID为“372771572”,关联ID为空。
第三行:Modify命令,修改终端A1的属性。并检测终端A1模拟线路上所有事件,例如摘机事件,并停放任何信号音。
MG返回MOD_REPLY响应确认已接收MOD_REQ命令。此时关联为空。
MOD_REPLY响应的文本描述
MEGACO/1 [192.168.100.70]:2944
P=372771572{C= - {MF=A1}}
五、附件
特性名、事件名和信号举例
| 事件名 | 含义 |
| al/fl | 模拟线包中的拍叉事件 |
| al/of | 模拟线包中的摘机事件 |
| al/on | 模拟线包中的挂机事件 |
| al/ri | 模拟线包中的振铃音信号 |
| cg/bt | 呼叫音包中的忙音信号 |
| cg/ct | 呼叫音包中的拥塞音信号 |
| cg/cw | 呼叫音包中的呼叫等待音信号 |
| cg/dt | 呼叫音包中的拨号音信号 |
| cg/rt | 呼叫音包中的回铃音信号 |
| dd/ce | DTMF检测包中的DigitMap Completion事件 |
| nt/jit | Network Package中的抖动缓存最大值,单位为毫秒 |
| tdmc/ec | TDM电路包中的回声取消特性 |
| tdmc/gain | TDM电路包中的增益控制特性 |
| 包名 | 中文名 | 包ID | 含义 |
| Generic | 通用包 | G | 常见项目里都会用到通用包 |
| Base Root Package | 基础根包 | root | 该包定义了网关范围内的属性 |
| Tone Generator Package | 音生成器包 | tonegen | 该包定义了生成放音的各种信号。基于扩展性的考虑,该包没有指定参数值。放音一般定义成单个的信号,信号包含一个参数ind、一个放音ID。参数ind表示interdigit时延,放音ID用于放音。放音ID对于任何相同的语音来说都应该与语音生成保持一致。MG应提供其所在国家支持的各种放音的特性。 |
| Tone Detection Package | 音检测包 | tonedet | 该包定义了用于音检测的各种事件。各种音通过其名称(放音ID)来选择。MG应提供其所在国家支持的各种放音的特性。 |
| Basic DTMF Generator Package | 基本DTMF生成器包 | dg | 该包将基本的DTMF音定义成各种信号,并扩展了tonegen中playtone的参数tl的允许取值。 |
| DTMF detection Package | DTMF检测包 | Dd | 该包定义了基本的DTMF音检测。该包扩展了“start tone detected”、“end tone detected”和“long tone detected”事件中放音ID的可能的取值。 |
| Call Progress Tones Generator Package | 呼叫进展音生成器包 | Cg | 该包将基本的呼叫进展音定义成各种信号,并扩展了tonegen中playtone的参数tl的允许取值。 |
| Call Progress Tones Detection Package | 呼叫进展音检测包 | Cd | 该包定义了基本呼叫进展检测音。该包扩展了“start tone detected”、“end tone detected”和“long tone detected”事件中放音ID的可能的取值。 |
| Analog Line Supervision Package | 模拟线监控包 | Al | 该包定义了模拟线的各种事件和信号。 |
| Basic Continuity Package | 基本导通包 | Ct | 该包定义了用于导通测试的各种事件和信号。导通测试包括提供环回或收发器功能。 |
| Network Package | 网络包 | Nt | 该包定义了与网络类型无关的网络终端的属性。 |
| RTP Package | RTP包 | Rtp | 该包用于支持通过实时传输协议RTP方式的分组多媒体数据传输。 |
| TDM Circuit Package | TDM电路包 | tdmc | 该包用于支持TDM电路终结点。 |
| 命令名称 | 命令代码 | 描述 | |
| Add | ADD | MGC→MG,增加一个终端到一个关联中,当不指明ContextID时,将生成一个关联,然后再将终端加入到该关联中 | |
| Modify | MOD | MGC→MG,修改一个终端的属性、事件和信号参数 | |
| Subtract | SUB | MGC→MG,从一个关联中删除一个终端,同时返回终端的统计状态。如关联中再没有其它的终端将删除此关联 | |
| Move | MOV | MGC→MG,将一个终端从一个关联移到另一个关联 | |
| AuditValue | AUD_VAL | MGC→MG,获取有关终端的当前特性,事件、信号和统计信息 | |
| AuditCapabilities | AUD_CAP | MGC→MG,获取MG 所允许的终端的特性、事件和信号的所有可能值的信息 | |
| Notify | NTFY | MG→MGC ,MG将检测到的事件通知给MGC | |
| ServiceChange | SVC_CHG | MGC↔MG或MG→MGC, MG 使用ServiceChange 命令向MGC 报告一个终端或者一组终端将要退出服务或者刚刚进入服务。MG 也可以使用ServiceChange 命令向MGC 进行注册,并且向MGC 报告MG 将要开始或者已经完成了重新启动工作。同时,MGC 可以使用ServiceChange 命令通知MG 将一个终端或者一组终端进入服务或者退出服务 | |
