[Home]

Summary:ASTERISK-16151: [patch] [regression] Incoming overlap dialing no longer works after rev 203304
Reporter:andre valentin (avalentin)Labels:
Date Opened:2010-05-26 06:32:05Date Closed:2010-06-04 09:45:05
Priority:MajorRegression?Yes
Status:Closed/CompleteComponents:Channels/chan_dahdi
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) issue17401_digit_timeout.patch
Description:Incoming overlap dial is since svn revision 203304 not working. Revision 203303 is fine. It does not match any configured extension. Block dialing is working without problems.
It seems that the bri integration created some problems.


****** ADDITIONAL INFORMATION ******

libpri SVN: 1688
Dahdi: 2.3.0
asterisk trunk working: 203303
pri set debug 2 on span 2:
---------------------------------------------------------------------------------
Enabled debugging on span 2
*CLI> TEI: 0 State 7
V(S) 1 V(A) 1 V(R) 3
K 7, RC 1, l3initiated 0, reject_except 0 ack_pend 0
T200 0, N200 3, T203 1

< [ 02 01 06 02 08 02 01 00 05 04 03 80 90 a3 18 03 a1 83 94 1c 29 9f aa 06 80 01 00 82 01 00 8b 01 00 a1 1b 02 02 00 ca 02 01 00 80 12 33 34 20 56 61 6c 65 6e 74 69 6e 2c 20 41 6e 64 72 65 1c 19 9f aa 06 80 01 00 82 01 00 8b 01 00 a1 0b 02 02 00 ff 02 01 29 03 02 01 84 1c 1f 9f aa 06 80 01 00 82 01 00 a1 14 02 02 00 a5 02 01 3b 30 0b 30 09 0a 01 05 0a 01 04 0a 01 03 6c 04 00 81 33 34 70 02 80 39 95 32 01 81 ]

