@ -5005,31 +5005,31 @@ static int ast_rtp_fd(struct ast_rtp_instance *instance, int rtcp)
static void ast_rtp_remote_address_set ( struct ast_rtp_instance * instance , struct ast_sockaddr * addr )
static void ast_rtp_remote_address_set ( struct ast_rtp_instance * instance , struct ast_sockaddr * addr )
{
{
struct ast_rtp * rtp = ast_rtp_instance_get_data ( instance ) ;
struct ast_rtp * rtp = ast_rtp_instance_get_data ( instance ) ;
struct ast_sockaddr local , us ;
struct ast_sockaddr local ;
ast_rtp_instance_get_local_address ( instance , & local ) ;
if ( ! ast_sockaddr_isnull ( addr ) ) {
if ( ! ast_sockaddr_isnull ( addr ) ) {
/* Update the local RTP address with what is being used */
/* Update the local RTP address with what is being used */
ast_ouraddrfor ( addr , & us ) ;
if ( ast_ouraddrfor ( addr , & local ) ) {
ast_rtp_instance_get_local_address ( instance , & local ) ;
/* Failed to update our address so reuse old local address */
ast_sockaddr_set_port ( & us , ast_sockaddr_port ( & local ) ) ;
ast_rtp_instance_get_local_address ( instance , & local ) ;
ast_rtp_instance_set_local_address ( instance , & us ) ;
} else {
ast_rtp_instance_set_local_address ( instance , & local ) ;
}
}
}
if ( rtp - > rtcp ) {
if ( rtp - > rtcp ) {
ast_debug ( 1 , " Setting RTCP address on RTP instance '%p' \n " , instance ) ;
ast_debug ( 1 , " Setting RTCP address on RTP instance '%p' \n " , instance ) ;
ast_sockaddr_copy ( & rtp - > rtcp - > them , addr ) ;
ast_sockaddr_copy ( & rtp - > rtcp - > them , addr ) ;
if ( ! ast_sockaddr_isnull ( addr ) ) {
if ( ! ast_sockaddr_isnull ( addr ) ) {
ast_sockaddr_set_port ( & rtp - > rtcp - > them ,
ast_sockaddr_set_port ( & rtp - > rtcp - > them , ast_sockaddr_port ( addr ) + 1 ) ;
ast_sockaddr_port ( addr ) + 1 ) ;
}
if ( ! ast_sockaddr_isnull ( addr ) ) {
/* Update the local RTCP address with what is being used */
/* Update the local RTCP address with what is being used */
ast_sockaddr_set_port ( & us , ast_sockaddr_port ( & local ) + 1 ) ;
ast_sockaddr_set_port ( & local , ast_sockaddr_port ( & local ) + 1 ) ;
ast_sockaddr_copy ( & rtp - > rtcp - > us , & us ) ;
ast_sockaddr_copy ( & rtp - > rtcp - > us , & local ) ;
ast_free ( rtp - > rtcp - > local_addr_str ) ;
ast_free ( rtp - > rtcp - > local_addr_str ) ;
rtp - > rtcp - > local_addr_str = ast_strdup ( ast_sockaddr_stringify ( & us ) ) ;
rtp - > rtcp - > local_addr_str = ast_strdup ( ast_sockaddr_stringify ( & local ) ) ;
}
}
}
}
@ -5039,8 +5039,6 @@ static void ast_rtp_remote_address_set(struct ast_rtp_instance *instance, struct
rtp - > strict_rtp_state = STRICT_RTP_LEARN ;
rtp - > strict_rtp_state = STRICT_RTP_LEARN ;
rtp_learning_seq_init ( & rtp - > rtp_source_learn , rtp - > seqno ) ;
rtp_learning_seq_init ( & rtp - > rtp_source_learn , rtp - > seqno ) ;
}
}
return ;
}
}
/*! \brief Write t140 redundacy frame
/*! \brief Write t140 redundacy frame