[asterisk-bugs] [LibPRI 0012655]: Making calls through ZAP channels do not hangup

noreply at bugs.digium.com noreply at bugs.digium.com
Mon Jun 9 07:11:16 CDT 2008


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=12655 
====================================================================== 
Reported By:                Rudolf
Assigned To:                mattf
====================================================================== 
Project:                    LibPRI
Issue ID:                   12655
Category:                   General
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     acknowledged
Asterisk Version:           1.4.19 
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             05-15-2008 03:51 CDT
Last Modified:              06-09-2008 07:11 CDT
====================================================================== 
Summary:                    Making calls through ZAP channels do not hangup
Description: 
After getting disconnect from telco call is not hangup and I can hear busy
sound from telco. I think we should send back disconnect acknowledge. After
30 seconds I get relase from telco.

I updated asterisk to versions

Asterisk 1.4.19.1
Zaptel 1.4.10.1
Libpri 1.4.4


====================================================================== 

---------------------------------------------------------------------- 
 stevedavies - 06-09-08 07:11  
---------------------------------------------------------------------- 
Hi,

Just went through this with a customer who upgraded to 1.4.4

It appears that Asterisk now only sees the call as hungup when a RELEASE
arrived.  Previous libpri versions took the DISCONNECT as the hangup.

Compare an older libpri behaviour:

[Jun  9 13:59:27] < Protocol Discriminator: Q.931 (8)  len=13
[Jun  9 13:59:27] < Call Ref: len= 2 (reference 3928/0xF58) (Originator)
[Jun  9 13:59:27] < Message type: DISCONNECT (69)
[Jun  9 13:59:27] < [08 02 80 90]
[Jun  9 13:59:27] < Cause (len= 4) [ Ext: 1  Coding: CCITT (ITU) standard
(0)  Spare: 0  Location: User (0)
[Jun  9 13:59:27] <                  Ext: 1  Cause: Normal Clearing (16),
class = Normal Event (1) ]
[Jun  9 13:59:27] < [1e 02 82 88]
[Jun  9 13:59:27] < Progress Indicator (len= 4) [ Ext: 1  Coding: CCITT
(ITU) standard (0)  0: 0  Location: Public network serving the local user
(2)
[Jun  9 13:59:27] <                               Ext: 1  Progress
Description: Inband information or appropriate pattern now available. (8)
]
[Jun  9 13:59:27] -- Processing IE 8 (cs0, Cause)
[Jun  9 13:59:27] -- Processing IE 30 (cs0, Progress Indicator)
[Jun  9 13:59:27] q931.c:3549 q931_receive: call 3928 on channel 2 enters
state 12 (Disconnect Indication)
[Jun  9 13:59:27] Sending Receiver Ready (26)
[Jun  9 13:59:27]  
> [ 02 01 01 34 ]
[Jun  9 13:59:27]  
> Supervisory frame:
[Jun  9 13:59:27] > SAPI: 00  C/R: 1 EA: 0
>  TEI: 000        EA: 1
[Jun  9 13:59:27] > Zero: 0     S: 0 01: 1  [ RR (receive ready) ]
> N(R): 026 P/F: 0
> 0 bytes of data
[Jun  9 13:59:27] -- Restarting T203 counter
[Jun  9 13:59:27] -- Restarting T203 counter
[Jun  9 13:59:27]     -- Channel 0/2, span 1 got hangup request, cause 16
[Jun  9 13:59:27]     -- Hungup 'IAX2/ctelpbx-1-16389'
[Jun  9 13:59:27]   == Spawn extension (macro-to-dest-customer-helper, s,
6) exited non-zero on 'Zap/2-1' in macro 'to-dest-customer-helper'
[Jun  9 13:59:27]   == Spawn extension (macro-to-dest-customer-helper, s,
6) exited non-zero on 'Zap/2-1' in macro 'to-dest-customer'
[Jun  9 13:59:27]   == Spawn extension (macro-to-dest-customer-helper, s,
6) exited non-zero on 'Zap/2-1'
[Jun  9 13:59:27] NEW_HANGUP DEBUG: Calling q931_hangup, ourstate
Disconnect Indication, peerstate Disconnect Request
[Jun  9 13:59:27] q931.c:2715 q931_release: call 3928 on channel 2 enters
state 19 (Release Request)
[Jun  9 13:59:27] 
> [ 00 01 78 34 08 02 8f 58 4d 08 02 81 90 ]
[Jun  9 13:59:27] 
> Informational frame:
[Jun  9 13:59:27] > SAPI: 00  C/R: 0 EA: 0
>  TEI: 000        EA: 1
[Jun  9 13:59:27] > N(S): 060   0: 0
> N(R): 026   P: 0
> 9 bytes of data
[Jun  9 13:59:27] -- Restarting T203 counter
[Jun  9 13:59:27] Stopping T_203 timer
[Jun  9 13:59:27] Starting T_200 timer
[Jun  9 13:59:27] > Protocol Discriminator: Q.931 (8)  len=9
[Jun  9 13:59:27] > Call Ref: len= 2 (reference 3928/0xF58) (Terminator)
[Jun  9 13:59:27] > Message type: RELEASE (77)
[Jun  9 13:59:27] > [08 02 81 90]
[Jun  9 13:59:27] > Cause (len= 4) [ Ext: 1  Coding: CCITT (ITU) standard
(0)  Spare: 0  Location: Private network serving the local user (1)
[Jun  9 13:59:27] >                  Ext: 1  Cause: Normal Clearing (16),
class = Normal Event (1) ]
[Jun  9 13:59:27]     -- Hungup 'Zap/2-1'
[Jun  9 13:59:27]  
< [ 00 01 01 7a ]


