@ -278,7 +278,7 @@ struct rtp_learning_info {
enum ast_media_type stream_type ;
} ;
# if ! defined(OPENSSL_NO_SRTP ) && (OPENSSL_VERSION_NUMBER >= 0x10001000L)
# if defined(HAVE_ OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP )
struct dtls_details {
SSL * ssl ; /*!< SSL session */
BIO * read_bio ; /*!< Memory buffer for reading */
@ -423,7 +423,7 @@ struct ast_rtp {
unsigned int ice_num_components ; /*!< The number of ICE components */
# endif
# if ! defined(OPENSSL_NO_SRTP ) && (OPENSSL_VERSION_NUMBER >= 0x10001000L)
# if defined(HAVE_ OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP )
SSL_CTX * ssl_ctx ; /*!< SSL context */
enum ast_rtp_dtls_verify dtls_verify ; /*!< What to verify */
enum ast_srtp_suite suite ; /*!< SRTP crypto suite */
@ -500,7 +500,7 @@ struct ast_rtcp {
/* VP8: sequence number for the RTCP FIR FCI */
int firseq ;
# if ! defined(OPENSSL_NO_SRTP ) && (OPENSSL_VERSION_NUMBER >= 0x10001000L)
# if defined(HAVE_ OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP )
struct dtls_details dtls ; /*!< DTLS state information */
# endif
@ -568,7 +568,7 @@ static void ast_rtp_set_stream_num(struct ast_rtp_instance *instance, int stream
static int ast_rtp_extension_enable ( struct ast_rtp_instance * instance , enum ast_rtp_extension extension ) ;
static int ast_rtp_bundle ( struct ast_rtp_instance * child , struct ast_rtp_instance * parent ) ;
# if ! defined(OPENSSL_NO_SRTP ) && (OPENSSL_VERSION_NUMBER >= 0x10001000L)
# if defined(HAVE_ OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP )
static int ast_rtp_activate ( struct ast_rtp_instance * instance ) ;
static void dtls_srtp_check_pending ( struct ast_rtp_instance * instance , struct ast_rtp * rtp , int rtcp ) ;
static void dtls_srtp_start_timeout_timer ( struct ast_rtp_instance * instance , struct ast_rtp * rtp , int rtcp ) ;
@ -1587,7 +1587,7 @@ static struct ast_rtp_engine_ice ast_rtp_ice = {
} ;
# endif
# if ! defined(OPENSSL_NO_SRTP ) && (OPENSSL_VERSION_NUMBER >= 0x10001000L)
# if defined(HAVE_ OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP )
static int dtls_verify_callback ( int preverify_ok , X509_STORE_CTX * ctx )
{
/* We don't want to actually verify the certificate so just accept what they have provided */
@ -2265,7 +2265,7 @@ static struct ast_rtp_engine asterisk_rtp_engine = {
# ifdef HAVE_PJPROJECT
. ice = & ast_rtp_ice ,
# endif
# if ! defined(OPENSSL_NO_SRTP ) && (OPENSSL_VERSION_NUMBER >= 0x10001000L)
# if defined(HAVE_ OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP )
. dtls = & ast_rtp_dtls ,
. activate = ast_rtp_activate ,
# endif
@ -2277,7 +2277,7 @@ static struct ast_rtp_engine asterisk_rtp_engine = {
. bundle = ast_rtp_bundle ,
} ;
# if ! defined(OPENSSL_NO_SRTP ) && (OPENSSL_VERSION_NUMBER >= 0x10001000L)
# if defined(HAVE_ OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP )
/*! \pre instance is locked */
static void dtls_perform_handshake ( struct ast_rtp_instance * instance , struct dtls_details * dtls , int rtcp )
{
@ -2311,7 +2311,7 @@ static void dtls_perform_handshake(struct ast_rtp_instance *instance, struct dtl
}
# endif
# if ! defined(OPENSSL_NO_SRTP ) && (OPENSSL_VERSION_NUMBER >= 0x10001000L)
# if defined(HAVE_ OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP )
static void dtls_perform_setup ( struct dtls_details * dtls )
{
if ( ! dtls - > ssl | | ! SSL_is_init_finished ( dtls - > ssl ) ) {
@ -2355,7 +2355,7 @@ static void ast_rtp_on_ice_complete(pj_ice_sess *ice, pj_status_t status)
}
}
# if ! defined(OPENSSL_NO_SRTP ) && (OPENSSL_VERSION_NUMBER >= 0x10001000L)
# if defined(HAVE_ OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP )
dtls_perform_setup ( & rtp - > dtls ) ;
dtls_perform_handshake ( instance , & rtp - > dtls , 0 ) ;
@ -2489,7 +2489,7 @@ static inline int rtcp_debug_test_addr(struct ast_sockaddr *addr)
return 1 ;
}
# if ! defined(OPENSSL_NO_SRTP ) && (OPENSSL_VERSION_NUMBER >= 0x10001000L)
# if defined(HAVE_ OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP )
/*! \pre instance is locked */
static int dtls_srtp_handle_timeout ( struct ast_rtp_instance * instance , int rtcp )
{
@ -2835,7 +2835,7 @@ static int __rtp_recvfrom(struct ast_rtp_instance *instance, void *buf, size_t s
return len ;
}
# if ! defined(OPENSSL_NO_SRTP ) && (OPENSSL_VERSION_NUMBER >= 0x10001000L)
# if defined(HAVE_ OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP )
/* If this is an SSL packet pass it to OpenSSL for processing. RFC section for first byte value:
* https : //tools.ietf.org/html/rfc5764#section-5.1.2 */
if ( ( * in > = 20 ) & & ( * in < = 63 ) ) {
@ -3527,7 +3527,7 @@ static int rtp_allocate_transport(struct ast_rtp_instance *instance, struct ast_
}
# endif
# if ! defined(OPENSSL_NO_SRTP ) && (OPENSSL_VERSION_NUMBER >= 0x10001000L)
# if defined(HAVE_ OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP )
rtp - > rekeyid = - 1 ;
rtp - > dtls . timeout_timer = - 1 ;
# endif
@ -3543,7 +3543,7 @@ static void rtp_deallocate_transport(struct ast_rtp_instance *instance, struct a
struct timespec ts = { . tv_sec = wait . tv_sec , . tv_nsec = wait . tv_usec * 1000 , } ;
# endif
# if ! defined(OPENSSL_NO_SRTP ) && (OPENSSL_VERSION_NUMBER >= 0x10001000L)
# if defined(HAVE_ OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP )
ast_rtp_dtls_stop ( instance ) ;
# endif
@ -7161,7 +7161,7 @@ static void ast_rtp_prop_set(struct ast_rtp_instance *instance, enum ast_rtp_pro
return ;
}
rtp - > rtcp - > s = - 1 ;
# if ! defined(OPENSSL_NO_SRTP ) && (OPENSSL_VERSION_NUMBER >= 0x10001000L)
# if defined(HAVE_ OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP )
rtp - > rtcp - > dtls . timeout_timer = - 1 ;
# endif
rtp - > rtcp - > schedid = - 1 ;
@ -7224,7 +7224,7 @@ static void ast_rtp_prop_set(struct ast_rtp_instance *instance, enum ast_rtp_pro
rtp_add_candidates_to_ice ( instance , rtp , & rtp - > rtcp - > us , ast_sockaddr_port ( & rtp - > rtcp - > us ) , AST_RTP_ICE_COMPONENT_RTCP , TRANSPORT_SOCKET_RTCP ) ;
}
# endif
# if ! defined(OPENSSL_NO_SRTP ) && (OPENSSL_VERSION_NUMBER >= 0x10001000L)
# if defined(HAVE_ OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP )
dtls_setup_rtcp ( instance ) ;
# endif
} else {
@ -7244,7 +7244,7 @@ static void ast_rtp_prop_set(struct ast_rtp_instance *instance, enum ast_rtp_pro
rtp - > rtcp - > s = rtp - > s ;
ast_rtp_instance_get_remote_address ( instance , & addr ) ;
ast_sockaddr_copy ( & rtp - > rtcp - > them , & addr ) ;
# if ! defined(OPENSSL_NO_SRTP ) && (OPENSSL_VERSION_NUMBER >= 0x10001000L)
# if defined(HAVE_ OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP )
if ( rtp - > rtcp - > dtls . ssl & & rtp - > rtcp - > dtls . ssl ! = rtp - > dtls . ssl ) {
SSL_free ( rtp - > rtcp - > dtls . ssl ) ;
}
@ -7272,7 +7272,7 @@ static void ast_rtp_prop_set(struct ast_rtp_instance *instance, enum ast_rtp_pro
if ( rtp - > rtcp - > s > - 1 & & rtp - > rtcp - > s ! = rtp - > s ) {
close ( rtp - > rtcp - > s ) ;
}
# if ! defined(OPENSSL_NO_SRTP ) && (OPENSSL_VERSION_NUMBER >= 0x10001000L)
# if defined(HAVE_ OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP )
ao2_unlock ( instance ) ;
dtls_srtp_stop_timeout_timer ( instance , rtp , 1 ) ;
ao2_lock ( instance ) ;
@ -7547,7 +7547,7 @@ static void ast_rtp_stop(struct ast_rtp_instance *instance)
struct ast_rtp * rtp = ast_rtp_instance_get_data ( instance ) ;
struct ast_sockaddr addr = { { 0 , } } ;
# if ! defined(OPENSSL_NO_SRTP ) && (OPENSSL_VERSION_NUMBER >= 0x10001000L)
# if defined(HAVE_ OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP )
ao2_unlock ( instance ) ;
AST_SCHED_DEL_UNREF ( rtp - > sched , rtp - > rekeyid , ao2_ref ( instance , - 1 ) ) ;
@ -7767,7 +7767,7 @@ static int ast_rtp_bundle(struct ast_rtp_instance *child, struct ast_rtp_instanc
AST_VECTOR_APPEND ( & parent_rtp - > ssrc_mapping , mapping ) ;
# if ! defined(OPENSSL_NO_SRTP ) && (OPENSSL_VERSION_NUMBER >= 0x10001000L)
# if defined(HAVE_ OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP )
/* If DTLS-SRTP is already in use then add the local SSRC to it, otherwise it will get added once DTLS
* negotiation has been completed .
*/
@ -7788,7 +7788,7 @@ static int ast_rtp_bundle(struct ast_rtp_instance *child, struct ast_rtp_instanc
return 0 ;
}
# if ! defined(OPENSSL_NO_SRTP ) && (OPENSSL_VERSION_NUMBER >= 0x10001000L)
# if defined(HAVE_ OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP )
/*! \pre instance is locked */
static int ast_rtp_activate ( struct ast_rtp_instance * instance )
{