]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
fix
authorAnthony Minessale <anthony.minessale@gmail.com>
Mon, 14 Jul 2008 22:15:24 +0000 (22:15 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Mon, 14 Jul 2008 22:15:24 +0000 (22:15 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@9025 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/switch_core_session.c
src/switch_ivr_originate.c

index fe2c0c10ddc1afe77bb67eba4df573dd64f6b027..aec6a13e7cc86d10a296a2d1242e13eef58f46a9 100644 (file)
@@ -667,12 +667,12 @@ SWITCH_DECLARE(void) switch_core_session_reset(switch_core_session_t *session, s
        switch_size_t has;
 
        /* clear resamplers */
+       switch_mutex_lock(session->resample_mutex);
        switch_resample_destroy(&session->read_resampler);
        switch_resample_destroy(&session->write_resampler);
-
+       switch_mutex_unlock(session->resample_mutex);
        /* clear indications */
        switch_core_session_flush_message(session);
-
        /* wipe theese, they will be recreated if need be */
        switch_buffer_destroy(&session->raw_read_buffer);
        switch_buffer_destroy(&session->raw_write_buffer);
@@ -736,6 +736,9 @@ SWITCH_DECLARE(void) switch_core_session_perform_destroy(switch_core_session_t *
        switch_log_printf(SWITCH_CHANNEL_ID_LOG, file, func, line, NULL, SWITCH_LOG_NOTICE, "Close Channel %s [%s]\n",
                                          switch_channel_get_name((*session)->channel), switch_channel_state_name(switch_channel_get_state((*session)->channel)));
 
+
+       switch_core_session_reset(*session, TRUE);
+       
        switch_core_media_bug_remove_all(*session);
        switch_ivr_deactivate_unicast(*session);
 
index f4aa2485f45c1599fb01841413da9fd0700d2da9..2707e850a813a21321fbe3ed32c8eed1a3215227 100644 (file)
@@ -115,7 +115,6 @@ static void *SWITCH_THREAD_FUNC collect_thread_run(switch_thread_t *thread, void
                        goto wbreak;
                }
 
-               switch_channel_set_state(channel, CS_SOFT_EXECUTE);
                switch_core_session_exec(collect->session, application_interface, app_data);
 
                if (switch_channel_get_state(channel) < CS_HANGUP) {