[mod_sofia] Rewrite rport even if endpoint specifies port in contact
If NDLB-force-rport is enabled, we rewrite the rport regardless of what the endpoint thinks the port should be. We do this by checking the status of server_rport_level before writing the port. Fixes #1457
This commit is contained in:
parent
bb682fc5b4
commit
4dab426ecf
|
@ -1546,7 +1546,7 @@ uint8_t sofia_reg_handle_register_token(nua_t *nua, sofia_profile_t *profile, nu
|
|||
exptime = 30;
|
||||
}
|
||||
|
||||
if (port) {
|
||||
if (port && profile->server_rport_level == 0) {
|
||||
switch_snprintf(new_port, sizeof(new_port), ":%s", port);
|
||||
}
|
||||
|
||||
|
@ -1662,11 +1662,12 @@ uint8_t sofia_reg_handle_register_token(nua_t *nua, sofia_profile_t *profile, nu
|
|||
}
|
||||
|
||||
if (!is_tcp && !is_tls && (zstr(network_ip) || !switch_check_network_list_ip(network_ip, profile->local_network)) &&
|
||||
profile->server_rport_level >= 2 && sip->sip_user_agent &&
|
||||
((profile->server_rport_level == 3 && sip->sip_user_agent &&
|
||||
sip->sip_user_agent->g_string &&
|
||||
( !strncasecmp(sip->sip_user_agent->g_string, "Polycom", 7) ||
|
||||
!strncasecmp(sip->sip_user_agent->g_string, "KIRK Wireless Server", 20) ||
|
||||
!strncasecmp(sip->sip_user_agent->g_string, "ADTRAN_Total_Access", 19) )) {
|
||||
!strncasecmp(sip->sip_user_agent->g_string, "ADTRAN_Total_Access", 19) ))
|
||||
|| (profile->server_rport_level == 1 || profile->server_rport_level == 2))) {
|
||||
if (sip->sip_via) {
|
||||
const char *host = sip->sip_via->v_host;
|
||||
const char *c_port = sip->sip_via->v_port;
|
||||
|
|
Loading…
Reference in New Issue