]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
Fix ZRTP
authorBrian West <brian@freeswitch.org>
Fri, 21 Jan 2011 21:08:26 +0000 (15:08 -0600)
committerBrian West <brian@freeswitch.org>
Fri, 21 Jan 2011 21:08:26 +0000 (15:08 -0600)
src/switch_rtp.c

index faf2868f48013bdbf7e97dac91f7a8c66d05d840..4acadfe2ff1d50e279f5660982d4f1071b07ea66 100644 (file)
@@ -2726,14 +2726,6 @@ static int rtp_common_read(switch_rtp_t *rtp_session, switch_payload_t *payload_
                        }
                }
 
-               if (bytes && !switch_test_flag(rtp_session, SWITCH_RTP_FLAG_PROXY_MEDIA) && !switch_test_flag(rtp_session, SWITCH_RTP_FLAG_UDPTL) &&
-                       rtp_session->recv_msg.header.pt != 13 && 
-                       rtp_session->recv_msg.header.pt != rtp_session->recv_te && 
-                       (!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);
@@ -2812,6 +2804,15 @@ static int rtp_common_read(switch_rtp_t *rtp_session, switch_payload_t *payload_
                        goto end;
                }
 
+               if (bytes && !switch_test_flag(rtp_session, SWITCH_RTP_FLAG_PROXY_MEDIA) && !switch_test_flag(rtp_session, SWITCH_RTP_FLAG_UDPTL) &&
+                       rtp_session->recv_msg.header.pt != 13 && 
+                       rtp_session->recv_msg.header.pt != rtp_session->recv_te && 
+                       (!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 (!bytes && (io_flags & SWITCH_IO_FLAG_NOBLOCK)) {
                        rtp_session->missed_count = 0;
                        ret = 0;