Index: channels/chan_modem_i4l.c =================================================================== RCS file: /usr/cvsroot/asterisk/channels/chan_modem_i4l.c,v retrieving revision 1.23 diff -u -p -r1.23 chan_modem_i4l.c --- channels/chan_modem_i4l.c 24 Jan 2005 21:43:35 -0000 1.23 +++ channels/chan_modem_i4l.c 22 Mar 2005 12:26:24 -0000 @@ -105,7 +105,7 @@ static int i4l_startrec(struct ast_modem p->dsp = ast_dsp_new(); if (p->dsp) { ast_log(LOG_DEBUG, "Detecting DTMF inband with sw DSP on %s\n",p->dev); - ast_dsp_set_features(p->dsp, DSP_FEATURE_DTMF_DETECT); + ast_dsp_set_features(p->dsp, DSP_FEATURE_DTMF_DETECT|DSP_FEATURE_FAX_DETECT); ast_dsp_digitmode(p->dsp, DSP_DIGITMODE_DTMF | 0); } } @@ -553,7 +553,7 @@ static int i4l_answer(struct ast_modem_p p->dsp = ast_dsp_new(); if (p->dsp) { ast_log(LOG_DEBUG, "Detecting DTMF inband with sw DSP on %s\n",p->dev); - ast_dsp_set_features(p->dsp, DSP_FEATURE_DTMF_DETECT); + ast_dsp_set_features(p->dsp, DSP_FEATURE_DTMF_DETECT|DSP_FEATURE_FAX_DETECT); ast_dsp_digitmode(p->dsp, DSP_DIGITMODE_DTMF | 0); } } Index: include/asterisk/file.h =================================================================== RCS file: /usr/cvsroot/asterisk/include/asterisk/file.h,v retrieving revision 1.22 diff -u -p -r1.22 file.h --- include/asterisk/file.h 13 Feb 2005 17:02:39 -0000 1.22 +++ include/asterisk/file.h 22 Mar 2005 12:26:24 -0000 @@ -26,6 +26,7 @@ extern "C" { /*! Convenient for waiting */ #define AST_DIGIT_ANY "0123456789#*ABCD" +#define AST_DIGIT_ANYFAX "0123456789#*ABCDf" #define AST_DIGIT_ANYNUM "0123456789" #define SEEK_FORCECUR 10 Index: pbx.c =================================================================== RCS file: /usr/cvsroot/asterisk/pbx.c,v retrieving revision 1.214 diff -u -p -r1.214 pbx.c --- pbx.c 17 Mar 2005 21:05:10 -0000 1.214 +++ pbx.c 22 Mar 2005 12:26:23 -0000 @@ -2238,7 +2238,7 @@ int ast_pbx_run(struct ast_channel *c) if ((res = ast_spawn_extension(c, c->context, c->exten, c->priority, c->cid.cid_num))) { /* Something bad happened, or a hangup has been requested. */ if (((res >= '0') && (res <= '9')) || ((res >= 'A') && (res <= 'F')) || - (res == '*') || (res == '#')) { + (res == '*') || (res == '#') || (res == 'f')) { ast_log(LOG_DEBUG, "Oooh, got something to jump out with ('%c')!\n", res); memset(exten, 0, sizeof(exten)); pos = 0; @@ -5464,7 +5464,7 @@ static int pbx_builtin_background(struct } res = ast_streamfile(chan, front, lang); if (!res) { - res = ast_waitstream(chan, AST_DIGIT_ANY); + res = ast_waitstream(chan, AST_DIGIT_ANYFAX); ast_stopstream(chan); } else { ast_log(LOG_WARNING, "ast_streamfile failed on %s for %s\n", chan->name, (char*)data);