allow file arg in ast_control_streamfile to accept trailing :end to indicate an insta...
authorAnthony Minessale II <anthmct@yahoo.com>
Thu, 23 Sep 2004 15:26:01 +0000 (15:26 +0000)
committerAnthony Minessale II <anthmct@yahoo.com>
Thu, 23 Sep 2004 15:26:01 +0000 (15:26 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3824 65c4cc65-6c06-0410-ace0-fbb531ad65f3

app.c

diff --git a/app.c b/app.c
index eb1a37e..fe6af02 100755 (executable)
--- 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);