]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
fix webrtc rtcp issue on reinvite
authorAnthony Minessale <anthm@freeswitch.org>
Mon, 28 Oct 2013 22:44:07 +0000 (03:44 +0500)
committerAnthony Minessale <anthm@freeswitch.org>
Mon, 28 Oct 2013 22:44:07 +0000 (03:44 +0500)
src/switch_rtp.c

index d9226571e67752f3900dea06c1a494f973093ce7..4439d1d0be2447949725f2d420a07008a98cff38 100644 (file)
@@ -1890,21 +1890,22 @@ static switch_status_t enable_remote_rtcp_socket(switch_rtp_t *rtp_session, cons
                                                          "Setting RTCP remote addr to %s:%d\n", host, rtp_session->remote_rtcp_port);
                }
 
-               if (!(rtp_session->rtcp_sock_input && rtp_session->rtcp_sock_output)) {
-                       if (rtp_session->rtcp_sock_input && switch_sockaddr_get_family(rtp_session->rtcp_remote_addr) == 
-                               switch_sockaddr_get_family(rtp_session->rtcp_local_addr)) {
-                               rtp_session->rtcp_sock_output = rtp_session->rtcp_sock_input;
-                       } else {
-                               if (rtp_session->rtcp_sock_output && rtp_session->rtcp_sock_output != rtp_session->rtcp_sock_input) {
-                                       switch_socket_close(rtp_session->rtcp_sock_output);
-                               }
-                               if ((status = switch_socket_create(&rtp_session->rtcp_sock_output,
-                                                                                                  switch_sockaddr_get_family(rtp_session->rtcp_remote_addr),
-                                                                                                  SOCK_DGRAM, 0, rtp_session->pool)) != SWITCH_STATUS_SUCCESS) {
-                                       *err = "RTCP Socket Error!";
-                               }
+               if (rtp_session->rtcp_sock_input && switch_sockaddr_get_family(rtp_session->rtcp_remote_addr) == 
+                       switch_sockaddr_get_family(rtp_session->rtcp_local_addr)) {
+                       rtp_session->rtcp_sock_output = rtp_session->rtcp_sock_input;
+               } else {
+
+                       if (rtp_session->rtcp_sock_output && rtp_session->rtcp_sock_output != rtp_session->rtcp_sock_input) {
+                               switch_socket_close(rtp_session->rtcp_sock_output);
+                       }
+
+                       if ((status = switch_socket_create(&rtp_session->rtcp_sock_output,
+                                                                                          switch_sockaddr_get_family(rtp_session->rtcp_remote_addr),
+                                                                                          SOCK_DGRAM, 0, rtp_session->pool)) != SWITCH_STATUS_SUCCESS) {
+                               *err = "RTCP Socket Error!";
                        }
                }
+
        } else {
                *err = "RTCP NOT ACTIVE!";
        }