Author: file
Date: Wed Apr  8 06:10:06 2015
New Revision: 434283

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=434283
Log:
Add support for using the official PJSIP external resolver API, and provide 
notice about falling back to built-in if unavailable.

Modified:
    team/group/dns_pjsip/configure
    team/group/dns_pjsip/configure.ac
    team/group/dns_pjsip/include/asterisk/autoconfig.h.in
    team/group/dns_pjsip/res/res_pjsip/pjsip_resolver.c

Modified: team/group/dns_pjsip/configure.ac
URL: 
http://svnview.digium.com/svn/asterisk/team/group/dns_pjsip/configure.ac?view=diff&rev=434283&r1=434282&r2=434283
==============================================================================
--- team/group/dns_pjsip/configure.ac (original)
+++ team/group/dns_pjsip/configure.ac Wed Apr  8 06:10:06 2015
@@ -458,6 +458,7 @@
 AST_EXT_LIB_SETUP_OPTIONAL([PJSIP_REPLACE_MEDIA_STREAM], [PJSIP Media Stream 
Replacement Support], [PJPROJECT], [pjsip])
 AST_EXT_LIB_SETUP_OPTIONAL([PJSIP_GET_DEST_INFO], [pjsip_get_dest_info 
support], [PJPROJECT], [pjsip])
 AST_EXT_LIB_SETUP_OPTIONAL([PJ_SSL_CERT_LOAD_FROM_FILES2], 
[pj_ssl_cert_load_from_files2 support], [PJPROJECT], [pjsip])
+AST_EXT_LIB_SETUP_OPTIONAL([PJSIP_EXTERNAL_RESOLVER], [PJSIP External Resolver 
Support], [PJPROJECT], [pjsip])
 AST_EXT_LIB_SETUP([PORTAUDIO], [PortAudio], [portaudio])
 AST_EXT_LIB_SETUP([PRI], [ISDN PRI], [pri])
 AST_EXT_LIB_SETUP_OPTIONAL([PRI_SETUP_ACK_INBAND], [ISDN PRI progress inband 
ie in SETUP ACK], [PRI], [pri])
@@ -2124,6 +2125,7 @@
 
 AST_EXT_LIB_CHECK([PJSIP_GET_DEST_INFO], [pjsip], [pjsip_get_dest_info], 
[pjsip.h], [$PJPROJECT_LIBS], [$PJPROJECT_CFLAGS])
 AST_EXT_LIB_CHECK([PJ_SSL_CERT_LOAD_FROM_FILES2], [pj], 
[pj_ssl_cert_load_from_files2], [pjlib.h], [$PJPROJECT_LIBS], 
[$PJPROJECT_CFLAGS])
+AST_EXT_LIB_CHECK([PJSIP_EXTERNAL_RESOLVER], [pjsip], 
[pjsip_endpt_set_ext_resolver], [pjsip.h], [$PJPROJECT_LIBS], 
[$PJPROJECT_CFLAGS])
 
 AST_EXT_LIB_CHECK([POPT], [popt], [poptStrerror], [popt.h])
 

Modified: team/group/dns_pjsip/include/asterisk/autoconfig.h.in
URL: 
http://svnview.digium.com/svn/asterisk/team/group/dns_pjsip/include/asterisk/autoconfig.h.in?view=diff&rev=434283&r1=434282&r2=434283
==============================================================================
--- team/group/dns_pjsip/include/asterisk/autoconfig.h.in (original)
+++ team/group/dns_pjsip/include/asterisk/autoconfig.h.in Wed Apr  8 06:10:06 
2015
@@ -577,6 +577,10 @@
 
 /* Define if your system has the PJPROJECT libraries. */
 #undef HAVE_PJPROJECT
+
+/* Define to 1 if PJPROJECT has the PJSIP External Resolver Support feature.
+   */
+#undef HAVE_PJSIP_EXTERNAL_RESOLVER
 
 /* Define to 1 if PJPROJECT has the pjsip_get_dest_info support feature. */
 #undef HAVE_PJSIP_GET_DEST_INFO

Modified: team/group/dns_pjsip/res/res_pjsip/pjsip_resolver.c
URL: 
http://svnview.digium.com/svn/asterisk/team/group/dns_pjsip/res/res_pjsip/pjsip_resolver.c?view=diff&rev=434283&r1=434282&r2=434283
==============================================================================
--- team/group/dns_pjsip/res/res_pjsip/pjsip_resolver.c (original)
+++ team/group/dns_pjsip/res/res_pjsip/pjsip_resolver.c Wed Apr  8 06:10:06 2015
@@ -29,6 +29,8 @@
 #include "asterisk/dns_naptr.h"
 #include "asterisk/res_pjsip.h"
 #include "include/res_pjsip_private.h"
+
+#ifdef HAVE_PJSIP_EXTERNAL_RESOLVER
 
 /*! \brief Structure which contains transport+port information for an active 
query */
 struct sip_target {
@@ -472,6 +474,11 @@
        }
 }
 
+/*! \brief External resolver implementation for PJSIP */
+static pjsip_ext_resolver resolver = {
+       .resolve = sip_resolve,
+};
+
 static int sip_replace_resolver(void *data)
 {
        pj_pool_t *pool;
@@ -493,7 +500,7 @@
        pjsip_endpt_release_pool(ast_sip_get_pjsip_endpoint(), pool);
 
        /* Replace the PJSIP resolver with our own implementation */
-       pjsip_endpt_set_resolver_implementation(ast_sip_get_pjsip_endpoint(), 
sip_resolve);
+       pjsip_endpt_set_ext_resolver(ast_sip_get_pjsip_endpoint(), &resolver);
        return 0;
 }
 
@@ -502,3 +509,13 @@
        /* Replace the existing PJSIP resolver with our own implementation */
        ast_sip_push_task_synchronous(NULL, sip_replace_resolver, NULL);
 }
+
+#else
+
+void ast_sip_initialize_resolver(void)
+{
+       /* External resolver support does not exist in the version of PJSIP in 
use */
+       ast_log(LOG_NOTICE, "The version of PJSIP in use does not support 
external resolvers, using PJSIP provided resolver\n");
+}
+
+#endif


-- 
_____________________________________________________________________
-- 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

Reply via email to