MT#65646 Remove already applied patches and refresh the rest

- removed patch: `pvheaders_memleak.patch`
  is obsolete with the upstream commit 9fae7141abd0f52d717bf37c742993ff578e7d95

- removed patch: `siputils_tel2sip_check_uri.patch`
  is obsolete with the upstream commit e4d57acc23bc45f86ff60833a6d3e392274608b6
  (This one indeed was missed before in the series file when adding another patch)

- removed patch: `redis_dbase_no_error_msg.patch`
  is obsolete with the upstream commit 1f489b057e03446c9b4b522c4ec9d6ab7cb792e3

- adapted patch `rtpengine_stats_update.patch`
mr26.2
Donat Zenichev 2 weeks ago
parent dc720d9130
commit 1a6e3d3afd

@ -7,7 +7,7 @@ Subject: no_lib64_on_64_bits
1 file changed, 1 insertion(+), 9 deletions(-)
diff --git a/src/Makefile.defs b/src/Makefile.defs
index 0ed3b7d..2ce2b2c 100644
index 6ec68e2..5aafd05 100644
--- a/src/Makefile.defs
+++ b/src/Makefile.defs
@@ -458,15 +458,7 @@ endif

@ -43,14 +43,11 @@ sipwise/http_client-add-method-parameter-to-http_connect.patch
sipwise/lost-add-method-parameter-to-http_connect-calls.patch
sipwise/usrloc-don-t-synchronize-on-destroy-for-DB_ONLY.patch
sipwise/presence_offline_cleanup.patch
sipwise/siputils_tel2sip_check_uri.patch
sipwise/pvheaders_memleak.patch
### active development
sipwise/dlg_get_var_error_more_verbose_on_dlg
sipwise/tlsa_dynamic_linking_libz.patch
sipwise/permissions_consider_db_mode_when_rpc_reload.patch
sipwise/dialog_w_dlg_get_var_no_error_msg.patch
sipwise/redis_dbase_no_error_msg.patch
sipwise/rtpengine_stats_update.patch
### Don't just put stuff in any order

