[Home]

Summary:ASTERISK-17824: [patch] Unable to pickup ringing DAHDI call, as when ringing state is reported as DIALLING
Reporter:Alec Davis (alecdavis)Labels:
Date Opened:2011-05-10 00:12:18Date Closed:2011-05-10 19:01:16
Priority:MajorRegression?Yes
Status:Closed/CompleteComponents:Channels/chan_dahdi
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) app_directed_pickup.diff.txt
( 1) issue19257_v1.8_v2.patch
( 2) issue19257_v1.8.patch
Description:As pickup_by_exten and it's helper can_pickup() only check for AST_STATE_RING || AST_STATE_RINGING || AST_STATE_DOWN it cannot pickup DAHDI call, which when ringing are in the AST_STATE_DIALLING

Hardware: TE220: PCI-Express dual-port T1/E1/J1

The issue for us is an outbound call from asterisk to our legacy Fujitsu PBX's night bell. Someone on either PABX should be able to pick it up.


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

<pre>Console output by dialing 4888 (legacy PABX extension).
astrid*CLI> core show channels
Channel              Location             State   Application(Data)
DAHDI/i1/4888-1eb8   4888@incoming:1      Dialing AppDial((Outgoing Line))

Console output by dialing queue, with roundrobin, one phone on each PABX.
SIP reports RINGING
DAHDI reports DAILLING
astrid*CLI> core show channels
Channel              Location             State   Application(Data)
SIP/GXP0001-000005e4 s@itg-queue:19       Ring    Queue(itg_queue,crhH,,,27)
DAHDI/i1/4866-1ea0   s@incoming:1         Dialing AppQueue((Outgoing Line))

astrid*CLI> core show channels
Channel              Location             State   Application(Data)
SIP/GXP0001-000005e5 s@itg-queue:19       Ring    Queue(itg_queue,crhH,,,27)
SIP/GXP0023-000005e6 s@trusted:1          Ringing AppQueue((Outgoing Line))</pre>
Comments:By: Alec Davis (alecdavis) 2011-05-10 15:56:44

richard. This may also be a problem for an ISDN phone connected to a BRI.
Not sure, can't test, hence the question.. and I know you have an ISDN phone available.


By: Richard Mudgett (rmudgett) 2011-05-10 17:01:25

In this case I do not think BRI should not be any different than PRI.  It may really be a case where the ISDN call has not had the channel state updated to RING/RINGING.



By: Alec Davis (alecdavis) 2011-05-10 17:11:50

