diff --git a/contrib/src/pjproject/SHA512SUMS b/contrib/src/pjproject/SHA512SUMS index bf463cbedcd304f73587a4c098dba32660f9b201..3218e0cfcd81fefec137f63396d8395f6625193c 100644 --- a/contrib/src/pjproject/SHA512SUMS +++ b/contrib/src/pjproject/SHA512SUMS @@ -1 +1 @@ -48be9a80f90b1cb292c6eb0d071d889f6027f56bdd75095c510d9be2d6b5f1df5a6371617009371525ac5797dc61f5814dcc1cc11d14105e5a2576539f89293f pjproject-2.6.tar.bz2 \ No newline at end of file +3d355ffcbbeed62cfc711e574a987dc06043ccf4f2625820adffa89167022b8306fcee3fada71d3d45e7b902fc9c65ac8221de101cbafed25362a3921f702afd pjproject-2.7.2.tar.bz2 \ No newline at end of file diff --git a/contrib/src/pjproject/endianness.patch b/contrib/src/pjproject/endianness.patch deleted file mode 100644 index 84b9499448f65d588082fd4047906cb1295541dc..0000000000000000000000000000000000000000 --- a/contrib/src/pjproject/endianness.patch +++ /dev/null @@ -1,19 +0,0 @@ -diff --git a/pjlib/include/pj/config.h b/pjlib/include/pj/config.h -index 10f86fd..4ace1bc 100644 ---- a/pjlib/include/pj/config.h -+++ b/pjlib/include/pj/config.h -@@ -245,7 +245,13 @@ - # define PJ_M_NAME "armv4" - # define PJ_HAS_PENTIUM 0 - # if !PJ_IS_LITTLE_ENDIAN && !PJ_IS_BIG_ENDIAN --# error Endianness must be declared for this processor -+# if defined(__GNUC__) -+# include <endian.h> -+# define PJ_IS_LITTLE_ENDIAN __BYTE_ORDER__ == __LITTLE_ENDIAN__ -+# define PJ_IS_BIG_ENDIAN __BYTE_ORDER__ == __BIG_ENDIAN__ -+# else -+# error Endianness must be declared for this processor -+# endif - # endif - - #elif defined (PJ_M_POWERPC) || defined(__powerpc) || defined(__powerpc__) || \ diff --git a/contrib/src/pjproject/fix_base64.patch b/contrib/src/pjproject/fix_base64.patch deleted file mode 100644 index 70bdd5054df891fc421d848bd9375ca18c6864b5..0000000000000000000000000000000000000000 --- a/contrib/src/pjproject/fix_base64.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- a/pjlib-util/src/pjlib-util/base64.c 2017-05-03 10:29:07.200417026 -0400 -+++ b/pjlib-util/src/pjlib-util/base64.c 2017-05-03 10:28:30.344335390 -0400 -@@ -131,7 +131,7 @@ - - PJ_ASSERT_RETURN(input && out && out_len, PJ_EINVAL); - -- while (buf[len-1] == '=' && len) -+ while (len && buf[len-1] == '=') - --len; - - PJ_ASSERT_RETURN(*out_len >= PJ_BASE64_TO_BASE256_LEN(len), -@@ -161,7 +161,7 @@ - out[j++] = (pj_uint8_t)(((c[2] & 0x03)<<6) | (c[3] & 0x3F)); - } - -- pj_assert(j < *out_len); -+ pj_assert(j <= *out_len); - *out_len = j; - - return PJ_SUCCESS; diff --git a/contrib/src/pjproject/gnutls.patch b/contrib/src/pjproject/gnutls.patch index ff1e7f5cf60f4cb1a0b2217de62a3e0980e756c5..df9de5529aa6dedaa0c35ea54aab4dcedc0f7178 100644 --- a/contrib/src/pjproject/gnutls.patch +++ b/contrib/src/pjproject/gnutls.patch @@ -3272,7 +3272,7 @@ diff -ru a/pjlib/src/pj/ssl_sock_ossl.c b/pjlib/src/pj/ssl_sock_ossl.c diff -ru a/pjmedia/src/pjmedia/transport_srtp.c b/pjmedia/src/pjmedia/transport_srtp.c --- a/pjmedia/src/pjmedia/transport_srtp.c 2017-01-10 23:38:29.000000000 -0500 +++ b/pjmedia/src/pjmedia/transport_srtp.c 2017-06-08 13:43:29.727001721 -0400 -@@ -30,7 +30,8 @@ +@@ -31,7 +31,8 @@ #if defined(PJMEDIA_HAS_SRTP) && (PJMEDIA_HAS_SRTP != 0) @@ -3282,14 +3282,32 @@ diff -ru a/pjmedia/src/pjmedia/transport_srtp.c b/pjmedia/src/pjmedia/transport_ # include <openssl/rand.h> /* Suppress compile warning of OpenSSL deprecation (OpenSSL is deprecated -@@ -1147,7 +1148,8 @@ - key_ok = PJ_TRUE; +--- a/pjmedia/src/pjmedia/transport_srtp_sdes.c 2018-04-06 12:44:30.355264189 -0400 ++++ b/pjmedia/src/pjmedia/transport_srtp_sdes.c 2018-04-06 12:49:23.269309135 -0400 +@@ -31,6 +31,10 @@ + #endif --#if defined(PJ_HAS_SSL_SOCK) && (PJ_HAS_SSL_SOCK != 0) -+#if defined(PJ_HAS_SSL_SOCK) && PJ_HAS_SSL_SOCK != 0 && \ -+ defined(PJ_HAS_TLS_SOCK) && PJ_HAS_TLS_SOCK == 0 ++#if defined(PJ_HAS_TLS_SOCK) && (PJ_HAS_TLS_SOCK != 0) ++# include <gnutls/gnutls.h> ++# include <gnutls/crypto.h> ++#endif - /* Include OpenSSL libraries for MSVC */ - # ifdef _MSC_VER - + #include <pj/rand.h> + +@@ -122,7 +126,14 @@ + PJ_ETOOSMALL); + + do { +-#if defined(PJ_HAS_SSL_SOCK) && (PJ_HAS_SSL_SOCK != 0) ++#if defined(PJ_HAS_TLS_SOCK) && (PJ_HAS_TLS_SOCK != 0) ++ int err = gnutls_rnd(GNUTLS_RND_KEY, (unsigned char*)key, ++ crypto_suites[cs_idx].cipher_key_len); ++ if (err != 1) { ++ PJ_LOG(5,(THIS_FILE, "Failed generating random key")); ++ return PJMEDIA_ERRNO_FROM_LIBSRTP(1); ++ } ++#elif defined(PJ_HAS_SSL_SOCK) && (PJ_HAS_SSL_SOCK != 0) + int err = RAND_bytes((unsigned char*)key, + crypto_suites[cs_idx].cipher_key_len); + if (err != 1) { diff --git a/contrib/src/pjproject/intptr_t.patch b/contrib/src/pjproject/intptr_t.patch deleted file mode 100644 index 8994a991c08aa416939e9e2e785132131a561e73..0000000000000000000000000000000000000000 --- a/contrib/src/pjproject/intptr_t.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- pjproject/pjsip/src/pjsua2/endpoint.cpp.orig 2014-09-05 16:39:29.708512865 -0400 -+++ pjproject/pjsip/src/pjsua2/endpoint.cpp 2014-09-05 16:39:00.084513427 -0400 -@@ -489,7 +489,7 @@ - LogEntry entry; - entry.level = level; - entry.msg = string(data, len); -- entry.threadId = (long)pj_thread_this(); -+ entry.threadId = (intptr_t)pj_thread_this(); - entry.threadName = string(pj_thread_get_name(pj_thread_this())); - - ep.utilLogWrite(entry); diff --git a/contrib/src/pjproject/isblank.patch b/contrib/src/pjproject/isblank.patch deleted file mode 100644 index 98f6f1e827e695ce6d1608fd274d2fed8aa77325..0000000000000000000000000000000000000000 --- a/contrib/src/pjproject/isblank.patch +++ /dev/null @@ -1,8 +0,0 @@ ---- pjproject/pjlib/include/pj/compat/ctype.h 2016-10-06 16:39:29.708512865 -0400 -+++ pjproject/pjlib/include/pj/compat/ctype.h 2016-10-06 17:39:00.084513427 -0400 -@@ -43,5 +43,2 @@ - --#ifndef isblank --# define isblank(c) (c==' ' || c=='\t') --#endif - diff --git a/contrib/src/pjproject/notestsapps.patch b/contrib/src/pjproject/notestsapps.patch index 8bf957b3680a42aa7f05ff23b2031ae92f6b72bc..662f1dbf1630e69c90863bc98a9843f71a09769f 100644 --- a/contrib/src/pjproject/notestsapps.patch +++ b/contrib/src/pjproject/notestsapps.patch @@ -79,15 +79,6 @@ diff --git a/pjsip/build/Makefile b/pjsip/build/Makefile index d2a5c2a..7e2ec60 100644 --- a/pjsip/build/Makefile +++ b/pjsip/build/Makefile -@@ -140,7 +140,7 @@ export PJSUA2_LIB_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \ - account.o endpoint.o json.o persistent.o types.o \ - siptypes.o call.o presence.o media.o - export PJSUA2_LIB_CFLAGS += $(_CFLAGS) $(PJ_VIDEO_CFLAGS) --export PJSUA2_LIB_CXXFLAGS = $(PJSUA2_LIB_CFLAGS) -+export PJSUA2_LIB_CXXFLAGS = $(_CXXFLAGS) $(PJ_VIDEO_CFLAGS) - export PJSUA2_LIB_LDFLAGS += $(PJSUA_LIB_LDLIB) \ - $(PJSIP_UA_LDLIB) \ - $(PJSIP_SIMPLE_LDLIB) \ @@ -165,7 +165,6 @@ export PJSUA2_TEST_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \ export PJSUA2_TEST_CFLAGS += $(_CFLAGS) $(PJ_VIDEO_CFLAGS) export PJSUA2_TEST_CXXFLAGS = $(PJSUA2_LIB_CFLAGS) diff --git a/contrib/src/pjproject/rfc6062.patch b/contrib/src/pjproject/rfc6062.patch index 7fd6b7785655b38a37ad60034ab8ec094fce86bc..3f39f222abec5ef085483779ffc8e80ca8d57296 100644 --- a/contrib/src/pjproject/rfc6062.patch +++ b/contrib/src/pjproject/rfc6062.patch @@ -511,12 +511,7 @@ on behalf of Savoir-faire Linux. status = pj_turn_session_set_credential(turn_sock->sess, cred); if (status != PJ_SUCCESS) { sess_fail(turn_sock, "Error setting credential", status); -@@ -676,11 +757,35 @@ - return PJ_EINVALIDOP; - } - -- PJ_UNUSED_ARG(dst_addr); -- PJ_UNUSED_ARG(dst_addr_len); +@@ -684,2 +770,27 @@ + /* With TCP peer connection filter by address + * if packet is for the server or the peer + */ @@ -542,14 +537,9 @@ on behalf of Savoir-faire Linux. + } else { + asock = turn_sock->active_sock; + } - -- status = pj_activesock_send(turn_sock->active_sock, &turn_sock->send_key, -+ status = pj_activesock_send(asock, &turn_sock->send_key, - pkt, &len, 0); -+ - if (status != PJ_SUCCESS && status != PJ_EPENDING) { - show_err(turn_sock, "socket send()", status); - } +- status = pj_activesock_send(turn_sock->active_sock, ++ status = pj_activesock_send(asock, + &turn_sock->send_key, pkt, &len, 0); @@ -927,4 +1032,365 @@ } } diff --git a/contrib/src/pjproject/rules.mak b/contrib/src/pjproject/rules.mak index 285a081dfa369fda5ea1eb6fd365b2c41b312731..44911b4086c26f52482ddbaf8375772262137e05 100644 --- a/contrib/src/pjproject/rules.mak +++ b/contrib/src/pjproject/rules.mak @@ -1,5 +1,5 @@ # PJPROJECT -PJPROJECT_VERSION := 2.6 +PJPROJECT_VERSION := 2.7.2 PJPROJECT_URL := http://www.pjsip.org/release/$(PJPROJECT_VERSION)/pjproject-$(PJPROJECT_VERSION).tar.bz2 PJPROJECT_OPTIONS := --disable-oss \ @@ -62,16 +62,12 @@ $(TARBALLS)/pjproject-$(PJPROJECT_VERSION).tar.bz2: pjproject: pjproject-$(PJPROJECT_VERSION).tar.bz2 .sum-pjproject $(UNPACK) ifdef HAVE_WIN32 - #$(APPLY) $(SRC)/pjproject/intptr_t.patch $(APPLY) $(SRC)/pjproject/pj_win.patch endif - #$(APPLY) $(SRC)/pjproject/endianness.patch $(APPLY) $(SRC)/pjproject/gnutls.patch $(APPLY) $(SRC)/pjproject/notestsapps.patch - $(APPLY) $(SRC)/pjproject/fix_base64.patch ifdef HAVE_ANDROID $(APPLY) $(SRC)/pjproject/android.patch - $(APPLY) $(SRC)/pjproject/isblank.patch endif $(APPLY) $(SRC)/pjproject/ipv6.patch $(APPLY) $(SRC)/pjproject/ice_config.patch diff --git a/src/sip/sipvoiplink.cpp b/src/sip/sipvoiplink.cpp index 214c47028d1f429bdc5e103d16b738d906fea373..31f114b93414b14fa94a19219ec5da3243a40ba5 100644 --- a/src/sip/sipvoiplink.cpp +++ b/src/sip/sipvoiplink.cpp @@ -567,6 +567,9 @@ SIPVoIPLink::SIPVoIPLink() : pool_(nullptr, pj_pool_release) outgoing_request_forked_cb, transaction_state_changed_cb, sdp_request_offer_cb, +#if PJ_VERSION_NUM >= (2 << 24 | 7 << 16) + nullptr /* on_rx_offer2 */, +#endif #if PJ_VERSION_NUM > (2 << 24 | 1 << 16) nullptr /* on_rx_reinvite */, #endif @@ -1334,7 +1337,11 @@ SIPVoIPLink::findLocalAddressFromSTUN(pjsip_transport* transport, pj_sockaddr_in mapped_addr; pj_sock_t sipSocket = pjsip_udp_transport_get_socket(transport); - const pjstun_setting stunOpt = {PJ_TRUE, *stunServerName, stunPort, + const pjstun_setting stunOpt = {PJ_TRUE, +#if PJ_VERSION_NUM > (2 << 24 | 7 << 16) + localIp.getFamily(), +#endif + *stunServerName, stunPort, *stunServerName, stunPort}; const pj_status_t stunStatus = pjstun_get_mapped_addr2(&cp_.factory, &stunOpt, 1,