]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
fix backlash from profile clone change
authorAnthony Minessale <anthony.minessale@gmail.com>
Wed, 12 Sep 2007 22:36:26 +0000 (22:36 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Wed, 12 Sep 2007 22:36:26 +0000 (22:36 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@5705 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/switch_channel.c
src/switch_core_session.c

index 07b32946b978c56a3991823a1800e1842cbe5dde..34df1335d973c0d4c0ea645ab5191460759a2267 100644 (file)
@@ -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) {
index 1890ddfa38064cac30cec0f827ab412fe7ddb758..0434e2678440d6d68e9de2c05f5ea5859099e134 100644 (file)
@@ -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);
                        }
                }