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)
This commit is contained in:
parent
ee6f1a2aab
commit
97890f60b1
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/branches/2019Q2/; revision=500733
@ -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/ \
|
||||
|
@ -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/ \
|
||||
|
@ -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/ \
|
||||
|
@ -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
|
||||
|
40
net/pjsip/files/config_site.h
Normal file
40
net/pjsip/files/config_site.h
Normal file
@ -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
|
@ -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);
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user