diff --git a/res/parking/parking_manager.c b/res/parking/parking_manager.c
index 83558ba74e..905a9b2b80 100644
--- a/res/parking/parking_manager.c
+++ b/res/parking/parking_manager.c
@@ -93,6 +93,11 @@
The parking lot to use when parking the channel
+
+ The parking space extension in the parking lot.
+ If the space is already in use then execution will continue at the next priority.
+
+
Park an arbitrary channel with optional arguments for specifying the parking lot used, how long
@@ -523,6 +528,7 @@ static int manager_park(struct mansession *s, const struct message *m)
const char *announce_channel = astman_get_header(m, "AnnounceChannel");
const char *timeout = astman_get_header(m, "Timeout");
const char *parkinglot = astman_get_header(m, "Parkinglot");
+ const char *parkingspace = astman_get_header(m, "ParkingSpace");
char buf[BUFSIZ];
int timeout_override = -1;
@@ -557,7 +563,11 @@ static int manager_park(struct mansession *s, const struct message *m)
ast_bridge_set_transfer_variables(chan, timeout_channel, 0);
ast_channel_unlock(chan);
}
-
+
+ if (!ast_strlen_zero(parkingspace)) {
+ pbx_builtin_setvar_helper(chan, "PARKINGEXTEN", parkingspace);
+ }
+
parker_chan = ast_channel_bridge_peer(chan);
if (!parker_chan || strcmp(ast_channel_name(parker_chan), timeout_channel)) {
if (!ast_strlen_zero(announce_channel)) {