summaryrefslogtreecommitdiff
path: root/res/res_rtp_asterisk.c
diff options
context:
space:
mode:
Diffstat (limited to 'res/res_rtp_asterisk.c')
-rw-r--r--res/res_rtp_asterisk.c18
1 files changed, 4 insertions, 14 deletions
diff --git a/res/res_rtp_asterisk.c b/res/res_rtp_asterisk.c
index c4b1874ac..818f1c05b 100644
--- a/res/res_rtp_asterisk.c
+++ b/res/res_rtp_asterisk.c
@@ -463,18 +463,6 @@ static void update_address_with_ice_candidate(struct ast_rtp *rtp, enum ast_rtp_
ast_sockaddr_set_port(cand_address, pj_sockaddr_get_port(&rtp->ice->comp[component - 1].valid_check->rcand->addr));
}
-/*! \brief Helper function which sets up channel binding on a TURN session if applicable */
-static void turn_enable_bind_channel(struct ast_rtp *rtp, pj_turn_sock *turn, int component, int transport)
-{
- if (!rtp->ice || !turn || (component < 1) || !rtp->ice->comp[component - 1].valid_check ||
- (rtp->ice->comp[component - 1].valid_check->lcand->transport_id != transport)) {
- return;
- }
-
- pj_turn_sock_bind_channel(turn, &rtp->ice->comp[component - 1].valid_check->rcand->addr,
- sizeof(rtp->ice->comp[component - 1].valid_check->rcand->addr));
-}
-
/*! \brief Destructor for locally created ICE candidates */
static void ast_rtp_ice_candidate_destroy(void *obj)
{
@@ -600,6 +588,10 @@ static int ice_reset_session(struct ast_rtp_instance *instance)
pj_ice_sess_role role = rtp->ice->role;
int res;
+ if (!rtp->ice->is_nominating && !rtp->ice->is_complete) {
+ return 0;
+ }
+
ast_rtp_ice_stop(instance);
res = ice_create(instance, &rtp->ice_original_rtp_addr, rtp->ice_port, 1);
@@ -1625,11 +1617,9 @@ static void ast_rtp_on_ice_complete(pj_ice_sess *ice, pj_status_t status)
update_address_with_ice_candidate(rtp, AST_RTP_ICE_COMPONENT_RTP, &remote_address);
ast_rtp_instance_set_remote_address(instance, &remote_address);
- turn_enable_bind_channel(rtp, rtp->turn_rtp, AST_RTP_ICE_COMPONENT_RTP, TRANSPORT_TURN_RTP);
if (rtp->rtcp) {
update_address_with_ice_candidate(rtp, AST_RTP_ICE_COMPONENT_RTCP, &rtp->rtcp->them);
- turn_enable_bind_channel(rtp, rtp->turn_rtcp, AST_RTP_ICE_COMPONENT_RTCP, TRANSPORT_TURN_RTCP);
}
}