res_pjsip_session: Rewrite o= with external_media_address.
authorChris-Savinovich <csavinovich@digium.com>
Tue, 10 Apr 2018 01:00:37 +0000 (21:00 -0400)
committerChristian Savinovich <csavinovich@digium.com>
Wed, 11 Apr 2018 17:17:33 +0000 (11:17 -0600)
It now appends the external IP address on the
o= line of the SDP packet.  The decision was made to write
the numeric IP address as opposed to the RFC that states
the FQDN should be used if and when available.  We believe
the usage of literal IP address will help avoid
potential problems.

ASTERISK-27614 #close

Change-Id: I84f3360f3606b8c4e8d161edb228799ec0b8a302

res/res_pjsip_session.c

index d13b372..49ab875 100644 (file)
@@ -4153,7 +4153,7 @@ static void session_outgoing_nat_hook(pjsip_tx_data *tdata, struct ast_sip_trans
                if (ast_sip_transport_is_local(transport_state, &our_sdp_addr) || !transport_state->localnet) {
                        ast_debug(5, "Setting external media address to %s\n", ast_sockaddr_stringify_host(&transport_state->external_media_address));
                        pj_strdup2(tdata->pool, &sdp->conn->addr, ast_sockaddr_stringify_host(&transport_state->external_media_address));
-                       pj_strdup2(tdata->pool, &sdp->origin.addr, transport->external_media_address);
+                       pj_strassign(&sdp->origin.addr, &sdp->conn->addr);
                }
        }