]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
call recovery_track on recovering channels once the recovery has completed and fix...
authorAnthony Minessale <anthm@freeswitch.org>
Wed, 16 Jul 2014 16:40:18 +0000 (21:40 +0500)
committerAnthony Minessale <anthm@freeswitch.org>
Wed, 16 Jul 2014 16:40:23 +0000 (21:40 +0500)
src/mod/endpoints/mod_sofia/sofia.c
src/switch_channel.c
src/switch_core_state_machine.c

index c5e2dfaa21ca9ddd2e5ec02122e4590b6ac7ddfc..390c8886a93435407410df0aa3e3ca2c8ba583c4 100644 (file)
@@ -6134,7 +6134,6 @@ static void sofia_handle_sip_r_invite(switch_core_session_t *session, int status
 
                        extract_header_vars(profile, sip, session, nh);
                        extract_vars(profile, sip, session);
-                       switch_core_recovery_track(session);
                        switch_channel_clear_flag(tech_pvt->channel, CF_RECOVERING);
                }
 
index c27f1c5ff90b2564c0c1a69ed6371105fb087849..f6d3a96ddc57aea4be2d102ad3e17da02d41a566 100644 (file)
@@ -1990,6 +1990,10 @@ SWITCH_DECLARE(void) switch_channel_clear_flag(switch_channel_t *channel, switch
                switch_core_session_wake_video_thread(channel->session);
        }
 
+       if (flag == CF_RECOVERING && !channel->hangup_cause) {
+               switch_core_recovery_track(channel->session);
+       }
+
 }
 
 
index 91fe8f7a3df5480257ceca5dee25398633b0ef04..eb54bc9ca1a2885fe3ae286415274606a71044ee 100644 (file)
@@ -48,6 +48,8 @@ static void switch_core_standard_on_init(switch_core_session_t *session)
                        switch_channel_set_state(session->channel, CS_ROUTING);
                }
        }
+
+       switch_channel_clear_flag(session->channel, CF_RECOVERING);
 }
 
 static void switch_core_standard_on_hangup(switch_core_session_t *session)