]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Revert a new feature which should have gone into trunk.
authorErin Spiceland <erin@thespicelands.com>
Fri, 19 Nov 2010 19:32:04 +0000 (19:32 +0000)
committerErin Spiceland <erin@thespicelands.com>
Fri, 19 Nov 2010 19:32:04 +0000 (19:32 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@295553 65c4cc65-6c06-0410-ace0-fbb531ad65f3

res/res_agi.c

index ed9d1b2cc5c7d6706d8f56bfc02c1b88255fad26..75f2a1bdfd3da84accad3234b0b7598d8ecdca6e 100644 (file)
@@ -446,83 +446,12 @@ static int handle_waitfordigit(struct ast_channel *chan, AGI *agi, int argc, cha
 {
        int res;
        int to;
-       char *valid_dtmf_digits = AST_DIGIT_ANY;
-       char *previously_die_on = "#";
-       char *digits = NULL;
-       char *escape_digits = NULL;
-       char *voicefile = NULL;
-       int maxdigits = 1;
-
-       if (argc < 4)
+       if (argc != 4)
                return RESULT_SHOWUSAGE;
        if (sscanf(argv[3], "%30d", &to) != 1)
                return RESULT_SHOWUSAGE;
-
-       /* Answer the chan */
-       if (chan->_state != AST_STATE_UP)
-               res = ast_answer(chan);
-
-       /* soundfile specified */
-       if (argc >= 5) {
-
-               /* escape characters defined */
-               if (argc >= 6)
-                       valid_dtmf_digits = (char *) argv[5];
-
-               /* maxdigits */
-               if (argc >= 7 && (sscanf(argv[6], "%d", &maxdigits) != 1))
-                       return RESULT_SHOWUSAGE;
-
-               /* escape before escape chars on */
-               if (argc >= 8)
-                       previously_die_on = (char *) argv[7];
-
-               voicefile = (char *) argv[4];
-               res = ast_streamfile(chan, voicefile, chan->language);
-               if (res < 0)
-                       return RESULT_FAILURE;
-
-               /* allocate space for the digits (2 chars per digit + \0 - <digit>|<digit>|...) */
-               digits = (char *)ast_malloc(maxdigits * 2 + 1);
-               ast_copy_string(digits, "", 1);
-
-               /* catenate the escape digits together with previously die digits */
-               escape_digits = (char *)ast_malloc(strlen(valid_dtmf_digits) + strlen(previously_die_on)+ 1);
-               ast_copy_string(escape_digits, valid_dtmf_digits, sizeof(valid_dtmf_digits));
-               strcat(escape_digits, previously_die_on);
-
-               if (chan->stream) {
-                       int dtmf_count = 0;
-                       do {
-                               char buf[3];
-                               res = ast_waitstream_full(chan, escape_digits, agi->audio, agi->ctrl);
-                               if (res > 0) {
-                                       if (strchr(previously_die_on, res) != NULL) {
-                                               /* previously die character found - end loop */
-                                               ast_log(LOG_DEBUG, "prev die digit %c pressed\n", res);
-                                               break;
-                                       } else {
-                                               /* chars in valid_dtmf_digits found */
-                                               ast_log(LOG_DEBUG, "dtmf turn=%d of %d | res=%d\n", dtmf_count, maxdigits, res);
-                                               sprintf(buf, "%c", res);
-                                               strcat(digits, buf);
-                                               dtmf_count++;
-                                       }
-                               }
-                       } while ( strchr(previously_die_on, res) == NULL && dtmf_count < maxdigits && chan->stream);
-                       ast_stopstream(chan);
-                       fdprintf(agi->fd, "200 result=%s\n", digits);
-               } else {
-                       res = ast_waitfordigit_full(chan, to, agi->audio, agi->ctrl);
-                       fdprintf(agi->fd, "200 result=%c\n", res);
-               }
-       } else {
-               res = ast_waitfordigit_full(chan, to, agi->audio, agi->ctrl);
-               fdprintf(agi->fd, "200 result=%c\n", res);
-       }
-
-       ast_free(escape_digits);
-       ast_free(digits);
+       res = ast_waitfordigit_full(chan, to, agi->audio, agi->ctrl);
+       fdprintf(agi->fd, "200 result=%d\n", res);
        return (res >= 0) ? RESULT_SUCCESS : RESULT_FAILURE;
 }