diff --git a/res/res_fax.c b/res/res_fax.c index 4f2bcb0f9cf96dbcb48e58cbc08cef1baf5bc8bc..e746650e50a20c05c5d6fecd4bee64ae0962a762 100644 --- a/res/res_fax.c +++ b/res/res_fax.c @@ -3548,19 +3548,22 @@ static int acf_faxopt_write(struct ast_channel *chan, const char *cmd, char *dat const char *val = ast_skip_blanks(value); char *timeout = strchr(val, ','); - details->gateway_timeout = 0; if (timeout) { - unsigned int gwtimeout; *timeout++ = '\0'; - if (sscanf(timeout, "%u", &gwtimeout) == 1) { - details->gateway_timeout = gwtimeout * 1000; - } else { - ast_log(LOG_WARNING, "Unsupported timeout '%s' passed to FAXOPT(%s).\n", timeout, data); - } } if (ast_true(val)) { if (details->gateway_id < 0) { + details->gateway_timeout = 0; + if (timeout) { + unsigned int gwtimeout; + if (sscanf(timeout, "%u", &gwtimeout) == 1) { + details->gateway_timeout = gwtimeout * 1000; + } else { + ast_log(LOG_WARNING, "Unsupported timeout '%s' passed to FAXOPT(%s).\n", timeout, data); + } + } + details->gateway_id = fax_gateway_attach(chan, details); if (details->gateway_id < 0) { ast_log(LOG_ERROR, "Error attaching T.38 gateway to channel %s.\n", chan->name);