< Informational frame:
< SAPI: 00  C/R: 1 EA: 0
<  TEI: 000        EA: 1
< N(S): 003   0: 0
< N(R): 001   P: 0
< 132 bytes of data
< Protocol Discriminator: Q.931 (8)  len=132
< TEI=0 Call Ref: len= 2 (reference 256/0x100) (Sent from originator)
< Message Type: SETUP (5)
< [04 03 80 90 a3]
< Bearer Capability (len= 5) [ Ext: 1  Q.931 Std: 0  Info transfer capability: Speech (0)
<                              Ext: 1  Trans mode/rate: 64kbps, circuit-mode (16)
<                                User information layer 1: A-Law (35)
< [18 03 a1 83 94]
< Channel ID (len= 5) [ Ext: 1  IntID: Implicit  Other(PRI)  Spare: 0  Preferred  Dchan: 0
<                       ChanSel: As indicated in following octets
<                       Ext: 1  Coding: 0  Number Specified  Channel Type: 3
<                       Ext: 1  Channel: 20 Type: CPE]
< [1c 29 9f aa 06 80 01 00 82 01 00 8b 01 00 a1 1b 02 02 00 ca 02 01 00 80 12 33 34 20 56 61 6c 65 6e 74 69 6e 2c 20 41 6e 64 72 65]
< Facility (len=43, codeset=0) [ 0x9F, 0xAA, 0x06, 0x80, 0x01, 0x00, 0x82, 0x01, 0x00, 0x8B, 0x01, 0x00, 0xA1, 0x1B, 0x02, 0x02, 0x00, 0xCA, 0x02, 0x01, 0x00, 0x80, 0x12, '34 XXXXXXXXX' ]
< [1c 19 9f aa 06 80 01 00 82 01 00 8b 01 00 a1 0b 02 02 00 ff 02 01 29 03 02 01 84]
< Facility (len=27, codeset=0) [ 0x9F, 0xAA, 0x06, 0x80, 0x01, 0x00, 0x82, 0x01, 0x00, 0x8B, 0x01, 0x00, 0xA1, 0x0B, 0x02, 0x02, 0x00, 0xFF, 0x02, 0x01, ')', 0x03, 0x02, 0x01, 0x84 ]
< [1c 1f 9f aa 06 80 01 00 82 01 00 a1 14 02 02 00 a5 02 01 3b 30 0b 30 09 0a 01 05 0a 01 04 0a 01 03]
< Facility (len=33, codeset=0) [ 0x9F, 0xAA, 0x06, 0x80, 0x01, 0x00, 0x82, 0x01, 0x00, 0xA1, 0x14, 0x02, 0x02, 0x00, 0xA5, 0x02, 0x01, ';0', 0x0B, '0', 0x09, 0x0A, 0x01, 0x05, 0x0A, 0x01, 0x04, 0x0A, 0x01, 0x03 ]
< [6c 04 00 81 33 34]
< Calling Number (len= 6) [ Ext: 0  TON: Unknown Number Type (0)  NPI: Unknown Number Plan (0)
<                           Presentation: Presentation permitted, user number passed network screening (1)  '34' ]
< [70 02 80 39]
< Called Number (len= 4) [ Ext: 1  TON: Unknown Number Type (0)  NPI: Unknown Number Plan (0)  '9' ]
< [95]
< Locking Shift (len=01): Requested codeset 5
< [32 01 81]
< Calling Party Category (len= 3) [ Ext: 1  Cat: Operator French (1) ]
-- Making new call for cref 256
Received message for call 0x9b8a6a0 on 0x9b84900 TEI/SAPI 0/0, call->pri is 0x9b84900 TEI/SAPI 0/0
-- Processing Q.931 Call Setup
-- Processing IE 4 (cs0, Bearer Capability)
-- Processing IE 24 (cs0, Channel Identification)
-- Processing IE 28 (cs0, Facility)
-- Processing IE 28 (cs0, Facility)
-- Processing IE 28 (cs0, Facility)
-- Processing IE 108 (cs0, Calling Party Number)
-- Processing IE 112 (cs0, Called Party Number)
-- Processing IE 50 (cs5, Calling Party Category)
-- Delayed processing IE 28 (cs0, Facility)
ASN.1 dump
 Context Specific/C [10 0x0A] <AA> Len:6 <06>
   Context Specific [0 0x00] <80> Len:1 <01>
     <00> - "~"
   Context Specific [2 0x02] <82> Len:1 <01>
     <00> - "~"
 Context Specific [11 0x0B] <8B> Len:1 <01>
   <00> - "~"
 Context Specific/C [1 0x01] <A1> Len:27 <1B>
   Integer(2 0x02) <02> Len:2 <02>
     <00 CA> - "~~"
   Integer(2 0x02) <02> Len:1 <01>
     <00> - "~"
   Context Specific [0 0x00] <80> Len:18 <12>
     <33 34 20 56 61 6C 65 6E-74 69 6E 2C 20 41 6E 64 - "34 XXXXXXXXX"
      72 65> - "re"
ASN.1 end
 nfe NetworkFacilityExtension Context Specific/C [10 0x0A]
 sourceEntity Context Specific [0 0x00] = 0 0x0000
 destinationEntity Context Specific [2 0x02] = 0 0x0000
 interpretation Context Specific [11 0x0B] = 0 0x0000
INVOKE Component Context Specific/C [1 0x01]
 invokeId Integer(2 0x02) = 202 0x00CA
 operationValue Integer(2 0x02) = 0 0x0000
 operationValue = ROSE_QSIG_CallingName
 callingName Name
 namePresentationAllowedSimple Context Specific [0 0x00] =
   <33 34 20 56 61 6C 65 6E-74 69 6E 2C 20 41 6E 64 - "34 XXXXXXXXXX"
    72 65> - "re"
-- Delayed processing IE 28 (cs0, Facility)
ASN.1 dump
 Context Specific/C [10 0x0A] <AA> Len:6 <06>
   Context Specific [0 0x00] <80> Len:1 <01>
     <00> - "~"
   Context Specific [2 0x02] <82> Len:1 <01>
     <00> - "~"
 Context Specific [11 0x0B] <8B> Len:1 <01>
   <00> - "~"
 Context Specific/C [1 0x01] <A1> Len:11 <0B>
   Integer(2 0x02) <02> Len:2 <02>
     <00 FF> - "~~"
   Integer(2 0x02) <02> Len:1 <01>
     <29> - ")"
   Bit String(3 0x03) <03> Len:2 <02>
     <01 84> - "~~"
ASN.1 end
 nfe NetworkFacilityExtension Context Specific/C [10 0x0A]
 sourceEntity Context Specific [0 0x00] = 0 0x0000
 destinationEntity Context Specific [2 0x02] = 0 0x0000
 interpretation Context Specific [11 0x0B] = 0 0x0000
INVOKE Component Context Specific/C [1 0x01]
 invokeId Integer(2 0x02) = 255 0x00FF
 operationValue Integer(2 0x02) = 41 0x0029
 operationValue = ROSE_Unknown
 Skipping unused constructed component octets!
!! ROSE invoke operation not handled! ROSE_Unknown
-- Delayed processing IE 28 (cs0, Facility)
ASN.1 dump
 Context Specific/C [10 0x0A] <AA> Len:6 <06>
   Context Specific [0 0x00] <80> Len:1 <01>
     <00> - "~"
   Context Specific [2 0x02] <82> Len:1 <01>
     <00> - "~"
 Context Specific/C [1 0x01] <A1> Len:20 <14>
   Integer(2 0x02) <02> Len:2 <02>
     <00 A5> - "~~"
   Integer(2 0x02) <02> Len:1 <01>
     <3B> - ";"
   Sequence/C(48 0x30) <30> Len:11 <0B>
     Sequence/C(48 0x30) <30> Len:9 <09>
       Enumerated(10 0x0A) <0A> Len:1 <01>
         <05> - "~"
       Enumerated(10 0x0A) <0A> Len:1 <01>
         <04> - "~"
       Enumerated(10 0x0A) <0A> Len:1 <01>
         <03> - "~"
ASN.1 end
 nfe NetworkFacilityExtension Context Specific/C [10 0x0A]
 sourceEntity Context Specific [0 0x00] = 0 0x0000
 destinationEntity Context Specific [2 0x02] = 0 0x0000
INVOKE Component Context Specific/C [1 0x01]
 invokeId Integer(2 0x02) = 165 0x00A5
 operationValue Integer(2 0x02) = 59 0x003B
 operationValue = ROSE_QSIG_ChargeRequest
 ChargeRequest Sequence/C(48 0x30)
 adviceModeCombinations Sequence/C(48 0x30)
 adviceModeCombination Enumerated(10 0x0A) = 5 0x0005
 adviceModeCombination Enumerated(10 0x0A) = 4 0x0004
 adviceModeCombination Enumerated(10 0x0A) = 3 0x0003
!! ROSE invoke operation not handled! ROSE_QSIG_ChargeRequest
q931.c:6765 post_handle_q931_message: Call 256 enters state 6 (Call Present).  Hold state: Idle
-- ACKing all packets from 1 to (but not including) 1
-- T200 requested to stop when not started
T203 requested to start without stopping first
-- Starting T203 timer
Sending Receiver Ready (4)
TEI: 0 State 7
V(S) 1 V(A) 1 V(R) 4
K 7, RC 1, l3initiated 0, reject_except 0 ack_pend 0
T200 0, N200 3, T203 1

> [ 02 01 01 08 ]

> Supervisory frame:
> SAPI: 00  C/R: 1 EA: 0
>  TEI: 000        EA: 1
> Zero: 0     S: 0 01: 1  [ RR (receive ready) ]
> N(R): 004 P/F: 0
> 0 bytes of data
Handling message for SAPI/TEI=0/0
q931.c:4486 q931_setup_ack: Call 256 enters state 25 (Overlap Receiving).  Hold state: Idle
-- Finally transmitting 0, since window opened up (7)
TEI: 0 State 7
V(S) 1 V(A) 1 V(R) 4
K 7, RC 1, l3initiated 0, reject_except 0 ack_pend 0
T200 0, N200 3, T203 1

> [ 00 01 02 08 08 02 81 00 0d 18 04 e9 80 83 94 1e 02 81 82 ]

> Informational frame:
> SAPI: 00  C/R: 0 EA: 0
>  TEI: 000        EA: 1
> N(S): 001   0: 0
> N(R): 004   P: 0
> 15 bytes of data
-- Stopping T203 timer
-- Starting T200 timer
> Protocol Discriminator: Q.931 (8)  len=15
> TEI=0 Call Ref: len= 2 (reference 256/0x100) (Sent to originator)
> Message Type: SETUP ACKNOWLEDGE (13)
> [18 04 e9 80 83 94]
> Channel ID (len= 6) [ Ext: 1  IntID: Explicit  Other(PRI)  Spare: 0  Exclusive  Dchan: 0
>                       ChanSel: As indicated in following octets
>                       Ext: 1  DS1 Identifier: 0  
>                       Ext: 1  Coding: 0  Number Specified  Channel Type: 3
>                       Ext: 1  Channel: 20 Type: CPE]
> [1e 02 81 82]
> Progress Indicator (len= 4) [ Ext: 1  Coding: CCITT (ITU) standard (0)  0: 0  Location: Private network serving the local user (1)
>                               Ext: 1  Progress Description: Called equipment is non-ISDN. (2) ]
   -- Accepting overlap call from '34' to '9' on channel 0/20, span 2
   -- Starting simple switch on 'DAHDI/51-1'
TEI: 0 State 7
V(S) 2 V(A) 1 V(R) 4
K 7, RC 1, l3initiated 0, reject_except 0 ack_pend 0
T200 1, N200 3, T203 0

< [ 02 01 08 04 08 02 01 00 7d 08 04 85 e4 90 18 14 01 01 ]

< Informational frame:
< SAPI: 00  C/R: 1 EA: 0
<  TEI: 000        EA: 1
< N(S): 004   0: 0
< N(R): 002   P: 0
< 14 bytes of data
< Protocol Discriminator: Q.931 (8)  len=14
< TEI=0 Call Ref: len= 2 (reference 256/0x100) (Sent from originator)
< Message Type: STATUS (125)
< [08 04 85 e4 90 18]
< Cause (len= 6) [ Ext: 1  Coding: CCITT (ITU) standard (0)  Spare: 0  Location: Private network serving the remote user (5)
<                  Ext: 1  Cause: Invalid information element contents (100), class = Protocol Error (e.g. unknown message) (6) ]
<              Cause data 1: 90 (144)
<              Cause data 2: 18 (24)
< [14 01 01]
< Call State (len= 3) [ Ext: 0  Coding: CCITT (ITU) standard (0)  Call state: Call Initiated (1)
Received message for call 0x9b8a6a0 on 0x9b84900 TEI/SAPI 0/0, call->pri is 0x9b84900 TEI/SAPI 0/0
-- Processing IE 8 (cs0, Cause)
-- Processing IE 20 (cs0, Call State)
-- ACKing all packets from 1 to (but not including) 2
-- ACKing packet 1, new txqueue is -1 (-1 means empty)
-- Stopping T200 timer
-- Starting T203 timer
Sending Receiver Ready (5)
TEI: 0 State 7
V(S) 2 V(A) 2 V(R) 5
K 7, RC 1, l3initiated 0, reject_except 0 ack_pend 0
T200 0, N200 3, T203 1

> [ 02 01 01 0a ]

> Supervisory frame:
> SAPI: 00  C/R: 1 EA: 0
>  TEI: 000        EA: 1
> Zero: 0     S: 0 01: 1  [ RR (receive ready) ]
> N(R): 005 P/F: 0
> 0 bytes of data
Handling message for SAPI/TEI=0/0
TEI: 0 State 7
V(S) 2 V(A) 2 V(R) 5
K 7, RC 1, l3initiated 0, reject_except 0 ack_pend 0
T200 0, N200 3, T203 1

< [ 02 01 0a 04 08 02 01 00 5a 08 02 85 e6 ]

< Informational frame:
< SAPI: 00  C/R: 1 EA: 0
<  TEI: 000        EA: 1
< N(S): 005   0: 0
< N(R): 002   P: 0
< 9 bytes of data
< Protocol Discriminator: Q.931 (8)  len=9
< TEI=0 Call Ref: len= 2 (reference 256/0x100) (Sent from originator)
< Message Type: RELEASE COMPLETE (90)
< [08 02 85 e6]
< Cause (len= 4) [ Ext: 1  Coding: CCITT (ITU) standard (0)  Spare: 0  Location: Private network serving the remote user (5)
<                  Ext: 1  Cause: Recover on timer expiry (102), class = Protocol Error (e.g. unknown message) (6) ]
Received message for call 0x9b8a6a0 on 0x9b84900 TEI/SAPI 0/0, call->pri is 0x9b84900 TEI/SAPI 0/0
-- Processing IE 8 (cs0, Cause)
q931.c:6977 post_handle_q931_message: Call 256 enters state 0 (Null).  Hold state: Idle
-- ACKing all packets from 2 to (but not including) 2
-- T200 requested to stop when not started
T203 requested to start without stopping first
-- Starting T203 timer
Sending Receiver Ready (6)
TEI: 0 State 7
V(S) 2 V(A) 2 V(R) 6
K 7, RC 1, l3initiated 0, reject_except 0 ack_pend 0
T200 0, N200 3, T203 1

> [ 02 01 01 0c ]

> Supervisory frame:
> SAPI: 00  C/R: 1 EA: 0
>  TEI: 000        EA: 1
> Zero: 0     S: 0 01: 1  [ RR (receive ready) ]
> N(R): 006 P/F: 0
> 0 bytes of data
Handling message for SAPI/TEI=0/0
   -- Channel 0/20, span 2 got hangup, cause 102
q931_hangup: other hangup
NEW_HANGUP DEBUG: Calling q931_hangup, ourstate Null, peerstate Null, hold-state Idle
NEW_HANGUP DEBUG: Destroying the call, ourstate Null, peerstate Null, hold-state Idle
   -- Hungup 'DAHDI/51-1'

--------------------------------------------------------------------------------

Dialplan:
dialplan show test
[ Context 'test' created by 'pbx_ael' ]
 's' =>            1. Goto(100,1)                                [pbx_ael]
 '_X.' =>          1. Noop(Setting up: CALLERID: ${CALLERID(all)}) [pbx_ael]
                   2. Set(__CALLINGSUBADDR=" 934 A.Valentin")    [pbx_ael]
                   3. Answer()                                   [pbx_ael]
                   4. Echo()                                     [pbx_ael]
                   5. Hangup()                                   [pbx_ael]

--------------------------------------------------------------------------------
chan_dahdi.conf
[trunkgroups]

[channels]
language=de
context=intern

internationalprefix=00
nationalprefix=0
localprefix=0521

overlapdial=yes
inbanddisconnect=no
callprogress=yes
facilityenable = yes
signalling=fxo_ks
usecallerid=yes
hidecallerid=no
callwaiting=yes
usecallingpres=yes
callwaitingcallerid=yes
threewaycalling=yes
transfer=yes
canpark=yes
cancallforward=yes
callreturn=yes
echocancel=yes
echocancelwhenbridged=no
group=1
callgroup=20
pickupgroup=20

callerid = asreceived
useincomingcalleridondahditransfer = yes
jbenable = yes                ; Enables the use of a jitterbuffer on the receiving side of a
                             ; DAHDI channel. Defaults to "no". An enabled jitterbuffer will
                             ; be used only if the sending side can create and the receiving
                             ; side can not accept jitter. The DAHDI channel can't accept jitter,
                             ; thus an enabled jitterbuffer on the receive DAHDI side will always
                             ; be used if the sending side can create jitter.


group=16
context=test
switchtype = qsig
signalling = pri_cpe
pridialplan = local
prilocaldialplan = dynamic
nationalprefix = 0
internationalprefix = 00
priindication = passthrough
echocancel = no
channel => 32-46,48-62

context = default
group = 63

Comments:By: andre valentin (avalentin) 2010-05-31 03:41:52

I also reproduced this problem with the trunk-version and bri ports. immediate=yes and overlapdial=no does not work,too.

By: Richard Mudgett (rmudgett) 2010-06-03 15:59:29

Does issue17401_digit_timeout.patch correct the overlap dialing problem?

By: andre valentin (avalentin) 2010-06-04 05:34:33

Yes, this helps. Overlap dialing works now as expected.
Thanks!

By: Digium Subversion (svnbot) 2010-06-04 09:45:04

Repository: asterisk
Revision: 267928

U   trunk/channels/sig_pri.c

------------------------------------------------------------------------
r267928 | rmudgett | 2010-06-04 09:45:03 -0500 (Fri, 04 Jun 2010) | 15 lines

Incoming overlap dialing no longer works after sig_pri extraction.

The problem would manifest itself if your dialplan matching could accept
more digits to match than were actually dialed.  The time out waiting for
overlap digits disconnected the call instead of matching any accumulated
digits to the dialplan.

Accidental conversion of a break out of loop as a break out of switch.

(closes issue ASTERISK-16151)
Reported by: avalentin
Patches:
     issue17401_digit_timeout.patch uploaded by rmudgett (license 664)
Tested by: avalentin, rmudgett

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=267928