mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-13 08:13:22 +00:00
Update the ParkedCall application to grab the first available parked call if no
parked extension is provided as an argument. (closes issue #10803) Reported by: outtolunc Patches: res_features-parkedcall-any.diff4 uploaded by outtolunc (license 237) - modified by me to work a bit differently ... git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89250 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
3
CHANGES
3
CHANGES
@@ -255,6 +255,9 @@ Call Features (res_features) Changes
|
|||||||
features.conf. This means that features can be written a single time, and
|
features.conf. This means that features can be written a single time, and
|
||||||
then mapped into groups of features for different key mappings or easier
|
then mapped into groups of features for different key mappings or easier
|
||||||
access control.
|
access control.
|
||||||
|
* Updated the ParkedCall application to allow you to not specify a parking
|
||||||
|
extension. If you don't specify a parking space to pick up, it will grab
|
||||||
|
the first one available.
|
||||||
|
|
||||||
Language Support Changes
|
Language Support Changes
|
||||||
------------------------
|
------------------------
|
||||||
|
@@ -138,7 +138,8 @@ static char *descrip = "ParkedCall(exten): "
|
|||||||
"Used to connect to a parked call. This application is always\n"
|
"Used to connect to a parked call. This application is always\n"
|
||||||
"registered internally and does not need to be explicitly added\n"
|
"registered internally and does not need to be explicitly added\n"
|
||||||
"into the dialplan, although you should include the 'parkedcalls'\n"
|
"into the dialplan, although you should include the 'parkedcalls'\n"
|
||||||
"context.\n";
|
"context. If no extension is provided, then the first available\n"
|
||||||
|
"parked call will be acquired.\n";
|
||||||
|
|
||||||
static char *parkcall = "Park";
|
static char *parkcall = "Park";
|
||||||
|
|
||||||
@@ -2254,22 +2255,17 @@ static int park_exec(struct ast_channel *chan, void *data)
|
|||||||
struct ast_channel *peer=NULL;
|
struct ast_channel *peer=NULL;
|
||||||
struct parkeduser *pu;
|
struct parkeduser *pu;
|
||||||
struct ast_context *con;
|
struct ast_context *con;
|
||||||
|
int park = 0;
|
||||||
int park;
|
|
||||||
struct ast_bridge_config config;
|
struct ast_bridge_config config;
|
||||||
|
|
||||||
if (!data) {
|
|
||||||
ast_log(LOG_WARNING, "Parkedcall requires an argument (extension number)\n");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
u = ast_module_user_add(chan);
|
u = ast_module_user_add(chan);
|
||||||
|
|
||||||
park = atoi((char *)data);
|
if (park)
|
||||||
|
park = atoi((char *)data);
|
||||||
|
|
||||||
AST_LIST_LOCK(&parkinglot);
|
AST_LIST_LOCK(&parkinglot);
|
||||||
AST_LIST_TRAVERSE_SAFE_BEGIN(&parkinglot, pu, list) {
|
AST_LIST_TRAVERSE_SAFE_BEGIN(&parkinglot, pu, list) {
|
||||||
if (pu->parkingnum == park) {
|
if (!data || pu->parkingnum == park) {
|
||||||
AST_LIST_REMOVE_CURRENT(list);
|
AST_LIST_REMOVE_CURRENT(list);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user