From a199e0c22c15d8e81dd2a98e0237465391f33528 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Wala?= Date: Wed, 31 Jan 2024 11:06:53 +0100 Subject: [PATCH] Allow for sending RTCP in `dtls_transport.ex` --- lib/ex_webrtc/dtls_transport.ex | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/ex_webrtc/dtls_transport.ex b/lib/ex_webrtc/dtls_transport.ex index 2a9909de..715a8966 100644 --- a/lib/ex_webrtc/dtls_transport.ex +++ b/lib/ex_webrtc/dtls_transport.ex @@ -180,8 +180,12 @@ defmodule ExWebRTC.DTLSTransport do end @impl true - def handle_cast({:send_rtcp, _data}, state) do - # TODO: implement + def handle_cast({:send_rtcp, data}, state) do + case ExLibSRTP.protect_rtcp(state.out_srtp, data) do + {:ok, protected} -> state.ice_transport.send_data(state.ice_pid, protected) + {:error, reason} -> Logger.error("Unable to protect RTCP: #{inspect(reason)}") + end + {:noreply, state} end @@ -293,7 +297,8 @@ defmodule ExWebRTC.DTLSTransport do notify(state.owner, {type, payload}) {:error, reason} -> - Logger.error("Failed to decrypt SRTP/SRTCP, reason: #{inspect(reason)}") + type = type |> Atom.to_string() |> String.upcase() + Logger.error("Failed to decrypt #{type}, reason: #{inspect(reason)}") end {:ok, state}