*caller_id_in_from = "false",
*extension = NULL,
*proxy = NULL,
+ *options_user_agent = NULL,
*context = profile->context,
*expire_seconds = "3600",
*retry_seconds = "30",
ping_max = atoi(val);
} else if (!strcmp(var, "ping-min")) {
ping_min = atoi(val);
+ } else if (!strcmp(var, "ping-user-agent")) {
+ options_user_agent = val;
} else if (!strcmp(var, "proxy")) {
proxy = val;
} else if (!strcmp(var, "context")) {
gateway->auth_username = switch_core_strdup(gateway->pool, auth_username);
gateway->register_password = switch_core_strdup(gateway->pool, password);
gateway->distinct_to = distinct_to;
+ gateway->options_user_agent = options_user_agent;
if (switch_true(caller_id_in_from)) {
sofia_set_flag(gateway, REG_FLAG_CALLERID);
gateway->ping_max = ping_max;
gateway->ping_min = ping_min;
gateway->ping = switch_epoch_time_now(NULL) + ping_freq;
- gateway->options_uri = switch_core_sprintf(gateway->pool, "<sip:%s;transport=%s>",
- !zstr(from_domain) ? from_domain : proxy, register_transport);
+ gateway->options_to_uri = switch_core_sprintf(gateway->pool, "<sip:%s;transport=%s>",
+ !zstr(from_domain) ? from_domain : proxy, register_transport);
+ gateway->options_from_uri = switch_core_sprintf(gateway->pool, "<sip:%s;transport=%s>",
+ profile->extrtpip ? profile->extrtpip : profile->sipip, register_transport);
} else {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "ERROR: invalid ping!\n");
}
nua_options(nh,
TAG_IF(gateway_ptr->register_sticky_proxy, NUTAG_PROXY(gateway_ptr->register_sticky_proxy)),
TAG_IF(user_via, SIPTAG_VIA_STR(user_via)),
- SIPTAG_TO_STR(gateway_ptr->options_uri), SIPTAG_FROM_STR(profile->url),
- SIPTAG_CONTACT_STR(gateway_ptr->register_contact), TAG_END());
+ SIPTAG_TO_STR(gateway_ptr->options_to_uri), SIPTAG_FROM_STR(gateway_ptr->options_from_uri),
+ TAG_IF(gateway_ptr->options_user_agent, SIPTAG_USER_AGENT_STR(gateway_ptr->options_user_agent)),
+ TAG_END());
switch_safe_free(user_via);
user_via = NULL;