|
|
|
|
@ -95,6 +95,12 @@ const struct transport_protocol transport_protocols[] = {
|
|
|
|
|
.srtp = 1,
|
|
|
|
|
.avpf = 1,
|
|
|
|
|
},
|
|
|
|
|
[PROTO_UDPTL] = {
|
|
|
|
|
.index = PROTO_UDPTL,
|
|
|
|
|
.name = "udptl",
|
|
|
|
|
.srtp = 0,
|
|
|
|
|
.avpf = 0,
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
const int num_transport_protocols = G_N_ELEMENTS(transport_protocols);
|
|
|
|
|
|
|
|
|
|
@ -186,6 +192,7 @@ static const struct streamhandler *__sh_matrix_in_rtp_avp[] = {
|
|
|
|
|
[PROTO_RTP_SAVPF] = &__sh_avp2savp,
|
|
|
|
|
[PROTO_UDP_TLS_RTP_SAVP] = &__sh_avp2savp,
|
|
|
|
|
[PROTO_UDP_TLS_RTP_SAVPF] = &__sh_avp2savp,
|
|
|
|
|
[PROTO_UDPTL] = &__sh_noop,
|
|
|
|
|
};
|
|
|
|
|
static const struct streamhandler *__sh_matrix_in_rtp_avpf[] = {
|
|
|
|
|
[PROTO_RTP_AVP] = &__sh_avpf2avp,
|
|
|
|
|
@ -194,6 +201,7 @@ static const struct streamhandler *__sh_matrix_in_rtp_avpf[] = {
|
|
|
|
|
[PROTO_RTP_SAVPF] = &__sh_avp2savp,
|
|
|
|
|
[PROTO_UDP_TLS_RTP_SAVP] = &__sh_avpf2savp,
|
|
|
|
|
[PROTO_UDP_TLS_RTP_SAVPF] = &__sh_avp2savp,
|
|
|
|
|
[PROTO_UDPTL] = &__sh_noop,
|
|
|
|
|
};
|
|
|
|
|
static const struct streamhandler *__sh_matrix_in_rtp_savp[] = {
|
|
|
|
|
[PROTO_RTP_AVP] = &__sh_savp2avp,
|
|
|
|
|
@ -202,6 +210,7 @@ static const struct streamhandler *__sh_matrix_in_rtp_savp[] = {
|
|
|
|
|
[PROTO_RTP_SAVPF] = &__sh_noop,
|
|
|
|
|
[PROTO_UDP_TLS_RTP_SAVP] = &__sh_noop,
|
|
|
|
|
[PROTO_UDP_TLS_RTP_SAVPF] = &__sh_noop,
|
|
|
|
|
[PROTO_UDPTL] = &__sh_noop,
|
|
|
|
|
};
|
|
|
|
|
static const struct streamhandler *__sh_matrix_in_rtp_savpf[] = {
|
|
|
|
|
[PROTO_RTP_AVP] = &__sh_savpf2avp,
|
|
|
|
|
@ -210,6 +219,7 @@ static const struct streamhandler *__sh_matrix_in_rtp_savpf[] = {
|
|
|
|
|
[PROTO_RTP_SAVPF] = &__sh_noop,
|
|
|
|
|
[PROTO_UDP_TLS_RTP_SAVP] = &__sh_savpf2savp,
|
|
|
|
|
[PROTO_UDP_TLS_RTP_SAVPF] = &__sh_noop,
|
|
|
|
|
[PROTO_UDPTL] = &__sh_noop,
|
|
|
|
|
};
|
|
|
|
|
static const struct streamhandler *__sh_matrix_in_rtp_savp_dtls[] = {
|
|
|
|
|
[PROTO_RTP_AVP] = &__sh_savp2avp,
|
|
|
|
|
@ -218,6 +228,7 @@ static const struct streamhandler *__sh_matrix_in_rtp_savp_dtls[] = {
|
|
|
|
|
[PROTO_RTP_SAVPF] = &__sh_savp2savp,
|
|
|
|
|
[PROTO_UDP_TLS_RTP_SAVP] = &__sh_savp2savp,
|
|
|
|
|
[PROTO_UDP_TLS_RTP_SAVPF] = &__sh_savp2savp,
|
|
|
|
|
[PROTO_UDPTL] = &__sh_noop,
|
|
|
|
|
};
|
|
|
|
|
static const struct streamhandler *__sh_matrix_in_rtp_savpf_dtls[] = {
|
|
|
|
|
[PROTO_RTP_AVP] = &__sh_savpf2avp,
|
|
|
|
|
@ -226,6 +237,16 @@ static const struct streamhandler *__sh_matrix_in_rtp_savpf_dtls[] = {
|
|
|
|
|
[PROTO_RTP_SAVPF] = &__sh_savp2savp,
|
|
|
|
|
[PROTO_UDP_TLS_RTP_SAVP] = &__sh_savpf2savp,
|
|
|
|
|
[PROTO_UDP_TLS_RTP_SAVPF] = &__sh_savp2savp,
|
|
|
|
|
[PROTO_UDPTL] = &__sh_noop,
|
|
|
|
|
};
|
|
|
|
|
static const struct streamhandler *__sh_matrix_noop[] = {
|
|
|
|
|
[PROTO_RTP_AVP] = &__sh_noop,
|
|
|
|
|
[PROTO_RTP_AVPF] = &__sh_noop,
|
|
|
|
|
[PROTO_RTP_SAVP] = &__sh_noop,
|
|
|
|
|
[PROTO_RTP_SAVPF] = &__sh_noop,
|
|
|
|
|
[PROTO_UDP_TLS_RTP_SAVP] = &__sh_noop,
|
|
|
|
|
[PROTO_UDP_TLS_RTP_SAVPF] = &__sh_noop,
|
|
|
|
|
[PROTO_UDPTL] = &__sh_noop,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/* ********** */
|
|
|
|
|
@ -237,6 +258,7 @@ static const struct streamhandler **__sh_matrix[] = {
|
|
|
|
|
[PROTO_RTP_SAVPF] = __sh_matrix_in_rtp_savpf,
|
|
|
|
|
[PROTO_UDP_TLS_RTP_SAVP] = __sh_matrix_in_rtp_savp,
|
|
|
|
|
[PROTO_UDP_TLS_RTP_SAVPF] = __sh_matrix_in_rtp_savpf,
|
|
|
|
|
[PROTO_UDPTL] = __sh_matrix_noop,
|
|
|
|
|
};
|
|
|
|
|
/* special case for DTLS as we can't pass through SRTP<>SRTP */
|
|
|
|
|
static const struct streamhandler **__sh_matrix_dtls[] = {
|
|
|
|
|
@ -246,6 +268,7 @@ static const struct streamhandler **__sh_matrix_dtls[] = {
|
|
|
|
|
[PROTO_RTP_SAVPF] = __sh_matrix_in_rtp_savpf_dtls,
|
|
|
|
|
[PROTO_UDP_TLS_RTP_SAVP] = __sh_matrix_in_rtp_savp_dtls,
|
|
|
|
|
[PROTO_UDP_TLS_RTP_SAVPF] = __sh_matrix_in_rtp_savpf_dtls,
|
|
|
|
|
[PROTO_UDPTL] = __sh_matrix_noop,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/* ********** */
|
|
|
|
|
|