[asterisk-commits] mjordan: branch mjordan/udptl r350785 - /team/mjordan/udptl/channels/chan_sip.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Fri Jan 13 17:19:26 CST 2012


Author: mjordan
Date: Fri Jan 13 17:19:21 2012
New Revision: 350785

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=350785
Log:
Updated initialize_udptl with setting the channel's fd

Modified:
    team/mjordan/udptl/channels/chan_sip.c

Modified: team/mjordan/udptl/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/team/mjordan/udptl/channels/chan_sip.c?view=diff&rev=350785&r1=350784&r2=350785
==============================================================================
--- team/mjordan/udptl/channels/chan_sip.c (original)
+++ team/mjordan/udptl/channels/chan_sip.c Fri Jan 13 17:19:21 2012
@@ -6728,6 +6728,8 @@
 
 static int initialize_udptl(struct sip_pvt *p)
 {
+	int natflags = ast_test_flag(&p->flags[1], SIP_PAGE2_SYMMETRICRTP);
+
 	if (!ast_test_flag(&p->flags[1], SIP_PAGE2_T38SUPPORT)) {
 		return 1;
 	}
@@ -6745,6 +6747,15 @@
 		 */
 		p->t38_maxdatagram = p->relatedpeer ? p->relatedpeer->t38_maxdatagram : global_t38_maxdatagram;
 		set_t38_capabilities(p);
+
+		ast_debug(1, "Setting NAT on UDPTL to %s\n", natflags ? "On" : "Off");
+		ast_udptl_setnat(p->udptl, natflags);
+
+		if (p->owner) {
+			ast_channel_set_fd(p->owner, 5, ast_udptl_fd(p->udptl));
+		} else {
+			ast_log(AST_LOG_WARNING, "UDPTL session %p created for dialog %p with no channel owner\n", p->udptl, p);
+		}
 	} else {
 		/* udptl creation failed, T38 can not be supported on this dialog */
 		ast_log(AST_LOG_WARNING, "UDPTL creation failed - disabling T38 for this dialog\n");
@@ -7057,10 +7068,12 @@
 		ast_channel_set_fd(tmp, 2, ast_rtp_instance_fd(i->vrtp, 0));
 		ast_channel_set_fd(tmp, 3, ast_rtp_instance_fd(i->vrtp, 1));
 	}
-	if (needtext && i->trtp)
+	if (needtext && i->trtp) {
 		ast_channel_set_fd(tmp, 4, ast_rtp_instance_fd(i->trtp, 0));
-	if (i->udptl)
+	}
+	if (i->udptl) {
 		ast_channel_set_fd(tmp, 5, ast_udptl_fd(i->udptl));
+	}
 
 	if (state == AST_STATE_RING)
 		tmp->rings = 1;
@@ -17282,12 +17295,6 @@
 		ast_cli(fd, "  Force rport  : %s\n", AST_CLI_YESNO(ast_test_flag(&peer->flags[0], SIP_NAT_FORCE_RPORT)));
 		ast_cli(fd, "  ACL          : %s\n", AST_CLI_YESNO(peer->ha != NULL));
 		ast_cli(fd, "  DirectMedACL : %s\n", AST_CLI_YESNO(peer->directmediaha != NULL));
-		/* TEST */
-		ast_copy_flags(&peer->flags[1], &global_flags[1], SIP_PAGE2_FLAGS_TO_COPY);
-		ast_cli(fd, "  Fax Detect   : %s\n", (ast_test_flag(&peer->flags[1], SIP_PAGE2_FAX_DETECT) ?
-			(ast_test_flag(&peer->flags[1], SIP_PAGE2_FAX_DETECT_BOTH) ? "Both" :
-				(ast_test_flag(&peer->flags[1], SIP_PAGE2_FAX_DETECT_CNG) ? "CNG" : "T38"))
-			: "No"));
 		ast_cli(fd, "  T.38 support : %s\n", AST_CLI_YESNO(ast_test_flag(&peer->flags[1], SIP_PAGE2_T38SUPPORT)));
 		ast_cli(fd, "  T.38 EC mode : %s\n", faxec2str(ast_test_flag(&peer->flags[1], SIP_PAGE2_T38SUPPORT)));
 		ast_cli(fd, "  T.38 MaxDtgrm: %d\n", peer->t38_maxdatagram);




More information about the asterisk-commits mailing list