toggle send rtcp events off fire_rtcp_events.
eval most common path first when checking flags.
SWITCH_RTP_FLAG_PASSTHRU,
SWITCH_RTP_FLAG_SECURE_SEND_MKI,
SWITCH_RTP_FLAG_SECURE_RECV_MKI,
+ SWITCH_RTP_FLAG_AUDIO_FIRE_SEND_RTCP_EVENT,
SWITCH_RTP_FLAG_VIDEO_FIRE_SEND_RTCP_EVENT,
SWITCH_RTP_FLAG_INVALID
} switch_rtp_flag_t;
switch_channel_set_variable(session->channel, "rtp_use_timer_name", timer_name);
+ if (switch_channel_var_true(session->channel, "fire_rtcp_events")) {
+ flags[SWITCH_RTP_FLAG_AUDIO_FIRE_SEND_RTCP_EVENT] = 1;
+ }
a_engine->rtp_session = switch_rtp_new(a_engine->local_sdp_ip,
a_engine->local_sdp_port,
flags[SWITCH_RTP_FLAG_TMMBR]++;
}
- if (switch_channel_var_true(session->channel, "enable_send_rtcp_message_event_video")) {
- flags[SWITCH_RTP_FLAG_VIDEO_FIRE_SEND_RTCP_EVENT] = 1;
+ if (switch_channel_var_true(session->channel, "fire_rtcp_events") &&
+ switch_channel_var_true(session->channel, "enable_send_rtcp_message_event_video")) {
+ flags[SWITCH_RTP_FLAG_VIDEO_FIRE_SEND_RTCP_EVENT] = 1;
}
v_engine->rtp_session = switch_rtp_new(a_engine->local_sdp_ip,
rtcp_generate_report_block(rtp_session, rtcp_report_block, nack_dup);
rtp_session->rtcp_send_msg.header.count = 1; /* reception report block count */
stats->sent_pkt_count = 0;
- /* send event for audio, or video if flag set */
- if (rtp_session->flags[SWITCH_RTP_FLAG_VIDEO_FIRE_SEND_RTCP_EVENT] ||
- !(rtp_session->flags[SWITCH_RTP_FLAG_VIDEO] || rtp_session->flags[SWITCH_RTP_FLAG_TEXT])) {
+ if ((!rtp_session->flags[SWITCH_RTP_FLAG_VIDEO] && rtp_session->flags[SWITCH_RTP_FLAG_AUDIO_FIRE_SEND_RTCP_EVENT]) ||
+ (rtp_session->flags[SWITCH_RTP_FLAG_VIDEO] && rtp_session->flags[SWITCH_RTP_FLAG_VIDEO_FIRE_SEND_RTCP_EVENT])) {
switch_send_rtcp_event(rtp_session, sr, rtcp_report_block);
}
}