from_domain = realm;
}
- if (switch_strlen_zero(register_proxy)) {
- register_proxy = proxy;
+ if (!switch_strlen_zero(register_proxy)) {
+ gateway->register_sticky_proxy = switch_core_strdup(gateway->pool, register_proxy);
}
gateway->retry_seconds = atoi(retry_seconds);
params = switch_core_sprintf(gateway->pool, ";transport=%s", register_transport);
}
- gateway->register_url = switch_core_sprintf(gateway->pool, "sip:%s;transport=%s", register_proxy, register_transport);
+ gateway->register_url = switch_core_sprintf(gateway->pool, "sip:%s;transport=%s", proxy, register_transport);
gateway->register_from = switch_core_sprintf(gateway->pool, "<sip:%s@%s;transport=%s>", from_user, from_domain, register_transport);
sipip = profile->extsipip ? profile->extsipip : profile->sipip;
if (now) {
nua_register(gateway_ptr->nh,
NUTAG_URL(gateway_ptr->register_url),
+ TAG_IF(gateway_ptr->register_sticky_proxy, NUTAG_PROXY(gateway_ptr->register_sticky_proxy)),
SIPTAG_TO_STR(gateway_ptr->register_from),
SIPTAG_FROM_STR(gateway_ptr->register_from),
SIPTAG_CONTACT_STR(gateway_ptr->register_contact),