diff options
-rwxr-xr-x | app.c | 10 | ||||
-rwxr-xr-x | apps/app_voicemail.c | 9 | ||||
-rwxr-xr-x | include/asterisk/app.h | 3 |
3 files changed, 16 insertions, 6 deletions
@@ -406,3 +406,13 @@ int ast_linear_stream(struct ast_channel *chan, const char *filename, int fd, in } return res; } + +int ast_control_streamfile(struct ast_channel *chan, char *file,char *f,char *r,int skipms) { + int res; + if ((res = ast_streamfile(chan, file, chan->language))) + ast_log(LOG_WARNING, "Unable to stream file %s\n", file); + if (!res) + res = ast_waitstream_fr(chan, AST_DIGIT_ANY,f,r,skipms); + return res; +} + diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c index 37972cb49..8c0a2fef0 100755 --- a/apps/app_voicemail.c +++ b/apps/app_voicemail.c @@ -2549,12 +2549,9 @@ static int wait_file2(struct ast_channel *chan, struct vm_state *vms, char *file static int wait_file(struct ast_channel *chan, struct vm_state *vms, char *file) { - int res; - if ((res = ast_streamfile(chan, file, chan->language))) - ast_log(LOG_WARNING, "Unable to play message %s\n", file); - if (!res) - res = ast_waitstream_fr(chan, AST_DIGIT_ANY, "#", "*",skipms); - return res; + + return ast_control_streamfile(chan,file,"#","*",skipms); + } static int play_message_datetime(struct ast_channel *chan, struct ast_vm_user *vmu, char *origtime, char *filename) diff --git a/include/asterisk/app.h b/include/asterisk/app.h index 0d0ec7b54..dacdf95eb 100755 --- a/include/asterisk/app.h +++ b/include/asterisk/app.h @@ -54,6 +54,9 @@ int ast_dtmf_stream(struct ast_channel *chan, struct ast_channel *peer, char *di //! Stream a filename (or file descriptor) as a generator. int ast_linear_stream(struct ast_channel *chan, const char *filename, int fd, int allowoverride); +//! Stream a file with fast forward and reverse. +int ast_control_streamfile(struct ast_channel *chan, char *file,char *f,char *r,int skipms); + #if defined(__cplusplus) || defined(c_plusplus) } #endif |