From: Anthony Minessale Date: Thu, 13 Jan 2011 02:02:49 +0000 (-0600) Subject: eat rtp frames with the wrong payload type number X-Git-Tag: v1.2-rc1~203^2~11 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fe1711fdbab9ccf7c1565c0309fe7609fcfe1afc;p=thirdparty%2Ffreeswitch.git eat rtp frames with the wrong payload type number --- diff --git a/src/switch_rtp.c b/src/switch_rtp.c index a56b5d11dd..5794ae7f28 100644 --- a/src/switch_rtp.c +++ b/src/switch_rtp.c @@ -2493,7 +2493,14 @@ static int rtp_common_read(switch_rtp_t *rtp_session, switch_payload_t *payload_ return_cng_frame(); } } - + + if (rtp_session->recv_msg.header.pt != 13 && + (!rtp_session->cng_pt || rtp_session->recv_msg.header.pt != rtp_session->cng_pt) && + rtp_session->recv_msg.header.pt != rtp_session->payload) { + /* drop frames of incorrect payload number and return CNG frame instead */ + return_cng_frame(); + } + if (switch_test_flag(rtp_session, SWITCH_RTP_FLAG_ENABLE_RTCP) && rtp_session->rtcp_read_pollfd) { rtcp_poll_status = switch_poll(rtp_session->rtcp_read_pollfd, 1, &rtcp_fdr, 0);