@ -174,10 +174,10 @@ index 778a399..a2f0f8d 100644
SR_KEMIP_XVAL, ki_dlg_get_var,
{ SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_STR,
diff --git a/src/modules/dialog/dlg_hash.c b/src/modules/dialog/dlg_hash.c
index 492cad9..78aae53 100644
index 549efbb..e7f7ae1 100644
--- a/src/modules/dialog/dlg_hash.c
+++ b/src/modules/dialog/dlg_hash.c
@@ -910,6 +910,49 @@ static inline struct dlg_cell *internal_get_dlg(unsigned int h_entry,
@@ -913,6 +913,49 @@ static inline struct dlg_cell *internal_get_dlg(unsigned int h_entry,
return 0;
}
@ -227,7 +227,7 @@ index 492cad9..78aae53 100644
/*!
* \brief Get dialog that correspond to CallId, From Tag and To Tag
@@ -946,6 +989,35 @@ struct dlg_cell *get_dlg(str *callid, str *ftag, str *ttag, unsigned int *dir)
@@ -949,6 +992,35 @@ struct dlg_cell *get_dlg(str *callid, str *ftag, str *ttag, unsigned int *dir)
return dlg;
}

@ -1,3 +1,13 @@
From: Sipwise Development Team <support@sipwise.com>
Date: Wed, 5 Aug 2026 14:50:12 +0200
Subject: dialog_w_dlg_get_var_no_error_msg
---
src/modules/dialog/dialog.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/modules/dialog/dialog.c b/src/modules/dialog/dialog.c
index a35dd11..5519f33 100644
--- a/src/modules/dialog/dialog.c
+++ b/src/modules/dialog/dialog.c
@@ -2159,7 +2159,7 @@ static int w_dlg_get_var(

@ -5,17 +5,17 @@ Subject: kamctl: TMPDIR config
* allow choose where to store temporal files
* use g+w for temporal fifo file
---
utils/kamctl/kamctl | 8 +-
utils/kamctl/kamctl.rpcfifo | 14 +-
utils/kamctl/kamdbctl | 2 +-
utils/kamctl/kamdbctl.oracle | 2 +-
5 files changed, 637 insertions(+), 8 deletions(-)
utils/kamctl/kamctl | 8 ++++++--
utils/kamctl/kamctl.rpcfifo | 14 ++++++++++----
utils/kamctl/kamdbctl | 2 +-
utils/kamctl/kamdbctl.oracle | 2 +-
4 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/utils/kamctl/kamctl b/utils/kamctl/kamctl
index e0a339c..92c5343 100755
index f74954a..e097df8 100755
--- a/utils/kamctl/kamctl
+++ b/utils/kamctl/kamctl
@@ -80,6 +80,10 @@ if [ -z "$STARTUP_CONFIG_FILE" ]; then
@@ -98,6 +98,10 @@ if [ -z "$STARTUP_CONFIG_FILE" ]; then
STARTUP_CONFIG_FILE="kamailio.cfg"
fi
@ -26,7 +26,7 @@ index e0a339c..92c5343 100755
##### ------------------------------------------------ #####
### load base functions
#
@@ -2971,7 +2975,7 @@ kamailio_trap() {
@@ -2989,7 +2993,7 @@ kamailio_trap() {
exit
fi
DATE=`/bin/date +%Y%m%d_%H%M%S`
@ -35,7 +35,7 @@ index e0a339c..92c5343 100755
minfo "Trap file: $LOG_FILE"
ctl_cmd_run core.psx > $LOG_FILE
echo -n "Trapping Kamailio with gdb: "
@@ -2998,7 +3002,7 @@ kamailio_pstrap() {
@@ -3016,7 +3020,7 @@ kamailio_pstrap() {
exit
fi
DATE=`/bin/date +%Y%m%d_%H%M%S`
@ -45,10 +45,10 @@ index e0a339c..92c5343 100755
ps axw | grep kamailio | grep -v grep | grep -v kamctl | sort > $LOG_FILE
echo "" >> $LOG_FILE
diff --git a/utils/kamctl/kamctl.rpcfifo b/utils/kamctl/kamctl.rpcfifo
index f7408b5..478864a 100644
index b8cdaee..ec07995 100644
--- a/utils/kamctl/kamctl.rpcfifo
+++ b/utils/kamctl/kamctl.rpcfifo
@@ -30,6 +30,10 @@ if [ -z "$RPCFIFOPATH" ]; then
@@ -48,6 +48,10 @@ if [ -z "$RPCFIFOPATH" ]; then
fi
fi
@ -59,7 +59,7 @@ index f7408b5..478864a 100644
#
##### ----------------------------------------------- #####
### functions
@@ -79,7 +83,7 @@ rpc_cmd()
@@ -97,7 +101,7 @@ rpc_cmd()
exit 1
fi
name=kamailio_receiver_$$
@ -68,7 +68,7 @@ index f7408b5..478864a 100644
# delete existing fifo file with same name
if test -p $path; then
rm -f $path
@@ -98,7 +102,8 @@ rpc_cmd()
@@ -116,7 +120,8 @@ rpc_cmd()
merr "error opening read fifo $path"
exit 3
fi
@ -78,7 +78,7 @@ index f7408b5..478864a 100644
fi
PARAMEVAL="no"
@@ -189,7 +194,7 @@ CTLCMDPRINT=rpc_cmd_print
@@ -207,7 +212,7 @@ CTLCMDPRINT=rpc_cmd_print
rpc_kamailio_monitor() {
name=kamailio_receiver_$$
@ -87,7 +87,7 @@ index f7408b5..478864a 100644
# delete existing fifo file with same name
if test -p $path; then
rm -f $path
@@ -205,7 +210,8 @@ rpc_kamailio_monitor() {
@@ -223,7 +228,8 @@ rpc_kamailio_monitor() {
merr "monitor - error opening read fifo $path"
exit 1
fi
@ -98,10 +98,10 @@ index f7408b5..478864a 100644
trap "rm $path; clear; echo monitor ^C-ed; exit 1" 2
attempt=0
diff --git a/utils/kamctl/kamdbctl b/utils/kamctl/kamdbctl
index 9c490f8..c7d6fc8 100755
index 939365d..69352ac 100755
--- a/utils/kamctl/kamdbctl
+++ b/utils/kamctl/kamdbctl
@@ -294,7 +294,7 @@ case $1 in
@@ -312,7 +312,7 @@ case $1 in
cp $DB_PATH $1
exit $?
fi
@ -111,10 +111,10 @@ index 9c490f8..c7d6fc8 100755
ret=$?
if [ "$ret" -ne 0 ]; then
diff --git a/utils/kamctl/kamdbctl.oracle b/utils/kamctl/kamdbctl.oracle
index e6de52f..f1b95c5 100644
index 7bd4722..8c1f700 100644
--- a/utils/kamctl/kamdbctl.oracle
+++ b/utils/kamctl/kamdbctl.oracle
@@ -45,7 +45,7 @@ if [ -z "$KAMAILIO_ORASEL" ] ; then
@@ -62,7 +62,7 @@ if [ -z "$KAMAILIO_ORASEL" ] ; then
fi
#################################################################

@ -9,7 +9,7 @@ Subject: lcr: add stats per gw
3 files changed, 828 insertions(+)
diff --git a/src/modules/lcr/lcr_mod.c b/src/modules/lcr/lcr_mod.c
index 6bf2cea..66dbcdc 100644
index 015719e..2bcf455 100644
--- a/src/modules/lcr/lcr_mod.c
+++ b/src/modules/lcr/lcr_mod.c
@@ -68,6 +68,7 @@
@ -281,7 +281,7 @@ index 6bf2cea..66dbcdc 100644
LM_DBG("inserted gw <%u, %.*s, %.*s> at index %u\n", gw_id, gw_name_len,
gw_name, gws[i].uri_len, gws[i].uri, i);
return 1;
@@ -2338,6 +2551,65 @@ done:
@@ -2348,6 +2561,65 @@ done:
return j;
}
@ -347,7 +347,7 @@ index 6bf2cea..66dbcdc 100644
/*
* Load info of matching GWs into gw_uri_avps
@@ -3797,3 +4069,55 @@ int mod_register(char *path, int *dlflags, void *p1, void *p2)
@@ -3817,3 +4089,55 @@ int mod_register(char *path, int *dlflags, void *p1, void *p2)
sr_kemi_modules_add(sr_kemi_lcr_exports);
return 0;
}

@ -10,7 +10,7 @@ but will sort them first before stopping
2 files changed, 40 insertions(+), 3 deletions(-)
diff --git a/src/modules/lcr/lcr_mod.c b/src/modules/lcr/lcr_mod.c
index 703b5a2..6bf2cea 100644
index c2a6f05..015719e 100644
--- a/src/modules/lcr/lcr_mod.c
+++ b/src/modules/lcr/lcr_mod.c
@@ -210,6 +210,10 @@ str mtree_param = {"lcr", 3};
@ -32,7 +32,7 @@ index 703b5a2..6bf2cea 100644
{0, 0, 0}
};
@@ -2283,6 +2288,8 @@ int load_gws_dummy(int lcr_id, str *ruri_user, str *from_uri, str *request_uri,
@@ -2293,6 +2298,8 @@ int load_gws_dummy(int lcr_id, str *ruri_user, str *from_uri, str *request_uri,
matched_gws[gw_index].priority = t->priority;
matched_gws[gw_index].weight = t->weight * (kam_rand() >> 8);
matched_gws[gw_index].duplicate = 0;
@ -41,7 +41,7 @@ index 703b5a2..6bf2cea 100644
LM_DBG("added matched_gws[%d]=[%u, %u, %u, %u]\n", gw_index,
t->gw_index, pl->prefix_len, t->priority,
matched_gws[gw_index].weight);
@@ -2290,8 +2297,10 @@ int load_gws_dummy(int lcr_id, str *ruri_user, str *from_uri, str *request_uri,
@@ -2300,8 +2307,10 @@ int load_gws_dummy(int lcr_id, str *ruri_user, str *from_uri, str *request_uri,
skip_gw:
t = t->next;
}
@ -53,7 +53,7 @@ index 703b5a2..6bf2cea 100644
next:
rule = rule->next;
@@ -2318,6 +2327,11 @@ done:
@@ -2328,6 +2337,11 @@ done:
if(matched_gws[i].duplicate == 1)
continue;
gw_indexes[j] = matched_gws[i].gw_index;
@ -65,7 +65,7 @@ index 703b5a2..6bf2cea 100644
j++;
}
@@ -2333,7 +2347,7 @@ static int ki_load_gws_furi(
@@ -2343,7 +2357,7 @@ static int ki_load_gws_furi(
{
str *request_uri;
int i, j, rc;
@ -74,7 +74,7 @@ index 703b5a2..6bf2cea 100644
int_str val;
pcre2_match_data *pcre_md = NULL;
struct matched_gw_info matched_gws[MAX_NO_OF_GWS + 1];
@@ -2470,6 +2484,8 @@ static int ki_load_gws_furi(
@@ -2490,6 +2504,8 @@ static int ki_load_gws_furi(
matched_gws[gw_index].priority = t->priority;
matched_gws[gw_index].weight = t->weight * (kam_rand() >> 8);
matched_gws[gw_index].duplicate = 0;
@ -83,7 +83,7 @@ index 703b5a2..6bf2cea 100644
LM_DBG("added matched_gws[%d]=[%u, %u, %u, %u]\n", gw_index,
t->gw_index, pl->prefix_len, t->priority,
matched_gws[gw_index].weight);
@@ -2478,8 +2494,10 @@ static int ki_load_gws_furi(
@@ -2498,8 +2514,10 @@ static int ki_load_gws_furi(
t = t->next;
}
/* Do not look further if this matching rule was stopper */
@ -95,7 +95,7 @@ index 703b5a2..6bf2cea 100644
next:
rule = rule->next;
@@ -2504,6 +2522,24 @@ done:
@@ -2524,6 +2542,24 @@ done:
}
}

