]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-9612
authorAnthony Minessale <anthm@freeswitch.org>
Wed, 5 Oct 2016 15:08:49 +0000 (10:08 -0500)
committerAnthony Minessale <anthm@freeswitch.org>
Wed, 5 Oct 2016 15:08:57 +0000 (10:08 -0500)
src/switch_rtp.c

index f9a7ec7901babd17a0dfbe2e3a81207cfe5cd52f..d455269e2bfbfaf50e8cd732093392480155ad5c 100644 (file)
@@ -2907,19 +2907,20 @@ SWITCH_DECLARE(switch_status_t) switch_rtp_udptl_mode(switch_rtp_t *rtp_session)
 
        rtp_session->flags[SWITCH_RTP_FLAG_ENABLE_RTCP] = 0;
 
-       if (rtp_session->rtcp_sock_input) {
-               ping_socket(rtp_session);
-               switch_socket_shutdown(rtp_session->rtcp_sock_input, SWITCH_SHUTDOWN_READWRITE);
-       }
-
-       if (rtp_session->rtcp_sock_output && rtp_session->rtcp_sock_output != rtp_session->rtcp_sock_input) {
-               switch_socket_shutdown(rtp_session->rtcp_sock_output, SWITCH_SHUTDOWN_READWRITE);
-       }
-
        if (rtp_session->flags[SWITCH_RTP_FLAG_RTCP_MUX]) {
                rtp_session->rtcp_sock_input = NULL;
                rtp_session->rtcp_sock_output = NULL;
        } else {
+               if (rtp_session->rtcp_sock_input && rtp_session->rtcp_sock_input != rtp_session->sock_input) {
+                       ping_socket(rtp_session);
+                       switch_socket_shutdown(rtp_session->rtcp_sock_input, SWITCH_SHUTDOWN_READWRITE);
+               }
+
+               if (rtp_session->rtcp_sock_output && rtp_session->rtcp_sock_output != rtp_session->rtcp_sock_input && 
+                       rtp_session->rtcp_sock_output != rtp_session->sock_input) {
+                       switch_socket_shutdown(rtp_session->rtcp_sock_output, SWITCH_SHUTDOWN_READWRITE);
+               }
+
                if ((sock = rtp_session->rtcp_sock_input)) {
                        rtp_session->rtcp_sock_input = NULL;
                        switch_socket_close(sock);