- 经验
- 3
- 分贝
- 0
- 家园分
- 12
- 在线时间:
- 2 小时
- 最后登录:
- 2014-1-16
- 帖子:
- 2
- 精华:
- 0
- 注册时间:
- 2012-2-14
- UID:
- 763710
注册:2012-2-14
|
发表于 2013-8-19 11:29:20
|显示全部楼层
媒体网关控制协议,主要用在MGC与MGW之间,传送层一般用UDP网络层则封装到ip包中,要想得到H.248协议的包可以在MGC或MGW上捕获ip包,并通过wireshark进行分析。
MEGACO/1 [30.1.1.101]:2944 标识MEGACO协议也称为H.248协议(媒体网关控制协议)协议版本号1;[30.1.1.101]:2944为媒体网关的ID也就是该网关的ip地址和端口号,UDP端口号2944代表的是文本编码2945代表二进制编码。
Transaction=23{ H.248协议消息结构第一层便是事务,事务ID为23,代表一个23标识的H.248请求事务的发起。
Context=-{关联是代表MG之间的逻辑关系的上下文,-代表一个空的关联。
Notify=AL2{MGW利用通告命令将检测到AL2终端的相关事件进行上报给MGC。
ObservedEvents=2{Notify命令所带的描述符也即该命令的参数,称为被观察事件描述符,用来想MGC告知检查到的具体事件。
19700101T22203732:al/of 检测的包名称,线检测包,al代表是模拟用户,of代表用户摘机事件。
}}}}
总结:本条表述地址为30.1.1.101的MGW检测到有用户摘机事件,并将此信息通过Notify命令告知给MGC。
!/1 [30.1.1.2]:4304 !/1也是对H.248协议的标注版本号为1;30.1.1.2:4304为MGC的ID同样也代表他的ip地址及此次会话端口号。
P=23 { 是对上条事务23的应答 P代表 transactionpending 表示事务正在处应当中。
C=- { 空关联
N=AL2 }} AL2这个终端包含在此空关联当中,要求MGW检测此终端的事件。
K{ transaction的响应应答 ID为141
141
}
总结:这一条是由MGC在收到MGW的事务请求后的回应,表示事务正在处应当中,同时也要求MGW继续检测AL2终端的相关事件。
MEGACO/1 [30.1.1.101]:2944 即前面所说过的消息标识符,其实也就是发送方的域名 ip 或者设备号信息。
Transaction=24{发起一个事务标识符为24的事务请求
Context=-{空关联 一类比较特殊的关联。
Notify=AL2{通告此关联中的终端AL2的检测到的事件给MGC
ObservedEvents=3{被监测到的事件描述符
19700101T22204133:dd/ce{检测的事件包名称,有时候也用检测到的时间进行标识。dd/ce表示MGW检测收号完成.
ds="55550001",检测到的数字串也就是主叫用户所拨打的对方号码
Meth=UM} digitmap拨号方式的匹配方式 UM精确匹配MGC下发的digmap拨号计划
}}}}
总结:MGW检测到终端拨号的事件完成,并将所拨的号码 匹配方式等信息,通告给MGC。
!/1 [30.1.1.2]:4304 P=24 {C=- {N=AL2 }}
总结:MGC回复MGW事务24正在处应当中,并且清MGW留意AL2终端的的事件变化。
!/1 [30.1.1.2]:4304 消息头标识
T=142{ 事务ID
C=$ { $关联 表示请求创建一个新的关联
A=AL2 { A即ADD将终端AL2加入此新关联中
M{ media descriptor此终端的媒体流特性
O{代表localcotrol本地控制描述符,
MO=SR}}},媒体流的模式为接受/发送 send/receive
A=$ {$通配符代表choose,添加一个并不存在的终端
M{
O{
MO=RC, 媒体流模式为Receiveonly
nt/jit=100}, Network Package 中的抖动缓存最大值为100 毫秒 因为封包在网络中传输速度不均匀会造成抖动音,当然介个值越小越好啦。
L{ local描述符说明MGW是从远端实体接收到的媒体流
v=0 SDP协议版本为0
c=IN IP4 $ c表示连接信息 格式为c=<network type> <address type> <connection address>“c=IN IP4 $”表示关联的网络标识为Internet,关联地址类型为IP4,“$”表示目前本地IP 地址未知。
m=audio $ RTP/AVP 8 m媒体名称和传输地址 格式 m=<media> <port> <transport> <fmt list> audio表示新的RTP媒体类型为音频,端口目前未知,采用RTP/AVP协议传送 8代表媒体格式值。G.711A
a=silenceSuppn SIP协议中关于silencesupp开关和ptime值 下面的因为来自GOOGLEMake sure ALL SIP phones have enable or disabled silence suppression.
a=ptime:20
}}}}}
总结:MGW将AL2添加到一个新的关联,并设置它的相关媒体流属性。并添加一个现时不存在的终端,设置终端的属性,媒体流属性。
MEGACO/1 [30.1.1.101]:2944
Reply=142{ 应答事务请求
Context=6{指定关联的ID,因为上一步的时候还是未知的关联ID.
Add=AL2 添加AL2终端到关联6中
Add=E65540{ 添加E65540终端到关联6中
Media{ 终端E65540的媒体流描述符
Local{ 代表此stream单个媒体流的描述,说明MGW从远端实体收到的媒体流。
v=0 SDP 版本
c=IN IP4 20.1.1.111 网络类型 地址类型 地址
m=audio 49156 RTP/AVP 8 同上条
a=silenceSuppn 弄不明白,求高手指点 联系QQ 86900879
a=ptime:20
}}}}}TransactionResponseAck{24} 相应应答ID24
总计:MGW指定了关联ID 并将参与会话的终端加入此ID明确的关联中,并对终端属性 媒体流类型参数做了设定,以符合通信要求。
!/1 [30.1.1.2]:4304
T=143 {
C=$ {
A=AL1 {
M{O{MO=SR}}},
A=$ {
M{O{MO=SO,nt/jit=100},
L{
v=0
c=IN IP4 $
m=audio $ RTP/AVP 8
a=silenceSuppn
a=ptime:20
}}}}}K{142}
总结:MGC发起一条事务请求,并新建一个关联,将AL1加入到关联中,并设置媒体流类型模式SR,并添加一个尚未从在的终端,并设置相关属性。
MEGACO/1 [30.1.1.101]:2944 Reply=143{Context=7{Add=AL1,Add=E65541{Media{Local{
v=0
c=IN IP4 20.1.1.111
m=audio 49154 RTP/AVP 8
a=silenceSuppn
a=ptime:20
}}}}}
总结:MGW应答143事务请求,并确定关联ID为7添加AL1、E65541两个终端到此关联中,设置媒体流的相关属性参数。
!/1 [30.1.1.2]:4304 T=144 {C=6 {MF=AL2 {M{O{MO=SR}}}, MF=E65540 {M{O{MO=SR,nt/jit=100},R{
v=0
c=IN IP4 20.1.1.111
m=audio 49154 RTP/AVP 8
a=silenceSuppn
a=ptime:20
}}}}}K{143}
总结:MGC发起事务请求,要求修改关联6中终端AL2和E65540的媒体流属性。R代表remote代表代表MGC发给远端的数据流,以及设置媒体流的参数。
MEGACO/1 [30.1.1.101]:2944
Reply=144{
Context=6{
Modify=AL2,
Modify=E65540}}
总结:MGW回应MGC要求修改终端的事务请求。
!/1 [30.1.1.2]:4304
T=145 { MGC发起事务请求145
C=7 { 关联7
MF=AL1 { 修改终端AL1的属性
E=8{
al/of{strict=exact},al/on{strict=exact},g/sc},SG{al/ri}}, 检测该终端摘机 al/on挂机事件 al/ri发送振铃音
MF=E65541 { 修改终端E65541属性
SG{cg/rt}}}} 给终端E65541回铃音
K{144} 对事务144的响应返回ACK
总结:MGC分别向两个终端分发振铃及发铃音,并通知MGW继续检查终端事件。
MEGACO/1 [30.1.1.101]:2944
Reply=145{
Context=7{
Modify=AL1,
Modify=E65541}}
总结:MGW回应MGC请求完成。
MEGACO/1 [30.1.1.101]:2944 Transaction=25{Context=7{Notify=AL1{ObservedEvents=8{19700101T22204547:al/of}}}}
总结:MGW发起事务请求,通告终端AL1摘机事件。
!/1 [30.1.1.2]:4304 P=25 {C=7 {N=AL1 }}K{145}
总结:MGC应答事务请求,表示该事务正在处理中。
!/1 [30.1.1.2]:4304 T=147 {C=6 {
MF=AL2 { 修改终端属性的命令
SG{xal/las}}}}K{146} MGC下发通知MGW进行极性反转信号 模拟电话系统中用到的一种准确记录摘机 计费信号的办法。
总结:MGC下发MGW要求修改终端的信令属性。
!/1 [30.1.1.2]:4304 T=148 {C=6 {S=* },删除该关联中的所有终端,S代表Subtract,*通配符ALL的意思。
C=- {MF=AL2 {E=2{al/of{strict=exact, 新建一个空关联,将AL2终端加入该关联中,MF修改命令向MGW发送 检查终端摘机
EM{SG{cg/dt},下一次播放音
E=3{al/on{strict=exact},dd/ce{ 挂机事件 收号完成事件
DM=dialplan1},g/sc}}}}}}} 下发拨号计划DM 所谓拨号计划就是MGC定义的一些拨号可能位数或者首号信息。
总结:MGC发起事务请求148,要求删除关联6中的所有终端,并新建一个空的关联,将终端AL2加入其中,并要求MGW检查该终端的事件和下发拨号计划。
!/1 [30.1.1.2]:4304 消息头信息代表媒体网关控制器的协议版本地址端口信息。
T=149 {事务请求
C=7 {关联7
MF=AL1 {修改终端AL1
SG{cg/bt{SY=TO,DR=3000,NC={TO}}},播放忙音信号 DR=3000代表30秒 SY=TO,NC={TO}没弄懂什么意思??
M{O{MO=SR}}}, 修改媒体流属性为发送接受
MF=E65541 {修改终端E65541
M{O{MO=IN,nt/jit=100}}}}}设置媒体流属性为Internet包,延时抖动100毫秒。
总结:媒体网关控制器发起事务请求,要求修改关联7中终端的属性。
MEGACO/1 [30.1.1.101]:2944
Reply=148{ 148事务的应答
Context=6{ 关联6
Subtract=AL2{ 删除终端AL2
Statistics{ 媒体网关上报关于终端的统计信息
nt/os=55846,该终端发送字节数
nt/dur=9000}}, 单位为毫秒
Subtract=E65540{ 删除终端E65540
Statistics{ 上报终端E65540的统计信息
rtp/ps=366,发送的数据包数目
rtp/pr=53275, 接受的数据包数目
rtp/jit=0 数据包的延时抖动
rtp/pl=0,丢包率%
nt/or=0}}},代表接收的字节数
Context=-{
Modify=AL2}}将终端AL2置入空关联中
TransactionResponseAck{26} 事务相应确认
总结:媒体网关通过Subtract命令删除关联6中的两个终端,并分别上报这两个终端的统计信息。
MEGACO/1 [30.1.1.101]:2944
Transaction=27{
Context=7{
Notify=AL1{
ObservedEvents=8{19700101T22205255:al/on}}}}
总结:MGW将检测的到AL1挂机事件通告给MGC
!/1 [30.1.1.2]:4304 P=27 {C=7 {N=AL1 }}K{148-149}
总结:MGC对MGW发送的事务请求予以回复表示事务仍然在进行处理中
!/1 [30.1.1.2]:4304 消息头标识
T=150 {事务请求ID
C=7 {关联ID
S=* },删除该关联中所有终端
C=- {新建一个空关联
MF=AL1 {修改终端AL1的属性
E=2{ 事件请求ID
al/of{strict=exact, 要求MGW检测摘机事件
EM{SG{cg/dt},下一次放拨号音
E=3{al/on{strict=exact},检测挂机事件
dd/ce{DM=dialplan1},检测收号完成,并下发拨号计划给MGW.
g/sc}}}}}}} g/sc没弄懂含义?
MEGACO/1 [30.1.1.101]:2944 MEGACO协议消息头标识、版本、地址、端口号
Reply=150{ 媒体网关发起事务请求
Context=7{ 关联ID
Subtract=AL1{ 删除该关联中的终端AL1
Statistics{nt/os=99844,上报统计信息,nt/os该终端发送的字节数
nt/dur=11000}}, 单位时间为毫秒
Subtract=E65541{ 删除另一个终端E65541
Statistics{ 上报统计信息
rtp/ps=670,该终端发送的数据包的数目
rtp/pr=60593,接受的数据包数码
rtp/jit=0,数据包的延时抖动
rtp/pl=0,丢包率
nt/or=0}}},接受的数据包字节
Context=-{新建空关联
Modify=AL1}}修改AL1的属性
TransactionResponseAck{27}回应事务ID27
|
|