]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-3119
authorAnthony Minessale <anthm@freeswitch.org>
Thu, 3 Mar 2011 20:21:02 +0000 (14:21 -0600)
committerAnthony Minessale <anthm@freeswitch.org>
Thu, 3 Mar 2011 20:21:02 +0000 (14:21 -0600)
src/switch_cpp.cpp

index 7d2f281a896d4b4ce99f85c9bcf2c1dbf209ebf0..3ffc6a3a9df1ca9e08b4175f4c510c10b9b1303d 100644 (file)
@@ -501,8 +501,14 @@ SWITCH_DECLARE_CONSTRUCTOR CoreSession::CoreSession()
 
 SWITCH_DECLARE_CONSTRUCTOR CoreSession::CoreSession(char *nuuid, CoreSession *a_leg)
 {
+       switch_channel_t *other_channel = NULL;
+
        init_vars();
 
+       if (a_leg && a_leg->session) {
+               other_channel = switch_core_session_get_channel(a_leg->session);
+       }
+
        if (!strchr(nuuid, '/') && (session = switch_core_session_locate(nuuid))) {
                uuid = strdup(nuuid);
                channel = switch_core_session_get_channel(session);
@@ -516,7 +522,7 @@ SWITCH_DECLARE_CONSTRUCTOR CoreSession::CoreSession(char *nuuid, CoreSession *a_
                        switch_set_flag(this, S_HUP);
                        uuid = strdup(switch_core_session_get_uuid(session));
                        switch_channel_set_state(switch_core_session_get_channel(session), CS_SOFT_EXECUTE);
-                       switch_channel_wait_for_state(switch_core_session_get_channel(session), switch_core_session_get_channel(a_leg->session), CS_SOFT_EXECUTE);
+                       switch_channel_wait_for_state(channel, other_channel, CS_SOFT_EXECUTE);
                }
        }
 }