a regression :(<pre>
astrid-test*CLI> core show version
Asterisk SVN-branch-1.4-r317719 built by root @ astrid-test on a i686 running Linux on 2011-05-10 22:16:00 UTC
astrid-test*CLI> core show channels
Channel              Location             State   Application(Data)
DAHDI/1-1            4866@incoming:1      Ringing AppDial((Outgoing Line))
SIP/GXP0001-00000000 4866@trusted:2       Ring    Dial(DAHDI/r0/4866)

Asterisk SVN-branch-1.6.2-r318331M built by root @ test on a i686 running Linux on 2010-01-18 22:16:08 UTC
astrid-test*CLI> core show channels
Channel              Location             State   Application(Data)
DAHDI/2-1            4866@incoming:1      Ringing AppDial((Outgoing Line))
SIP/GXP0001-00000001 4866@trusted:2       Ring    Dial(DAHDI/r0/4866)
2 active channels
1 active call
2 calls processed

<<<<<  Regresssion seems to be between at 1.8 >>>>>

astrid-test*CLI> core show version
Asterisk SVN-branch-1.8-r318485 built by root @ astrid-test on a i686 running Linux on 2011-04-27 00:08:23 UTC
astrid-test*CLI> core show channels
Channel              Location             State   Application(Data)
DAHDI/i1/4866-1      4866@incoming:1      Dialing AppDial((Outgoing Line))
SIP/GXP0001-00000000 4866@trusted:2       Ring    Dial(DAHDI/r0/4866)
2 active channels
1 active call
1 call processed</pre>



By: Alec Davis (alecdavis) 2011-05-10 17:37:32

moved to chan_dahdi.

By: Richard Mudgett (rmudgett) 2011-05-10 17:45:44

The issue19257_v1.8.patch restores the missing state update.

By: Richard Mudgett (rmudgett) 2011-05-10 17:55:48

The issue19257_v1.8_v2.patch restores the missing state update for SS7 as well.

By: Alec Davis (alecdavis) 2011-05-10 17:57:16

Asterisk SVN-branch-1.8-r318485M built by root @ astrid-test on a i686 running Linux on 2011-04-27 00:08:23 UTC
astrid-test*CLI> core show channels
Channel              Location             State   Application(Data)
DAHDI/i1/4866-1      4866@incoming:1      Ringing AppDial((Outgoing Line))
SIP/GXP0001-00000000 4866@trusted:2       Ring    Dial(DAHDI/r0/4866)

Didn't actually try the pickup, as this is on a test box.
But it's looking correct now.

By: Alec Davis (alecdavis) 2011-05-10 18:01:36

Do we need to consider the ISDN exchanges which don't send ringing, only progress? or does this cover that.



By: Richard Mudgett (rmudgett) 2011-05-10 18:07:08

PROGRESS is not ALERTING (ringing).  The patch restores setting the channel state as v1.6.2 did.

By: Richard Mudgett (rmudgett) 2011-05-10 18:12:36

Slightly off topic: Pickup groups may not work for ISDN if they ever did.

By: Alec Davis (alecdavis) 2011-05-10 18:19:03

~0134769 agreed.
~0134770 We're using extn@context which I've just applied to production server, and reverted my patch to app_directed_pickup and all is working well.

Thanks Richard.

By: Digium Subversion (svnbot) 2011-05-10 18:41:10

Repository: asterisk
Revision: 318499

U   branches/1.8/channels/sig_pri.c
U   branches/1.8/channels/sig_ss7.c

------------------------------------------------------------------------
r318499 | rmudgett | 2011-05-10 18:41:10 -0500 (Tue, 10 May 2011) | 15 lines

Unable to pickup DAHDI/PRI call because call state is reported as DIALING.

The channel state is not updated to RINGING when an ALERTING message is
received.  Regression caused when sig_pri.c (also sig_ss7.c) extracted
from chan_dahdi.c.

* Added missing channel state update to RINGING when the
AST_CONTROL_RINGING frame is queued for ISDN and SS7.

(closes issue ASTERISK-17824)
Reported by: alecdavis
Patches:
     issue19257_v1.8_v2.patch uploaded by rmudgett (license 664)
Tested by: alecdavis, rmudgett

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

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

By: Digium Subversion (svnbot) 2011-05-10 18:42:58

Repository: asterisk
Revision: 318500

_U  trunk/
U   trunk/channels/sig_pri.c
U   trunk/channels/sig_ss7.c

------------------------------------------------------------------------
r318500 | rmudgett | 2011-05-10 18:42:58 -0500 (Tue, 10 May 2011) | 22 lines

Merged revisions 318499 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

........
 r318499 | rmudgett | 2011-05-10 18:41:08 -0500 (Tue, 10 May 2011) | 15 lines
 
 Unable to pickup DAHDI/PRI call because call state is reported as DIALING.
 
 The channel state is not updated to RINGING when an ALERTING message is
 received.  Regression caused when sig_pri.c (also sig_ss7.c) extracted
 from chan_dahdi.c.
 
 * Added missing channel state update to RINGING when the
 AST_CONTROL_RINGING frame is queued for ISDN and SS7.
 
 (closes issue ASTERISK-17824)
 Reported by: alecdavis
 Patches:
       issue19257_v1.8_v2.patch uploaded by rmudgett (license 664)
 Tested by: alecdavis, rmudgett
........

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

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

By: Alec Davis (alecdavis) 2011-05-10 19:01:16

following up on ~0134769 where the state stays at Dialling.

To this partciluar exchange, we don't get an ALERTING, only a PROGRESS and we can hear the ringing.
Probably because 'further call progress may be available inband'

1 < Message Type: PROGRESS (3)
1 < [1e 02 82 81]
1 < Progress Indicator (len= 4) [ Ext: 1  Coding: CCITT (ITU) standard (0)  0: 0  Location: Public network serving the local user (2)
1 <                               Ext: 1  Progress Description: Call is not end-to-end ISDN; further call progress information may be available inband. (1) ]
1 Received message for call 0xf7beea0 on 0x9292450 TEI/SAPI 0/0, call->pri is 0x9292450 TEI/SAPI 0/0
1 -- Processing IE 30 (cs0, Progress Indicator)
Span: 1 Processing event: Progress
   -- DAHDI/i1/5635111-2 is making progress passing it to SIP/GXP0001-00000001