diff --git a/debian/patches/debian/no_lib64_on_64_bits.patch b/debian/patches/debian/no_lib64_on_64_bits.patch index ee9b3e8d3..5658119e3 100644 --- a/debian/patches/debian/no_lib64_on_64_bits.patch +++ b/debian/patches/debian/no_lib64_on_64_bits.patch @@ -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 diff --git a/debian/patches/series b/debian/patches/series index a44981560..6b73bcbb7 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -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 diff --git a/debian/patches/sipwise/dialog-dlg_get_ttag.patch b/debian/patches/sipwise/dialog-dlg_get_ttag.patch index a305e7b2a..ffb65f518 100644 --- a/debian/patches/sipwise/dialog-dlg_get_ttag.patch +++ b/debian/patches/sipwise/dialog-dlg_get_ttag.patch @@ -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; } diff --git a/debian/patches/sipwise/dialog_w_dlg_get_var_no_error_msg.patch b/debian/patches/sipwise/dialog_w_dlg_get_var_no_error_msg.patch index 9a71a4991..ff44a542c 100644 --- a/debian/patches/sipwise/dialog_w_dlg_get_var_no_error_msg.patch +++ b/debian/patches/sipwise/dialog_w_dlg_get_var_no_error_msg.patch @@ -1,3 +1,13 @@ +From: Sipwise Development Team +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( diff --git a/debian/patches/sipwise/kamctl-TMPDIR-config.patch b/debian/patches/sipwise/kamctl-TMPDIR-config.patch index 09222bf8f..5ce532344 100644 --- a/debian/patches/sipwise/kamctl-TMPDIR-config.patch +++ b/debian/patches/sipwise/kamctl-TMPDIR-config.patch @@ -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 ################################################################# diff --git a/debian/patches/sipwise/lcr-stats.patch b/debian/patches/sipwise/lcr-stats.patch index d101337ee..ea10c2fb9 100644 --- a/debian/patches/sipwise/lcr-stats.patch +++ b/debian/patches/sipwise/lcr-stats.patch @@ -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; } diff --git a/debian/patches/sipwise/lcr-stopper_mode-parameter.patch b/debian/patches/sipwise/lcr-stopper_mode-parameter.patch index d6c74e7ec..671ef6a7d 100644 --- a/debian/patches/sipwise/lcr-stopper_mode-parameter.patch +++ b/debian/patches/sipwise/lcr-stopper_mode-parameter.patch @@ -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: } } diff --git a/debian/patches/sipwise/lcr_read_id.patch b/debian/patches/sipwise/lcr_read_id.patch index 5f0824bde..6d449d0e3 100644 --- a/debian/patches/sipwise/lcr_read_id.patch +++ b/debian/patches/sipwise/lcr_read_id.patch @@ -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); } diff --git a/debian/patches/sipwise/permissions_consider_db_mode_when_rpc_reload.patch b/debian/patches/sipwise/permissions_consider_db_mode_when_rpc_reload.patch index 3a7aad6e1..ed8542225 100644 --- a/debian/patches/sipwise/permissions_consider_db_mode_when_rpc_reload.patch +++ b/debian/patches/sipwise/permissions_consider_db_mode_when_rpc_reload.patch @@ -1,6 +1,16 @@ +From: Sipwise Development Team +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; } diff --git a/debian/patches/sipwise/pv_trans_eval_uri.patch b/debian/patches/sipwise/pv_trans_eval_uri.patch index fab276591..d54080d0e 100644 --- a/debian/patches/sipwise/pv_trans_eval_uri.patch +++ b/debian/patches/sipwise/pv_trans_eval_uri.patch @@ -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) { diff --git a/debian/patches/sipwise/pvheaders_memleak.patch b/debian/patches/sipwise/pvheaders_memleak.patch deleted file mode 100644 index 8c0f0ebe9..000000000 --- a/debian/patches/sipwise/pvheaders_memleak.patch +++ /dev/null @@ -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; - } - diff --git a/debian/patches/sipwise/redis_dbase_no_error_msg.patch b/debian/patches/sipwise/redis_dbase_no_error_msg.patch deleted file mode 100644 index 5dc7d9aed..000000000 --- a/debian/patches/sipwise/redis_dbase_no_error_msg.patch +++ /dev/null @@ -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, diff --git a/debian/patches/sipwise/rtpengine_stats_update.patch b/debian/patches/sipwise/rtpengine_stats_update.patch index 3236baff1..cbe70e86f 100644 --- a/debian/patches/sipwise/rtpengine_stats_update.patch +++ b/debian/patches/sipwise/rtpengine_stats_update.patch @@ -1,6 +1,16 @@ +From: Sipwise Development Team +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) diff --git a/debian/patches/sipwise/siputils_tel2sip_check_uri.patch b/debian/patches/sipwise/siputils_tel2sip_check_uri.patch deleted file mode 100644 index 5c0ba64a8..000000000 --- a/debian/patches/sipwise/siputils_tel2sip_check_uri.patch +++ /dev/null @@ -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 */ diff --git a/debian/patches/sipwise/switch_from_python2_to_python3.patch b/debian/patches/sipwise/switch_from_python2_to_python3.patch index 0cea8cef9..8d6ec7f0c 100644 --- a/debian/patches/sipwise/switch_from_python2_to_python3.patch +++ b/debian/patches/sipwise/switch_from_python2_to_python3.patch @@ -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. - + # diff --git a/debian/patches/sipwise/tlsa_dynamic_linking_libz.patch b/debian/patches/sipwise/tlsa_dynamic_linking_libz.patch index 7a3c6a374..f8f0c60b0 100644 --- a/debian/patches/sipwise/tlsa_dynamic_linking_libz.patch +++ b/debian/patches/sipwise/tlsa_dynamic_linking_libz.patch @@ -1,3 +1,13 @@ +From: Sipwise Development Team +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 diff --git a/debian/patches/upstream/tm_drop_stuck_transaction.patch b/debian/patches/upstream/tm_drop_stuck_transaction.patch index 6e7cbadf2..89140dc8d 100644 --- a/debian/patches/upstream/tm_drop_stuck_transaction.patch +++ b/debian/patches/upstream/tm_drop_stuck_transaction.patch @@ -1,3 +1,13 @@ +From: Sipwise Development Team +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)