[asterisk-commits] file: branch file/gulp_fax r395397 - in /team/file/gulp_fax: channels/ includ...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Thu Jul 25 08:42:17 CDT 2013
Author: file
Date: Thu Jul 25 08:42:15 2013
New Revision: 395397
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=395397
Log:
Incorporate review feedback.
Modified:
team/file/gulp_fax/channels/chan_gulp.c
team/file/gulp_fax/include/asterisk/res_sip.h
team/file/gulp_fax/res/res_sip.c
team/file/gulp_fax/res/res_sip/sip_configuration.c
team/file/gulp_fax/res/res_sip_t38.c
Modified: team/file/gulp_fax/channels/chan_gulp.c
URL: http://svnview.digium.com/svn/asterisk/team/file/gulp_fax/channels/chan_gulp.c?view=diff&rev=395397&r1=395396&r2=395397
==============================================================================
--- team/file/gulp_fax/channels/chan_gulp.c (original)
+++ team/file/gulp_fax/channels/chan_gulp.c Thu Jul 25 08:42:15 2013
@@ -679,7 +679,7 @@
target_context = S_OR(ast_channel_macrocontext(session->channel), ast_channel_context(session->channel));
- /* We need to luck the channel here because ast_exists_extension has the
+ /* We need to unlock the channel here because ast_exists_extension has the
* potential to start and stop an autoservice on the channel. Such action
* is prone to deadlock if the channel is locked.
*/
Modified: team/file/gulp_fax/include/asterisk/res_sip.h
URL: http://svnview.digium.com/svn/asterisk/team/file/gulp_fax/include/asterisk/res_sip.h?view=diff&rev=395397&r1=395396&r2=395397
==============================================================================
--- team/file/gulp_fax/include/asterisk/res_sip.h (original)
+++ team/file/gulp_fax/include/asterisk/res_sip.h Thu Jul 25 08:42:15 2013
@@ -444,6 +444,8 @@
unsigned int faxdetect;
/*! Whether NAT Support is enabled for T.38 UDPTL sessions or not */
unsigned int t38udptl_nat;
+ /*! Whether to use IPv6 for UDPTL or not */
+ unsigned int t38udptl_ipv6;
/*! Determines if transfers (using REFER) are allowed by this endpoint */
unsigned int allowtransfer;
/*! DSCP TOS bits for audio streams */
Modified: team/file/gulp_fax/res/res_sip.c
URL: http://svnview.digium.com/svn/asterisk/team/file/gulp_fax/res/res_sip.c?view=diff&rev=395397&r1=395396&r2=395397
==============================================================================
--- team/file/gulp_fax/res/res_sip.c (original)
+++ team/file/gulp_fax/res/res_sip.c Thu Jul 25 08:42:15 2013
@@ -430,6 +430,12 @@
received packets.
</para></description>
</configOption>
+ <configOption name="t38udptl_ipv6" default="no">
+ <synopsis>Whether IPv6 is used for UDPTL Sessions</synopsis>
+ <description><para>
+ When enabled the UDPTL stack will use IPv6.
+ </para></description>
+ </configOption>
<configOption name="tonezone">
<synopsis>Set which country's indications to use for channels created for this endpoint.</synopsis>
</configOption>
Modified: team/file/gulp_fax/res/res_sip/sip_configuration.c
URL: http://svnview.digium.com/svn/asterisk/team/file/gulp_fax/res/res_sip/sip_configuration.c?view=diff&rev=395397&r1=395396&r2=395397
==============================================================================
--- team/file/gulp_fax/res/res_sip/sip_configuration.c (original)
+++ team/file/gulp_fax/res/res_sip/sip_configuration.c Thu Jul 25 08:42:15 2013
@@ -681,6 +681,7 @@
ast_sorcery_object_field_register(sip_sorcery, "endpoint", "t38udptl_maxdatagram", "0", OPT_UINT_T, 0, FLDSET(struct ast_sip_endpoint, t38udptl_maxdatagram));
ast_sorcery_object_field_register(sip_sorcery, "endpoint", "faxdetect", "no", OPT_BOOL_T, 1, FLDSET(struct ast_sip_endpoint, faxdetect));
ast_sorcery_object_field_register(sip_sorcery, "endpoint", "t38udptl_nat", "no", OPT_BOOL_T, 1, FLDSET(struct ast_sip_endpoint, t38udptl_nat));
+ ast_sorcery_object_field_register(sip_sorcery, "endpoint", "t38udptl_ipv6", "no", OPT_BOOL_T, 1, FLDSET(struct ast_sip_endpoint, t38udptl_ipv6));
ast_sorcery_object_field_register(sip_sorcery, "endpoint", "rtpengine", "asterisk", OPT_STRINGFIELD_T, 0, STRFLDSET(struct ast_sip_endpoint, rtp_engine));
ast_sorcery_object_field_register(sip_sorcery, "endpoint", "tonezone", "", OPT_STRINGFIELD_T, 0, STRFLDSET(struct ast_sip_endpoint, zone));
ast_sorcery_object_field_register(sip_sorcery, "endpoint", "language", "", OPT_STRINGFIELD_T, 0, STRFLDSET(struct ast_sip_endpoint, language));
Modified: team/file/gulp_fax/res/res_sip_t38.c
URL: http://svnview.digium.com/svn/asterisk/team/file/gulp_fax/res/res_sip_t38.c?view=diff&rev=395397&r1=395396&r2=395397
==============================================================================
--- team/file/gulp_fax/res/res_sip_t38.c (original)
+++ team/file/gulp_fax/res/res_sip_t38.c Thu Jul 25 08:42:15 2013
@@ -54,6 +54,9 @@
/*! \brief Address for IPv4 UDPTL */
static struct ast_sockaddr address_ipv4;
+/*! \brief Address for IPv6 UDPTL */
+static struct ast_sockaddr address_ipv6;
+
/*! \brief T.38 state information */
struct t38_state {
/*! \brief Current state */
@@ -244,7 +247,8 @@
return 0;
}
- if (!(session_media->udptl = ast_udptl_new_with_bindaddr(NULL, NULL, 0, &address_ipv4))) {
+ if (!(session_media->udptl = ast_udptl_new_with_bindaddr(NULL, NULL, 0,
+ session->endpoint->t38udptl_ipv6 ? &address_ipv6 : &address_ipv4))) {
return -1;
}
@@ -627,6 +631,7 @@
pj_pool_t *pool = session->inv_session->pool_prov;
static const pj_str_t STR_IN = { "IN", 2 };
static const pj_str_t STR_IP4 = { "IP4", 3};
+ static const pj_str_t STR_IP6 = { "IP6", 3};
static const pj_str_t STR_UDPTL = { "udptl", 5 };
static const pj_str_t STR_T38 = { "t38", 3 };
static const pj_str_t STR_TRANSFERREDTCF = { "transferredTCF", 14 };
@@ -662,7 +667,7 @@
if (ast_strlen_zero(session->endpoint->external_media_address)) {
pj_sockaddr localaddr;
- if (pj_gethostip(pj_AF_INET(), &localaddr)) {
+ if (pj_gethostip(session->endpoint->t38udptl_ipv6 ? pj_AF_INET6() : pj_AF_INET(), &localaddr)) {
return -1;
}
pj_sockaddr_print(&localaddr, hostip, sizeof(hostip), 2);
@@ -671,7 +676,7 @@
}
media->conn->net_type = STR_IN;
- media->conn->addr_type = STR_IP4;
+ media->conn->addr_type = session->endpoint->t38udptl_ipv6 ? STR_IP6 : STR_IP4;
pj_strdup2(pool, &media->conn->addr, hostip);
ast_udptl_get_us(session_media->udptl, &addr);
media->desc.port = (pj_uint16_t) ast_sockaddr_port(&addr);
@@ -815,6 +820,7 @@
static int load_module(void)
{
ast_sockaddr_parse(&address_ipv4, "0.0.0.0", 0);
+ ast_sockaddr_parse(&address_ipv6, "::", 0);
if (ast_sip_session_register_supplement(&t38_supplement)) {
ast_log(LOG_ERROR, "Unable to register T.38 session supplement\n");
More information about the asterisk-commits
mailing list