[asterisk-commits] mmichelson: trunk r145606 - /trunk/main/features.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Wed Oct 1 17:23:51 CDT 2008
Author: mmichelson
Date: Wed Oct 1 17:23:50 2008
New Revision: 145606
URL: http://svn.digium.com/view/asterisk?view=rev&rev=145606
Log:
Okay, this should really do it now. While I did manage
to fix blind transfers with my last commit here, I also
caused an unwanted side-effect. That is, only the first
priority of the 'h' extension would be executed when
a blind transfer occurred instead of all priorities.
Essentially, my last commit corrected the return value
of ast_bridge_call. However, the implementation still
was not 100% correct. Now it is.
Modified:
trunk/main/features.c
Modified: trunk/main/features.c
URL: http://svn.digium.com/view/asterisk/trunk/main/features.c?view=diff&rev=145606&r1=145605&r2=145606
==============================================================================
--- trunk/main/features.c (original)
+++ trunk/main/features.c Wed Oct 1 17:23:50 2008
@@ -2379,14 +2379,15 @@
ast_copy_string(chan->exten, "h", sizeof(chan->exten));
chan->priority = 1;
ast_channel_unlock(chan);
- while ((res = ast_spawn_extension(chan, chan->context, chan->exten, chan->priority, chan->cid.cid_num, &found, 1))) {
+ while ((res = ast_spawn_extension(chan, chan->context, chan->exten, chan->priority, chan->cid.cid_num, &found, 1)) == 0) {
chan->priority++;
}
- if (found && res)
- {
+ if (found && res) {
/* Something bad happened, or a hangup has been requested. */
ast_debug(1, "Spawn extension (%s,%s,%d) exited non-zero on '%s'\n", chan->context, chan->exten, chan->priority, chan->name);
ast_verb(2, "Spawn extension (%s, %s, %d) exited non-zero on '%s'\n", chan->context, chan->exten, chan->priority, chan->name);
+ } else if (!found && res) {
+ res = 0;
}
/* swap it back */
ast_channel_lock(chan);
More information about the asterisk-commits
mailing list