Summary:ASTERISK-15503: [patch] app_dial gosub does not pass back GOSUB_RETVAL
Reporter:Ben Klang (bklang)Labels:
Date Opened:2010-01-24 23:29:26.000-0600Date Closed:2010-02-02 14:32:31.000-0600
Versions:Frequency of
Environment:Attachments:( 0) app_dial-preserve-gosub_retval.patch
Description:When calling a Gosub routine (Dial with U() option) the GOSUB_RETVAL variable is not propagated back to the calling channel.  This makes it effectively impossible to alter the behavior of the dialplan by having the Gosub routine set a value with the Result application.

This patch alters app_dial to check for the GOSUB_RETVAL channel variable on the called channel (peer) and, if set, set it on the calling channel (chan).
Comments:By: Tilghman Lesher (tilghman) 2010-02-02 11:35:41.000-0600

Patch needs to be fixed up with tab indentation, not space indentation.

By: Ben Klang (bklang) 2010-02-02 11:43:11.000-0600

Sorry about that, I'll go fix the indentation.

I originally generated this patch against trunk, without the related ticket ASTERISK-15502.  Would you like the updated patch to be based against 1.6.2 SVN or against 1.6.2 with the patch from ASTERISK-15502?  It's a very simple patch either way, just let me know.

By: Tilghman Lesher (tilghman) 2010-02-02 12:01:22.000-0600

Against trunk, please.

By: Digium Subversion (svnbot) 2010-02-02 14:32:30.000-0600

Repository: asterisk
Revision: 244393

U   trunk/CHANGES
U   trunk/apps/app_dial.c

r244393 | tilghman | 2010-02-02 14:32:30 -0600 (Tue, 02 Feb 2010) | 18 lines

Properly respect GOSUB_RESULT as to what to do with the master channel.

Previously, we would parse GOSUB_RESULT, but not actually do anything with it.
Also, allow GOSUB_RETVAL to be inherited back across a peer/master channel.

(closes issue ASTERISK-15503)
Reported by: bklang
      app_dial-preserve-gosub_retval.patch uploaded by bklang (license 919)
      (with modifications)

(closes issue ASTERISK-15502)
Reported by: bklang
      app_dial-respect-gosub_result.patch uploaded by bklang (license 919)
      (with modifications)