[asterisk-commits] branch bweschke/findme_followme r31952 -
/team/bweschke/findme_followme/apps/
asterisk-commits at lists.digium.com
asterisk-commits at lists.digium.com
Sat Jun 3 22:44:12 MST 2006
Author: bweschke
Date: Sun Jun 4 00:44:11 2006
New Revision: 31952
URL: http://svn.digium.com/view/asterisk?rev=31952&view=rev
Log:
Don't "double hangup" on a timeout and some other code optimizations.
Modified:
team/bweschke/findme_followme/apps/app_followme.c
Modified: team/bweschke/findme_followme/apps/app_followme.c
URL: http://svn.digium.com/view/asterisk/team/bweschke/findme_followme/apps/app_followme.c?rev=31952&r1=31951&r2=31952&view=diff
==============================================================================
--- team/bweschke/findme_followme/apps/app_followme.c (original)
+++ team/bweschke/findme_followme/apps/app_followme.c Sun Jun 4 00:44:11 2006
@@ -394,7 +394,7 @@
totalwait = nm->timeout * 1000;
while (!ctstatus) {
*to = 1000;
- pos = 1;
+ pos = 1;
livechannels = 0;
watchers[0] = caller;
@@ -451,8 +451,8 @@
}
}
}
- watchers[pos++] = tmpuser->ochan;
- livechannels++;
+ watchers[pos++] = tmpuser->ochan;
+ livechannels++;
}
}
@@ -472,10 +472,9 @@
dg = 0;
while ((winner != watchers[dg]) && (dg < 256))
dg++;
- AST_LIST_TRAVERSE(findme_user_list, tmpuser, entry) {
+ AST_LIST_TRAVERSE(findme_user_list, tmpuser, entry)
if (tmpuser->ochan == winner)
break;
- }
f = ast_read(winner);
if (f) {
if (f->frametype == AST_FRAME_CONTROL) {
@@ -497,6 +496,8 @@
/* If call has been answered, then the eventual hangup is likely to be normal hangup */
winner->hangupcause = AST_CAUSE_NORMAL_CLEARING;
caller->hangupcause = AST_CAUSE_NORMAL_CLEARING;
+ if (option_verbose > 2)
+ ast_verbose( VERBOSE_PREFIX_3 "Starting playback of %s\n", callfromname);
if (dg > 0) {
if (!ast_streamfile(winner, callfromname, winner->language)) {
ast_sched_runq(winner->sched);
@@ -631,7 +632,9 @@
}
}
- }
+ } else
+ if (option_debug)
+ ast_log(LOG_DEBUG, "timed out waiting for action\n");
}
}
@@ -766,7 +769,7 @@
AST_LIST_TRAVERSE_SAFE_BEGIN(findme_user_list, fmuser, entry) {
- if (fmuser->ochan != winner)
+ if (winner && fmuser->ochan != winner)
clear_caller(fmuser);
AST_LIST_REMOVE_CURRENT(findme_user_list, entry);
free(fmuser);
More information about the asterisk-commits
mailing list