[asterisk-commits] espiceland: branch 1.4 r295553 - /branches/1.4/res/res_agi.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Fri Nov 19 13:32:08 CST 2010
Author: espiceland
Date: Fri Nov 19 13:32:04 2010
New Revision: 295553
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=295553
Log:
Revert a new feature which should have gone into trunk.
Modified:
branches/1.4/res/res_agi.c
Modified: branches/1.4/res/res_agi.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.4/res/res_agi.c?view=diff&rev=295553&r1=295552&r2=295553
==============================================================================
--- branches/1.4/res/res_agi.c (original)
+++ branches/1.4/res/res_agi.c Fri Nov 19 13:32:04 2010
@@ -446,83 +446,12 @@
{
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;
}
More information about the asterisk-commits
mailing list