aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuido Falsi <madpilot@FreeBSD.org>2019-05-03 14:02:40 +0000
committerGuido Falsi <madpilot@FreeBSD.org>2019-05-03 14:02:40 +0000
commit97890f60b1bc4f31dbf01dd731e921bdf9a5ed44 (patch)
treee73b6b5013b09ff3cd146f913a33c7492f17465d
parentee6f1a2aab89d9ba0fdb337d4ed5ceec8688b8fc (diff)
downloadports-97890f60b1bc4f31dbf01dd731e921bdf9a5ed44.tar.gz
ports-97890f60b1bc4f31dbf01dd731e921bdf9a5ed44.zip
MFH: r500705 r500724
- Add to pjsip a customized config_site.h file with values suggested by the asterisk project. This allows WebRTC to work correctly in asterisk out of the box [1] - Also import some patches to pjsip from the asterisk project. These patches have already been integrated in upstream pjsip development sources [2] Reported by: zhenya1993lzn@yandex.ru [1] Obtained from: https://github.com/asterisk/asterisk/tree/16.3/third-party/pjproject/patches [2] Bump PORTREVISION on asterisk ports after r500705 changes to pjsip. Crashes have been reported, which are fixed by reinstallation. Reported by: Christoph Moench-Tegeder <cmt@burggraben.net> Approved by: ports-secteam (joneum, miwi)
Notes
Notes: svn path=/branches/2019Q2/; revision=500733
-rw-r--r--net/asterisk13/Makefile1
-rw-r--r--net/asterisk15/Makefile1
-rw-r--r--net/asterisk16/Makefile1
-rw-r--r--net/pjsip/Makefile5
-rw-r--r--net/pjsip/files/config_site.h40
-rw-r--r--net/pjsip/files/patch-0010-outgoing_connected_line_method_update33
-rw-r--r--net/pjsip/files/patch-0020-Fixed-2172-Avoid-double-reference-counter-decrements42
7 files changed, 121 insertions, 2 deletions
diff --git a/net/asterisk13/Makefile b/net/asterisk13/Makefile
index a644fb7391a1..1500bbd7b019 100644
--- a/net/asterisk13/Makefile
+++ b/net/asterisk13/Makefile
@@ -2,6 +2,7 @@
PORTNAME= asterisk
PORTVERSION= 13.25.0
+PORTREVISION= 1
CATEGORIES= net
MASTER_SITES= https://downloads.asterisk.org/pub/telephony/%SUBDIR%/:DEFAULT,g729
MASTER_SITE_SUBDIR= asterisk/ \
diff --git a/net/asterisk15/Makefile b/net/asterisk15/Makefile
index 5cb17c98e49a..a85e1efa4250 100644
--- a/net/asterisk15/Makefile
+++ b/net/asterisk15/Makefile
@@ -2,6 +2,7 @@
PORTNAME= asterisk
PORTVERSION= 15.7.2
+PORTREVISION= 1
CATEGORIES= net
MASTER_SITES= https://downloads.asterisk.org/pub/telephony/%SUBDIR%/:DEFAULT,g729
MASTER_SITE_SUBDIR= asterisk/ \
diff --git a/net/asterisk16/Makefile b/net/asterisk16/Makefile
index 1cf96bc65808..03a77e9db99f 100644
--- a/net/asterisk16/Makefile
+++ b/net/asterisk16/Makefile
@@ -2,6 +2,7 @@
PORTNAME= asterisk
PORTVERSION= 16.2.1
+PORTREVISION= 1
CATEGORIES= net
MASTER_SITES= https://downloads.asterisk.org/pub/telephony/%SUBDIR%/:DEFAULT,g729
MASTER_SITE_SUBDIR= asterisk/ \
diff --git a/net/pjsip/Makefile b/net/pjsip/Makefile
index 6d027d9707a5..b240c6d090d2 100644
--- a/net/pjsip/Makefile
+++ b/net/pjsip/Makefile
@@ -2,6 +2,7 @@
PORTNAME= pjsip
PORTVERSION= 2.8
+PORTREVISION= 1
CATEGORIES= net
MASTER_SITES= http://www.pjsip.org/release/${PORTVERSION}/
DISTNAME= pjproject-${DISTVERSION}
@@ -96,8 +97,8 @@ post-patch:
@${REINPLACE_CMD} -e 's/$$(APP_LDFLAGS) \{0,1\}//' \
-e 's/$$(OS_LDFLAGS)/$$(APP_LDFLAGS) &/' \
${WRKSRC}/*/build/Makefile
- @${ECHO} "#include <sys/select.h>" > ${WRKSRC}/pjlib/include/pj/config_site.h
- @${ECHO} "#define PJ_IOQUEUE_MAX_HANDLES (FD_SETSIZE)" >> ${WRKSRC}/pjlib/include/pj/config_site.h
+ @${CP} ${FILESDIR}/config_site.h \
+ ${WRKSRC}/pjlib/include/pj/config_site.h
post-install-SHARED-on:
${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/*.so
diff --git a/net/pjsip/files/config_site.h b/net/pjsip/files/config_site.h
new file mode 100644
index 000000000000..439d7791822b
--- /dev/null
+++ b/net/pjsip/files/config_site.h
@@ -0,0 +1,40 @@
+/*
+ * Custom options imported from asterisk provided customizations.
+ *
+ * $FreeBSD$
+ */
+
+#include <sys/select.h>
+
+#define PJ_MAX_HOSTNAME (256)
+#define PJSIP_MAX_URL_SIZE (512)
+#define PJ_IOQUEUE_MAX_HANDLES (FD_SETSIZE)
+
+#define PJ_SCANNER_USE_BITWISE 0
+
+#define PJ_LOG_MAX_LEVEL 6
+
+#define PJSIP_MAX_TSX_COUNT ((64*1024)-1)
+#define PJSIP_MAX_DIALOG_COUNT ((64*1024)-1)
+#define PJSIP_UDP_SO_SNDBUF_SIZE (512*1024)
+#define PJSIP_UDP_SO_RCVBUF_SIZE (512*1024)
+
+#define PJSIP_MAX_PKT_LEN 32000
+
+/* Defaults too low for WebRTC */
+#define PJ_ICE_MAX_CAND 32
+#define PJ_ICE_MAX_CHECKS (PJ_ICE_MAX_CAND * PJ_ICE_MAX_CAND)
+
+/* Increase limits to allow more formats */
+#define PJMEDIA_MAX_SDP_FMT 64
+#define PJMEDIA_MAX_SDP_BANDW 4
+#define PJMEDIA_MAX_SDP_ATTR (PJMEDIA_MAX_SDP_FMT*2 + 4)
+#define PJMEDIA_MAX_SDP_MEDIA 16
+
+/*
+ * Turn off the periodic sending of CRLNCRLN. Default is on (90 seconds),
+ * which conflicts with the global section's keep_alive_interval option in
+ * pjsip.conf in asterisk.
+ */
+#define PJSIP_TCP_KEEP_ALIVE_INTERVAL 0
+#define PJSIP_TLS_KEEP_ALIVE_INTERVAL 0
diff --git a/net/pjsip/files/patch-0010-outgoing_connected_line_method_update b/net/pjsip/files/patch-0010-outgoing_connected_line_method_update
new file mode 100644
index 000000000000..5876715b73b4
--- /dev/null
+++ b/net/pjsip/files/patch-0010-outgoing_connected_line_method_update
@@ -0,0 +1,33 @@
+diff --git a/pjsip/src/pjsip-ua/sip_inv.c b/pjsip/src/pjsip-ua/sip_inv.c
+--- pjsip/src/pjsip-ua/sip_inv.c
++++ pjsip/src/pjsip-ua/sip_inv.c
+@@ -4185,6 +4185,29 @@
+
+ if (tsx->status_code != 100) {
+
++ if (inv->role == PJSIP_ROLE_UAC) {
++ pjsip_rx_data *rdata = e->body.tsx_state.src.rdata;
++ pjsip_allow_hdr *allow = NULL;
++ pjsip_msg *msg = rdata->msg_info.msg;
++
++ if (msg) {
++ allow = (pjsip_allow_hdr*) pjsip_msg_find_hdr(msg, PJSIP_H_ALLOW,
++ NULL);
++ }
++ if (allow) {
++ unsigned i;
++ const pj_str_t STR_UPDATE = { "UPDATE", 6 };
++
++ for (i=0; i<allow->count; ++i) {
++ if (pj_stricmp(&allow->values[i], &STR_UPDATE)==0) {
++ /* UPDATE is present in Allow */
++ inv->options |= PJSIP_INV_SUPPORT_UPDATE;
++ break;
++ }
++ }
++ }
++ }
++
+ if (dlg->remote.info->tag.slen)
+ inv_set_state(inv, PJSIP_INV_STATE_EARLY, e);
+
diff --git a/net/pjsip/files/patch-0020-Fixed-2172-Avoid-double-reference-counter-decrements b/net/pjsip/files/patch-0020-Fixed-2172-Avoid-double-reference-counter-decrements
new file mode 100644
index 000000000000..9f31bce1c142
--- /dev/null
+++ b/net/pjsip/files/patch-0020-Fixed-2172-Avoid-double-reference-counter-decrements
@@ -0,0 +1,42 @@
+From 1fed39fe1488abd654a5488b5e6ad59b4b973331 Mon Sep 17 00:00:00 2001
+From: nanang <nanang@localhost>
+Date: Tue, 8 Jan 2019 09:07:47 +0000
+Subject: [PATCH 1/5] Fixed #2172: Avoid double reference counter decrements in
+ timer in the scenario of race condition between pj_timer_heap_cancel() and
+ pj_timer_heap_poll().
+
+---
+ pjlib/src/pj/timer.c | 17 ++++++++++-------
+ 1 file changed, 10 insertions(+), 7 deletions(-)
+
+diff --git a/pjlib/src/pj/timer.c b/pjlib/src/pj/timer.c
+index 90a95e37b..7bae084ef 100644
+--- pjlib/src/pj/timer.c
++++ pjlib/src/pj/timer.c
+@@ -580,13 +580,16 @@ static int cancel_timer(pj_timer_heap_t *ht,
+
+ lock_timer_heap(ht);
+ count = cancel(ht, entry, flags | F_DONT_CALL);
+- if (flags & F_SET_ID) {
+- entry->id = id_val;
+- }
+- if (entry->_grp_lock) {
+- pj_grp_lock_t *grp_lock = entry->_grp_lock;
+- entry->_grp_lock = NULL;
+- pj_grp_lock_dec_ref(grp_lock);
++ if (count > 0) {
++ /* Timer entry found & cancelled */
++ if (flags & F_SET_ID) {
++ entry->id = id_val;
++ }
++ if (entry->_grp_lock) {
++ pj_grp_lock_t *grp_lock = entry->_grp_lock;
++ entry->_grp_lock = NULL;
++ pj_grp_lock_dec_ref(grp_lock);
++ }
+ }
+ unlock_timer_heap(ht);
+
+--
+2.20.1
+