From: Anthony Minessale Date: Wed, 12 Sep 2007 22:36:26 +0000 (+0000) Subject: fix backlash from profile clone change X-Git-Tag: v1.0-beta2~646 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2e741ff1c9598efdd8dc3667e63bb3096e19b4e2;p=thirdparty%2Ffreeswitch.git fix backlash from profile clone change git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@5705 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- diff --git a/src/switch_channel.c b/src/switch_channel.c index 07b32946b9..34df1335d9 100644 --- a/src/switch_channel.c +++ b/src/switch_channel.c @@ -836,21 +836,24 @@ SWITCH_DECLARE(void) switch_channel_event_set_data(switch_channel_t *channel, sw SWITCH_DECLARE(void) switch_channel_set_caller_profile(switch_channel_t *channel, switch_caller_profile_t *caller_profile) { + char *uuid = NULL; assert(channel != NULL); assert(channel->session != NULL); switch_mutex_lock(channel->profile_mutex); assert(caller_profile != NULL); - - if (!caller_profile->uuid) { - caller_profile->uuid = switch_core_session_strdup(channel->session, switch_core_session_get_uuid(channel->session)); + + uuid = switch_core_session_get_uuid(channel->session); + + if (!caller_profile->uuid || strcasecmp(caller_profile->uuid, uuid)) { + caller_profile->uuid = switch_core_session_strdup(channel->session, uuid); } - if (!caller_profile->chan_name) { + if (!caller_profile->chan_name || strcasecmp(caller_profile->chan_name, channel->name)) { caller_profile->chan_name = switch_core_session_strdup(channel->session, channel->name); } if (!caller_profile->context) { - caller_profile->chan_name = switch_core_session_strdup(channel->session, "default"); + caller_profile->context = switch_core_session_strdup(channel->session, "default"); } if (!channel->caller_profile) { diff --git a/src/switch_core_session.c b/src/switch_core_session.c index 1890ddfa38..0434e26784 100644 --- a/src/switch_core_session.c +++ b/src/switch_core_session.c @@ -300,11 +300,12 @@ SWITCH_DECLARE(switch_call_cause_t) switch_core_session_outgoing_channel(switch_ switch_channel_set_originator_caller_profile(peer_channel, cloned_profile); } } - + if (peer_profile) { if (session && (cloned_profile = switch_caller_profile_clone(session, peer_profile)) != 0) { switch_channel_set_originatee_caller_profile(channel, cloned_profile); } + printf("XXXXXXXXXXWTF [%s] [%s] [%s]\n", profile->uuid, peer_profile->uuid, cloned_profile->uuid); } }