switch_channel_set_caller_profile(channel, tech_pvt->caller_profile);
if (x_user) {
- const char *user = NULL, *domain = NULL;
+ const char *ruser = NULL, *rdomain = NULL, *user = switch_xml_attr(x_user, "id"), *domain = switch_xml_attr(x_user, "domain-name");
if (v_event) {
- user = switch_event_get_header(v_event, "username");
- domain = switch_event_get_header(v_event, "domain_name");
+ ruser = switch_event_get_header(v_event, "username");
+ rdomain = switch_event_get_header(v_event, "domain_name");
+
+ switch_channel_set_variable(channel, "requested_user_name", ruser);
+ switch_channel_set_variable(channel, "requested_domain_name", rdomain);
}
+ if (!user) user = ruser;
+ if (!domain) domain = rdomain;
+
switch_ivr_set_user_xml(session, NULL, user, domain, x_user);
switch_xml_free(x_user);
x_user = NULL;
SWITCH_DECLARE(void) switch_xml_merge_user(switch_xml_t user, switch_xml_t domain, switch_xml_t group)
{
+ const char *domain_name = switch_xml_attr(domain, "name");
do_merge(user, group, "params", "param");
do_merge(user, group, "variables", "variable");
do_merge(user, domain, "params", "param");
do_merge(user, domain, "variables", "variable");
do_merge(user, domain, "profile-variables", "variable");
+
+ if (!zstr(domain_name)) {
+ switch_xml_set_attr_d(user, "domain-name", domain_name);
+ }
}
SWITCH_DECLARE(uint32_t) switch_xml_clear_user_cache(const char *key, const char *user_name, const char *domain_name)