diff --git a/channels/chan_zap.c b/channels/chan_zap.c index 835f37ebc..58a67ddf0 100755 --- a/channels/chan_zap.c +++ b/channels/chan_zap.c @@ -4200,7 +4200,8 @@ static struct ast_channel *zt_new(struct zt_pvt *i, int state, int startpbx, int if ((i->callprogress & 1) && CANPROGRESSDETECT(i)) { features |= DSP_FEATURE_CALL_PROGRESS; } - if (i->callprogress & 2) { + if ((!i->outgoing && (i->callprogress & 4)) || + (i->outgoing && (i->callprogress & 2))) { features |= DSP_FEATURE_FAX_DETECT; } features |= DSP_FEATURE_DTMF_DETECT; @@ -8413,10 +8414,16 @@ static int setup_zap(void) else callprogress &= ~1; } else if (!strcasecmp(v->name, "faxdetect")) { - if (ast_true(v->value)) - callprogress |= 2; - else + if (!strcasecmp(v->value, "incoming")) { + callprogress |= 4; callprogress &= ~2; + } else if (!strcasecmp(v->value, "outgoing")) { + callprogress &= ~4; + callprogress |= 2; + } else if (!strcasecmp(v->value, "both") || ast_true(v->value)) + callprogress |= 6; + else + callprogress &= ~6; } else if (!strcasecmp(v->name, "echocancel")) { if (v->value && !ast_strlen_zero(v->value)) { y = atoi(v->value); diff --git a/configs/zapata.conf.sample b/configs/zapata.conf.sample index 18e75eee0..f6a9d43bf 100755 --- a/configs/zapata.conf.sample +++ b/configs/zapata.conf.sample @@ -279,9 +279,12 @@ immediate=no ;callprogress=yes ;progzone=us ; -; For fax detection, uncomment the following line. The default is *OFF* +; For fax detection, uncomment one of the following lines. The default is *OFF* ; -;faxdetect=yes +;faxdetect=both +;faxdetect=incoming +;faxdetect=outgoing +;faxdetect=no ; ; Select which class of music to use for music on hold. If not specified ; then the default will be used.