From: Alexei Gradinari Date: Mon, 2 May 2016 21:08:06 +0000 (-0400) Subject: res_fax: add FAXMODE variable X-Git-Tag: 14.0.0-beta1~207 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=380ac201acf29efb2a69a4ef668a8d7da387f47b;p=thirdparty%2Fasterisk.git res_fax: add FAXMODE variable The app_fax set FAXMODE variable, but res_fax missing this feature. This patch add FAXMODE variable which is set to either "audio" or "T38". ASTERISK-25980 Change-Id: Ie3dcbfb72cc681e9e267a60202f7fb8723a51b6b --- diff --git a/CHANGES b/CHANGES index 8d1e339d61..255ccd24ac 100644 --- a/CHANGES +++ b/CHANGES @@ -275,6 +275,11 @@ Queue --- Functionality changes from Asterisk 13.9.0 to Asterisk 13.10.0 ----------- ------------------------------------------------------------------------------ +res_fax +------------------ + * Added FAXMODE variable to let dialplan know what fax transport was used. + FAXMODE variable is set to either "audio" or "T38". + res_pjsip ------------------ * Added new status Updated to AMI event ContactStatus on update registration diff --git a/res/res_fax.c b/res/res_fax.c index f171af92a9..33c3f116b9 100644 --- a/res/res_fax.c +++ b/res/res_fax.c @@ -1447,6 +1447,12 @@ static void set_channel_variables(struct ast_channel *chan, struct ast_fax_sessi pbx_builtin_setvar_helper(chan, "FAXBITRATE", S_OR(details->transfer_rate, NULL)); pbx_builtin_setvar_helper(chan, "FAXRESOLUTION", S_OR(details->resolution, NULL)); + if (ast_channel_get_t38_state(chan) == T38_STATE_NEGOTIATED) { + pbx_builtin_setvar_helper(chan, "FAXMODE", "T38"); + } else { + pbx_builtin_setvar_helper(chan, "FAXMODE", "audio"); + } + snprintf(buf, sizeof(buf), "%u", details->pages_transferred); pbx_builtin_setvar_helper(chan, "FAXPAGES", buf); } @@ -2071,6 +2077,7 @@ static int receivefax_exec(struct ast_channel *chan, const char *data) pbx_builtin_setvar_helper(chan, "FAXPAGES", "0"); pbx_builtin_setvar_helper(chan, "FAXBITRATE", NULL); pbx_builtin_setvar_helper(chan, "FAXRESOLUTION", NULL); + pbx_builtin_setvar_helper(chan, "FAXMODE", NULL); /* Get a FAX session details structure from the channel's FAX datastore and create one if * it does not already exist. */ @@ -2578,6 +2585,7 @@ static int sendfax_exec(struct ast_channel *chan, const char *data) pbx_builtin_setvar_helper(chan, "FAXPAGES", "0"); pbx_builtin_setvar_helper(chan, "FAXBITRATE", NULL); pbx_builtin_setvar_helper(chan, "FAXRESOLUTION", NULL); + pbx_builtin_setvar_helper(chan, "FAXMODE", NULL); /* Get a requirement structure and set it. This structure is used * to tell the FAX technology module about the higher level FAX session */