|
|
|
@ -71,6 +71,15 @@ static char *assign_uuid(const pj_str_t *call_id, const pj_str_t *local_tag, con
|
|
|
|
|
return uuid;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static int transport_to_protocol_id(pjsip_transport *tp)
|
|
|
|
|
{
|
|
|
|
|
/* XXX If we ever add SCTP support, we'll need to revisit */
|
|
|
|
|
if (tp->flag & PJSIP_TRANSPORT_RELIABLE) {
|
|
|
|
|
return IPPROTO_TCP;
|
|
|
|
|
}
|
|
|
|
|
return IPPROTO_UDP;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static pj_status_t logging_on_tx_msg(pjsip_tx_data *tdata)
|
|
|
|
|
{
|
|
|
|
|
char local_buf[256];
|
|
|
|
@ -124,6 +133,7 @@ static pj_status_t logging_on_tx_msg(pjsip_tx_data *tdata)
|
|
|
|
|
ast_sockaddr_parse(&capture_info->src_addr, local_buf, PARSE_PORT_REQUIRE);
|
|
|
|
|
ast_sockaddr_parse(&capture_info->dst_addr, remote_buf, PARSE_PORT_REQUIRE);
|
|
|
|
|
|
|
|
|
|
capture_info->protocol_id = transport_to_protocol_id(tdata->tp_info.transport);
|
|
|
|
|
capture_info->capture_time = ast_tvnow();
|
|
|
|
|
capture_info->capture_type = HEPV3_CAPTURE_TYPE_SIP;
|
|
|
|
|
capture_info->uuid = uuid;
|
|
|
|
@ -183,6 +193,8 @@ static pj_bool_t logging_on_rx_msg(pjsip_rx_data *rdata)
|
|
|
|
|
|
|
|
|
|
ast_sockaddr_parse(&capture_info->src_addr, remote_buf, PARSE_PORT_REQUIRE);
|
|
|
|
|
ast_sockaddr_parse(&capture_info->dst_addr, local_buf, PARSE_PORT_REQUIRE);
|
|
|
|
|
|
|
|
|
|
capture_info->protocol_id = transport_to_protocol_id(rdata->tp_info.transport);
|
|
|
|
|
capture_info->capture_time.tv_sec = rdata->pkt_info.timestamp.sec;
|
|
|
|
|
capture_info->capture_time.tv_usec = rdata->pkt_info.timestamp.msec * 1000;
|
|
|
|
|
capture_info->capture_type = HEPV3_CAPTURE_TYPE_SIP;
|
|
|
|
|