[asterisk-commits] file: branch 1.4 r50466 - in /branches/1.4:
channels/ include/asterisk/ main/
asterisk-commits at lists.digium.com
asterisk-commits at lists.digium.com
Wed Jan 10 22:19:40 MST 2007
Author: file
Date: Wed Jan 10 23:19:39 2007
New Revision: 50466
URL: http://svn.digium.com/view/asterisk?view=rev&rev=50466
Log:
Add support to see whether NAT was detected (yay symmetric RTP) and also add a check in chan_sip so that if NAT has been detected and the reinvite behind nat option has been turned off, then just do partial bridge. (issue #8655 reported by mnicholson)
Modified:
branches/1.4/channels/chan_sip.c
branches/1.4/include/asterisk/rtp.h
branches/1.4/main/rtp.c
Modified: branches/1.4/channels/chan_sip.c
URL: http://svn.digium.com/view/asterisk/branches/1.4/channels/chan_sip.c?view=diff&rev=50466&r1=50465&r2=50466
==============================================================================
--- branches/1.4/channels/chan_sip.c (original)
+++ branches/1.4/channels/chan_sip.c Wed Jan 10 23:19:39 2007
@@ -16656,7 +16656,9 @@
*rtp = p->rtp;
- if (ast_test_flag(&p->flags[0], SIP_CAN_REINVITE))
+ if (ast_rtp_getnat(*rtp) && !ast_test_flag(&p->flags[0], SIP_CAN_REINVITE_NAT))
+ res = AST_RTP_TRY_PARTIAL;
+ else if (ast_test_flag(&p->flags[0], SIP_CAN_REINVITE))
res = AST_RTP_TRY_NATIVE;
else if (ast_test_flag(&global_jbconf, AST_JB_FORCED))
res = AST_RTP_GET_FAILED;
Modified: branches/1.4/include/asterisk/rtp.h
URL: http://svn.digium.com/view/asterisk/branches/1.4/include/asterisk/rtp.h?view=diff&rev=50466&r1=50465&r2=50466
==============================================================================
--- branches/1.4/include/asterisk/rtp.h (original)
+++ branches/1.4/include/asterisk/rtp.h Wed Jan 10 23:19:39 2007
@@ -179,6 +179,8 @@
const int isAstFormat, enum ast_rtp_options options);
void ast_rtp_setnat(struct ast_rtp *rtp, int nat);
+
+int ast_rtp_getnat(struct ast_rtp *rtp);
/*! \brief Indicate whether this RTP session is carrying DTMF or not */
void ast_rtp_setdtmf(struct ast_rtp *rtp, int dtmf);
Modified: branches/1.4/main/rtp.c
URL: http://svn.digium.com/view/asterisk/branches/1.4/main/rtp.c?view=diff&rev=50466&r1=50465&r2=50466
==============================================================================
--- branches/1.4/main/rtp.c (original)
+++ branches/1.4/main/rtp.c Wed Jan 10 23:19:39 2007
@@ -589,6 +589,11 @@
void ast_rtp_setnat(struct ast_rtp *rtp, int nat)
{
rtp->nat = nat;
+}
+
+int ast_rtp_getnat(struct ast_rtp *rtp)
+{
+ return ast_test_flag(rtp, FLAG_NAT_ACTIVE);
}
void ast_rtp_setdtmf(struct ast_rtp *rtp, int dtmf)
More information about the asterisk-commits
mailing list