From: Matthew Nicholson Date: Mon, 29 Aug 2011 18:22:58 +0000 (+0000) Subject: It is possible for the gateway to be attached when the channel is still X-Git-Tag: 10.0.0-beta2~94 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=13288c9c5ddccf48be1758a3e9525494d6e160d9;p=thirdparty%2Fasterisk.git It is possible for the gateway to be attached when the channel is still negotiating T.38. This change handles that case. ASTERISK-18329 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@333716 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/res/res_fax_spandsp.c b/res/res_fax_spandsp.c index 296dd07a63..81711bb40c 100644 --- a/res/res_fax_spandsp.c +++ b/res/res_fax_spandsp.c @@ -683,6 +683,13 @@ static int spandsp_fax_gateway_start(struct ast_fax_session *s) { ast_channel_unlock(s->chan); return -1; } + + /* we can be in T38_STATE_NEGOTIATING or T38_STATE_NEGOTIATED when the + * gateway is started. We treat both states the same. */ + if (p->ast_t38_state == T38_STATE_NEGOTIATING) { + p->ast_t38_state = T38_STATE_NEGOTIATED; + } + ast_activate_generator(p->ast_t38_state == T38_STATE_NEGOTIATED ? peer : s->chan, &t30_gen , s); set_logging(&p->t38_gw_state.logging, s->details);