某地ETC失败问题 分析说明

简介: 某地ETC失败问题 分析说明

第1章             问题原因


1.1   问题描述


2011-07-01日发现某地ETC失败。经抓取trace发现,scp发向某地软交换的correlationid,某地软交换发向IP的correlationid不一致。


某地

8166699390

a50617

050617

失败

 

 

a83926

083926

失败

 

 

a16546

016546

失败

 

 

bf7994

bA7994

失败

 

 

a05371

005371

失败

 

a47038

047038

失败

 

 

a67477

067477

失败

 

 

a16994

016994

失败

 

 

ab6155

0b6155

失败

 

 

a75016

075016

失败


我们发现某地软交换把a转成了0,将f转成了a。


测试中的AA软交换、BB软交换透传correlationid,它们的ETC都是成功的。


AA

2886747464

a96477

A96477

正常

 

 

a16273

A16273

正常

 

 

a01417

A01417

正常

 

 

a60180

A60180

正常

 

 

a30187

A30187

正常

 

bb2433

Bb2433

正常

 

 

bf6683

bF6683

正常

 

 

b56644

B56644

正常

 

 

bf3320

bF3320

正常

 

 

b86160

B86160

正常


BB

8382310240

a70774

A70774

成功

 

 

a70156

A70156

成功

 

 

be1965

bE1965

成功

 

 

b73639

B73639

成功


1.2   问题分析


对于SCP,SSP,IP交互过程 ITU-T Q.1218对其描述如下:


Q.1218 第16(4)页:


0_1314855938N700.jpg


可以看出ssp需要支持传输correlationinformation



Q.1218 3.1.2.5.1 第146(134)页 开始详细介绍了 SRF connect procedures过程


3.1.3.5.1 SRF connect procedures


3.1.3.5.1.1 SRF connect physical procedures


Several procedures are required for different physical scenarios. The cases to be covered are described below and


illustrated in Figure 26:


i) the IP is integrated into the SSP, or directly attached to the SSP, that is interacting with the SCP but


the SCP’s operations to the IP are relayed via the SSP which performs any needed protocol conversion;


ii) the IP is directly attached to the SSP that is interacting with the SCP but the SCP’s operations to the IP


are sent directly to the IP without SSP relaying involved;


iii) the IP is integrated into another SSP, or directly attached to another SSP, than the one that is interacting


with the SCP but the SCP’s operations to the IP are relayed via the second SSP (called the “Assist”


method), and on completion of the user interaction, control is returned to the first SSP;


iv) the IP is directly attached to a node other than the SSP that is interacting with the SCP but the SCP’s


operations to the IP are sent directly to the IP without SSP relaying involved (called the “Assist” method,


but with a variation on the physical connectivity of the entities involved), and on completion of the user


interaction, control is returned to the first SSP; and


v) the IP is attached to another SSP and on completion of the user interaction, control of the call is retained


at that SSP (called the “Handoff” approach).


In each of the above cases, the operations between the SCP and the SSP may be SS No. 7 TCAP-based; the messaging


between the SSP and the IP when the SSP does relaying may be DSS 1 using the facility IE (in this case, the SSP would


have to do protocol conversion from SS No. 7 TCAP to DSS-1 facility IE for the operations and responses it relayed


between the SCP and the IP); the direct messaging between the SCP and the IP may be SS No. 7 TCAP based; and


bearer control signalling may be any system.


Each of the scenarios will now be examined using arrow diagrams.


Case i) is illustrated in Figure 27. Note that for the integrated IP/SSP, the internal activities of the node can still be


modelled in this way, but the details of how this is achieved are left to the implementor. This approach makes it


unnecessary for the SCP to distinguish between integrated and external but directly connected IPs. See also a note on the


possibility of concatenating the first user interaction operation with the ConnectToResource operation discussed in the


subclause on user interaction below. The establishment of the SCF-SRF relationship in this case is implicit.


Case ii) requires that the IP indicate to the SCP that it is ready to receive operations (see Figure 28). The establishment


of the SCF-SRF relationship is explicit. Note that it is necessary to convey a correlation ID to ensure that the transaction


