[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