fix webrtc rtcp issue on reinvite

This commit is contained in:
Anthony Minessale 2013-10-29 03:44:07 +05:00
parent 6c04b74e33
commit 562ef81dd9
1 changed files with 14 additions and 13 deletions

View 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); "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) ==
if (rtp_session->rtcp_sock_input && switch_sockaddr_get_family(rtp_session->rtcp_remote_addr) == switch_sockaddr_get_family(rtp_session->rtcp_local_addr)) {
switch_sockaddr_get_family(rtp_session->rtcp_local_addr)) { rtp_session->rtcp_sock_output = rtp_session->rtcp_sock_input;
rtp_session->rtcp_sock_output = rtp_session->rtcp_sock_input; } else {
} else {
if (rtp_session->rtcp_sock_output && rtp_session->rtcp_sock_output != rtp_session->rtcp_sock_input) { if (rtp_session->rtcp_sock_output && rtp_session->rtcp_sock_output != rtp_session->rtcp_sock_input) {
switch_socket_close(rtp_session->rtcp_sock_output); 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), if ((status = switch_socket_create(&rtp_session->rtcp_sock_output,
SOCK_DGRAM, 0, rtp_session->pool)) != SWITCH_STATUS_SUCCESS) { switch_sockaddr_get_family(rtp_session->rtcp_remote_addr),
*err = "RTCP Socket Error!"; SOCK_DGRAM, 0, rtp_session->pool)) != SWITCH_STATUS_SUCCESS) {
} *err = "RTCP Socket Error!";
} }
} }
} else { } else {
*err = "RTCP NOT ACTIVE!"; *err = "RTCP NOT ACTIVE!";
} }