[asterisk-commits] mmichelson: branch group/issue8824 r171958 - in /team/group/issue8824: ./ apps/
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Wed Jan 28 09:25:34 CST 2009
Author: mmichelson
Date: Wed Jan 28 09:25:34 2009
New Revision: 171958
URL: http://svn.digium.com/svn-view/asterisk?view=rev&rev=171958
Log:
Resolve conflict and reset automerge
Modified:
team/group/issue8824/ (props changed)
team/group/issue8824/CHANGES
team/group/issue8824/apps/app_queue.c
Propchange: team/group/issue8824/
------------------------------------------------------------------------------
automerge = *
Propchange: team/group/issue8824/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Wed Jan 28 09:25:34 2009
@@ -1,1 +1,1 @@
-/trunk:1-171909
+/trunk:1-171936
Modified: team/group/issue8824/CHANGES
URL: http://svn.digium.com/svn-view/asterisk/team/group/issue8824/CHANGES?view=diff&rev=171958&r1=171957&r2=171958
==============================================================================
--- team/group/issue8824/CHANGES (original)
+++ team/group/issue8824/CHANGES Wed Jan 28 09:25:34 2009
@@ -375,6 +375,9 @@
* A new configuration option, "timeoutpriority" has been added. Please see the section labeled
"QUEUE TIMING OPTIONS" in configs/queues.conf.sample for a detailed explanation of the option
as well as an explanation about timeout options in general
+ * Added a new option - C - for forcing the "answered elsewhere" flag on
+ cancellation of calls in to members of the queue. This is to avoid the
+ call to a member of a queue having the call listed as a "missed call".
Realtime changes
----------------
Modified: team/group/issue8824/apps/app_queue.c
URL: http://svn.digium.com/svn-view/asterisk/team/group/issue8824/apps/app_queue.c?view=diff&rev=171958&r1=171957&r2=171958
==============================================================================
--- team/group/issue8824/apps/app_queue.c (original)
+++ team/group/issue8824/apps/app_queue.c Wed Jan 28 09:25:34 2009
@@ -119,6 +119,9 @@
<parameter name="queuename" required="true" />
<parameter name="options">
<optionlist>
+ <option name="C">
+ <para>Mark all calls as "answered elsewhere" when cancelled.</para>
+ </option>
<option name="c">
<para>Continue in the dialplan if the callee hangs up.</para>
</option>
@@ -2229,15 +2232,15 @@
}
/*! \brief Hang up a list of outgoing calls */
-static void hangupcalls(struct callattempt *outgoing, struct ast_channel *exception)
+static void hangupcalls(struct callattempt *outgoing, struct ast_channel *exception, int cancel_answered_elsewhere)
{
struct callattempt *oo;
while (outgoing) {
/* If someone else answered the call we should indicate this in the CANCEL */
/* Hangup any existing lines we have open */
- if (outgoing->chan && (outgoing->chan != exception)) {
- if (exception)
+ if (outgoing->chan && (outgoing->chan != exception || cancel_answered_elsewhere)) {
+ if (exception || cancel_answered_elsewhere)
ast_set_flag(outgoing->chan, AST_FLAG_ANSWERED_ELSEWHERE);
ast_hangup(outgoing->chan);
}
@@ -3552,6 +3555,7 @@
struct ao2_iterator memi;
struct ast_datastore *datastore, *transfer_ds;
struct queue_end_bridge *queue_end_bridge = NULL;
+ int cancel_answered_elsewhere = 0;
ast_channel_lock(qe->chan);
datastore = ast_channel_datastore_find(qe->chan, &dialed_interface_info, NULL);
@@ -3622,6 +3626,9 @@
case 'X':
ast_set_flag(&(bridge_config.features_caller), AST_FEATURE_AUTOMIXMON);
break;
+ case 'C':
+ cancel_answered_elsewhere = 1;
+ break;
}
if ((queue_end_bridge = ao2_alloc(sizeof(*queue_end_bridge), NULL))) {
@@ -3829,7 +3836,7 @@
member = lpeer->member;
/* Increment the refcount for this member, since we're going to be using it for awhile in here. */
ao2_ref(member, 1);
- hangupcalls(outgoing, peer);
+ hangupcalls(outgoing, peer, cancel_answered_elsewhere);
outgoing = NULL;
if (announce || qe->parent->reportholdtime || qe->parent->memberdelay) {
int res2;
@@ -4232,7 +4239,7 @@
ao2_ref(member, -1);
}
out:
- hangupcalls(outgoing, NULL);
+ hangupcalls(outgoing, NULL, cancel_answered_elsewhere);
return res;
}
More information about the asterisk-commits
mailing list