[Core] Fix MSRP relaying.

This commit is contained in:
Andrey Volk 2021-06-15 18:56:19 +03:00
parent 729992d5ae
commit 331e50a77b
1 changed files with 10 additions and 5 deletions

View File

@ -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) {