diff --git a/app.c b/app.c index 2f3ac6cd7b..f041bd323a 100755 --- a/app.c +++ b/app.c @@ -472,8 +472,9 @@ int ast_control_streamfile(struct ast_channel *chan, char *file, char *fwd, char if (res == -1) break; + /* if we get one of our stop chars, return it to the calling function */ if (stop && strchr(stop, res)) { - res = 0; + /* res = 0; */ break; } } diff --git a/apps/app_controlplayback.c b/apps/app_controlplayback.c index 850ebed9cc..2ec8de1b64 100755 --- a/apps/app_controlplayback.c +++ b/apps/app_controlplayback.c @@ -107,6 +107,11 @@ static int controlplayback_exec(struct ast_channel *chan, void *data) res = ast_control_streamfile(chan, file, fwd, rev, stop, pause, skipms); LOCAL_USER_REMOVE(u); + + /* If we stopped on one of our stop keys, return 0 */ + if(stop && strchr(stop, res)) + res = 0; + return res; }