diff options
author | Matthew Nicholson <mnicholson@digium.com> | 2010-07-29 21:08:42 +0000 |
---|---|---|
committer | Matthew Nicholson <mnicholson@digium.com> | 2010-07-29 21:08:42 +0000 |
commit | 680c3e1883633f3b824ab0779e7b7424f9c697bd (patch) | |
tree | 2ce06bbdd49fc3a485ba403a1fce097bb0bf5758 | |
parent | 0443248aa740e0de2b5b485d23f2c9fe3b483140 (diff) |
Merged revisions 280557 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8
........
r280557 | mnicholson | 2010-07-29 16:07:21 -0500 (Thu, 29 Jul 2010) | 4 lines
Fix regression introduced in r1664. Give the fax stack time to shutdown and populate the FAXOPT output variables.
FAX-222
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@280559 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r-- | res/res_fax.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/res/res_fax.c b/res/res_fax.c index ecabbd90e..03fd128a7 100644 --- a/res/res_fax.c +++ b/res/res_fax.c @@ -811,12 +811,17 @@ static void set_channel_variables(struct ast_channel *chan, struct ast_fax_sessi pbx_builtin_setvar_helper(chan, "FAXPAGES", buf); } -#define GENERIC_FAX_EXEC_ERROR_QUIET(fax, chan, errorstr, reason) \ +#define GENERIC_FAX_EXEC_SET_VARS(fax, chan, errorstr, reason) \ do { \ ast_string_field_set(fax->details, result, S_OR(fax->details->result, "FAILED")); \ ast_string_field_set(fax->details, resultstr, S_OR(fax->details->resultstr, reason)); \ ast_string_field_set(fax->details, error, S_OR(fax->details->error, errorstr)); \ set_channel_variables(chan, fax->details); \ + } while (0) + +#define GENERIC_FAX_EXEC_ERROR_QUIET(fax, chan, errorstr, reason) \ + do { \ + GENERIC_FAX_EXEC_SET_VARS(fax, chan, errorstr, reason); \ res = ms = -1; \ } while (0) @@ -1053,7 +1058,7 @@ static int generic_fax_exec(struct ast_channel *chan, struct ast_fax_session_det * send the FAX stack silence so the modems can finish their session without * any problems */ ast_log(LOG_NOTICE, "Channel '%s' did not return a frame; probably hung up.\n", chan->name); - GENERIC_FAX_EXEC_ERROR_QUIET(fax, chan, "HANGUP", "remote end hungup"); + GENERIC_FAX_EXEC_SET_VARS(fax, chan, "HANGUP", "remote channel hungup"); c = NULL; chancount = 0; timeout -= (1000 - ms); |