Ensure that only one end of a T.38 session initiates teardown at completion.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@230343 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Kevin P. Fleming
2009-11-16 12:51:59 +00:00
parent 9a707c9b37
commit 237795f6d7

View File

@@ -706,7 +706,11 @@ static int transmit_t38(fax_session *s)
t38_terminal_release(&t38);
disable_t38:
if (ast_channel_get_t38_state(s->chan) == T38_STATE_NEGOTIATED) {
/* if we are not the caller, it's our job to shut down the T.38
* session when the FAX transmisson is complete.
*/
if ((s->caller_mode == FALSE) &&
(ast_channel_get_t38_state(s->chan) == T38_STATE_NEGOTIATED)) {
if (ast_indicate_data(s->chan, AST_CONTROL_T38_PARAMETERS, &t38_parameters, sizeof(t38_parameters)) == 0) {
/* wait up to five seconds for negotiation to complete */
unsigned int timeout = 5000;