mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-04 20:04:50 +00:00
Merged revisions 331418 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/10 ........ r331418 | rmudgett | 2011-08-10 13:25:08 -0500 (Wed, 10 Aug 2011) | 6 lines Revert -r318141. It was a band-aid that only partially fixed parking. A better fix is on reviewboard review 1358. (issue ASTERISK-17374) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@331419 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
3
CHANGES
3
CHANGES
@@ -39,7 +39,6 @@ Text Messaging
|
||||
Parking
|
||||
-------
|
||||
* parkedmusicclass can now be set for non-default parking lots.
|
||||
* ParkedCall application can now specify a specific parkinglot.
|
||||
|
||||
Asterisk Manager Interface
|
||||
--------------------------
|
||||
@@ -208,8 +207,6 @@ Applications
|
||||
------------
|
||||
* Added 'v' option to MeetMe to play voicemail greetings when a user joins/leaves
|
||||
a MeetMe conference
|
||||
* Added ability to include '@parkinglot' to ParkedCall extension in order to specify
|
||||
a specific parkinglot on which to search the extension.
|
||||
|
||||
Asterisk Database
|
||||
-----------------
|
||||
|
@@ -213,22 +213,14 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
|
||||
Answer a parked call.
|
||||
</synopsis>
|
||||
<syntax>
|
||||
<parameter name="exten" required="true" argsep="@">
|
||||
<argument name="exten" required="true">
|
||||
<para>Specify extension.</para>
|
||||
</argument>
|
||||
<argument name="parkinglot">
|
||||
<para>Optionally specify a parkinglot.<literal>exten</literal>.</para>
|
||||
</argument>
|
||||
</parameter>
|
||||
<parameter name="exten" required="true" />
|
||||
</syntax>
|
||||
<description>
|
||||
<para>Used to connect to a parked call. This application is always
|
||||
registered internally and does not need to be explicitly added
|
||||
into the dialplan, although you should include the <literal>parkedcalls</literal>
|
||||
context. If no extension is provided, then the first available
|
||||
parked call will be acquired. If <literal>parkinglot</literal> is included,the
|
||||
parkinglot with that name will be used to seek the extension.</para>
|
||||
parked call will be acquired.</para>
|
||||
</description>
|
||||
<see-also>
|
||||
<ref type="application">Park</ref>
|
||||
@@ -616,18 +608,6 @@ static int find_parkinglot_by_exten_cb(void *obj, void *args, int flags)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int find_parkinglot_by_name_cb(void *obj, void *args, int flags)
|
||||
{
|
||||
struct ast_parkinglot *parkinglot = obj;
|
||||
const char *parkname = args;
|
||||
|
||||
if (!strcmp(parkinglot->name, parkname)) {
|
||||
return CMP_MATCH | CMP_STOP;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ast_parking_ext_valid(const char *exten_str, struct ast_channel *chan, const char *context)
|
||||
{
|
||||
struct ast_exten *exten;
|
||||
@@ -4530,29 +4510,12 @@ static int park_exec_full(struct ast_channel *chan, const char *data)
|
||||
int park = 0;
|
||||
struct ast_bridge_config config;
|
||||
struct ast_parkinglot *parkinglot;
|
||||
const char *lotname_split = NULL; /* name of the parking lot if an '@' symbol is included in data */
|
||||
|
||||
if (data) {
|
||||
if (sscanf(data, "%u", &park) != 1) {
|
||||
/* Something went wrong when parsing the extension */
|
||||
ast_log(LOG_WARNING, "Could not parse extension from '%s'\n", data);
|
||||
return -1;
|
||||
}
|
||||
if ((lotname_split = strchr(data, (int)'@'))) {
|
||||
lotname_split++;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* If we found an '@' in data, we want to specify the parkinglot used by its name.
|
||||
* otherwise we just search by position.
|
||||
*/
|
||||
if (lotname_split) {
|
||||
parkinglot = ao2_callback(parkinglots, 0, find_parkinglot_by_name_cb, (void *) (lotname_split));
|
||||
} else {
|
||||
parkinglot = ao2_callback(parkinglots, 0, find_parkinglot_by_position_cb, (void *) &park);
|
||||
park = atoi((char *) data);
|
||||
}
|
||||
|
||||
parkinglot = ao2_callback(parkinglots, 0, find_parkinglot_by_position_cb, (void *) &park);
|
||||
if (!parkinglot)
|
||||
parkinglot = default_parkinglot;
|
||||
|
||||
|
Reference in New Issue
Block a user