[asterisk-ss7] libss7 bugs

Matthew Fredrickson creslin at digium.com
Wed Nov 12 10:53:43 CST 2008


Anton wrote:
> I can go to IRC when needed. Just tell me when.
> 
> Regards,

Here's a patch.  Apply it to your asterisk source tree.

> Anton.
> 
> On Monday 10 November 2008 21:09, Matthew Fredrickson wrote:
>> 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.

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: ss7_hangup_patch_on_grs.diff
Url: http://lists.digium.com/pipermail/asterisk-ss7/attachments/20081112/dd8eb046/attachment.txt 


More information about the asterisk-ss7 mailing list