]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Fix AGI exec Park to honor the Park application parameters.
authorRichard Mudgett <rmudgett@digium.com>
Thu, 20 Oct 2011 21:58:39 +0000 (21:58 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Thu, 20 Oct 2011 21:58:39 +0000 (21:58 +0000)
The fix for ASTERISK-12715 and ASTERISK-12685 added a check for the Park
application because the channel needed to be masqueraded to prevent a
crash.  Since the Park application now always masquerades the channel into
the parking lot, the special check is no longer needed.  The fix also
resulted in AGI exec Park attempting to double park the call and not honor
the Park application parameters.

* Removed no longer necessary call to ast_masq_park_call() by AGI exec for
the Park application.  (Reverts -r146923)

* Fix Park application to only return 0 or -1.  The AGI exec Park was
causing broken pipe error messages because the Park application returned 1
on successful park.

(closes issue ASTERISK-18737)
........

Merged revisions 341717 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@341718 65c4cc65-6c06-0410-ace0-fbb531ad65f3

include/asterisk/features.h
main/features.c
res/res_agi.c

index 76a141df157476d954fb02c3de53a2153a57288f..42dc57fba2399bd3d10a3f18540d60419a5727ad 100644 (file)
@@ -34,7 +34,6 @@
 #define FEATURE_EXTEN_LEN      32
 #define FEATURE_MOH_LEN                80  /* same as MAX_MUSICCLASS from channel.h */
 
-#define PARK_APP_NAME "Park"
 #define DEFAULT_PARKINGLOT "default"   /*!< Default parking lot */
 
 #define AST_FEATURE_RETURN_HANGUP           -1
index e041b6bdec16ff4b972995e13ed95522a3d24a53..f119f81e611380183f9055aed1ef048e53301511 100644 (file)
@@ -416,7 +416,7 @@ typedef enum {
        FEATURE_INTERPRET_CHECK,  /* Used by feature_check */
 } feature_interpret_op;
 
-static char *parkedcall = "ParkedCall";
+static const char *parkedcall = "ParkedCall";
 
 static char pickup_ext[AST_MAX_EXTENSION];                 /*!< Call pickup extension */
 
@@ -630,7 +630,7 @@ AST_DEFINE_APP_ARGS_TYPE(park_app_args,
        );
 
 /* module and CLI command definitions */
-static char *parkcall = PARK_APP_NAME;
+static const char *parkcall = "Park";
 
 static struct ast_app *monitor_app = NULL;
 static int monitor_ok = 1;
@@ -783,7 +783,7 @@ static struct ast_exten *get_parking_exten(const char *exten_str, struct ast_cha
        }
 
        app_at_exten = ast_get_extension_app(exten);
-       if (!app_at_exten || strcasecmp(PARK_APP_NAME, app_at_exten)) {
+       if (!app_at_exten || strcasecmp(parkcall, app_at_exten)) {
                return NULL;
        }
 
@@ -4967,7 +4967,7 @@ static int park_call_exec(struct ast_channel *chan, const char *data)
                res = 0;
        } else {
                /* Park succeeded. */
-               res = 1;
+               res = -1;
        }
 
        return res;
index 326cfc5825b4c28d28fa3a2a723a649a16a440df..de16154098d79aeb43d4ec17965f287c6e7352f4 100644 (file)
@@ -61,7 +61,6 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/ast_version.h"
 #include "asterisk/speech.h"
 #include "asterisk/manager.h"
-#include "asterisk/features.h"
 #include "asterisk/term.h"
 #include "asterisk/xmldoc.h"
 #include "asterisk/srv.h"
@@ -2474,9 +2473,6 @@ static int handle_exec(struct ast_channel *chan, AGI *agi, int argc, const char
        ast_verb(3, "AGI Script Executing Application: (%s) Options: (%s)\n", argv[1], argc >= 3 ? argv[2] : "");
 
        if ((app_to_exec = pbx_findapp(argv[1]))) {
-               if(!strcasecmp(argv[1], PARK_APP_NAME)) {
-                       ast_masq_park_call(chan, NULL, 0, NULL);
-               }
                if (!(workaround = ast_test_flag(chan, AST_FLAG_DISABLE_WORKAROUNDS))) {
                        ast_set_flag(chan, AST_FLAG_DISABLE_WORKAROUNDS);
                }