[Home]

Summary:ASTERISK-11402: [patch] When the caller hangs up - transfer the called party to the specified context and extension provided by this option.
Reporter:Johan Wilfer (johan)Labels:
Date Opened:2008-02-08 02:07:57.000-0600Date Closed:2008-04-09 11:20:40
Priority:MajorRegression?No
Status:Closed/CompleteComponents:Applications/NewFeature
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) app_dial_rev103312.patch
( 1) app_dial_rev104031.patch
( 2) app_dial.patch
Description:Basically I don't want to hang up on the called party, just because the caller slammed the phone. I would like to be able to continue dialplan execution of the called party.

Right now we have the flag 'g': Proceed with dialplan execution at the current extension if the destination channel hangs up.

This patch add the flag 'F(context^exten^pri)': When the caller hangs up - transfer the called party to the specified context and extension and continue execution.
Comments:By: Johan Wilfer (johan) 2008-02-11 10:36:32.000-0600

I've updated the patch to the revision 103312 so the first patch should be deleted and the SVN revision should be updated.

By: Johan Wilfer (johan) 2008-02-22 05:09:07.000-0600

I have asked twice in asterisk-dev for details regarding app_dial.c but got no answers. Can you please test this patch, and comment here?

By: Tilghman Lesher (tilghman) 2008-02-22 09:55:20.000-0600

Why have you inserted an option in the middle of the flags, instead of simply adding it to the end?

By: Johan Wilfer (johan) 2008-02-22 10:31:21.000-0600

It seemed like the right thing to do... I couldn't understand why these sections are defined differently. The first 30 options is in a enum, and the following 4 are declared by a #define. I asked about this in asterisk-dev but got no response.

The code in question is:

 234 enum {
 235   OPT_ANNOUNCE =          (1 << 0),
 236   OPT_RESETCDR =          (1 << 1),
 237   OPT_DTMF_EXIT =         (1 << 2),
 238   OPT_SENDDTMF =          (1 << 3),
 239   OPT_FORCECLID =         (1 << 4),
 240   OPT_GO_ON =             (1 << 5),
 241   OPT_CALLEE_HANGUP =     (1 << 6),
 242   OPT_CALLER_HANGUP =     (1 << 7),
 243   OPT_DURATION_LIMIT =    (1 << 9),
 244   OPT_MUSICBACK =         (1 << 10),
 245   OPT_CALLEE_MACRO =      (1 << 11),
 246   OPT_SCREEN_NOINTRO =    (1 << 12),
 247   OPT_SCREEN_NOCLID =     (1 << 13),
 248   OPT_ORIGINAL_CLID =     (1 << 14),
 249   OPT_SCREENING =         (1 << 15),
 250   OPT_PRIVACY =           (1 << 16),
 251   OPT_RINGBACK =          (1 << 17),
 252   OPT_DURATION_STOP =     (1 << 18),
 253   OPT_CALLEE_TRANSFER =   (1 << 19),
 254   OPT_CALLER_TRANSFER =   (1 << 20),
 255   OPT_CALLEE_MONITOR =    (1 << 21),
 256   OPT_CALLER_MONITOR =    (1 << 22),
 257   OPT_GOTO =              (1 << 23),
 258   OPT_OPERMODE =          (1 << 24),
 259   OPT_CALLEE_PARK =       (1 << 25),
 260   OPT_CALLER_PARK =       (1 << 26),
 261   OPT_IGNORE_FORWARDING = (1 << 27),
 262   OPT_CALLEE_GOSUB =      (1 << 28),
 263   OPT_CALLEE_MIXMONITOR = (1 << 29),
 264   OPT_CALLER_MIXMONITOR = (1 << 30),
 265 };
 266
 267 #define DIAL_STILLGOING      (1 << 31)
 268 #define DIAL_NOFORWARDHTML   ((uint64_t)1 << 32) /* flags are now 64 bits, so keep it up! */
 269 #define OPT_CANCEL_ELSEWHERE ((uint64_t)1 << 33)
 270 #define OPT_PEER_H           ((uint64_t)1 << 34)

Should this go to the end?
I will update the patch, you can delete the first one anyway, app_dial.patch

By: Johan Wilfer (johan) 2008-02-22 11:01:17.000-0600

Updated. This also solved the strange notice I got with the previous version of the patch that printed (see mail to asterisk-dev dated Mon, 11 Feb 2008 17:13:56)

[Feb 11 16:30:44] NOTICE[22370]: app_dial.c:1845 dial_exec_full: PEER context: incoming; PEER exten: ;  PEER priority: 1

Now this works perfectly for me, thanks for the feedback!

By: Johan Wilfer (johan) 2008-03-29 11:03:26

*bump*

By: Johan Wilfer (johan) 2008-04-08 20:26:22

Corydon76 - Do you have any comments?

This patch works well. You got two CDR's (on for the bridged call and one from the time the callee is on it's own) and that's resonabele. Used in a Queue you have to specify /n after otherwise it doesn't work. But with the /n switch it works prefectly.

Is something missing?

By: Digium Subversion (svnbot) 2008-04-09 08:50:42

Repository: asterisk
Revision: 113649

U   trunk/apps/app_dial.c

------------------------------------------------------------------------
r113649 | tilghman | 2008-04-09 08:50:40 -0500 (Wed, 09 Apr 2008) | 6 lines

Permit callee to continue in the dialplan, after caller has hung up.
(closes issue ASTERISK-11402)
Reported by: johan
Patches:
      app_dial_rev104031.patch uploaded by johan (license 334)

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

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

By: Digium Subversion (svnbot) 2008-04-09 08:51:36

Repository: asterisk
Revision: 113650

_U  branches/1.6.0/

------------------------------------------------------------------------
r113650 | tilghman | 2008-04-09 08:51:35 -0500 (Wed, 09 Apr 2008) | 13 lines

Blocked revisions 113649 via svnmerge

........
r113649 | tilghman | 2008-04-09 08:55:28 -0500 (Wed, 09 Apr 2008) | 6 lines

Permit callee to continue in the dialplan, after caller has hung up.
(closes issue ASTERISK-11402)
Reported by: johan
Patches:
      app_dial_rev104031.patch uploaded by johan (license 334)

........

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

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

By: Digium Subversion (svnbot) 2008-04-09 11:19:23

Repository: asterisk
Revision: 113752

U   trunk/CHANGES

------------------------------------------------------------------------
r113752 | tilghman | 2008-04-09 11:19:21 -0500 (Wed, 09 Apr 2008) | 2 lines

Mark recent additions from ASTERISK-11402 and ASTERISK-11679

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

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

By: Digium Subversion (svnbot) 2008-04-09 11:20:40

Repository: asterisk
Revision: 113758

_U  branches/1.6.0/

------------------------------------------------------------------------
r113758 | tilghman | 2008-04-09 11:20:36 -0500 (Wed, 09 Apr 2008) | 9 lines

Blocked revisions 113752 via svnmerge

........
r113752 | tilghman | 2008-04-09 11:23:30 -0500 (Wed, 09 Apr 2008) | 2 lines

Mark recent additions from ASTERISK-11402 and ASTERISK-11679

........

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

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