With LIBPRI 1.4.4:

[Jun  9 13:49:28] VERBOSE[3643] logger.c: < Protocol Discriminator: Q.931
(8)  len=13
[Jun  9 13:49:28] VERBOSE[3643] logger.c: < Call Ref: len= 2 (reference
3507/0xDB3) (Originator)
[Jun  9 13:49:28] VERBOSE[3643] logger.c: < Message type: DISCONNECT (69)
[Jun  9 13:49:28] VERBOSE[3643] logger.c: < [08 02 81 90]
[Jun  9 13:49:28] VERBOSE[3643] logger.c: < Cause (len= 4) [ Ext: 1 
Coding: CCITT (ITU) standard (0)  Spare: 0  Location: Private network
serving the local user (1)
[Jun  9 13:49:28] VERBOSE[3643] logger.c: <                  Ext: 1 
Cause: Normal Clearing (16), class = Normal Event (1) ]
[Jun  9 13:49:28] VERBOSE[3643] logger.c: < [1e 02 82 88]
[Jun  9 13:49:28] VERBOSE[3643] logger.c: < Progress Indicator (len= 4) [
Ext: 1  Coding: CCITT (ITU) standard (0)  0: 0  Location: Public network
serving the local use
r (2)
[Jun  9 13:49:28] VERBOSE[3643] logger.c: <                              
Ext: 1  Progress Description: Inband information or appropriate pattern now
available. (8) ]
[Jun  9 13:49:28] VERBOSE[3643] logger.c: -- Processing IE 8 (cs0, Cause)
[Jun  9 13:49:28] VERBOSE[3643] logger.c: -- Processing IE 30 (cs0,
Progress Indicator)
[Jun  9 13:49:28] VERBOSE[3643] logger.c: q931.c:3779 q931_receive: call
3507 on channel 20 enters state 12 (Disconnect Indication)
[Jun  9 13:49:28] VERBOSE[3643] logger.c: Sending Receiver Ready (63)
[Jun  9 13:49:28] VERBOSE[3643] logger.c: 
> [ 02 01 01 7e ]
[Jun  9 13:49:28] VERBOSE[3643] logger.c: 
> Supervisory frame:
[Jun  9 13:49:28] VERBOSE[3643] logger.c: > SAPI: 00  C/R: 1 EA: 0
>  TEI: 000        EA: 1
[Jun  9 13:49:28] VERBOSE[3643] logger.c: > Zero: 0     S: 0 01: 1  [ RR
(receive ready) ]
> N(R): 063 P/F: 0
> 0 bytes of data
[Jun  9 13:49:28] VERBOSE[3643] logger.c: -- Restarting T203 counter
[Jun  9 13:49:28] VERBOSE[3643] logger.c: -- Restarting T203 counter
[Jun  9 13:49:32] VERBOSE[3647] logger.c: T203 counter expired, sending RR
and scheduling T203 again
...skipping...
[Jun  9 13:50:28] VERBOSE[3645] logger.c: < Call Ref: len= 2 (reference
28639/0x6FDF) (Originator)
[Jun  9 13:50:28] VERBOSE[3645] logger.c: < Message type: RELEASE (77)
[Jun  9 13:50:28] VERBOSE[3645] logger.c: < [08 02 80 90]
[Jun  9 13:50:28] VERBOSE[3645] logger.c: < Cause (len= 4) [ Ext: 1 
Coding: CCITT (ITU) standard (0)  Spare: 0  Location: User (0)
[Jun  9 13:50:28] VERBOSE[3645] logger.c: <                  Ext: 1 
Cause: Normal Clearing (16), class = Normal Event (1) ]
[Jun  9 13:50:28] VERBOSE[3645] logger.c: -- Processing IE 8 (cs0, Cause)
[Jun  9 13:50:28] VERBOSE[3645] logger.c: q931.c:3754 q931_receive: call
28639 on channel 13 enters state 0 (Null)
[Jun  9 13:50:28] VERBOSE[3645] logger.c: Sending Receiver Ready (76)
[Jun  9 13:50:28] VERBOSE[3645] logger.c: 
> [ 02 01 01 98 ]
[Jun  9 13:50:28] VERBOSE[3645] logger.c: 
> Supervisory frame:
[Jun  9 13:50:28] VERBOSE[3645] logger.c: > SAPI: 00  C/R: 1 EA: 0
>  TEI: 000        EA: 1
[Jun  9 13:50:28] VERBOSE[3645] logger.c: > Zero: 0     S: 0 01: 1  [ RR
(receive ready) ]
> N(R): 076 P/F: 0
> 0 bytes of data
[Jun  9 13:50:28] VERBOSE[3645] logger.c: -- Restarting T203 counter
[Jun  9 13:50:28] VERBOSE[3645] logger.c: -- Restarting T203 counter
[Jun  9 13:50:28] VERBOSE[3645] logger.c:     -- Channel 0/13, span 2 got
hangup, cause 16
[Jun  9 13:50:28] VERBOSE[17550] logger.c:   == Spawn extension
(app-blackhole, ring, 4) exited non-zero on 'Zap/44-1'



At least in South Africa, the telco only sends a RELEASE after a one
minute timeout after the DISCONNECT.

The new behaviour is a problem for us because it leads to "ghost" calls
arriving through queues and suchlike.

Regards,
Steve 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
06-09-08 07:11  stevedavies    Note Added: 0088468                          
======================================================================




More information about the asterisk-bugs mailing list