[asterisk-ss7] libss7 bugs

Anton anton.vazir at gmail.com
Sun Nov 9 08:33:04 CST 2008


Hi Matthew, 

One of the ss7 bugs I've discovered on quick tests, and it's critical to normal functionality:

short description: ss7 does not release channels on the other side channel reset/failure. 

It means, when there are some amount of calls going through the system, and remote switch just going down abnormally
(and than may restore), libss7 asterisk would not release the channels, which was in use. 

used: asterisk 1.6.0.1
libss7 1.0.2
dahdi-linux 2.0.0
dahdi-tools 2.0.0

To reproduce the error:

1st box asterisk libss7

2nd box asterisk chan_ss7 (1.4.21.1)

(though I think 2nd box version or switchtype does not matter at all, considering the symptoms)

Making 5 looped calls, which after 5 calls end up with Echo() app. to test our voice.
Than just stopping box2 (chan_ss7) side by "stop now" - and we'll see that on box1
core show channels will have all calls in progress not released. This call wll remain unreleased even when calling party 
hangup, so making channels stuck forever.
This is despite, that libss7 acknowledged the other side by sending reset ask:

[Nov  9 22:11:02] DEBUG[10593]: chan_dahdi.c:9494 ss7_linkset: Got Reset for CICs 1 to 15: Acknowledging
[Nov  9 22:11:02] DEBUG[10593]: chan_dahdi.c:9494 ss7_linkset: Got Reset for CICs 17 to 31: Acknowledging

*CLI> dahdi show channels group 1
   Chan Extension  Context         Language   MOH Interpret        Blocked    State
      1            incoming                   default                         In Service
      2            incoming                   default                         In Service
      3            incoming                   default                         In Service
      4 3772059    incoming                   default                         In Service
      5            incoming                   default                         In Service
      6            incoming                   default                         In Service
      7            incoming                   default                         In Service
      8            incoming                   default                         In Service
      9            incoming                   default                         In Service
     10 3772059    incoming                   default                         In Service
     11            incoming                   default                         In Service
     12            incoming                   default                         In Service
     13            incoming                   default                         In Service
     14            incoming                   default                         In Service
     15            incoming                   default                         In Service
     17            incoming                   default               R         In Service
     18            incoming                   default                         In Service
     19            incoming                   default                         In Service
     20            incoming                   default                         In Service
     21            incoming                   default                         In Service
     22            incoming                   default                         In Service
     23 3772059    incoming                   default                         In Service
     24            incoming                   default                         In Service
     25            incoming                   default                         In Service
     26            incoming                   default                         In Service
     27 3772059    incoming                   default                         In Service
     28            incoming                   default                         In Service
     29 3772059    incoming                   default                         In Service
     30            incoming                   default                         In Service
     31            incoming                   default                         In Service
*CLI> 

while other side is:

*CLI> core show channels
Channel              Location             State   Application(Data)
0 active channels
0 active calls
*CLI> ss7 linestat
Linkset: east1
CIC   1 Idle
CIC   2 Idle
CIC   3 Idle
CIC   4 Idle
CIC   5 Idle
CIC   6 Idle
CIC   7 Idle
CIC   8 Idle
CIC   9 Idle
CIC  10 Idle
CIC  11 Idle
CIC  12 Idle
CIC  13 Idle
CIC  14 Idle
CIC  15 Idle
CIC  17 Idle
CIC  18 Idle
CIC  19 Idle
CIC  20 Idle
CIC  21 Idle
CIC  22 Idle
CIC  23 Idle
CIC  24 Idle
CIC  25 Idle
CIC  26 Idle
CIC  27 Idle
CIC  28 Idle
CIC  29 Idle
CIC  30 Idle
CIC  31 Idle
*CLI>  

and we've asknowledged the reset:

[Nov  9 22:11:02] DEBUG[10593]: chan_dahdi.c:9494 ss7_linkset: Got Reset for CICs 1 to 15: Acknowledging
[Nov  9 22:11:02] DEBUG[10593]: chan_dahdi.c:9494 ss7_linkset: Got Reset for CICs 17 to 31: 

There is probably missing channel release on ss7 channel reset and asterisk itself.



More information about the asterisk-ss7 mailing list