Merge Mike's announcement enhancements
authorMark Spencer <markster@digium.com>
Thu, 20 May 2004 00:29:09 +0000 (00:29 +0000)
committerMark Spencer <markster@digium.com>
Thu, 20 May 2004 00:29:09 +0000 (00:29 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3020 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_dial.c
channel.c
include/asterisk/channel.h

index 9125e04..10ba7f8 100755 (executable)
@@ -418,6 +418,7 @@ static int dial_exec(struct ast_channel *chan, void *data)
        char *stack,*var;
        int play_to_caller=0,play_to_callee=0;
        int playargs=0;
+       int digit = 0;
 
        if (!data) {
                ast_log(LOG_WARNING, "Dial requires an argument (technology1/number1&technology2/number2...|optional timeout|options)\n");
@@ -837,11 +838,16 @@ static int dial_exec(struct ast_channel *chan, void *data)
                        // Now Stream the File
                        if (!res)
                                res = ast_streamfile(peer,announcemsg,peer->language);
-                       if (!res)
-                               res = ast_waitstream(peer,"");
-                       
+                       if (!res) {
+                               digit = ast_waitstream(peer, AST_DIGIT_ANY); 
+                       }
                        // Ok, done. stop autoservice
                        res = ast_autoservice_stop(chan);
+                       if (digit > 0 && !res)
+                               res = ast_senddigit(chan, digit); 
+                       else
+                               res = digit;
+
                } else
                        res = 0;
 
index b9097ee..8d23fca 100755 (executable)
--- a/channel.c
+++ b/channel.c
@@ -1431,6 +1431,11 @@ static int do_senddigit(struct ast_channel *chan, char digit)
        return 0;
 }
 
+int ast_senddigit(struct ast_channel *chan, char digit)
+{
+  return do_senddigit(chan, digit);
+}
+
 int ast_prod(struct ast_channel *chan)
 {
        struct ast_frame a = { AST_FRAME_VOICE };
index c6c3e24..e420a19 100755 (executable)
@@ -614,6 +614,9 @@ int ast_sendtext(struct ast_channel *chan, char *text);
  * Read a char of text from a channel
  * Returns 0 on success, -1 on failure
  */
+
+int ast_senddigit(struct ast_channel *chan, char digit);
+
 int ast_recvchar(struct ast_channel *chan, int timeout);
 
 //! Browse channels in use