fix recursion error

This commit is contained in:
Anthony Minessale committed 2012-12-10 10:56:07 -06:00
1 parent 779564de50
commit 8be9d429fb
6 files changed
+112 -14

No files matched your search

+9 -2
View File
@@ -616,7 +616,7 @@ static void *SWITCH_THREAD_FUNC echo_video_thread(switch_thread_t *thread, void
}
#endif
SWITCH_DECLARE(void) switch_ivr_session_echo(switch_core_session_t *session, switch_input_args_t *args)
SWITCH_DECLARE(switch_status_t) switch_ivr_session_echo(switch_core_session_t *session, switch_input_args_t *args)
{
switch_status_t status;
switch_frame_t *read_frame;
@@ -630,9 +630,11 @@ SWITCH_DECLARE(void) switch_ivr_session_echo(switch_core_session_t *session, swi
#endif
if (switch_channel_pre_answer(channel) != SWITCH_STATUS_SUCCESS) {
return;
return SWITCH_STATUS_FALSE;
}
arg_recursion_check_start(args);
restart:
#ifdef SWITCH_VIDEO_IN_THREADS
@@ -725,6 +727,7 @@ SWITCH_DECLARE(void) switch_ivr_session_echo(switch_core_session_t *session, swi
}
#endif
return SWITCH_STATUS_SUCCESS;
}
typedef struct {
@@ -3413,6 +3416,8 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_play_and_detect_speech(switch_core_se
play_and_detect_speech_state_t state = { 0, "" };
switch_channel_t *channel = switch_core_session_get_channel(session);
arg_recursion_check_start(args);
if (result == NULL) {
goto done;
}
@@ -3474,6 +3479,8 @@ done:
status = SWITCH_STATUS_FALSE;
}
arg_recursion_check_stop(args);
return status;;
}