diff --git a/app.c b/app.c index eb1a37e0a8befc00c56044a29dcc38a2e6497f32..fe6af02018752498ac6bd8ede1bc1e32840b59b1 100755 --- a/app.c +++ b/app.c @@ -416,6 +416,7 @@ int ast_control_streamfile(struct ast_channel *chan, char *file, char *fwd, char struct timeval started, ended; long elapsed = 0,last_elapsed =0; char *breaks=NULL; + char *end=NULL; int blen=2; int res=0; @@ -436,6 +437,13 @@ int ast_control_streamfile(struct ast_channel *chan, char *file, char *fwd, char if (chan) ast_stopstream(chan); + if(file) { + end = strchr(file,':'); + if(!strcasecmp(end,":end")) { + *end = '\0'; + end++; + } + } for (;;) { gettimeofday(&started,NULL); @@ -443,6 +451,10 @@ int ast_control_streamfile(struct ast_channel *chan, char *file, char *fwd, char ast_stopstream(chan); res = ast_streamfile(chan, file, chan->language); if (!res) { + if(end) { + ast_seekstream(chan->stream, 0, SEEK_END); + end=NULL; + } res = 1; if (elapsed) { ast_stream_fastforward(chan->stream, elapsed);