[svn-commits] mjordan: branch 12 r416318 - /branches/12/channels/chan_sip.c

SVN commits to the Digium repositories svn-commits at lists.digium.com
Sun Jun 15 21:39:35 CDT 2014


Author: mjordan
Date: Sun Jun 15 21:39:29 2014
New Revision: 416318

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=416318
Log:
channels/chan_sip: Forbid remote bridging if T.38 is negotiated

When a framehook is removed - such as the fax gateway framehook - the bridge
framework will re-evaluate the bridge mixing technologies to see if it can
improve the bridging. When this occurs, get_rtp_info will be called to
determine if local or remote bridging can be used. Using remote bridging
will cause a fax to fail, as direct media negotiation will cause some small
number of packets to not arrive at the remote endpoint.

This patch forces local native bridging if T.38 negotiation is in progress or
has been established.


Modified:
    branches/12/channels/chan_sip.c

Modified: branches/12/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/branches/12/channels/chan_sip.c?view=diff&rev=416318&r1=416317&r2=416318
==============================================================================
--- branches/12/channels/chan_sip.c (original)
+++ branches/12/channels/chan_sip.c Sun Jun 15 21:39:29 2014
@@ -32649,6 +32649,19 @@
 		res = AST_RTP_GLUE_RESULT_FORBID;
 	}
 
+	if (ast_test_flag(&p->flags[1], SIP_PAGE2_T38SUPPORT)) {
+		switch (p->t38.state) {
+		case T38_LOCAL_REINVITE:
+		case T38_PEER_REINVITE:
+		case T38_ENABLED:
+			res = AST_RTP_GLUE_RESULT_LOCAL;
+			break;
+		case T38_REJECTED:
+		default:
+			break;
+		}
+	}
+
 	if (p->srtp) {
 		res = AST_RTP_GLUE_RESULT_FORBID;
 	}




More information about the svn-commits mailing list