Current section

Files

Jump to
membrane_rtc_engine_sip lib sip call auth.ex
Raw

lib/sip/call/auth.ex

defmodule Membrane.RTC.Engine.Endpoint.SIP.Call.Auth do
@moduledoc false
alias Membrane.RTC.Engine.Endpoint.SIP.RegistrarCredentials
@spec apply_digest(
Sippet.Message.request(),
Sippet.Message.response(),
RegistrarCredentials.t()
) :: Sippet.Message.request()
def apply_digest(request, response, credentials) do
{:ok, request} =
Sippet.DigestAuth.make_request(
request,
response,
fn realm -> get_userinfo(realm, credentials) end
)
request =
update_in(request[:headers][:via], fn [elem] ->
[put_elem(elem, 3, %{"branch" => Sippet.Message.create_branch()})]
end)
request =
update_in(request[:headers][:cseq], fn {cseq, method} ->
{cseq + 1, method}
end)
request
end
defp get_userinfo(_realm, credentials) do
{:ok, credentials.username, credentials.password}
end
end