FS-5620 --resolve
This commit is contained in:
parent
6e764c82a3
commit
dcd15ff1c0
|
@ -57,6 +57,9 @@
|
|||
|
||||
SWITCH_BEGIN_EXTERN_C
|
||||
|
||||
#define profile_dup(a,b,p) if (!zstr(a)) { b = switch_core_strdup(p, a); } else { b = SWITCH_BLANK_STRING; }
|
||||
#define profile_dup_clean(a,b,p) if (!zstr(a)) { b = switch_var_clean_string(switch_clean_string(switch_core_strdup(p, a)));} else { b = SWITCH_BLANK_STRING; }
|
||||
|
||||
typedef struct profile_node_s {
|
||||
char *var;
|
||||
char *val;
|
||||
|
|
|
@ -8012,6 +8012,27 @@ void sofia_handle_sip_i_invite(switch_core_session_t *session, nua_t *nua, sofia
|
|||
switch_channel_set_variable(channel, "sip_looped_call", "true");
|
||||
}
|
||||
|
||||
tech_pvt->caller_profile = switch_caller_profile_new(switch_core_session_get_pool(session),
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, MODNAME, NULL, NULL);
|
||||
switch_channel_set_caller_profile(channel, tech_pvt->caller_profile);
|
||||
|
||||
if (x_user) {
|
||||
const char *user = NULL, *domain = NULL;
|
||||
|
||||
if (v_event) {
|
||||
user = switch_event_get_header(v_event, "username");
|
||||
domain = switch_event_get_header(v_event, "domain_name");
|
||||
}
|
||||
|
||||
switch_ivr_set_user_xml(session, NULL, user, domain, x_user);
|
||||
switch_xml_free(x_user);
|
||||
x_user = NULL;
|
||||
}
|
||||
|
||||
if (v_event) {
|
||||
switch_event_destroy(&v_event);
|
||||
}
|
||||
|
||||
if (sip->sip_from && sip->sip_from->a_url) {
|
||||
from_user = sip->sip_from->a_url->url_user;
|
||||
from_host = sip->sip_from->a_url->url_host;
|
||||
|
@ -8534,10 +8555,15 @@ void sofia_handle_sip_i_invite(switch_core_session_t *session, nua_t *nua, sofia
|
|||
|
||||
|
||||
check_decode(displayname, session);
|
||||
tech_pvt->caller_profile = switch_caller_profile_new(switch_core_session_get_pool(session),
|
||||
from_user,
|
||||
dialplan,
|
||||
displayname, from_user, network_ip, from_user, aniii, NULL, MODNAME, context, destination_number);
|
||||
|
||||
profile_dup_clean(from_user, tech_pvt->caller_profile->username, tech_pvt->caller_profile->pool);
|
||||
profile_dup_clean(dialplan, tech_pvt->caller_profile->dialplan, tech_pvt->caller_profile->pool);
|
||||
profile_dup_clean(displayname, tech_pvt->caller_profile->caller_id_name, tech_pvt->caller_profile->pool);
|
||||
profile_dup_clean(from_user, tech_pvt->caller_profile->caller_id_number, tech_pvt->caller_profile->pool);
|
||||
profile_dup_clean(network_ip, tech_pvt->caller_profile->network_addr, tech_pvt->caller_profile->pool);
|
||||
profile_dup_clean(aniii, tech_pvt->caller_profile->aniii, tech_pvt->caller_profile->pool);
|
||||
profile_dup_clean(context, tech_pvt->caller_profile->context, tech_pvt->caller_profile->pool);
|
||||
profile_dup_clean(destination_number, tech_pvt->caller_profile->destination_number, tech_pvt->caller_profile->pool);
|
||||
|
||||
if (!bnh && sip->sip_replaces) {
|
||||
if (!(bnh = nua_handle_by_replaces(nua, sip->sip_replaces))) {
|
||||
|
@ -8755,27 +8781,8 @@ void sofia_handle_sip_i_invite(switch_core_session_t *session, nua_t *nua, sofia
|
|||
}
|
||||
}
|
||||
|
||||
switch_channel_set_caller_profile(channel, tech_pvt->caller_profile);
|
||||
}
|
||||
|
||||
if (x_user) {
|
||||
const char *user = NULL, *domain = NULL;
|
||||
|
||||
if (v_event) {
|
||||
user = switch_event_get_header(v_event, "username");
|
||||
domain = switch_event_get_header(v_event, "domain_name");
|
||||
}
|
||||
|
||||
switch_ivr_set_user_xml(session, NULL, user, domain, x_user);
|
||||
switch_xml_free(x_user);
|
||||
x_user = NULL;
|
||||
}
|
||||
|
||||
if (v_event) {
|
||||
switch_event_destroy(&v_event);
|
||||
}
|
||||
|
||||
|
||||
tech_pvt->sofia_private = sofia_private;
|
||||
tech_pvt->nh = nh;
|
||||
|
||||
|
|
|
@ -33,9 +33,6 @@
|
|||
#include <switch.h>
|
||||
#include <switch_caller.h>
|
||||
|
||||
#define profile_dup(a,b,p) if (!zstr(a)) { b = switch_core_strdup(p, a); } else { b = SWITCH_BLANK_STRING; }
|
||||
#define profile_dup_clean(a,b,p) if (!zstr(a)) { b = switch_var_clean_string(switch_clean_string(switch_core_strdup(p, a)));} else { b = SWITCH_BLANK_STRING; }
|
||||
|
||||
SWITCH_DECLARE(switch_caller_profile_t *) switch_caller_profile_new(switch_memory_pool_t *pool,
|
||||
const char *username,
|
||||
const char *dialplan,
|
||||
|
|
Loading…
Reference in New Issue