按照DigitMap收集的号码可以由三个事件间定时器保护,即起始定时器(T)、短定时器(S)和长定时器(L)
这
3
个定时器使用在数图的不同阶段
1
、摘机到拨号前的阶段,这个阶段由
起始定时器T
控制,若在
T
超时仍没有拨号则
MG
下发催挂音,提示话机挂机。若将该定时器时间设置为
0
,表示
MG
会无期限的等待下去
(
在使用
sip
或者
mgcp
的时候,
MG
检测到话机没有拨号超过一定时间,则会主动下发催挂音提示
)
2
、拨号到送号的阶段
1
,话机拨号码的时候,MG根据局端下发的数图判断,如果当前号码只要在拨一位就唯一匹配到某条规则,则
MG
启用
长定时器L
,若在
L
定时器超时收集的号码仍未匹配任意一条数图规则,则
MG
在
L
超时后,向
MGC
上报号码
3
、拨号到送号的阶段
2
,话机拨号码的时候,MG根据局端下发的数图判断,如果当前号码只要再拨一位就可以匹配多条数图规则,
MG
启用
短定时器S
,若在S
定时器超时前收集的号码匹配任意一条数图规则,则向MGC上报号码,否则
在
MG
在
短定时器S
超时后,向
MGC
上报号码
备注:
局端可以在下发的数图中强制要求启用某种定时器如局端下发的数图为
DM={([2-8]xxxxxx|13xxxxxxxxx|....|[0-9].L)
则表示号码匹配到最后一条规则的时候启用长定时器
(
如我们拨打
135594425254444
,该号码只能匹配最后一条规则
)
,否则的话按照上述步骤进行处理。
MG
收到号码若以及匹配digitmap
的某条规则,若为sip
或者mgcp
协议则MG
立刻就上报号码,而megaco
协议不同,它会去检查该号码是否跟其他号码部分匹配,若存在这种情况则MG
启动相应的定时器:
1
、若当前的号码无法匹配任意一条规则,而后续加拨的号码无法跟任一规则匹配则等待长定时器
L
超时后,上报号码并且METH=PM
;
2
、若当前拨打的号码跟某条规则完成匹配,在短定时器
S
超时前后续加拨的号码无法跟任一其他数图规则匹配则等待短定时器
S
超时后上报号码并且METH=PM
;若短定时器S
超时前后续加拨的号码可以跟数图的任意一条规则匹配则等待短时期
S
超时
后上报号码并且METH=FM
3
、若当前的号码已经匹配任意数图规则,在短定时器
S
超时前后续加拨的号码已经只有唯一的一条规则,并且号码与这条规则精确匹配则上报的METH=UM
备注2
:数图匹配方法(
匹配方法在报文中的表示如图)
例:局端下发的数图规则如下DM={([2-8]xxxxxx|13xxxxxxxxx|10086|....|[0-9].L)
,则如果话机拨打10086
并在短定时器超时之后才上报号码,这样的方式为精确匹配。若拨打13559442528
,很显然与第二条规则匹配,这种匹配方式为完全匹配。其他方式为部分匹配。
转载于:https://blog.51cto.com/940137/431744