[asterisk-commits] oej: branch group/pinequeue r297772 - /team/group/pinequeue/apps/app_queue.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Tue Dec 7 06:19:12 CST 2010
Author: oej
Date: Tue Dec 7 06:19:09 2010
New Revision: 297772
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=297772
Log:
Fix the queue handling.
Issues that remain
- MOH will not return after playing the last file in the list.
Modified:
team/group/pinequeue/apps/app_queue.c
Modified: team/group/pinequeue/apps/app_queue.c
URL: http://svnview.digium.com/svn/asterisk/team/group/pinequeue/apps/app_queue.c?view=diff&rev=297772&r1=297771&r2=297772
==============================================================================
--- team/group/pinequeue/apps/app_queue.c (original)
+++ team/group/pinequeue/apps/app_queue.c Tue Dec 7 06:19:09 2010
@@ -4741,6 +4741,8 @@
return;
ast_closestream(state->stream);
+ ast_log(LOG_DEBUG, " --- Closing stream -- Filename %s\n", state->filename);
+ state->filename[0] = '\0';
state->chan->stream = NULL;
state->stream = NULL;
state->aqsi->now_playing = 0; /* Important flag to indicate we are no longer playing on this channel */
@@ -4751,7 +4753,7 @@
{
struct gen_state *state = data;
gen_closestream(state);
- ast_free(data);
+ ast_free(state);
}
@@ -4880,27 +4882,33 @@
/* If we are not playing - see if we can play the next file in the playlist */
if (aqsi->now_playing == 0) {
+ playfilename[0] = '\0';
if (ast_strlen_zero(filename)) {
- if (option_debug > 2) {
- ast_log(LOG_DEBUG, "No filename and not playing - selecting next file in playlist\n");
- }
/* take the first one if we have a playlist */
- while (res && !AST_LIST_EMPTY(&aqsi->flist)) {
+ if (!AST_LIST_EMPTY(&aqsi->flist)) {
sfn = AST_LIST_REMOVE_HEAD(&aqsi->flist, list);
ast_copy_string(playfilename, sfn->filename, sizeof(playfilename));
+ ringing = aqsi->ringing;
+ moh = aqsi->moh;
free(sfn);
- }
- if (!sfn) {
+ if (option_debug > 2) {
+ ast_log(LOG_DEBUG, "--- No filename and not playing - selecting next file in playlist - %s\n", playfilename);
+ }
+ }
+ if (ast_strlen_zero(playfilename)) {
+ if (option_debug > 2 ) {
+ ast_log(LOG_DEBUG, "--- empty queue... No filename and not currently playing\n");
+ }
return -1;
}
} else {
ast_copy_string(playfilename, filename, sizeof(playfilename));
}
} else {
- if (option_debug > 2 ) {
- ast_log(LOG_DEBUG, "No filename and currently playing\n");
- }
if (ast_strlen_zero(filename)) {
+ if (option_debug > 2 ) {
+ ast_log(LOG_DEBUG, "--- just checking... No filename and currently playing\n");
+ }
return -1;
}
}
@@ -4953,17 +4961,19 @@
generatordata->chan = chan;
generatordata->aqsi = aqsi;
+ ast_log(LOG_DEBUG, "--- Starting to play file %s \n", playfilename);
+
/* Starting new generator on channel. */
if (ast_activate_generator(chan, &play_file_gen, generatordata)) {
- ast_log(LOG_ERROR, "Not playing requested prompt %s. Generator failed on %s.\n", playfilename, chan->name);
+ ast_log(LOG_DEBUG, "Not playing requested prompt %s. Generator failed on %s.\n", playfilename, chan->name);
/* oops, the current file has problems */
/* restore the moh */
if (ringing) {
- ast_log(LOG_ERROR, "Starting Indicate\n");
+ ast_log(LOG_DEBUG, "Starting Indicate\n");
ast_indicate(chan, AST_CONTROL_RINGING);
} else {
- ast_log(LOG_ERROR, "Starting MOH %s on chan %s\n", aqsi->qe->moh, chan->name);
+ ast_log(LOG_DEBUG, "Starting MOH %s on chan %s\n", aqsi->qe->moh, chan->name);
ast_moh_start(chan, aqsi->qe->moh, NULL);
}
AST_LIST_UNLOCK(&aqsi->flist);
More information about the asterisk-commits
mailing list