aboutsummaryrefslogtreecommitdiffstats
path: root/res
diff options
context:
space:
mode:
authorjpeeler <jpeeler@f38db490-d61c-443f-a65b-d21fe96a405b>2008-10-03 20:44:22 +0000
committerjpeeler <jpeeler@f38db490-d61c-443f-a65b-d21fe96a405b>2008-10-03 20:44:22 +0000
commit56652203ad96893ce1fe199a42476fda4e0d1067 (patch)
tree91e60412eb8d0c7874ce35a0e408e1e003d1a788 /res
parent6bd68a1eb509eb5d1bc37f77296819a10bca9062 (diff)
(closes issue #13425)
Reported by: mdu113 Tested by: mdu113 Similar to r143204, masquerade the channel in the case of Park being called from AGI. git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@146129 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'res')
-rw-r--r--res/res_agi.c6
-rw-r--r--res/res_features.c4
2 files changed, 7 insertions, 3 deletions
diff --git a/res/res_agi.c b/res/res_agi.c
index 20bb9331b..a60155087 100644
--- a/res/res_agi.c
+++ b/res/res_agi.c
@@ -64,6 +64,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
#include "asterisk/lock.h"
#include "asterisk/strings.h"
#include "asterisk/agi.h"
+#include "asterisk/features.h"
#define MAX_ARGS 128
#define MAX_COMMANDS 128
@@ -1110,6 +1111,9 @@ static int handle_exec(struct ast_channel *chan, AGI *agi, int argc, char **argv
app = pbx_findapp(argv[1]);
if (app) {
+ if(!strcasecmp(argv[1], PARK_APP_NAME)) {
+ ast_masq_park_call(chan, NULL, 0, NULL);
+ }
res = pbx_exec(chan, app, argv[2]);
} else {
ast_log(LOG_WARNING, "Could not find application (%s)\n", argv[1]);
@@ -2035,7 +2039,7 @@ static int agi_exec_full(struct ast_channel *chan, void *data, int enhanced, int
int fds[2];
int efd = -1;
int pid;
- char *stringp;
+ char *stringp;
AGI agi;
if (ast_strlen_zero(data)) {
diff --git a/res/res_features.c b/res/res_features.c
index ce9b1d717..491ee4026 100644
--- a/res/res_features.c
+++ b/res/res_features.c
@@ -118,7 +118,7 @@ static char *descrip = "ParkedCall(exten):"
"into the dialplan, although you should include the 'parkedcalls'\n"
"context.\n";
-static char *parkcall = "Park";
+static char *parkcall = PARK_APP_NAME;
static char *synopsis2 = "Park yourself";
@@ -565,7 +565,7 @@ static void set_peers(struct ast_channel **caller, struct ast_channel **callee,
static int builtin_parkcall(struct ast_channel *chan, struct ast_channel *peer, struct ast_bridge_config *config, char *code, int sense, void *data)
{
struct ast_channel *parker;
- struct ast_channel *parkee;
+ struct ast_channel *parkee;
int res = 0;
struct ast_module_user *u;