Module: kamailio
Branch: master
Commit: 9d8432f3ffb1f9d07874452e23140be21e75c530
URL: 
https://github.com/kamailio/kamailio/commit/9d8432f3ffb1f9d07874452e23140be21e75c530

Author: Daniel-Constantin Mierla <mico...@gmail.com>
Committer: Daniel-Constantin Mierla <mico...@gmail.com>
Date: 2024-10-11T10:57:05+02:00

siptrace: added parameter data_mode

- control if bind address of advertised address are used

---

Modified: src/modules/siptrace/siptrace.c

---

Diff:  
https://github.com/kamailio/kamailio/commit/9d8432f3ffb1f9d07874452e23140be21e75c530.diff
Patch: 
https://github.com/kamailio/kamailio/commit/9d8432f3ffb1f9d07874452e23140be21e75c530.patch

---

diff --git a/src/modules/siptrace/siptrace.c b/src/modules/siptrace/siptrace.c
index 31609821682..257cf0eb335 100644
--- a/src/modules/siptrace/siptrace.c
+++ b/src/modules/siptrace/siptrace.c
@@ -133,6 +133,9 @@ int siptrace_net_data_sent(sr_event_param_t *evp);
 static int _siptrace_init_mode = 0;
 static int _siptrace_mode = 0;
 
+#define SIPTRACE_DATA_MODE_ADVADDR 1 /* use advertised address */
+static int _siptrace_data_mode = 0;
+
 
 static str db_url = str_init(DEFAULT_DB_URL);
 static str siptrace_table = str_init("sip_trace");
@@ -272,6 +275,7 @@ static param_export_t params[] = {
        {"trace_db_mode", INT_PARAM, &trace_db_mode},
        {"trace_init_mode", PARAM_INT, &_siptrace_init_mode},
        {"trace_mode", PARAM_INT, &_siptrace_mode},
+       {"data_mode", PARAM_INT, &_siptrace_data_mode},
        {"evcb_msg", PARAM_STR, &_siptrace_evcb_msg},
        {"trace_dialog_ack", PARAM_INT, &trace_dialog_ack},
        {"trace_dialog_spiral", PARAM_INT, &trace_dialog_spiral},
@@ -2308,7 +2312,8 @@ int siptrace_net_data_recv(sr_event_param_t *evp)
                sto.fromip.s = sto.fromip_buff;
        }
 
-       if(nd->rcv->bind_address != NULL
+       if((_siptrace_data_mode & SIPTRACE_DATA_MODE_ADVADDR)
+                       && nd->rcv->bind_address != NULL
                        && nd->rcv->bind_address->useinfo.sock_str.len > 0
                        && (nd->rcv->bind_address->useinfo.sock_str.len
                                        < SIPTRACE_ADDR_MAX - 1)) {
@@ -2449,7 +2454,8 @@ int siptrace_net_data_sent(sr_event_param_t *evp)
                sto.fromip.len = SIPTRACE_ANYADDR_LEN;
                proto = PROTO_UDP;
        } else {
-               if(new_dst.send_sock->useinfo.sock_str.len > 0) {
+               if((_siptrace_data_mode & SIPTRACE_DATA_MODE_ADVADDR)
+                               && new_dst.send_sock->useinfo.sock_str.len > 0) 
{
                        vsock = new_dst.send_sock->useinfo.sock_str;
                } else {
                        vsock = new_dst.send_sock->sock_str;

_______________________________________________
Kamailio (SER) - Development Mailing List
To unsubscribe send an email to sr-dev-le...@lists.kamailio.org

Reply via email to