diff --git a/daemon/call.c b/daemon/call.c index ab4f2deb7..1ceb3aa6a 100644 --- a/daemon/call.c +++ b/daemon/call.c @@ -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, }; /* ********** */ diff --git a/daemon/call.h b/daemon/call.h index 99e8fb7fd..fe451b3bf 100644 --- a/daemon/call.h +++ b/daemon/call.h @@ -38,6 +38,7 @@ enum transport_protocol_index { PROTO_RTP_SAVPF, PROTO_UDP_TLS_RTP_SAVP, PROTO_UDP_TLS_RTP_SAVPF, + PROTO_UDPTL, }; struct call_monologue;