[asterisk-ss7] libss7 bugs

Matthew Fredrickson creslin at digium.com
Mon Nov 10 10:09:13 CST 2008


Anton wrote:
> 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.

Crap, yes.  I don't know why I still haven't fixed that... keep 
forgetting.  Most of the time it's not a problem, because if we receive 
an individual reset (RSC message) we *do* actually drop the call.  It's 
only on group resets that I still haven't added the code to drop it.  If 
you're on AIM, MSN, or anything like that and can get in contact with 
me, I would like to fix this (should be just about 5 minutes of coding 
and a retest from your test scenario).

Matthew Fredrickson
Digium, Inc.

> 
> 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