From 379cfccea931ca72f30e69dadd5fa6811486a327 Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Thu, 10 Jul 2014 09:00:18 -0400 Subject: [PATCH] properly support the udptl protocol --- daemon/call.c | 23 +++++++++++++++++++++++ daemon/call.h | 1 + 2 files changed, 24 insertions(+) diff --git a/daemon/call.c b/daemon/call.c index 1c9157312..3187ac633 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 ffc18d8a5..d3713b4ea 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;