Summary: | ASTERISK-01677: When making outgoing call over PRI, Asterisk sends PROCEEDING and PROGRESS messages together with SETUP | ||
Reporter: | Paul Cadach (pcadach) | Labels: | |
Date Opened: | 2004-05-22 11:38:53 | Date Closed: | 2008-01-15 14:55:51.000-0600 |
Priority: | Major | Regression? | No |
Status: | Closed/Complete | Components: | Core/General |
Versions: | Frequency of Occurrence | ||
Related Issues: | |||
Environment: | Attachments: | ||
Description: | We have next connection scheme: VoIP call -> Asterisk1 -> H323 to Cisco GW -> PRI to Asterisk 2 -> PRI to PSTN. When a call arrived at Asterisk2 from one PRI, it sends SETUP to other PRI, but immediately tries to bring up speech channel with PROCEEDING/PROGRESS messages, without waiting for outstanding PROCEEDING/SETUP ACK. ****** ADDITIONAL INFORMATION ****** Call trace (pri debug span 4, where PSTN side connected): > Protocol Discriminator: Q.931 (8) len=53 > Call Ref: len= 2 (reference 4/0x4) (Originator) > Message type: SETUP (5) > Bearer Capability (len= 3) [ Ext: 1 Q.931 Std: 0 Info transfer capability: Speech (0) > Ext: 1 Trans mode/rate: 64kbps, circuit-mode (16) > Ext: 1 User information layer 1: A-Law (35) > Channel ID (len= 5) [ Ext: 1 IntID: Implicit, PRI Spare: 0, Exclusive Dchan: 0 > ChanSel: Reserved > Ext: 1 Coding: 0 Number Specified Channel Type: 3 > Ext: 1 Channel: 1 ] > Display (len=12) [ > Display (len=12) [ 1> Display (len=12) [ 1P> Display (len=12) [ 1Pa> Display (len=12) [ 1Pau> Display (len=12) [ 1Paul> Display (len=12) [ 1Paul > Display (len=12) [ 1Paul C> Display (len=12) [ 1Paul Ca> Display (len=12) [ 1Paul Cad> Display (len=12) [ 1Paul Cada> Display (len=12) [ 1Paul Cadac> Display (len=12) [ 1Paul Cadach> Display (len=12) [ 1Paul Cadach ] > Calling Number (len=14) [ Ext: 0 TON: Subscriber Number (4) NPI: ISDN/Telephony Numbering Plan (E.164/E.163) (1) > Called Number (len= 9) [ Ext: 1 TON: Subscriber Number (4) NPI: ISDN/Telephony Numbering Plan (E.164/E.163) (1) '248753' ] > Sending Complete (len= 0) > Protocol Discriminator: Q.931 (8) len=10 > Call Ref: len= 2 (reference 4/0x4) (Originator) > Message type: CALL PROCEEDING (2) > Channel ID (len= 5) [ Ext: 1 IntID: Implicit, PRI Spare: 0, Exclusive Dchan: 0 > ChanSel: Reserved > Ext: 1 Coding: 0 Number Specified Channel Type: 3 > Ext: 1 Channel: 1 ] > Protocol Discriminator: Q.931 (8) len=9 > Call Ref: len= 2 (reference 4/0x4) (Originator) > Message type: PROGRESS (3) > Progress Indicator (len= 2) [ Ext: 1 Coding: CCITT (ITU) standard (0) 0: 0 Location: Private network serving the local user (1) > Ext: 1 Progress Description: Inband information or appropriate pattern now available. (8) ] < Protocol Discriminator: Q.931 (8) len=10 < Call Ref: len= 2 (reference 32772/0x8004) (Terminator) < Message type: CALL PROCEEDING (2) < Channel ID (len= 5) [ Ext: 1 IntID: Implicit, PRI Spare: 0, Exclusive Dchan: 0 < ChanSel: Reserved < Ext: 1 Coding: 0 Number Specified Channel Type: 3 < Ext: 1 Channel: 1 ] -- Processing IE 24 (Channel Identification) > Protocol Discriminator: Q.931 (8) len=12 > Call Ref: len= 2 (reference 4/0x4) (Originator) > Message type: STATUS (125) > Cause (len= 2) [ Ext: 1 Coding: CCITT (ITU) standard (0) 0: 0 Location: User (0) > Ext: 1 Cause: Wrong message (98), class = Protocol Error (6) ] > Call State (len= 1) [ Ext: 0 Coding: CCITT (ITU) standard (0) Call state: Incoming Call Proceeding (9) < Protocol Discriminator: Q.931 (8) len=13 < Call Ref: len= 2 (reference 32772/0x8004) (Terminator) < Message type: STATUS (125) < Cause (len= 3) [ Ext: 1 Coding: CCITT (ITU) standard (0) 0: 0 Location: Public network serving the local user (2) < Ext: 1 Cause: Message not compatible with call state (101), class = Protocol Error (6) ] < Cause data 0: 01 (1) < Call State (len= 1) [ Ext: 0 Coding: CCITT (ITU) standard (0) Call state: Outgoing call Proceeding (3) -- Processing IE 8 (Cause) -- Processing IE 20 (Call State) < Protocol Discriminator: Q.931 (8) len=13 < Call Ref: len= 2 (reference 32772/0x8004) (Terminator) < Message type: DISCONNECT (69) < Cause (len= 2) [ Ext: 1 Coding: CCITT (ITU) standard (0) 0: 0 Location: Public network serving the local user (2) < Ext: 1 Cause: Message not compatible with call state (101), class = Protocol Error (6) ] < Progress Indicator (len= 2) [ 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 (Cause) -- Processing IE 30 (Progress Indicator) -- Channel 1, span 4 got hangup | ||
Comments: | By: Paul Cadach (pcadach) 2004-05-22 12:06:48 Fix found - don't bring audio path up on zt_write() for outgoing calls. --- chan_zap.c.1 Sat May 22 22:45:55 2004 +++ chan_zap.c Sat May 22 23:00:12 2004 @@ -3853,6 +3853,9 @@ #ifdef PRI_EVENT_PROCEEDING if (!p->proceeding && p->sig==SIG_PRI && p->pri) { + /* Don't bring voice channel on outgoing calls */ + if (p->outgoing) + return 0; if (p->pri->pri) { if (!pri_grab(p, p->pri)) { #ifdef PRI_PROGRESS By: Mark Spencer (markster) 2004-05-22 14:52:26 Actually this was already fixed in CVS head, but is now fixed properly in CVS head. By: Digium Subversion (svnbot) 2008-01-15 14:55:51.000-0600 Repository: asterisk Revision: 3041 U trunk/channels/chan_zap.c ------------------------------------------------------------------------ r3041 | markster | 2008-01-15 14:55:50 -0600 (Tue, 15 Jan 2008) | 2 lines Obviously don't send alerting, progress, or proceeding on outbound calls (bug ASTERISK-1677) ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=3041 |