[core] RTP: a media timeout fix + add pcap based-unit tests.

This commit is contained in:
Dragos Oancea
2022-03-20 17:25:37 +03:00
committed by Andrey Volk
parent 75e858407f
commit beffab1d68
8 changed files with 687 additions and 2 deletions
+11 -1
View File
@@ -2882,8 +2882,18 @@ static void check_media_timeout_params(switch_core_session_t *session, switch_rt
if (switch_rtp_ready(engine->rtp_session) && engine->media_timeout) {
switch_rtp_set_media_timeout(engine->rtp_session, engine->media_timeout);
}
if (engine->type == SWITCH_MEDIA_TYPE_AUDIO) {
/* the values are in milliseconds, not in seconds as the deprecated rtp_timeout_sec */
engine->max_missed_packets = (engine->read_impl.samples_per_second * engine->media_timeout / 1000) / engine->read_impl.samples_per_packet;
switch_rtp_set_max_missed_packets(engine->rtp_session, engine->max_missed_packets);
if (!engine->media_hold_timeout) {
engine->media_hold_timeout = engine->media_timeout * 10;
}
engine->max_missed_hold_packets = (engine->read_impl.samples_per_second * engine->media_hold_timeout / 1000) / engine->read_impl.samples_per_packet;
}
}
}
SWITCH_DECLARE(switch_status_t) switch_core_media_read_frame(switch_core_session_t *session, switch_frame_t **frame,
+1 -1
View File
@@ -7350,7 +7350,7 @@ static void check_timeout(switch_rtp_t *rtp_session)
}
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(rtp_session->session), SWITCH_LOG_DEBUG10,
"%s MEDIA TIMEOUT %s %d/%d", switch_core_session_get_name(rtp_session->session), rtp_type(rtp_session),
"%s MEDIA TIMEOUT %s %d/%d\n", switch_core_session_get_name(rtp_session->session), rtp_type(rtp_session),
elapsed, rtp_session->media_timeout);
if (elapsed > rtp_session->media_timeout) {