H248协议正常呼叫流程解析教学提纲文档格式.docx
《H248协议正常呼叫流程解析教学提纲文档格式.docx》由会员分享,可在线阅读,更多相关《H248协议正常呼叫流程解析教学提纲文档格式.docx(23页珍藏版)》请在冰豆网上搜索。
同一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]:
第二行:
T表示Transaction事务,此为请求事务,事务ID为“883”;
C表示Context关联,“-”表示此时封装的关联为空。
第三行:
N表示Notify通知命令,该命令作用于终端A0。
第四行:
OE表示ObserveEvent观测到的事件描述符。
此时,TerminationA所在的MG观测到UserA摘机,向MGC汇报该事件。
RequestID为“369109250”。
MGC确认收到用户摘机事件,回应答消息。
NTFY_REPLY响应的文本描述
MEGACO/1[192.168.100.1]:
P=883{C=-{
N=A0}}
表示由MGC发给MG的消息MGC的IP地址和端口号为:
[192.168.100.1]:
P表示Reply响应事务,事务ID为“883”,与请求事务ID一致;
响应有两种:
“Reply”和“Pending”。
“Reply”表示已经完成了命令执行,返回执行成功或失败信息;
“Pending”指示命令正在处理,但仍然没有完成。
当命令处理时间较长时,可以防止发送者重发事务请求。
事件2:
MG给主叫放拨号音
MGC收到主叫用户摘机事件后,通过MOD_REQ命令指示MG给A0终
端对应的UserA放拨号音,并且把DigitMap(拨号计划dmap1)通知给MG,
要求根据DigitMap收号,并同时检测用户挂机事件。
MOD_REQ命令的文本描述
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发生的以下事件:
事件一,根据DigitMap规定的拨号计划(dmap1)收号。
事件二,请求MG检测模拟线包(al)中的所有事件。
第七行:
SG表示Signal信号描述符。
表示MGC请求MG给终端A0送拨号音(dt:
dialtone)。
第八行:
DM表示DigitMap数图描述符。
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个
|
用于分隔字符串,表示每个字符串为一个可选择的拨号方案
[]
表示在其中的数字或字符串中任选一位
MG返回MOD_REPLY响应MGC的MOD_REQ命令。
MOD_REPLY响应的文本描述
P=372771555{
MF=A0}}
响应事务ID为“372771555”,该事务ID用于和请求事务相关联。
事件3:
主叫用户拨号
UserA拨号,MG对所拨号码进行收集,并与对应的DigitMap进
行匹配,匹配成功,通过NTFY_REQ命令发送给MGC。
T=884{C=-{
OE=369109251{
20030429T06132700:
dd/ce
{Meth=UM,ds=6540100}}}}}
请求事务ID为884。
MGC的实现方式为主叫拨号之后才建立关联,以免主叫摘机不拨号、所拨的号码不存在等原因引起的资源浪费。
Notify命令,该命令作用于终端A0。
观测到的事件描述符。
RequestID为“369109251”,与上文MOD_REQ命令的RequestID相同,表示该通知由此MOD_REQ命令触发。
上报DigitMap事件的时间戳。
“20030429T06132700”表示2003年4月29日早上6时13分27秒。
终端A0观测到的事件为DTMF检测包中的DigitMapCompletion事件。
该事件的两个参数为:
DigitMap结束方式(Meth)和数字串(ds)。
Meth为DigitMap结束方式。
数字串“ds”,此时表示UserA所拨的号码为“6540100”。
DigitMap结束方式(Meth)有3个可能值:
“UM”:
明确匹配。
如果恰好只剩下一个候选拨号序列且完全匹配,就会产生一个“明确匹配”的DigitMapCompletion事件。
“PM”:
部分匹配。
在每一步中,等待下一拨号事件的定时器将采用缺省的定时原则,或者参照一个或多个拨号事件序列中明确规定的定时器。
若定时器超时,且不能与候选拨号事件集完全匹配或没有候选拨号事件可以匹配,则报告“定时器超时,部分匹配”。
“FM”:
完全匹配。
若定时器超时,且能与候选拨号事件集中的一个拨号事件完全匹配,则报告“定时器超时,完全匹配”。
MGC发NTFY_REPLY响应确认收到MG的NTFY_REQ命令。
P=884{C=-{
事件4:
在主叫用户侧增加新的关联
MGC在MG中创建一个新context,并在context中加入TDMtermination
和RTPtermination。
ADD_REQ命令的文本描述
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=0c=INIP4$m=audio$RTP/AVP8}}}}}
请求事务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”表示NetworkPackage中的抖动缓存最大值为40毫秒。
第十行:
L表示Local,MGC建议新的RTP终端采用一系列本地描述参数。
“v=0”表示SDP(SessionDescriptionProtocol)会话描述协议版本为0。
“c=INIP4$”表示RTP终端的关联信息,IN表示关联的网络标识为Internet,关联地址类型为IP4,“$”表示目前本地IP地址未知。
“m=audio$RTP/AVP8”表示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响应的文本描述
P=369363687{C=286{
A=A0,A=A100000034{
L{v=0c=INIP4192.168.100.70m=audio18300RTP/AVP8}}}}}
响应事务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)
模式。
T=369363688{
A=A1{
E=369108998{al/*},
M={O{MO=IN,RV=OFF,RG=OFF,nt/jit=40},
各个参数的详细解释可参考事件4。
P=369363688{C=287{
A=A1,A=A100000035{
L{v=0c=INIP4192.168.100.70m=audio18296RTP/AVP8}}}}}
事件6:
MG给被叫用户放振铃音
MGC发送MOD_REQ命令给终端A1,修改终端A1的属性并请求MG给
UserB放振铃音。
T=372771561{C=287{
MF=A1{
E=369108999{al/*},
SG{al/ri}}}}
请求事务ID为“372771561”。
“C=287”表示关联已建立,MG赋予一个关联ID“287”来标识这个关联。
MF表示Modify命令,该命令作用于终端A1。
RequestID为“369108999”,MGC请求MG检测模拟线包中所有事件的发生,例如挂机事件。
ri即ring,此时MGC要求MG给被叫UserB放振铃音。
MG返回MOD_REPLY响应进行确认。
MOD_REPLY响应的文本描述:
P=372771561{C=287{MF=A1}}
响应事务ID为“372771561”,与请求事务ID一致。
事件7:
MG给主叫用户放回铃音
MGC发送MOD_REQ命令给终端A0,修改终端A0的属性并请求MG给
UserA放回铃音。
T=372771562{C=286{
E=369109256{al/*},
SG{cg/rt}}}}
请求事务ID为“372771562”。
“C=286”表示关联ID为286。
MF表示Modify命令,该命令作用于终端A0。
RequestID为“369109256”,MGC请求MG检测模拟线包中所有事件的发生,例如挂机事件。
rt即ringbacktone,此时MGC要求MG给被叫UserA放回铃音。
P=372771562{C=286{MF=A0}}
各个参数的详细解释可参考事件6
事件8:
被叫用户摘机
被叫UserB摘机,MG把摘机事件通过NTFY_REQ命令通知MGC。
T=885{C=287{
N=A1{
OE=369108999{al/of}}}}
请求事务ID为“885”。
“C=287”表示关联ID为287。
N表示Notify命令,该命令作用于终端A1。
OE表示ObserveEvent观测事件。
MG观测到UserB摘机(of:
off-hook),向MGC汇报该事件,事件ID为“369108999”。
MGC返回NTFY_REPLY响应进行确认。
P=885{C=287{N=A1}}
事件9:
MG给被叫停放振铃音
MGC把与终端A0关联的RTP终端A100000034的连接描述通过
MOD_REQ命令送给与终端A1关联的RTP终端A100000035。
并且修改RTP
终端A100000035的模式为收/发。
T=370281195{C=287{
MF=A1{M{O{MO=SR,RV=OFF,RG=OFF,tdmc/ec=ON}},
E=369109001{al/*},
MF=A100000035{M{O{MO=SR,RV=OFF,RG=OFF},
L{v=0c=INIP4-m=audio-RTP/AVP8},
R{v=0c=INIP4192.168.100.70m=audio18300RTP/AVP8}}}}}
请求事务ID为“370281195”,关联ID为“287”,即MGC和Termination2建立的关联。
Modify命令,修改终端A1的属性。
“M”表示媒体描述符,“O”表示LocalControl描述符,“MO=SR”表示MGC修改终端A1的模式为收/发,“RV=OFF,RG=OFF”表示预留组属性、预留值属性均为“OFF”,“tdmc/ec=ON”表示MGC建议MGTDM电路包中的回声取消特性为“ON”。
MGC请求MG检测终端A1发生的事件,例如挂机等。
Modify命令,修改RTP终端A100000035的属性。
“M”表示媒体描述符,“O”表示LocalControl描述符,“MO=SR”表示MGC修改RTP终端A100000035的模式为收/发,“RV=OFF,RG=OFF”表示预留组属性、预留值属性均为“OFF”。
Local描述符,包含本端RTP(与终端A1关联)终端A100000035的连接描述。
Remote描述符,包含远端RTP(与终端A0关联的)终端A100000034的连接描述。
MEGACO/1[191.165.15.122]:
P=370281195{C=287{
MF=A1,MF=A100000035{
M{L{v=0c=INIP4192.168.100.70m=audio18296RTP/AVP8}}}}}
各个参数的详细解释可参考事件4
事件10:
MG给主叫停放回铃音
MGC把与终端A1关联的RTP终端A100000035的连接描述通过
MOD_REQ命令送给与终端A0关联的RTP终端A100000034。
终端