From 8f9e2b66338c832bd12e2260a3d7bba5673e2d9a Mon Sep 17 00:00:00 2001
From: Anthony Minessale II <anthmct@yahoo.com>
Date: Wed, 26 May 2004 15:22:54 +0000
Subject: [PATCH] add ast_control_streamfile api call

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3075 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 app.c                  | 10 ++++++++++
 apps/app_voicemail.c   |  9 +++------
 include/asterisk/app.h |  3 +++
 3 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/app.c b/app.c
index b72f0efcba..e272dce545 100755
--- a/app.c
+++ b/app.c
@@ -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 37972cb49f..8c0a2fef00 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 0d0ec7b540..dacdf95eb2 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
-- 
GitLab