@ -7,7 +7,7 @@ Subject: lcr_read_id
1 file changed, 72 insertions(+), 19 deletions(-)
diff --git a/src/modules/lcr/lcr_mod.c b/src/modules/lcr/lcr_mod.c
index 66dbcdc..4ab536c 100644
index 2bcf455..707406c 100644
--- a/src/modules/lcr/lcr_mod.c
+++ b/src/modules/lcr/lcr_mod.c
@@ -175,6 +175,7 @@ static char *gw_uri_avp_param = NULL;
@ -109,7 +109,7 @@ index 66dbcdc..4ab536c 100644
value.s = (char *)&(encoded_value[0]);
val.s = value;
add_avp(gw_uri_avp_type | AVP_VAL_STR, gw_uri_avp, val);
@@ -2540,9 +2571,9 @@ done:
@@ -2550,9 +2581,9 @@ done:
if(matched_gws[i].duplicate == 1)
continue;
gw_indexes[j] = matched_gws[i].gw_index;
@ -121,7 +121,7 @@ index 66dbcdc..4ab536c 100644
i = -1;
}
j++;
@@ -2574,28 +2605,36 @@ void reset_gw_stats(struct gw_info *gw)
@@ -2584,28 +2615,36 @@ void reset_gw_stats(struct gw_info *gw)
gw->rcv_gw_rpl = 0;
gw->rcv_gw_rpl_invite = 0;
@ -166,7 +166,7 @@ index 66dbcdc..4ab536c 100644
gw->rcv_gw_rpls_1xx = 0;
gw->rcv_gw_rpls_18x = 0;
@@ -2807,7 +2846,7 @@ done:
@@ -2827,7 +2866,7 @@ done:
} else if(matched_gws[i].stopper == 1) {
stopper_flag = 1;
LM_DBG("lcr_rule[%d] has stopper, skip the rest\n",
@ -175,7 +175,7 @@ index 66dbcdc..4ab536c 100644
}
}
}
@@ -2906,7 +2945,7 @@ static int load_gws(struct sip_msg *_m, int argc, action_u_t argv[])
@@ -2926,7 +2965,7 @@ static int load_gws(struct sip_msg *_m, int argc, action_u_t argv[])
static int generate_uris(struct sip_msg *_m, char *r_uri, str *r_uri_user,
unsigned int *r_uri_len, char *dst_uri, unsigned int *dst_uri_len,
struct ip_addr *addr, unsigned int *gw_index, unsigned int *flags,
@ -184,7 +184,7 @@ index 66dbcdc..4ab536c 100644
{
int_str gw_uri_val;
struct usr_avp *gu_avp;
@@ -2932,7 +2971,7 @@ static int generate_uris(struct sip_msg *_m, char *r_uri, str *r_uri_user,
@@ -2952,7 +2991,7 @@ static int generate_uris(struct sip_msg *_m, char *r_uri, str *r_uri_user,
decode_avp_value(gw_uri_val.s.s, gw_index, &scheme, &strip, &prefix,
&tmp_tag, addr, &hostname, &port, &uparams, &transport, flags,
@ -193,7 +193,7 @@ index 66dbcdc..4ab536c 100644
if(addr->af != 0) {
addr_str.s = ip_addr2a(addr);
@@ -3291,7 +3330,7 @@ static int ki_next_gw(sip_msg_t *_m)
@@ -3311,7 +3350,7 @@ static int ki_next_gw(sip_msg_t *_m)
int rval;
str uri_str, tag_str;
char tag[MAX_TAG_LEN];
@ -202,7 +202,7 @@ index 66dbcdc..4ab536c 100644
char r_uri[MAX_URI_LEN], dst_uri[MAX_URI_LEN];
struct ip_addr addr;
@@ -3313,7 +3352,8 @@ static int ki_next_gw(sip_msg_t *_m)
@@ -3333,7 +3372,8 @@ static int ki_next_gw(sip_msg_t *_m)
return -1;
}
if(generate_uris(_m, r_uri, &(_m->parsed_uri.user), &r_uri_len, dst_uri,
@ -212,7 +212,7 @@ index 66dbcdc..4ab536c 100644
<= 0) {
return -1;
}
@@ -3332,7 +3372,8 @@ static int ki_next_gw(sip_msg_t *_m)
@@ -3352,7 +3392,8 @@ static int ki_next_gw(sip_msg_t *_m)
* and Destination URIs. */
if(generate_uris(_m, r_uri, &(ruri_user_val.s), &r_uri_len, dst_uri,
@ -222,7 +222,7 @@ index 66dbcdc..4ab536c 100644
<= 0) {
return -1;
}
@@ -3365,6 +3406,13 @@ static int ki_next_gw(sip_msg_t *_m)
@@ -3385,6 +3426,13 @@ static int ki_next_gw(sip_msg_t *_m)
LM_DBG("added flags_avp <%u>\n", (unsigned int)val.n);
}
@ -236,7 +236,7 @@ index 66dbcdc..4ab536c 100644
/* Set tag_avp */
if(tag_avp_param) {
val.s = tag_str;
@@ -3443,6 +3491,11 @@ static int do_from_gw(struct sip_msg *_m, unsigned int lcr_id,
@@ -3463,6 +3511,11 @@ static int do_from_gw(struct sip_msg *_m, unsigned int lcr_id,
add_avp(flags_avp_type, flags_avp, val);
LM_DBG("added flags_avp <%u>\n", (unsigned int)val.n);
}

@ -1,6 +1,16 @@
From: Sipwise Development Team <support@sipwise.com>
Date: Wed, 5 Aug 2026 14:50:12 +0200
Subject: permissions_consider_db_mode_when_rpc_reload
---
src/modules/permissions/rpc.c | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/src/modules/permissions/rpc.c b/src/modules/permissions/rpc.c
index 7646ee0..8ff681c 100644
--- a/src/modules/permissions/rpc.c
+++ b/src/modules/permissions/rpc.c
@@ -60,12 +60,19 @@ void rpc_trusted_reload(rpc_t *rpc, void
@@ -60,12 +60,19 @@ void rpc_trusted_reload(rpc_t *rpc, void *c)
return;
}

@ -7,10 +7,10 @@ Subject: pv_trans_eval_uri
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/modules/pv/pv_trans.c b/src/modules/pv/pv_trans.c
index 9e29155..dce16c3 100644
index 98d6fd0..4f919e8 100644
--- a/src/modules/pv/pv_trans.c
+++ b/src/modules/pv/pv_trans.c
@@ -1811,7 +1811,8 @@ int tr_eval_uri(
@@ -1816,7 +1816,8 @@ int tr_eval_uri(
}
/* parse uri -- params only when requested */
if(parse_uri(_tr_uri.s, _tr_uri.len - dlen, &_tr_parsed_uri) != 0) {

@ -1,31 +0,0 @@
--- a/src/modules/pv_headers/pvh_xavp.c
+++ b/src/modules/pv_headers/pvh_xavp.c
@@ -713,7 +713,13 @@ xavp_c_data_t *pvh_set_parsed(
return c_data;
err:
- // how can I call?? pvh_xavi_free_data(c_data, shm_free);
+ if(c_data != NULL) {
+ if(c_data->value.s != NULL) {
+ shm_free(c_data->value.s);
+ }
+ shm_free(c_data);
+ c_data = NULL;
+ }
return NULL;
}
@@ -886,6 +892,13 @@ int pvh_set_uri(struct sip_msg *msg, pv_
err:
if(pv_format)
pv_elem_free_all(pv_format);
+ if(c_data != NULL) {
+ if(c_data->value.s != NULL) {
+ shm_free(c_data->value.s);
+ }
+ shm_free(c_data);
+ c_data = NULL;
+ }
return -1;
}

@ -1,39 +0,0 @@
--- a/src/modules/db_redis/redis_dbase.c
+++ b/src/modules/db_redis/redis_dbase.c
@@ -1662,11 +1662,11 @@ static int db_redis_perform_query(const
if(!(*keys_count) && do_table_scan) {
if(_n > 0) {
- LM_WARN("performing full table scan on table '%.*s' while doing "
+ LM_DBG("performing full table scan on table '%.*s' while doing "
"the query\n",
CON_TABLE(_h)->len, CON_TABLE(_h)->s);
for(i = 0; i < _n; ++i) {
- LM_WARN(" scan key %d is '%.*s'\n", i, _k[i]->len, _k[i]->s);
+ LM_DBG(" scan key %d is '%.*s'\n", i, _k[i]->len, _k[i]->s);
}
} else {
LM_DBG("loading full table: '%.*s\n", CON_TABLE(_h)->len,
@@ -1854,7 +1854,7 @@ static int db_redis_perform_delete(const
if(!*keys_count && do_table_scan) {
if(!ts_scan_start)
- LM_WARN("performing full table scan on table '%.*s' while "
+ LM_DBG("performing full table scan on table '%.*s' while "
"performing delete\n",
CON_TABLE(_h)->len, CON_TABLE(_h)->s);
else
@@ -2191,11 +2191,11 @@ static int db_redis_perform_update(const
#endif
if(!(*keys_count) && do_table_scan) {
- LM_WARN("performing full table scan on table '%.*s' while performing "
+ LM_DBG("performing full table scan on table '%.*s' while performing "
"update\n",
CON_TABLE(_h)->len, CON_TABLE(_h)->s);
for(i = 0; i < _n; ++i) {
- LM_WARN(" scan key %d is '%.*s'\n", i, _k[i]->len, _k[i]->s);
+ LM_DBG(" scan key %d is '%.*s'\n", i, _k[i]->len, _k[i]->s);
}
if(db_redis_scan_query_keys(con, CON_TABLE(_h), _n, keys, keys_count,
manual_keys, manual_keys_count, ts_scan_start, ts_scan_key,

@ -1,6 +1,16 @@
From: Sipwise Development Team <support@sipwise.com>
Date: Wed, 5 Aug 2026 14:50:12 +0200
Subject: rtpengine_stats_update
---
src/modules/rtpengine/rtpengine.c | 233 +++++++++++++++++++++-----------------
1 file changed, 127 insertions(+), 106 deletions(-)
diff --git a/src/modules/rtpengine/rtpengine.c b/src/modules/rtpengine/rtpengine.c
index b107845..e558eca 100644
--- a/src/modules/rtpengine/rtpengine.c
+++ b/src/modules/rtpengine/rtpengine.c
@@ -4852,151 +4852,172 @@
@@ -4873,151 +4873,172 @@ static int decode_mos_vals_dict(
return 1;
}
@ -169,7 +179,7 @@
- continue;
- }
- }
-
- /* got a valid SSRC to watch for */
- ssrcs[num_ssrcs] = ssrc;
- LM_DBG("rtpengine: found SSRC '%lli' for label '%.*s'\n", ssrc,
@ -183,13 +193,6 @@
- /* if we get here, we were looking for label. see if we found one. if not, return nothing */
- if(num_ssrcs == 0)
- return;
-ssrcs_done:
- /* now look for the stats values */
- created = bencode_dictionary_get_integer(dict, "created", 0);
- ssrc_list = bencode_dictionary_get_expect(dict, "SSRC", BENCODE_DICTIONARY);
- if(!ssrc_list)
- return;
+ LM_DBG("rtpengine stats: got stream type %i\n", stream->type);
+ LM_DBG("rtpengine stats: stream child '%.*s'\n",
+ stream->child ? (int)stream->child->iov[1].iov_len : 0,
@ -200,6 +203,15 @@
+ ? stream->child->sibling->type
+ : -1);
-ssrcs_done:
- /* now look for the stats values */
- created = bencode_dictionary_get_integer(dict, "created", 0);
- ssrc_list = bencode_dictionary_get_expect(dict, "SSRC", BENCODE_DICTIONARY);
- if(!ssrc_list)
- return;
+ ingress_ssrcs = bencode_dictionary_get_expect(
+ media, "ingress SSRCs", BENCODE_LIST);
- for(ssrc_key = ssrc_list->child; ssrc_key;
- ssrc_key = ssrc_key->sibling->sibling) {
- /* see if this is a SSRC we're interested in */
@ -217,9 +229,7 @@
- }
- /* no match */
- continue;
+ ingress_ssrcs = bencode_dictionary_get_expect(
+ media, "ingress SSRCs", BENCODE_LIST);
-
- ssrc_ok:
- ssrc_dict = ssrc_key->sibling;
- if(!ssrc_dict)

@ -1,42 +0,0 @@
--- a/src/modules/siputils/checks.c
+++ b/src/modules/siputils/checks.c
@@ -645,6 +645,7 @@ int tel2sip(struct sip_msg *_msg, char *
int i, j, in_tel_parameters = 0;
pv_spec_t *res;
pv_value_t res_val;
+ struct sip_uri parsed_check;
/* get parameters */
if(get_str_fparam(&uri, _msg, (fparam_t *)_uri) < 0) {
@@ -709,6 +710,11 @@ int tel2sip(struct sip_msg *_msg, char *
/* tel_uri is not needed anymore */
pkg_free(tel_uri.s);
+ if(parse_uri(sip_uri.s, sip_uri.len, &parsed_check) < 0) {
+ pkg_free(sip_uri.s);
+ return -1;
+ }
+
/* set result pv value and write sip uri to result pv */
res_val.rs = sip_uri;
res_val.flags = PV_VAL_STR;
@@ -823,6 +829,7 @@ int tel2sip2(struct sip_msg *_msg, char
pv_value_t res_val;
char *tmp_ptr = NULL;
tel_param_t params[MAX_TEL_PARAMS];
+ struct sip_uri parsed_check;
/* get parameters */
if(get_str_fparam(&uri, _msg, (fparam_t *)_uri) < 0) {
@@ -935,6 +942,11 @@ int tel2sip2(struct sip_msg *_msg, char
/* tel_uri is not needed anymore */
pkg_free(tel_uri.s);
+ if(parse_uri(sip_uri.s, sip_uri.len, &parsed_check) < 0) {
+ pkg_free(sip_uri.s);
+ return -1;
+ }
+
sip_uri.len = strlen(sip_uri.s);
/* set result pv value and write sip uri to result pv */

@ -8,7 +8,7 @@ Subject: switch_from_python2_to_python3
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/utils/kamctl/dbtextdb/__init__.py b/utils/kamctl/dbtextdb/__init__.py
index 1041be8..3820113 100644
index 4f29647..a955d8d 100644
--- a/utils/kamctl/dbtextdb/__init__.py
+++ b/utils/kamctl/dbtextdb/__init__.py
@@ -1,4 +1,4 @@
@ -16,9 +16,9 @@ index 1041be8..3820113 100644
+#!/usr/bin/python3
#
# Copyright 2008 Google Inc. All Rights Reserved.
#
diff --git a/utils/kamctl/dbtextdb/dbtextdb_test.py b/utils/kamctl/dbtextdb/dbtextdb_test.py
index 8762de1..8232366 100644
index 0624585..3ab6d4a 100644
--- a/utils/kamctl/dbtextdb/dbtextdb_test.py
+++ b/utils/kamctl/dbtextdb/dbtextdb_test.py
@@ -1,4 +1,4 @@
@ -26,4 +26,4 @@ index 8762de1..8232366 100644
+#!/usr/bin/python3
#
# Copyright 2008 Google Inc. All Rights Reserved.
#

@ -1,3 +1,13 @@
From: Sipwise Development Team <support@sipwise.com>
Date: Wed, 5 Aug 2026 14:50:12 +0200
Subject: tlsa_dynamic_linking_libz
---
src/modules/tlsa/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/modules/tlsa/Makefile b/src/modules/tlsa/Makefile
index adfe80b..b453480 100644
--- a/src/modules/tlsa/Makefile
+++ b/src/modules/tlsa/Makefile
@@ -53,7 +53,7 @@ else

@ -1,3 +1,13 @@
From: Sipwise Development Team <support@sipwise.com>
Date: Wed, 5 Aug 2026 14:50:11 +0200
Subject: tm_drop_stuck_transaction
---
src/modules/tm/t_lookup.c | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)
diff --git a/src/modules/tm/t_lookup.c b/src/modules/tm/t_lookup.c
index c1c19cb..6424aa0 100644
--- a/src/modules/tm/t_lookup.c
+++ b/src/modules/tm/t_lookup.c
@@ -2057,7 +2057,7 @@ int t_unref(struct sip_msg *p_msg)

Loading…
Cancel
Save