[asterisk-bugs] [LibPRI 0012953]: Don't detect busy on Sangoma A101 with PRI

noreply at bugs.digium.com noreply at bugs.digium.com
Wed Jul 2 00:40:20 CDT 2008


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=12953 
====================================================================== 
Reported By:                lniemczyk
Assigned To:                
====================================================================== 
Project:                    LibPRI
Issue ID:                   12953
Category:                   General
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     new
Asterisk Version:           1.4.21 
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             06-30-2008 08:22 CDT
Last Modified:              07-02-2008 00:40 CDT
====================================================================== 
Summary:                    Don't detect busy on Sangoma A101 with PRI
Description: 
I've Sangoma Card A101, Asterisk 1.4.21 (we try 1.4.19 too),
zaptel-1.4.9.2, libpri-1.4.4, wanpipe 3.2.6 (we try 3.2.5 too) on
FedoraCore 8i3 (on kernel 2.6.24.7-92.fc8).
I'm using Asterisk Manager to instantiate outbound call and I need to know
when calling number was busy. We try to use Hangup Event cause value but it
is 0.
We found that was a bug
http://bugs.digium.com/bug_view_page.php?bug_id=0000890 in asterisk but
it's reported as completed and our configuration still not working.

We wrote simple diaplan for test purpose to test HANGUPCAUSE and
DIALSTATUS.

[outbound]
exten => s,1,NoOp(START)
exten => s,2,Dial(Zap/g1/00664474022,30)
exten => s,3,NoOp(${HANGUPCAUSE})
exten => s,4,NoOp(${DIALSTATUS})

exten => s,103,NoOp(${HANGUPCAUSE})
exten => s,104,NoOp(${DIALSTATUS})

exten => t,1,NoOp(TIMEOUT)
exten => t,2,NoOp(${DIALSTATUS})

ISDN signalized busy and frame look like this:

< [ 02 01 3a 3a 08 02 80 07 45 08 02 80 91 1e 02 82 88 ]
asterisk*CLI>
< Informational frame:
< SAPI: 00  C/R: 1 EA: 0
<  TEI: 000        EA: 1
< N(S): 029   0: 0
< N(R): 029   P: 0
< 13 bytes of data
Handling message for SAPI/TEI=0/0
-- ACKing all packets from 28 to (but not including) 29
-- Since there was nothing left, stopping T200 counter
-- Stopping T203 counter since we got an ACK
-- Nothing left, starting T203 counter
< Protocol Discriminator: Q.931 (8)  len=13
< Call Ref: len= 2 (reference 7/0x7) (Terminator)
< Message type: DISCONNECT (69)
< [08 02 80 91]
< Cause (len= 4) [ Ext: 1  Coding: CCITT (ITU) standard (0)  Spare: 0 
Location: User (0)
<                  Ext: 1  Cause: User busy (17), class = Normal Event (1)
]
< [1e 02 82 88]
< Progress Indicator (len= 4) [ Ext: 1  Coding: CCITT (ITU) standard (0) 
0: 0  Location: Public network serving the local user (2)
<                               Ext: 1  Progress Description: Inband
information or appropriate pattern now available. (8) ]
-- Processing IE 8 (cs0, Cause)
-- Processing IE 30 (cs0, Progress Indicator)
q931.c:3790 q931_receive: call 32775 on channel 2 enters state 12
(Disconnect Indication)

But caller heard congestion tone and after timeout CHANUNAVAIL is
signalized:

> [ 00 01 3a 3e 08 02 00 07 5a 08 02 81 90 ]

> Informational frame:
> SAPI: 00  C/R: 0 EA: 0
>  TEI: 000        EA: 1
> N(S): 029   0: 0
> N(R): 031   P: 0
> 9 bytes of data
-- Restarting T203 counter
Stopping T_203 timer
Starting T_200 timer
> Protocol Discriminator: Q.931 (8)  len=9
> Call Ref: len= 2 (reference 7/0x7) (Originator)
> Message type: RELEASE COMPLETE (90)
> [08 02 81 90]
> Cause (len= 4) [ Ext: 1  Coding: CCITT (ITU) standard (0)  Spare: 0 
Location: Private network serving the local user (1)
>                  Ext: 1  Cause: Normal Clearing (16), class = Normal
Event (1) ]
NEW_HANGUP DEBUG: Calling q931_hangup, ourstate Null, peerstate Null
NEW_HANGUP DEBUG: Destroying the call, ourstate Null, peerstate Null
    -- Hungup 'Zap/2-1'
  == Everyone is busy/congested at this time (1:0/0/1)
    -- Executing [s at outbound:103] NoOp("Zap/1-1", "-1") in new stack
    -- Executing [s at outbound:104] NoOp("Zap/1-1", "CHANUNAVAIL") in new
stack
  == Auto fallthrough, channel 'Zap/1-1' status is 'CHANUNAVAIL'

Our A101 was connected by E1 with Avaya Definity.
====================================================================== 

---------------------------------------------------------------------- 
 lniemczyk - 07-02-08 00:40  
---------------------------------------------------------------------- 
This bug was a mistake. Our local support add some patch to libpri which
caused a strange behaviour with our new telephone provider. I doesn't know
about this patch and I thought that was a bug in library. When I reinstall
library (to original version) I found that was a bug in patch, which
changing some things in interpreting telephony status that was necessary on
line from our previous telephone provider (support told me so but after I
posted this bug). Sorry for cluttering forum. 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
07-02-08 00:40  lniemczyk      Note Added: 0089572                          
======================================================================




More information about the asterisk-bugs mailing list