From 7ec4f0cb6aa4c1f97fa0281ea1b7b3f91b65088d Mon Sep 17 00:00:00 2001 From: Sean Bright Date: Tue, 28 Aug 2018 09:01:19 -0400 Subject: [PATCH] res_pjsip_transport_websocket: Properly set src_name for IPv6 SIP responses over WebSockets when the client is using IPv6 have invalid Via headers according to RFC 3261. The 'received' header parameter should not be wrapped in brackets if it is an IPv6 address. When src_name is populated by the built-in PJSIP transports, the code uses pj_sockaddr_print() with 'flags' set to 0, meaning that the brackets are not rendered around IPv6 addresses. This may be related to ASTERISK~27101. See also: https://github.com/onsip/SIP.js/pull/594 ASTERISK-28020 #close Change-Id: I8ea9d289901b837512bee2ca2535e3dc14f04d77 --- res/res_pjsip_transport_websocket.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res/res_pjsip_transport_websocket.c b/res/res_pjsip_transport_websocket.c index 8079698729..6c6799d489 100644 --- a/res/res_pjsip_transport_websocket.c +++ b/res/res_pjsip_transport_websocket.c @@ -293,7 +293,7 @@ static int transport_read(void *data) pj_sockaddr_parse(pj_AF_UNSPEC(), 0, pj_cstr(&buf, ast_sockaddr_stringify(ast_websocket_remote_address(session))), &rdata->pkt_info.src_addr); rdata->pkt_info.src_addr_len = sizeof(rdata->pkt_info.src_addr); - pj_ansi_strcpy(rdata->pkt_info.src_name, ast_sockaddr_stringify_host(ast_websocket_remote_address(session))); + pj_ansi_strcpy(rdata->pkt_info.src_name, ast_sockaddr_stringify_addr(ast_websocket_remote_address(session))); rdata->pkt_info.src_port = ast_sockaddr_port(ast_websocket_remote_address(session)); recvd = pjsip_tpmgr_receive_packet(rdata->tp_info.transport->tpmgr, rdata); -- 2.47.2