diff options
author | Guido Falsi <madpilot@FreeBSD.org> | 2019-05-03 14:02:40 +0000 |
---|---|---|
committer | Guido Falsi <madpilot@FreeBSD.org> | 2019-05-03 14:02:40 +0000 |
commit | 97890f60b1bc4f31dbf01dd731e921bdf9a5ed44 (patch) | |
tree | e73b6b5013b09ff3cd146f913a33c7492f17465d | |
parent | ee6f1a2aab89d9ba0fdb337d4ed5ceec8688b8fc (diff) | |
download | ports-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/Makefile | 1 | ||||
-rw-r--r-- | net/asterisk15/Makefile | 1 | ||||
-rw-r--r-- | net/asterisk16/Makefile | 1 | ||||
-rw-r--r-- | net/pjsip/Makefile | 5 | ||||
-rw-r--r-- | net/pjsip/files/config_site.h | 40 | ||||
-rw-r--r-- | net/pjsip/files/patch-0010-outgoing_connected_line_method_update | 33 | ||||
-rw-r--r-- | net/pjsip/files/patch-0020-Fixed-2172-Avoid-double-reference-counter-decrements | 42 |
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 + |