Author: pabelanger Date: Thu Aug 28 11:06:55 2014 New Revision: 422241 URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=422241 Log: One-line summary
Multi-line description ASTERISK-24280 #close Reported by: Paul Belanger Tested by: Paul Belanger Review: https://reviewboard.asterisk.org/r/3952/ Patches: rtpengine.diff uploaded by Paul Belanger Modified: trunk/CHANGES trunk/channels/chan_sip.c trunk/configs/samples/sip.conf.sample Modified: trunk/CHANGES URL: http://svnview.digium.com/svn/asterisk/trunk/CHANGES?view=diff&rev=422241&r1=422240&r2=422241 ============================================================================== --- trunk/CHANGES (original) +++ trunk/CHANGES Thu Aug 28 11:06:55 2014 @@ -12,7 +12,14 @@ --- Functionality changes from Asterisk 13 to Asterisk 14 -------------------- ------------------------------------------------------------------------------ - +Channel Drivers +------------------ + +chan_sip +------------------ + * New 'rtpbindaddr' global setting. This allows a user to define which + ipaddress to bind the rtpengine too. For example, chan_sip might bind + to eth0 (10.0.0.2) but rtpengine to eth1 (192.168.1.10). ------------------------------------------------------------------------------ --- Functionality changes from Asterisk 12 to Asterisk 13 -------------------- Modified: trunk/channels/chan_sip.c URL: http://svnview.digium.com/svn/asterisk/trunk/channels/chan_sip.c?view=diff&rev=422241&r1=422240&r2=422241 ============================================================================== --- trunk/channels/chan_sip.c (original) +++ trunk/channels/chan_sip.c Thu Aug 28 11:06:55 2014 @@ -1076,6 +1076,7 @@ */ static struct ast_sockaddr externaddr; /*!< External IP address if we are behind NAT */ static struct ast_sockaddr media_address; /*!< External RTP IP address if we are behind NAT */ +static struct ast_sockaddr rtpbindaddr; /*!< RTP: The address we bind to */ static char externhost[MAXHOSTNAMELEN]; /*!< External host name */ static time_t externexpire; /*!< Expiration counter for re-resolving external host name in dynamic DNS */ @@ -5783,7 +5784,12 @@ return 0; } - ast_sockaddr_copy(&bindaddr_tmp, &bindaddr); + if (!ast_sockaddr_isnull(&rtpbindaddr)) { + ast_sockaddr_copy(&bindaddr_tmp, &rtpbindaddr); + } else { + ast_sockaddr_copy(&bindaddr_tmp, &bindaddr); + } + if (!(dialog->rtp = ast_rtp_instance_new(dialog->engine, sched, &bindaddr_tmp, NULL))) { return -1; } @@ -20857,6 +20863,10 @@ ast_cli(a->fd, " TLS SIP Bindaddress: %s\n", default_tls_cfg.enabled != FALSE ? ast_sockaddr_stringify(&sip_tls_desc.local_address) : + "Disabled"); + ast_cli(a->fd, " RTP Bindaddress: %s\n", + !ast_sockaddr_isnull(&rtpbindaddr) ? + ast_sockaddr_stringify_addr(&rtpbindaddr) : "Disabled"); ast_cli(a->fd, " Videosupport: %s\n", AST_CLI_YESNO(ast_test_flag(&global_flags[1], SIP_PAGE2_VIDEOSUPPORT))); ast_cli(a->fd, " Textsupport: %s\n", AST_CLI_YESNO(ast_test_flag(&global_flags[1], SIP_PAGE2_TEXTSUPPORT))); @@ -31183,6 +31193,7 @@ memset(&localaddr, 0, sizeof(localaddr)); memset(&externaddr, 0, sizeof(externaddr)); memset(&media_address, 0, sizeof(media_address)); + memset(&rtpbindaddr, 0, sizeof(rtpbindaddr)); memset(&sip_cfg.outboundproxy, 0, sizeof(struct sip_proxy)); sip_cfg.outboundproxy.force = FALSE; /*!< Don't force proxy usage, use route: headers */ default_transports = AST_TRANSPORT_UDP; @@ -31646,6 +31657,10 @@ } else if (!strcasecmp(v->name, "media_address")) { if (ast_parse_arg(v->value, PARSE_ADDR, &media_address)) ast_log(LOG_WARNING, "Invalid address for media_address keyword: %s\n", v->value); + } else if (!strcasecmp(v->name, "rtpbindaddr")) { + if (ast_parse_arg(v->value, PARSE_ADDR, &rtpbindaddr)) { + ast_log(LOG_WARNING, "Invalid address for rtpbindaddr keyword: %s\n", v->value); + } } else if (!strcasecmp(v->name, "externaddr") || !strcasecmp(v->name, "externip")) { if (ast_parse_arg(v->value, PARSE_ADDR, &externaddr)) { ast_log(LOG_WARNING, Modified: trunk/configs/samples/sip.conf.sample URL: http://svnview.digium.com/svn/asterisk/trunk/configs/samples/sip.conf.sample?view=diff&rev=422241&r1=422240&r2=422241 ============================================================================== --- trunk/configs/samples/sip.conf.sample (original) +++ trunk/configs/samples/sip.conf.sample Thu Aug 28 11:06:55 2014 @@ -179,6 +179,9 @@ udpbindaddr=0.0.0.0 ; IP address to bind UDP listen socket to (0.0.0.0 binds to all) ; Optionally add a port number, 192.168.1.1:5062 (default is port 5060) + +;rtpbindaddr=172.16.42.1 ; IP address to bind RTP listen sock to (default is disabled). When + ; disabled the udpbindaddr is used. ; When a dialog is started with another SIP endpoint, the other endpoint ; should include an Allow header telling us what SIP methods the endpoint -- _____________________________________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- svn-commits mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/svn-commits