Merged revisions 291541 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r291541 | rmudgett | 2010-10-13 15:21:02 -0500 (Wed, 13 Oct 2010) | 26 lines The chan_dahdi faxdetect option only works for the first FAX call. The chan_dahdi faxdetect option only works for the first call. After that the option no longer works. The struct dahdi_pvt.callprogress member is the encoded user config setting for the callprogress and faxdetect config options. Changing this value alters the configuration for all following calls until the chan_dahdi.conf file is reloaded. * Fixed the chan_dahdi ast_channel_setoption callback to not change the users faxdetect config setting except for the current call. * Fixed the chan_dahdi ast_channel_queryoption callback to read the active DSP setting of the faxdetect option. * Made actually disable the active faxdetect DSP setting for the current call on the analog port. my_handle_dtmfup() is used for normal analog ports. dahdi_handle_dtmfup() is the legacy code and is no longer used unless in a radio mode. (closes issue #18116) Reported by: seandarcy Patches: issue18116_v1.8.patch uploaded by rmudgett (license 664) Review: https://reviewboard.asterisk.org/r/972/ ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@291542 f38db490-d61c-443f-a65b-d21fe96a405b
This commit is contained in:
parent
3e60d9c63b
commit
55903ffb08
|
@ -2005,6 +2005,11 @@ static void my_handle_dtmfup(void *pvt, struct ast_channel *ast, enum analog_sub
|
|||
}
|
||||
}
|
||||
p->faxhandled = 1;
|
||||
if (p->dsp) {
|
||||
p->dsp_features &= ~DSP_FEATURE_FAX_DETECT;
|
||||
ast_dsp_set_features(p->dsp, p->dsp_features);
|
||||
ast_debug(1, "Disabling FAX tone detection on %s after tone received\n", ast->name);
|
||||
}
|
||||
if (strcmp(ast->exten, "fax")) {
|
||||
const char *target_context = S_OR(ast->macrocontext, ast->context);
|
||||
|
||||
|
@ -6418,7 +6423,7 @@ static int dahdi_queryoption(struct ast_channel *chan, int option, void *data, i
|
|||
break;
|
||||
case AST_OPTION_FAX_DETECT:
|
||||
cp = (char *) data;
|
||||
*cp = (p->callprogress & CALLPROGRESS_FAX) ? 0 : 1;
|
||||
*cp = (p->dsp_features & DSP_FEATURE_FAX_DETECT) ? 0 : 1;
|
||||
ast_debug(1, "Reporting fax tone detection %sabled on %s\n", *cp ? "en" : "dis", chan->name);
|
||||
break;
|
||||
case AST_OPTION_CC_AGENT_TYPE:
|
||||
|
@ -6644,10 +6649,8 @@ static int dahdi_setoption(struct ast_channel *chan, int option, void *data, int
|
|||
if (p->dsp) {
|
||||
ast_debug(1, "%sabling fax tone detection on %s\n", *cp ? "En" : "Dis", chan->name);
|
||||
if (*cp) {
|
||||
p->callprogress |= CALLPROGRESS_FAX;
|
||||
p->dsp_features |= DSP_FEATURE_FAX_DETECT;
|
||||
} else {
|
||||
p->callprogress &= ~CALLPROGRESS_FAX;
|
||||
p->dsp_features &= ~DSP_FEATURE_FAX_DETECT;
|
||||
}
|
||||
ast_dsp_set_features(p->dsp, p->dsp_features);
|
||||
|
@ -7457,10 +7460,11 @@ static void dahdi_handle_dtmfup(struct ast_channel *ast, int idx, struct ast_fra
|
|||
}
|
||||
}
|
||||
p->faxhandled = 1;
|
||||
p->callprogress &= ~CALLPROGRESS_FAX;
|
||||
p->dsp_features &= ~DSP_FEATURE_FAX_DETECT;
|
||||
ast_dsp_set_features(p->dsp, p->dsp_features);
|
||||
ast_debug(1, "Disabling FAX tone detection on %s after tone received\n", ast->name);
|
||||
if (p->dsp) {
|
||||
p->dsp_features &= ~DSP_FEATURE_FAX_DETECT;
|
||||
ast_dsp_set_features(p->dsp, p->dsp_features);
|
||||
ast_debug(1, "Disabling FAX tone detection on %s after tone received\n", ast->name);
|
||||
}
|
||||
if (strcmp(ast->exten, "fax")) {
|
||||
const char *target_context = S_OR(ast->macrocontext, ast->context);
|
||||
|
||||
|
|
Reference in New Issue