established between the SCP and the IP can be correlated to the bearer connection set-up as a result of the SCP’s


preceding operation to the SSP.


Case iii) requires that a transaction be opened with the assisting SSP so that it may relay operations from the SCP to


the IP (integrated or external). Once the bearer control signalling has reached the assisting SSP, it triggers on the identity


of the called facility, and initiates an interaction with the SCP that has requested the assistance. It would also be possible


to trigger on other IEs such as the incoming address. The bearer control signalling must contain information to identify


the SCP requesting the assistance, and a correlation ID. This information may be hidden in the address information in


such a way that non-message based signalling systems may also be used to establish the bearer connection to the


assisting SSP. After the AssistRequestInstructions are received by the SCP, the procedures are the same as in case i).


Figure 29 illustrates the preamble involved.


Case iv) does not require the establishment of a second transaction from the assisting exchange, hence it need not be


an SSP. This then becomes a preamble to the procedure shown in Figure 28 as shown in Figure 30.


Case v) merely requires the sending of an operation to the first SSP to route the call to the handed-off SSP, and then


Figure 27 applies at handed-off SSP. This is shown in Figure 31. Note that the activity at handed-off SSP represents a


new interaction with the SCP and “AssistRequestInstructions” is used. Once the bearer control signalling has reached the


assisting SSP, it triggers on the identity of the called facility, and initiates an interaction with the SCP that has requested


the assistance. It would also be possible to trigger on other IEs such as the incoming address. The bearer control


signalling must contain information to identify the SCP requesting the assistance, and a correlation ID. This information


may be hidden in the address information in such a way that non-message based signalling systems may also be used to


establish the bearer connection to the assisting SSP.



彩铃的处理应该是case iii ,其中我们可以看到需要ssp对correlation进行透传,这样ip scp ssp 三者可以连接起来。


 

ITU-T Q.763   对correlation id的解释


0_1314855996m72B.jpg


Q.1218 58(46)页



CorrelationID ::= Digits


-- used by SCF forcorrelation with a previous operation. Refer to clause 3 for a description ofthe


-- procedures associated with this parameter.



-- The following parameters should use Generic Number:


-- CorrelationID for AssistRequestInstructions, AssistingSSPIPRoutingAddress for


-- EstablishTemporaryConnection, calledAddressValue for all occurrences, callingAddressValue for all


-- occurrences. The following parameters should use Generic Digits: prefix, all


-- other CorrelationID occurrences, dialledNumber filtering criteria, callingLineID filtering criteria, lineID


-- for ResourceID type, digitResponse for ReceivedInformationArg.



可以看出在ETC中,correlationid编码规则是Generic digis.


Q.763对Generic Digits的解释为:


0_1314853108mC5a.jpg


从下面的trace:


[23:26:05] FSM 925, 75 bytes, Received fromSS7 ( TC-Begin ):
0    00 0B 01 29 B9 4F 0D 81  0C 05 4386 03 16 0C 00   ...).O....C.....
16   FF 08 03 A3 7D 01 01 01  00 00 23FF 00 05 43 29   ..........#...C)
32   14 16 0C 38 A0 29 B9 4F  0D FF 0140 86 07 00 13   ...8.).O...@....
48   38 24 91 40 56 87 0A 81  10 1B 0081 27 58 01 69   8$.@V.......'X.i
64   03 88 0A 83 10 80 52 81  27 FF00                  ......R.'..
TC-Begin.Ind:
 QualityOfService = { ReturnOption:81, SequenceControl:0C }
 DestinationAddress
   PC = 8782614
   SSN = 12
 ApplicationContextName = 03 A3 7D 01 01 01 00 00
 OriginatingAddress
   PC = 2692118
   SSN = 12
 DialogueID = 700010253
 ComponentsPresent = Present
