|
@@ -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;
|