mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-03 11:25:35 +00:00
res_pjsip_session.c: Correctly format SDP connection addresses.
Resolves a regression identified by @justinludwig involving the
rendering of IPv6 addresses in outgoing SDP.
Also updates `media_address` on PJSIP endpoints so that if we are able
to parse the configured value as an IP we store it in a format that we
can directly use later. Based on my reading of the code it appeared
that one could configure `media_address` as:
```
[foo]
type = endpoint
...
media_address = [2001:db8::]
```
And that value would be blindly copied into the outgoing SDP without
regard to its format.
Fixes #541
(cherry picked from commit 72523f19a9
)
This commit is contained in:
committed by
Asterisk Development Team
parent
9954a3160e
commit
c9c2c575b8
@@ -5631,8 +5631,8 @@ static void session_outgoing_nat_hook(pjsip_tx_data *tdata, struct ast_sip_trans
|
||||
* rewriting. No localnet configured? Always rewrite. */
|
||||
if (ast_sip_transport_is_local(transport_state, &our_sdp_addr) || !transport_state->localnet) {
|
||||
ast_debug(5, "%s: Setting external media address to %s\n", ast_sip_session_get_name(session),
|
||||
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));
|
||||
ast_sockaddr_stringify_addr_remote(&transport_state->external_media_address));
|
||||
pj_strdup2(tdata->pool, &sdp->conn->addr, ast_sockaddr_stringify_addr_remote(&transport_state->external_media_address));
|
||||
pj_strassign(&sdp->origin.addr, &sdp->conn->addr);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user