[23:26:05] FSM 925, 86 bytes, Received fromSS7 ( TC-Invoke ):
0    00 0B 10 29 B9 4F 0D 29  B9 4F 0DFF 01 FF 00 00   ...).O.).O......
16   FF FF 03 A3 7D 00 3F 30  3D 80 0200 EF 82 07 01   ......?0=.......
32    10 3B 21 24 43 10 83 08  83 10 20 88 71 01 90 09   .;!$C..... .q...
48    85 01 0A 87 01 00 88 02  01 3E 89 01 01 AB 03 80   .........>......
64    01 00 8C 07 03 00 18 66  96 39 09 9C 01 0C 9D 06   .......f.9......
80   81 10 66 99 93 00                                  ..f...
[23:26:05] FSM 925, Received TC-Invoke Ind( 0 )
TC-Invoke.Ind:
 DialogueID = 700010253
 InvokeID = 01
 OperationID = 0
 LastComponent = Last
MsgID[ 0]
+---c[   30]
   +---p[    80]       2      00 EF
    +---p[   82]       7       01 10 3B 21 24 43 10
    +---p[   83]       8       83 10 20 88 71 01 90 09
    +---p[   85]       1       0A
    +---p[   87]       1       00
    +---p[   88]       2       01 3E
    +---p[   89]       1       01
    +---c[   AB]
    |   \---p[   80]       1       00
   +---p[    8C]       7      03 00 18 66 96 39 09
   +---p[    9C]       1      0C
   \---p[    9D]       6      81 10 66 99 93 00
###START:start(925-700010253,tcInvoke_0)...ret(1,0),next[ ]Check_NumFormat
###Check_NumFormat:Branch(925-700010253,NULL)...ret(3,0),next[ ]beijiao
###beijiao:Algorithm(925-700010253,NULL)...ret(1,0),next[ ]chaxun
###chaxun:ExecSQL(925-700010253,NULL)...[23:26:05]FSM 925, DB[sdp@sc5_sdp2], ecSelect:
select newnumber , usertype , calltimes ,calldate from change_nbr_user where oldnumber = '081666993
90' and endTime >= '20110701232605'
[23:26:05] FSM 925, Select Result:rowNum=1, fieldNum=4
 newnumber   usertype  calltimes  calldate
  (CHAR20)   (CHAR23)   (CHAR23)   (CHAR8)
15378238840          1         73  20110701
ret(1,0), next[ ]Edprequest1
###Edprequest1:Xmlsib(925-700010253,NULL)...[23:26:05]FSM 925, Send TC-Invoke Req( 23 )
TC-Invoke.Req:
 DialogueID = 700010253
 OperationType=2
 InvokeID = 81
 OperationID = 23
 Timeout = 100
RequestReportBCSMEvent-os:
\---RequestReportBCSMEventArg
   \---bcsmEvents
       +---eventTypeBCSM       1   09
       +---monitorMode         1   01
       \---legID
           \---sendingSideID       1   01
       +---eventTypeBCSM       1   0A
       \---monitorMode         1   01
[23:26:05] FSM 925, 48 bytes, Send to SS7 (TC-Invoke ):
0    00 01 10 29 B9 4F 0D 29  B9 4F 0D02 81 FF 00 17   ...).O.).O......
16   FF 00 00 00 64 00 19 30  17 A0 1530 0B 80 01 09   ....d..0...0....
32   81 01 01 A2 03 80 01 01  30 06 8001 0A 81 01 01   ........0.......
ret(1,0), next[ ]PA_Sound
###PA_Sound:Algorithm(925-700010253,2)...ret(1,0),next[ ]SspnameBan1
###SspnameBan1:Branch(925-700010253,NULL)...ret(10,0),next[ ]To_ETC
###To_ETC:UI(925-700010253,NULL)...[23:26:05]FSM 925, Send TC-Invoke.Req( EstablishTemporaryConnect
ion )
TC-Invoke.Req:
  DialogueID = 700010253
  OperationType=2
 InvokeID = 82
 OperationID = 17
 Timeout = 100
