<p>Stanislav Abramenkov has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.asterisk.org/c/asterisk/+/19577">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">ASTERISK-30325<br><br>Change-Id: I87446459f5dad0c4c0da40dd20052b66463b63e7<br>---<br>M third-party/pjproject/patches/0000-remove-third-party.patch<br>D third-party/pjproject/patches/0100-allow_multiple_auth_headers.patch<br>D third-party/pjproject/pjproject-2.12.1.tar.bz2.md5<br>A third-party/pjproject/pjproject-2.13.tar.bz2.md5<br>M third-party/versions.mak<br>5 files changed, 16 insertions(+), 418 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/77/19577/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/third-party/pjproject/patches/0000-remove-third-party.patch b/third-party/pjproject/patches/0000-remove-third-party.patch</span><br><span>index 1de154d..a070f0b 100644</span><br><span>--- a/third-party/pjproject/patches/0000-remove-third-party.patch</span><br><span>+++ b/third-party/pjproject/patches/0000-remove-third-party.patch</span><br><span>@@ -7,10 +7,11 @@</span><br><span>  include $(PJDIR)/version.mak</span><br><span>  export PJ_DIR := $(PJDIR)</span><br><span>  </span><br><span style="color: hsl(0, 100%, 40%);">-@@ -41,19 +40,6 @@ export APP_THIRD_PARTY_EXT :=</span><br><span style="color: hsl(120, 100%, 40%);">+@@ -42,21 +41,6 @@ export APP_THIRD_PARTY_EXT :=</span><br><span>  export APP_THIRD_PARTY_LIBS :=</span><br><span>  export APP_THIRD_PARTY_LIB_FILES :=</span><br><span style="color: hsl(0, 100%, 40%);">- </span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+-ifneq (@ac_no_srtp@,1)</span><br><span> -ifneq (@ac_external_srtp@,0)</span><br><span> -# External SRTP library</span><br><span> -APP_THIRD_PARTY_EXT += -l@ac_external_srtp_lib@</span><br><span>@@ -23,11 +24,12 @@</span><br><span> -APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libsrtp.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libsrtp.$(SHLIB_SUFFIX)</span><br><span> -endif</span><br><span> -endif</span><br><span style="color: hsl(120, 100%, 40%);">+-endif</span><br><span> -</span><br><span>  ifeq (@ac_pjmedia_resample@,libresample)</span><br><span>  APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libresample-$(LIB_SUFFIX)</span><br><span>  ifeq ($(PJ_SHARED_LIBRARIES),)</span><br><span style="color: hsl(0, 100%, 40%);">-@@ -70,102 +56,6 @@ APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libresample.$(SHLIB_SUFFI</span><br><span style="color: hsl(120, 100%, 40%);">+@@ -73,102 +57,6 @@ APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libresample.$(SHLIB_SUFFI</span><br><span>  endif</span><br><span>  endif</span><br><span>  </span><br><span>diff --git a/third-party/pjproject/patches/0100-allow_multiple_auth_headers.patch b/third-party/pjproject/patches/0100-allow_multiple_auth_headers.patch</span><br><span>deleted file mode 100644</span><br><span>index e291eeb..0000000</span><br><span>--- a/third-party/pjproject/patches/0100-allow_multiple_auth_headers.patch</span><br><span>+++ /dev/null</span><br><span>@@ -1,413 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-commit 8e95490e37938f45d9d812905246036c3185b94f</span><br><span style="color: hsl(0, 100%, 40%);">-Author: Riza Sulistyo <trengginas@users.noreply.github.com></span><br><span style="color: hsl(0, 100%, 40%);">-Date:   Thu Mar 24 12:53:03 2022 +0700</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    Add compile time option to allow multiple Authorization header (#3010)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-diff --git a/pjsip/include/pjsip/sip_config.h b/pjsip/include/pjsip/sip_config.h</span><br><span style="color: hsl(0, 100%, 40%);">-index dfd9ce977..ccce6ed01 100644</span><br><span>---- a/pjsip/include/pjsip/sip_config.h</span><br><span style="color: hsl(0, 100%, 40%);">-+++ b/pjsip/include/pjsip/sip_config.h</span><br><span style="color: hsl(0, 100%, 40%);">-@@ -1280,6 +1280,18 @@ PJ_INLINE(pjsip_cfg_t*) pjsip_cfg(void)</span><br><span style="color: hsl(0, 100%, 40%);">- #   define PJSIP_AUTH_CNONCE_USE_DIGITS_ONLY  1</span><br><span style="color: hsl(0, 100%, 40%);">- #endif</span><br><span style="color: hsl(0, 100%, 40%);">- </span><br><span style="color: hsl(0, 100%, 40%);">-+/**</span><br><span style="color: hsl(0, 100%, 40%);">-+ * Allow client to send multiple Authorization header when receiving multiple </span><br><span style="color: hsl(0, 100%, 40%);">-+ * WWW-Authenticate header fields. If this is disabled, the stack will send</span><br><span style="color: hsl(0, 100%, 40%);">-+ * Authorization header field containing credentials that match the</span><br><span style="color: hsl(0, 100%, 40%);">-+ * topmost header field.</span><br><span style="color: hsl(0, 100%, 40%);">-+ *</span><br><span style="color: hsl(0, 100%, 40%);">-+ * Default is 0</span><br><span style="color: hsl(0, 100%, 40%);">-+ */</span><br><span style="color: hsl(0, 100%, 40%);">-+#ifndef PJSIP_AUTH_ALLOW_MULTIPLE_AUTH_HEADER</span><br><span style="color: hsl(0, 100%, 40%);">-+#   define PJSIP_AUTH_ALLOW_MULTIPLE_AUTH_HEADER 0</span><br><span style="color: hsl(0, 100%, 40%);">-+#endif</span><br><span style="color: hsl(0, 100%, 40%);">-+</span><br><span style="color: hsl(0, 100%, 40%);">- /*****************************************************************************</span><br><span style="color: hsl(0, 100%, 40%);">-  *  SIP Event framework and presence settings.</span><br><span style="color: hsl(0, 100%, 40%);">-  */</span><br><span style="color: hsl(0, 100%, 40%);">-@@ -1458,6 +1470,11 @@ PJ_INLINE(pjsip_cfg_t*) pjsip_cfg(void)</span><br><span style="color: hsl(0, 100%, 40%);">- #   define PJSIP_INV_ACCEPT_UNKNOWN_BODY    PJ_FALSE</span><br><span style="color: hsl(0, 100%, 40%);">- #endif</span><br><span style="color: hsl(0, 100%, 40%);">- </span><br><span style="color: hsl(0, 100%, 40%);">-+/**</span><br><span style="color: hsl(0, 100%, 40%);">-+ * Dump configuration to log with verbosity equal to info(3).</span><br><span style="color: hsl(0, 100%, 40%);">-+ */</span><br><span style="color: hsl(0, 100%, 40%);">-+PJ_DECL(void) pjsip_dump_config(void);</span><br><span style="color: hsl(0, 100%, 40%);">-+</span><br><span style="color: hsl(0, 100%, 40%);">- PJ_END_DECL</span><br><span style="color: hsl(0, 100%, 40%);">- </span><br><span style="color: hsl(0, 100%, 40%);">- /**</span><br><span style="color: hsl(0, 100%, 40%);">-diff --git a/pjsip/src/pjsip/sip_auth_client.c b/pjsip/src/pjsip/sip_auth_client.c</span><br><span style="color: hsl(0, 100%, 40%);">-index 35460d01e..ab1a0cd87 100644</span><br><span>---- a/pjsip/src/pjsip/sip_auth_client.c</span><br><span style="color: hsl(0, 100%, 40%);">-+++ b/pjsip/src/pjsip/sip_auth_client.c</span><br><span style="color: hsl(0, 100%, 40%);">-@@ -1367,7 +1367,7 @@ PJ_DEF(pj_status_t) pjsip_auth_clt_reinit_req(      pjsip_auth_clt_sess *sess,</span><br><span style="color: hsl(0, 100%, 40%);">-     chal_cnt = 0;</span><br><span style="color: hsl(0, 100%, 40%);">-     auth_cnt = 0;</span><br><span style="color: hsl(0, 100%, 40%);">-     last_auth_err = PJSIP_EAUTHNOAUTH;</span><br><span style="color: hsl(0, 100%, 40%);">--    while (hdr != &rdata->msg_info.msg->hdr && auth_cnt == 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-+    while (hdr != &rdata->msg_info.msg->hdr) {</span><br><span style="color: hsl(0, 100%, 40%);">-        pjsip_cached_auth *cached_auth;</span><br><span style="color: hsl(0, 100%, 40%);">-         const pjsip_www_authenticate_hdr *hchal;</span><br><span style="color: hsl(0, 100%, 40%);">-        pjsip_authorization_hdr *hauth;</span><br><span style="color: hsl(0, 100%, 40%);">-@@ -1431,6 +1431,11 @@ PJ_DEF(pj_status_t) pjsip_auth_clt_reinit_req(    pjsip_auth_clt_sess *sess,</span><br><span style="color: hsl(0, 100%, 40%);">-      /* Process next header. */</span><br><span style="color: hsl(0, 100%, 40%);">-      hdr = hdr->next;</span><br><span style="color: hsl(0, 100%, 40%);">-     auth_cnt++;</span><br><span style="color: hsl(0, 100%, 40%);">-+</span><br><span style="color: hsl(0, 100%, 40%);">-+#if defined(PJSIP_AUTH_ALLOW_MULTIPLE_AUTH_HEADER) && \</span><br><span style="color: hsl(0, 100%, 40%);">-+       PJSIP_AUTH_ALLOW_MULTIPLE_AUTH_HEADER==0</span><br><span style="color: hsl(0, 100%, 40%);">-+   break;</span><br><span style="color: hsl(0, 100%, 40%);">-+#endif</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">- </span><br><span style="color: hsl(0, 100%, 40%);">-     /* Check if challenge is present */</span><br><span style="color: hsl(0, 100%, 40%);">-diff --git a/pjsip/src/pjsip/sip_config.c b/pjsip/src/pjsip/sip_config.c</span><br><span style="color: hsl(0, 100%, 40%);">-index 957f9fad4..6920b3dfe 100644</span><br><span>---- a/pjsip/src/pjsip/sip_config.c</span><br><span style="color: hsl(0, 100%, 40%);">-+++ b/pjsip/src/pjsip/sip_config.c</span><br><span style="color: hsl(0, 100%, 40%);">-@@ -19,6 +19,9 @@</span><br><span style="color: hsl(0, 100%, 40%);">-  */</span><br><span style="color: hsl(0, 100%, 40%);">- </span><br><span style="color: hsl(0, 100%, 40%);">- #include <pjsip/sip_config.h></span><br><span style="color: hsl(0, 100%, 40%);">-+#include <pj/log.h></span><br><span style="color: hsl(0, 100%, 40%);">-+</span><br><span style="color: hsl(0, 100%, 40%);">-+static const char *id = "sip_config.c";</span><br><span style="color: hsl(0, 100%, 40%);">- </span><br><span style="color: hsl(0, 100%, 40%);">- /* pjsip configuration instance, initialized with default values */</span><br><span style="color: hsl(0, 100%, 40%);">- pjsip_cfg_t pjsip_sip_cfg_var =</span><br><span style="color: hsl(0, 100%, 40%);">-@@ -65,6 +68,195 @@ pjsip_cfg_t pjsip_sip_cfg_var =</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">- };</span><br><span style="color: hsl(0, 100%, 40%);">- </span><br><span style="color: hsl(0, 100%, 40%);">-+PJ_DEF(void) pjsip_dump_config(void)</span><br><span style="color: hsl(0, 100%, 40%);">-+{</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, "Dumping PJSIP configurations:"));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_MAX_DIALOG_COUNT                             : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+               PJSIP_MAX_DIALOG_COUNT));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_MAX_TRANSPORTS                               : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+            PJSIP_MAX_TRANSPORTS));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_TPMGR_HTABLE_SIZE                            : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+              PJSIP_TPMGR_HTABLE_SIZE));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_MAX_URL_SIZE                                 : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+           PJSIP_MAX_URL_SIZE));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_MAX_MODULE                                   : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+        PJSIP_MAX_MODULE));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_MAX_PKT_LEN                                  : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+          PJSIP_MAX_PKT_LEN));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_HANDLE_EVENTS_HAS_SLEEP_ON_ERR               : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+         PJSIP_HANDLE_EVENTS_HAS_SLEEP_ON_ERR));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_ACCEPT_MULTIPLE_SDP_ANSWERS                  : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+              PJSIP_ACCEPT_MULTIPLE_SDP_ANSWERS));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_UDP_SIZE_THRESHOLD                           : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+         PJSIP_UDP_SIZE_THRESHOLD));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_INCLUDE_ALLOW_HDR_IN_DLG                     : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+          PJSIP_INCLUDE_ALLOW_HDR_IN_DLG));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_SAFE_MODULE                                  : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+            PJSIP_SAFE_MODULE));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_CHECK_VIA_SENT_BY                            : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+         PJSIP_CHECK_VIA_SENT_BY));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_UNESCAPE_IN_PLACE                            : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+           PJSIP_UNESCAPE_IN_PLACE));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_MAX_NET_EVENTS                               : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+           PJSIP_MAX_NET_EVENTS));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_MAX_TIMED_OUT_ENTRIES                        : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+              PJSIP_MAX_TIMED_OUT_ENTRIES));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_TRANSPORT_IDLE_TIME                          : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+               PJSIP_TRANSPORT_IDLE_TIME));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_TRANSPORT_SERVER_IDLE_TIME                   : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+         PJSIP_TRANSPORT_SERVER_IDLE_TIME));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_MAX_TRANSPORT_USAGE                          : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+          PJSIP_MAX_TRANSPORT_USAGE));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_TCP_TRANSPORT_BACKLOG                        : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+         PJSIP_TCP_TRANSPORT_BACKLOG));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_TCP_TRANSPORT_REUSEADDR                      : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+               PJSIP_TCP_TRANSPORT_REUSEADDR));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_TCP_TRANSPORT_DONT_CREATE_LISTENER           : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+             PJSIP_TCP_TRANSPORT_DONT_CREATE_LISTENER));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_TLS_TRANSPORT_DONT_CREATE_LISTENER           : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+          PJSIP_TLS_TRANSPORT_DONT_CREATE_LISTENER));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_TCP_KEEP_ALIVE_INTERVAL                      : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+          PJSIP_TCP_KEEP_ALIVE_INTERVAL));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_POOL_INC_TRANSPORT                           : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+             PJSIP_POOL_INC_TRANSPORT));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_POOL_LEN_TDATA                               : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+          PJSIP_POOL_LEN_TDATA));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_POOL_INC_TDATA                               : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+              PJSIP_POOL_INC_TDATA));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_POOL_LEN_UA                                  : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+              PJSIP_POOL_LEN_UA));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_POOL_INC_UA                                  : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+         PJSIP_POOL_INC_UA));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_POOL_EVSUB_LEN                               : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+         PJSIP_POOL_EVSUB_LEN));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_POOL_EVSUB_INC                               : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+              PJSIP_POOL_EVSUB_INC));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_MAX_FORWARDS_VALUE                           : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+              PJSIP_MAX_FORWARDS_VALUE));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_RFC3261_BRANCH_ID                            : %s", </span><br><span style="color: hsl(0, 100%, 40%);">-+          PJSIP_RFC3261_BRANCH_ID));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_RFC3261_BRANCH_LEN                           : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+           PJSIP_RFC3261_BRANCH_LEN));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_POOL_TSX_LAYER_LEN                           : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+          PJSIP_POOL_TSX_LAYER_LEN));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_POOL_TSX_LAYER_INC                           : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+          PJSIP_POOL_TSX_LAYER_INC));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_POOL_TSX_LEN                                 : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+          PJSIP_POOL_TSX_LEN));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_POOL_TSX_INC                                 : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+        PJSIP_POOL_TSX_INC));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_TSX_1XX_RETRANS_DELAY                        : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+        PJSIP_TSX_1XX_RETRANS_DELAY));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_TSX_UAS_CONTINUE_ON_TP_ERROR                 : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+               PJSIP_TSX_UAS_CONTINUE_ON_TP_ERROR));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_MAX_TSX_KEY_LEN                              : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+        PJSIP_MAX_TSX_KEY_LEN));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_POOL_LEN_USER_AGENT                          : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+             PJSIP_POOL_LEN_USER_AGENT));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_POOL_INC_USER_AGENT                          : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+         PJSIP_POOL_INC_USER_AGENT));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_MAX_BRANCH_LEN                               : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+         PJSIP_MAX_HNAME_LEN));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_POOL_LEN_DIALOG                              : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+               PJSIP_POOL_LEN_DIALOG));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_POOL_INC_DIALOG                              : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+             PJSIP_POOL_INC_DIALOG));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_MAX_HEADER_TYPES                             : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+             PJSIP_MAX_HEADER_TYPES));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_MAX_URI_TYPES                                : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+            PJSIP_MAX_URI_TYPES));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_AUTH_HEADER_CACHING                          : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+               PJSIP_AUTH_HEADER_CACHING));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_AUTH_AUTO_SEND_NEXT                          : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+         PJSIP_AUTH_AUTO_SEND_NEXT));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_AUTH_QOP_SUPPORT                             : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+         PJSIP_AUTH_QOP_SUPPORT));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_MAX_STALE_COUNT                              : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+            PJSIP_MAX_STALE_COUNT));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_HAS_DIGEST_AKA_AUTH                          : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+             PJSIP_HAS_DIGEST_AKA_AUTH));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_REGISTER_CLIENT_DELAY_BEFORE_REFRESH         : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+         PJSIP_REGISTER_CLIENT_DELAY_BEFORE_REFRESH));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_REGISTER_ALLOW_EXP_REFRESH                   : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+        PJSIP_REGISTER_ALLOW_EXP_REFRESH));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_AUTH_CACHED_POOL_MAX_SIZE                    : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+          PJSIP_AUTH_CACHED_POOL_MAX_SIZE));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_AUTH_CNONCE_USE_DIGITS_ONLY                  : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+           PJSIP_AUTH_CNONCE_USE_DIGITS_ONLY));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_AUTH_ALLOW_MULTIPLE_AUTH_HEADER              : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+         PJSIP_AUTH_ALLOW_MULTIPLE_AUTH_HEADER));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_EVSUB_TIME_UAC_REFRESH                       : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+             PJSIP_EVSUB_TIME_UAC_REFRESH));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_PUBLISHC_DELAY_BEFORE_REFRESH                : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+              PJSIP_PUBLISHC_DELAY_BEFORE_REFRESH));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_EVSUB_TIME_UAC_TERMINATE                     : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+               PJSIP_EVSUB_TIME_UAC_TERMINATE));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_EVSUB_TIME_UAC_WAIT_NOTIFY                   : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+            PJSIP_EVSUB_TIME_UAC_WAIT_NOTIFY));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_PRES_DEFAULT_EXPIRES                         : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+          PJSIP_PRES_DEFAULT_EXPIRES));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_PRES_BAD_CONTENT_RESPONSE                    : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+        PJSIP_PRES_BAD_CONTENT_RESPONSE));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_PRES_PIDF_ADD_TIMESTAMP                      : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+           PJSIP_PRES_PIDF_ADD_TIMESTAMP));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_SESS_TIMER_DEF_SE                            : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+             PJSIP_SESS_TIMER_DEF_SE));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_SESS_TIMER_RETRY_DELAY                       : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+           PJSIP_SESS_TIMER_RETRY_DELAY));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_PUBLISHC_QUEUE_REQUEST                       : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+              PJSIP_PUBLISHC_QUEUE_REQUEST));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_MWI_DEFAULT_EXPIRES                          : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+              PJSIP_MWI_DEFAULT_EXPIRES));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_HAS_TX_DATA_LIST                             : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+         PJSIP_HAS_TX_DATA_LIST));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " PJSIP_INV_ACCEPT_UNKNOWN_BODY                      : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+            PJSIP_INV_ACCEPT_UNKNOWN_BODY));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " pjsip_cfg()->endpt.allow_port_in_fromto_hdr        : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+          pjsip_cfg()->endpt.allow_port_in_fromto_hdr));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " pjsip_cfg()->endpt.accept_replace_in_early_state   : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+         pjsip_cfg()->endpt.accept_replace_in_early_state));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " pjsip_cfg()->endpt.allow_tx_hash_in_uri            : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+            pjsip_cfg()->endpt.allow_tx_hash_in_uri));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " pjsip_cfg()->endpt.disable_rport                   : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+             pjsip_cfg()->endpt.disable_rport));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " pjsip_cfg()->endpt.disable_tcp_switch              : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+            pjsip_cfg()->endpt.disable_tcp_switch));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " pjsip_cfg()->endpt.disable_tls_switch              : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+               pjsip_cfg()->endpt.disable_tls_switch));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " pjsip_cfg()->endpt.follow_early_media_fork         : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+               pjsip_cfg()->endpt.follow_early_media_fork));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " pjsip_cfg()->endpt.req_has_via_alias               : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+          pjsip_cfg()->endpt.req_has_via_alias));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " pjsip_cfg()->endpt.resolve_hostname_to_get_interface:%d", </span><br><span style="color: hsl(0, 100%, 40%);">-+        pjsip_cfg()->endpt.resolve_hostname_to_get_interface));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " pjsip_cfg()->endpt.disable_secure_dlg_check        : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+        pjsip_cfg()->endpt.disable_secure_dlg_check));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " pjsip_cfg()->endpt.use_compact_form                : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+         pjsip_cfg()->endpt.use_compact_form));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " pjsip_cfg()->endpt.accept_multiple_sdp_answers     : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+         pjsip_cfg()->endpt.accept_multiple_sdp_answers));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " pjsip_cfg()->endpt.keep_inv_after_tsx_timeout      : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+              pjsip_cfg()->endpt.keep_inv_after_tsx_timeout));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " pjsip_cfg()->tsx.max_count                         : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+               pjsip_cfg()->tsx.max_count));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " pjsip_cfg()->tsx.t1                                : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+          pjsip_cfg()->tsx.t1));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " pjsip_cfg()->tsx.t2                                : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+         pjsip_cfg()->tsx.t2));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " pjsip_cfg()->tsx.t4                                : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+         pjsip_cfg()->tsx.t4));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " pjsip_cfg()->td                                    : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+         pjsip_cfg()->tsx.td));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " pjsip_cfg()->regc.check_contact                    : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+         pjsip_cfg()->regc.check_contact));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " pjsip_cfg()->regc.add_xuid_param                   : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+             pjsip_cfg()->regc.add_xuid_param));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " pjsip_cfg()->tcp.keep_alive_interval               : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+            pjsip_cfg()->tcp.keep_alive_interval));</span><br><span style="color: hsl(0, 100%, 40%);">-+    PJ_LOG(3, (id, " pjsip_cfg()->tls.keep_alive_interval               : %d", </span><br><span style="color: hsl(0, 100%, 40%);">-+        pjsip_cfg()->tls.keep_alive_interval));</span><br><span style="color: hsl(0, 100%, 40%);">-+}</span><br><span style="color: hsl(0, 100%, 40%);">-+</span><br><span style="color: hsl(0, 100%, 40%);">- </span><br><span style="color: hsl(0, 100%, 40%);">- #ifdef PJ_DLL</span><br><span style="color: hsl(0, 100%, 40%);">- PJ_DEF(pjsip_cfg_t*) pjsip_cfg(void)</span><br><span style="color: hsl(0, 100%, 40%);">-diff --git a/pjsip/src/pjsua-lib/pjsua_core.c b/pjsip/src/pjsua-lib/pjsua_core.c</span><br><span style="color: hsl(0, 100%, 40%);">-index c437011b5..343316b56 100644</span><br><span>---- a/pjsip/src/pjsua-lib/pjsua_core.c</span><br><span style="color: hsl(0, 100%, 40%);">-+++ b/pjsip/src/pjsua-lib/pjsua_core.c</span><br><span style="color: hsl(0, 100%, 40%);">-@@ -3443,8 +3443,10 @@ PJ_DEF(void) pjsua_dump(pj_bool_t detail)</span><br><span style="color: hsl(0, 100%, 40%);">-     old_decor = pj_log_get_decor();</span><br><span style="color: hsl(0, 100%, 40%);">-     pj_log_set_decor(old_decor & (PJ_LOG_HAS_NEWLINE | PJ_LOG_HAS_CR));</span><br><span style="color: hsl(0, 100%, 40%);">- </span><br><span style="color: hsl(0, 100%, 40%);">--    if (detail)</span><br><span style="color: hsl(0, 100%, 40%);">-+    if (detail) {</span><br><span style="color: hsl(0, 100%, 40%);">-    pj_dump_config();</span><br><span style="color: hsl(0, 100%, 40%);">-+      pjsip_dump_config();</span><br><span style="color: hsl(0, 100%, 40%);">-+    }</span><br><span style="color: hsl(0, 100%, 40%);">- </span><br><span style="color: hsl(0, 100%, 40%);">-     pjsip_endpt_dump(pjsua_get_pjsip_endpt(), detail);</span><br><span style="color: hsl(0, 100%, 40%);">- </span><br><span style="color: hsl(0, 100%, 40%);">-diff --git a/tests/pjsua/inc_sip.py b/tests/pjsua/inc_sip.py</span><br><span style="color: hsl(0, 100%, 40%);">-index f7e64816e..2cc1a17a8 100644</span><br><span>---- a/tests/pjsua/inc_sip.py</span><br><span style="color: hsl(0, 100%, 40%);">-+++ b/tests/pjsua/inc_sip.py</span><br><span style="color: hsl(0, 100%, 40%);">-@@ -306,9 +306,11 @@ class RecvfromTransaction:</span><br><span style="color: hsl(0, 100%, 40%);">-     body = None</span><br><span style="color: hsl(0, 100%, 40%);">-     # Pattern to be expected on pjsua when receiving the response</span><br><span style="color: hsl(0, 100%, 40%);">-   expect = ""</span><br><span style="color: hsl(0, 100%, 40%);">-+  # Required config</span><br><span style="color: hsl(0, 100%, 40%);">-+      pj_config = ""</span><br><span style="color: hsl(0, 100%, 40%);">-        </span><br><span style="color: hsl(0, 100%, 40%);">-        def __init__(self, title, resp_code, check_cseq=True,</span><br><span style="color: hsl(0, 100%, 40%);">--                  include=[], exclude=[], cmds=[], resp_hdr=[], resp_body=None, expect=""):</span><br><span style="color: hsl(0, 100%, 40%);">-+                    include=[], exclude=[], cmds=[], resp_hdr=[], resp_body=None, expect="", pj_config=""):</span><br><span style="color: hsl(0, 100%, 40%);">-             self.title = title</span><br><span style="color: hsl(0, 100%, 40%);">-              self.cmds = cmds</span><br><span style="color: hsl(0, 100%, 40%);">-                self.include = include</span><br><span style="color: hsl(0, 100%, 40%);">-@@ -317,6 +319,7 @@ class RecvfromTransaction:</span><br><span style="color: hsl(0, 100%, 40%);">-            self.resp_hdr = resp_hdr</span><br><span style="color: hsl(0, 100%, 40%);">-                self.body = resp_body</span><br><span style="color: hsl(0, 100%, 40%);">-           self.expect = expect</span><br><span style="color: hsl(0, 100%, 40%);">-+           self.pj_config=pj_config</span><br><span style="color: hsl(0, 100%, 40%);">-                        </span><br><span style="color: hsl(0, 100%, 40%);">- </span><br><span style="color: hsl(0, 100%, 40%);">- class RecvfromCfg:</span><br><span style="color: hsl(0, 100%, 40%);">-@@ -328,15 +331,18 @@ class RecvfromCfg:</span><br><span style="color: hsl(0, 100%, 40%);">-    transaction = None</span><br><span style="color: hsl(0, 100%, 40%);">-      # Use TCP?</span><br><span style="color: hsl(0, 100%, 40%);">-      tcp = False</span><br><span style="color: hsl(0, 100%, 40%);">-+    # Required config</span><br><span style="color: hsl(0, 100%, 40%);">-+      pj_config = ""</span><br><span style="color: hsl(0, 100%, 40%);">- </span><br><span style="color: hsl(0, 100%, 40%);">-       # Note:</span><br><span style="color: hsl(0, 100%, 40%);">-         #  Any "$PORT" string in the pjsua_args will be replaced</span><br><span style="color: hsl(0, 100%, 40%);">-      #  by server port</span><br><span style="color: hsl(0, 100%, 40%);">--      def __init__(self, name, pjsua_args, transaction, tcp=False):</span><br><span style="color: hsl(0, 100%, 40%);">-+  def __init__(self, name, pjsua_args, transaction, tcp=False, pj_config=""):</span><br><span style="color: hsl(0, 100%, 40%);">-           self.name = name</span><br><span style="color: hsl(0, 100%, 40%);">-                self.inst_param = cfg.InstanceParam("pjsua", pjsua_args)</span><br><span style="color: hsl(0, 100%, 40%);">-              self.transaction = transaction</span><br><span style="color: hsl(0, 100%, 40%);">-          self.tcp=tcp</span><br><span style="color: hsl(0, 100%, 40%);">-+           self.pj_config=pj_config</span><br><span style="color: hsl(0, 100%, 40%);">- </span><br><span style="color: hsl(0, 100%, 40%);">- </span><br><span style="color: hsl(0, 100%, 40%);">- </span><br><span style="color: hsl(0, 100%, 40%);">-diff --git a/tests/pjsua/mod_recvfrom.py b/tests/pjsua/mod_recvfrom.py</span><br><span style="color: hsl(0, 100%, 40%);">-index 918006aff..4305bfb42 100644</span><br><span>---- a/tests/pjsua/mod_recvfrom.py</span><br><span style="color: hsl(0, 100%, 40%);">-+++ b/tests/pjsua/mod_recvfrom.py</span><br><span style="color: hsl(0, 100%, 40%);">-@@ -18,10 +18,20 @@ def test_func(test):</span><br><span style="color: hsl(0, 100%, 40%);">-              local_port=srv_port, </span><br><span style="color: hsl(0, 100%, 40%);">-              tcp=cfg_file.recvfrom_cfg.tcp)</span><br><span style="color: hsl(0, 100%, 40%);">- </span><br><span style="color: hsl(0, 100%, 40%);">-+    config = pjsua.get_config(cfg_file.recvfrom_cfg.pj_config)</span><br><span style="color: hsl(0, 100%, 40%);">-+    print "Config : " + config</span><br><span style="color: hsl(0, 100%, 40%);">-+</span><br><span style="color: hsl(0, 100%, 40%);">-     last_cseq = 0</span><br><span style="color: hsl(0, 100%, 40%);">-     last_method = ""</span><br><span style="color: hsl(0, 100%, 40%);">-     last_call_id = ""</span><br><span style="color: hsl(0, 100%, 40%);">-     for t in cfg_file.recvfrom_cfg.transaction:</span><br><span style="color: hsl(0, 100%, 40%);">-+        # Check if transaction requires configuration</span><br><span style="color: hsl(0, 100%, 40%);">-+        if t.pj_config != "":</span><br><span style="color: hsl(0, 100%, 40%);">-+            r = re.compile(t.pj_config, re.I)</span><br><span style="color: hsl(0, 100%, 40%);">-+            if r.search(config) == None:</span><br><span style="color: hsl(0, 100%, 40%);">-+                print "Configuration : " + t.pj_config + " not found, skipping"</span><br><span style="color: hsl(0, 100%, 40%);">-+                continue</span><br><span style="color: hsl(0, 100%, 40%);">-+</span><br><span style="color: hsl(0, 100%, 40%);">-         # Print transaction title</span><br><span style="color: hsl(0, 100%, 40%);">-         if t.title != "":</span><br><span style="color: hsl(0, 100%, 40%);">-             dlg.trace(t.title)</span><br><span style="color: hsl(0, 100%, 40%);">-diff --git a/tests/pjsua/run.py b/tests/pjsua/run.py</span><br><span style="color: hsl(0, 100%, 40%);">-index 35b00dec5..cffc38470 100644</span><br><span>---- a/tests/pjsua/run.py</span><br><span style="color: hsl(0, 100%, 40%);">-+++ b/tests/pjsua/run.py</span><br><span style="color: hsl(0, 100%, 40%);">-@@ -249,6 +249,10 @@ class Expect(threading.Thread):</span><br><span style="color: hsl(0, 100%, 40%);">-                     time.sleep(0.01)</span><br><span style="color: hsl(0, 100%, 40%);">-         return None</span><br><span style="color: hsl(0, 100%, 40%);">-                             </span><br><span style="color: hsl(0, 100%, 40%);">-+    def get_config(self, key_config):</span><br><span style="color: hsl(0, 100%, 40%);">-+        self.send("dd")</span><br><span style="color: hsl(0, 100%, 40%);">-+        line = self.expect(key_config);</span><br><span style="color: hsl(0, 100%, 40%);">-+        return line</span><br><span style="color: hsl(0, 100%, 40%);">- </span><br><span style="color: hsl(0, 100%, 40%);">-     def sync_stdout(self):</span><br><span style="color: hsl(0, 100%, 40%);">-         if not self.use_telnet:</span><br><span style="color: hsl(0, 100%, 40%);">-diff --git a/tests/pjsua/scripts-recvfrom/215_reg_good_multi_ok.py b/tests/pjsua/scripts-recvfrom/215_reg_good_multi_ok.py</span><br><span style="color: hsl(0, 100%, 40%);">-index a98b8b1d8..909ba229b 100644</span><br><span>---- a/tests/pjsua/scripts-recvfrom/215_reg_good_multi_ok.py</span><br><span style="color: hsl(0, 100%, 40%);">-+++ b/tests/pjsua/scripts-recvfrom/215_reg_good_multi_ok.py</span><br><span style="color: hsl(0, 100%, 40%);">-@@ -14,16 +14,27 @@ req1 = sip.RecvfromTransaction("Initial registration", 401,</span><br><span style="color: hsl(0, 100%, 40%);">-                             expect="SIP/2.0 401"</span><br><span style="color: hsl(0, 100%, 40%);">-                    )</span><br><span style="color: hsl(0, 100%, 40%);">- </span><br><span style="color: hsl(0, 100%, 40%);">--req2 = sip.RecvfromTransaction("Registration retry with auth", 200,</span><br><span style="color: hsl(0, 100%, 40%);">-+req2 = sip.RecvfromTransaction("Registration retry with auth (not allowed multiple auth)", 200,</span><br><span style="color: hsl(0, 100%, 40%);">-                            include=["REGISTER sip", </span><br><span style="color: hsl(0, 100%, 40%);">--                                     # Must only have 1 Auth hdr since #2887</span><br><span style="color: hsl(0, 100%, 40%);">-                                         "Authorization:", # [\\s\\S]+Authorization:"</span><br><span style="color: hsl(0, 100%, 40%);">-                                     "realm=\"python1\"", # "realm=\"python2\"", </span><br><span style="color: hsl(0, 100%, 40%);">-                                    "username=\"theuser1\"", # "username=\"theuser2\"", </span><br><span style="color: hsl(0, 100%, 40%);">-                                    "nonce=\"1234\"", # "nonce=\"6789\"", </span><br><span style="color: hsl(0, 100%, 40%);">-                                          "response="],</span><br><span style="color: hsl(0, 100%, 40%);">--                               expect="registration success"      </span><br><span style="color: hsl(0, 100%, 40%);">-+                          expect="registration success",</span><br><span style="color: hsl(0, 100%, 40%);">-+                               pj_config="PJSIP_AUTH_ALLOW_MULTIPLE_AUTH_HEADER.*: 0"</span><br><span style="color: hsl(0, 100%, 40%);">-                          )</span><br><span style="color: hsl(0, 100%, 40%);">- </span><br><span style="color: hsl(0, 100%, 40%);">-+req3 = sip.RecvfromTransaction("Registration retry with auth (allowed multiple auth)", 200,</span><br><span style="color: hsl(0, 100%, 40%);">-+                             include=["REGISTER sip", </span><br><span style="color: hsl(0, 100%, 40%);">-+                                     "Authorization:[\\s\\S]+Authorization:", # Must have 2 Auth hdrs</span><br><span style="color: hsl(0, 100%, 40%);">-+                                     "realm=\"python1\"", "realm=\"python2\"", </span><br><span style="color: hsl(0, 100%, 40%);">-+                                     "username=\"theuser1\"", "username=\"theuser2\"", </span><br><span style="color: hsl(0, 100%, 40%);">-+                                     "nonce=\"1234\"", "nonce=\"6789\"", </span><br><span style="color: hsl(0, 100%, 40%);">-+                                   "response="],</span><br><span style="color: hsl(0, 100%, 40%);">-+                               expect="registration success",</span><br><span style="color: hsl(0, 100%, 40%);">-+                               pj_config="PJSIP_AUTH_ALLOW_MULTIPLE_AUTH_HEADER.*: 1"             </span><br><span style="color: hsl(0, 100%, 40%);">-+                    )                          </span><br><span style="color: hsl(0, 100%, 40%);">-+</span><br><span style="color: hsl(0, 100%, 40%);">- recvfrom_cfg = sip.RecvfromCfg("Multiple authentication challenges",</span><br><span style="color: hsl(0, 100%, 40%);">--                         pjsua, [req1, req2])</span><br><span style="color: hsl(0, 100%, 40%);">-+                           pjsua, [req1, req2, req3], pj_config="PJSIP_AUTH_ALLOW_MULTIPLE_AUTH_HEADER")</span><br><span>diff --git a/third-party/pjproject/pjproject-2.12.1.tar.bz2.md5 b/third-party/pjproject/pjproject-2.12.1.tar.bz2.md5</span><br><span>deleted file mode 100644</span><br><span>index f43067a..0000000</span><br><span>--- a/third-party/pjproject/pjproject-2.12.1.tar.bz2.md5</span><br><span>+++ /dev/null</span><br><span>@@ -1 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-7f80ba8e1540853f959be6be7912a150  pjproject-2.12.1.tar.bz2</span><br><span>diff --git a/third-party/pjproject/pjproject-2.13.tar.bz2.md5 b/third-party/pjproject/pjproject-2.13.tar.bz2.md5</span><br><span>new file mode 100644</span><br><span>index 0000000..f6bfd8b</span><br><span>--- /dev/null</span><br><span>+++ b/third-party/pjproject/pjproject-2.13.tar.bz2.md5</span><br><span>@@ -0,0 +1 @@</span><br><span style="color: hsl(120, 100%, 40%);">+221bc1d38106b879fdbcf6ca9389b80b  pjproject-2.13.tar.bz2</span><br><span>diff --git a/third-party/versions.mak b/third-party/versions.mak</span><br><span>index a1eb9a5..5e2763e 100644</span><br><span>--- a/third-party/versions.mak</span><br><span>+++ b/third-party/versions.mak</span><br><span>@@ -1,2 +1,2 @@</span><br><span> JANSSON_VERSION = 2.14</span><br><span style="color: hsl(0, 100%, 40%);">-PJPROJECT_VERSION = 2.12.1</span><br><span style="color: hsl(120, 100%, 40%);">+PJPROJECT_VERSION = 2.13</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.asterisk.org/c/asterisk/+/19577">change 19577</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.asterisk.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.asterisk.org/c/asterisk/+/19577"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: asterisk </div>
<div style="display:none"> Gerrit-Branch: 18 </div>
<div style="display:none"> Gerrit-Change-Id: I87446459f5dad0c4c0da40dd20052b66463b63e7 </div>
<div style="display:none"> Gerrit-Change-Number: 19577 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Stanislav Abramenkov <stas.abramenkov@gmail.com> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>