From 331e50a77b26ecdf98bed104e713459db418f9bd Mon Sep 17 00:00:00 2001 From: Andrey Volk Date: Tue, 15 Jun 2021 18:56:19 +0300 Subject: [PATCH] [Core] Fix MSRP relaying. --- src/switch_core_media.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/switch_core_media.c b/src/switch_core_media.c index 0db5a7c95d..d276bc4f1e 100644 --- a/src/switch_core_media.c +++ b/src/switch_core_media.c @@ -15754,13 +15754,13 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_write_text_frame(switch_core t_engine = &smh->engines[SWITCH_MEDIA_TYPE_TEXT]; - if (!t_engine || !t_engine->tf) { - switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "text engine not available for processing\n"); - switch_goto_status(SWITCH_STATUS_BREAK, done); - } - if (!is_msrp && switch_channel_test_cap(session->channel, CC_RTP_RTT)) { + if (!t_engine || !t_engine->tf) { + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "text engine not available for processing\n"); + switch_goto_status(SWITCH_STATUS_BREAK, done); + } + if (frame) { char *str = (char *) frame->data; switch_buffer_write(t_engine->tf->write_buffer, str, frame->datalen); @@ -15824,6 +15824,11 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_write_text_frame(switch_core if (!is_msrp && switch_channel_test_cap(session->channel, CC_RTP_RTT)) { + if (!t_engine || (t_engine->red_pt && !t_engine->tf)) { + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "text engine not available for processing\n"); + switch_goto_status(SWITCH_STATUS_BREAK, done); + } + if (t_engine->red_pt) { t_engine->tf->red_pos++; if (t_engine->tf->red_pos == t_engine->tf->red_max) {