assistingSSPIPRoutingAddress="419711"
correlationID="ab0925"
NOT PRESENT
scfID=NOT PRESENT
serviceInteractionIndicators=NOT PRESENT
[23:26:05] FSM 925, 39 bytes, Send to SS7 (TC-Invoke ):
0    00 01 10 29 B9 4F 0D 29  B9 4F 0D02 82 FF 00 11   ...).O.).O......
16    FF 00 00 00 64 00 10 30  0E 80 06 01 02 10 14 79   ....d..0.......y
32    11 81 04 00 BA 9052                              ......R
TC-Continue1.Req:
  QualityOfService = {ReturnOption:81, SequenceControl:0C }
 OriginatingAddress
   PC = 8456214
    SSN = 240
  ApplicationContextName = 03 A3 7D 01 01 01 0000
  DialogueID = 700010253

 

我们SCP在实际下发ETC时,correlationid是符合Q.763标准的。


第2章             解决说明


解决现网问题有如下方案:


请某地交换透传correlationid,不要讲a转成0,将f转成a。

相关文章
|
6月前
|
监控 测试技术
PTS日志问题之请求压测报告失败如何解决
PTS(Performance Testing Service)是一项面向网站、应用等提供的压力测试服务,用于模拟不同场景下的用户访问,评估系统的性能表现;在进行PTS压测时,可能会出现一些异常或报错,本合集将PTS压测中频繁出现的问题及其解决办法进行汇编,旨在帮助用户更有效地进行性能测试和问题定位。
|
5月前
|
监控 关系型数据库 MySQL
Flink实现实时异常登陆监控(两秒内多次登陆失败进行异常行为标记)
Flink实现实时异常登陆监控(两秒内多次登陆失败进行异常行为标记)
105 1
|
SQL 前端开发 测试技术
一次纯线上接口异常的排查过程
一次纯线上接口异常的排查过程
142 0
VS2017诊断工具意外失败处理方法
VS2017诊断工具意外失败处理方法
VS2017诊断工具意外失败处理方法
|
6月前
|
算法 C++
【算法】网络最大流问题,三次尝试以失败告终
开始 已多次看到“网络最大流问题”的字眼,一直不知道是什么,后来终于有一次打算仔细了解一下,期间我发现了一篇不错的博客:全面理解网络流中的最大流问题。在这篇博客的帮助下,我成功弄清楚了什么是网络流中的最大流问题,同时也明白了解决这个问题的基本思路。
92 0
|
Web App开发 开发框架 安全
503错误和500错误故障解决案例
记录下特殊的503和500报错场景
205 0
|
安全 Dubbo 应用服务中间件
快速失败与失败安全简述
快速失败与失败安全简述
102 0
|
存储 消息中间件 缓存
消息列队有没有可能失败?在哪些环节可能失败,如何处理?
相信大家都使用过消息MQ,他可以很好地进行系统解耦,减低变成的复杂度,又可以进行削峰,增加系统在高并发的稳定性。那么使用MQ有哪些注意事项呢?是不是MQ就是万无一失呢?一条MQ消息从产生到消费,有没有可能失败?在哪些环节可能失败,如何处理? 一般来说,从生产者到MQ中间件是通过网络调用的,是网络调用就有可能存在失败。下面这些原因,都有可能造成MQ生产失败,例如网络波动,尽管生产者到MQ服务器之间是内网调用,并不意味着网络调用的成功率就是百分之百,内网调用也会遇到网络波动,造成调用超时或者失败。又如调用的MQ机器瞬间Crash掉,这也是有可能造成调用失败的。
消息列队有没有可能失败?在哪些环节可能失败,如何处理?
|
中间件
【TP5.1】验证码第一次校验失败 规避重复请求
【TP5.1】验证码第一次校验失败 规避重复请求
208 0
【TP5.1】验证码第一次校验失败 规避重复请求
|
存储 测试技术 开发工具
BSTestRunner增加历史执行记录展示和重试功能
之前对于用例的失败重试,和用例的历史测试记录存储展示做了很多的描述呢,但是都是基于各个项目呢,不方便使用,为了更好的使用,我们对这里进行抽离,抽离出来一个单独的模块,集成到BSTestRunner中,以后我们使用BSTestRunner直接就可以使用里面的失败重试和展示历史记录了。
BSTestRunner增加历史执行记录展示和重试功能