From bd71dcd1dab44c864aa9dd87614d09a623a72219 Mon Sep 17 00:00:00 2001 From: Matt Jordan Date: Thu, 10 Sep 2015 08:39:21 -0500 Subject: res/res_pjsip_nat: Ignore REGISTER requests when looking for a Record-Route We will only rewrite the Contact header if there is no Record-Route header in the received request. If a malfunctioning proxy places a Record-Route header into a REGISTER request, we will decide that we shouldn't update the IP/port in the Contact header, and we will end up storing a contact with an AoR that contains the NAT'd IP address. While it is nice to have the proxy *not* send a Record-Route in a REGISTER request, it's also a good idea to not process the header in a non-dialog message. This patch updates the code to explicitly ignore the Record-Route header in REGISTER requests. ASTERISK-25387 #close Change-Id: I4bd3bcccc4003d460cc354d986b0dea2e433ef3f --- res/res_pjsip_nat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'res') diff --git a/res/res_pjsip_nat.c b/res/res_pjsip_nat.c index 483caa2d2..683ae6110 100644 --- a/res/res_pjsip_nat.c +++ b/res/res_pjsip_nat.c @@ -56,7 +56,7 @@ static int rewrite_route_set(pjsip_rx_data *rdata, pjsip_dialog *dlg) break; } } - } else { + } else if (pjsip_method_cmp(&rdata->msg_info.msg->line.req.method, &pjsip_register_method)) { rr = pjsip_msg_find_hdr(rdata->msg_info.msg, PJSIP_H_RECORD_ROUTE, NULL); } -- cgit v1.2.3