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/branches/1.8@280557 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Matthew Nicholson
2010-07-29 21:07:21 +00:00
parent f7a2194c58
commit c788a384aa

View File

@@ -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);