res_pjsip_nat: Place source port into rport of responses if 'force_rport' is on.
authorJoshua Colp <jcolp@digium.com>
Fri, 10 Oct 2014 12:10:53 +0000 (12:10 +0000)
committerJoshua Colp <jcolp@digium.com>
Fri, 10 Oct 2014 12:10:53 +0000 (12:10 +0000)
When the 'force_rport' option is enabled the behavior should be the same
as if the remote side placed rport into the message themselves. Therefore
any responses we send should include the source port of the request in the
rport of the Via header.

#SIPit31

ASTERISK-24387 #close
Reported by: Matt Jordan
........

Merged revisions 425131 from http://svn.asterisk.org/svn/asterisk/branches/12
........

Merged revisions 425132 from http://svn.asterisk.org/svn/asterisk/branches/13

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@425133 65c4cc65-6c06-0410-ace0-fbb531ad65f3

res/res_pjsip_nat.c

index 4ba56ab..654e51b 100644 (file)
@@ -62,7 +62,7 @@ static pj_bool_t handle_rx_message(struct ast_sip_endpoint *endpoint, pjsip_rx_d
        }
 
        if (endpoint->nat.force_rport) {
-               rdata->msg_info.via->rport_param = 0;
+               rdata->msg_info.via->rport_param = rdata->pkt_info.src_port;
        }
 
        return PJ_FALSE;