mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-03 11:11:05 +00:00
PJSIP: provide transport type with received messages
The receipt of a SIP MESSAGE may occur over any transport including TCP and TLS. When the message is received, the original URI is added to the message in the field PJSIP_RECVADDR, but this is insufficient to ensure a reply message can reach the originating endpoint. This patch adds the PJSIP_TRANSPORT field populated with the transport type. ASTERISK-26132 #close Change-Id: I28c4b1e40d573a056c81deb213ecf53e968f725e
This commit is contained in:
committed by
Scott Griepentrog
parent
b0e71c6571
commit
69d58a1e37
@@ -476,6 +476,24 @@ static enum pjsip_status_code rx_data_to_ast_msg(pjsip_rx_data *rdata, struct as
|
||||
field = pj_sockaddr_print(&rdata->pkt_info.src_addr, buf, sizeof(buf) - 1, 1);
|
||||
res |= ast_msg_set_var(msg, "PJSIP_RECVADDR", field);
|
||||
|
||||
switch (rdata->tp_info.transport->key.type) {
|
||||
case PJSIP_TRANSPORT_UDP:
|
||||
case PJSIP_TRANSPORT_UDP6:
|
||||
field = "udp";
|
||||
break;
|
||||
case PJSIP_TRANSPORT_TCP:
|
||||
case PJSIP_TRANSPORT_TCP6:
|
||||
field = "tcp";
|
||||
break;
|
||||
case PJSIP_TRANSPORT_TLS:
|
||||
case PJSIP_TRANSPORT_TLS6:
|
||||
field = "tls";
|
||||
break;
|
||||
default:
|
||||
field = rdata->tp_info.transport->type_name;
|
||||
}
|
||||
ast_msg_set_var(msg, "PJSIP_TRANSPORT", field);
|
||||
|
||||
if (print_body(rdata, buf, sizeof(buf) - 1) > 0) {
|
||||
res |= ast_msg_set_body(msg, "%s", buf);
|
||||
}
|
||||
|
Reference in New Issue
Block a user