[Asterisk-code-review] main/channel: Ensure successful T.38 negotation (asterisk[13])

Torrey Searle asteriskteam at digium.com
Wed Apr 5 06:48:08 CDT 2017


Torrey Searle has uploaded a new change for review. ( https://gerrit.asterisk.org/5409 )

Change subject: main/channel:  Ensure successful T.38 negotation
......................................................................

main/channel:  Ensure successful T.38 negotation

When a T.38 happens immediatly after call establishment, the control
frame can be lost because the other leg is not yet in the bridge.

This patch detects this case an makes sure T.38 negotation happens
when the 2nd leg is being made compatible with the negotating
first leg

ASTERISK-26923 #close

Change-Id: If334125ee61ed63550d242fc9efe7987e37e1d94
---
M main/channel.c
1 file changed, 9 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/09/5409/1

diff --git a/main/channel.c b/main/channel.c
index 172d463..b0aef56 100644
--- a/main/channel.c
+++ b/main/channel.c
@@ -6571,6 +6571,15 @@
 			ast_channel_name(to), ast_format_get_name(best_src_fmt));
 		return -1;
 	}
+
+	/* Request resend of T.38 negotiation if in progress. 
+	 */
+	if (ast_channel_get_t38_state(from) == T38_STATE_NEGOTIATING) {
+		struct ast_control_t38_parameters parameters = { .request_response = AST_T38_REQUEST_PARMS, };
+		ast_debug(3, "Sending T.38 param renegotiation %s.\n", ast_channel_name(from));
+		ast_indicate_data(from, AST_CONTROL_T38_PARAMETERS, &parameters, sizeof(parameters));
+	}
+
 	return 0;
 }
 

-- 
To view, visit https://gerrit.asterisk.org/5409
To unsubscribe, visit https://gerrit.asterisk.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: If334125ee61ed63550d242fc9efe7987e37e1d94
Gerrit-PatchSet: 1
Gerrit-Project: asterisk
Gerrit-Branch: 13
Gerrit-Owner: Torrey Searle <tsearle at gmail.com>



More information about the asterisk-code-review mailing list