summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorJonathan Rose <jrose@digium.com>2013-02-08 17:36:23 +0000
committerJonathan Rose <jrose@digium.com>2013-02-08 17:36:23 +0000
commit1a70d513f1876e88fc61f50484dfa27adc0af881 (patch)
tree5dd42fdbf5c34cb2125d1b4a9ce20bd0c222aced /main
parentabd17dc8497da673ab39272ce857490c4db26078 (diff)
Call Parking: Set PARKINGLOT and PARKINGSLOT variables on all parked calls
These two variables were previously not being set when comebacktoorigin=yes and the example configs seemed to imply that they should be. Since there is no harm in this and since calls that are sent back to origin are capable of continuing in the dialplan, this seemed like a no-brainer. Also it supports some bridging tests I've been working on. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@381068 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main')
-rw-r--r--main/features.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/main/features.c b/main/features.c
index 547863534..51b143be4 100644
--- a/main/features.c
+++ b/main/features.c
@@ -5075,6 +5075,7 @@ static int manage_parked_call(struct parkeduser *pu, const struct pollfd *pfds,
char *peername;
char *dash;
char *peername_flat; /* using something like DAHDI/52 for an extension name is NOT a good idea */
+ char parkingslot[AST_MAX_EXTENSION]; /* buffer for parkinglot slot number */
int i;
peername = ast_strdupa(pu->peername);
@@ -5135,6 +5136,11 @@ static int manage_parked_call(struct parkeduser *pu, const struct pollfd *pfds,
peername_flat, parking_con_dial);
}
}
+
+ snprintf(parkingslot, sizeof(parkingslot), "%d", pu->parkingnum);
+ pbx_builtin_setvar_helper(chan, "PARKINGSLOT", parkingslot);
+ pbx_builtin_setvar_helper(chan, "PARKEDLOT", pu->parkinglot->name);
+
if (pu->options_specified) {
/*
* Park() was called with overriding return arguments, respect
@@ -5144,12 +5150,6 @@ static int manage_parked_call(struct parkeduser *pu, const struct pollfd *pfds,
} else if (pu->parkinglot->cfg.comebacktoorigin) {
set_c_e_p(chan, parking_con_dial, peername_flat, 1);
} else {
- char parkingslot[AST_MAX_EXTENSION];
-
- snprintf(parkingslot, sizeof(parkingslot), "%d", pu->parkingnum);
- pbx_builtin_setvar_helper(chan, "PARKINGSLOT", parkingslot);
- pbx_builtin_setvar_helper(chan, "PARKEDLOT", pu->parkinglot->name);
-
/* Handle fallback when extensions don't exist here since that logic was removed from pbx */
if (ast_exists_extension(chan, pu->parkinglot->cfg.comebackcontext, peername_flat, 1, NULL)) {
set_c_e_p(chan, pu->parkinglot->cfg.comebackcontext, peername_flat, 1);