Current section

Files

Jump to
membrane_rtc_engine_sip lib sip call settings.ex
Raw

lib/sip/call/settings.ex

defmodule Membrane.RTC.Engine.Endpoint.SIP.Call.Settings do
@moduledoc false
alias Membrane.RTC.Engine.Endpoint.SIP.RegistrarCredentials
@type t :: %__MODULE__{
endpoint: pid(),
rtp_port: 1..65_535,
sip_port: 1..65_535,
registrar_credentials: RegistrarCredentials.t(),
external_ip: String.t(),
register_interval_ms: non_neg_integer(),
phone_number: String.t() | nil
}
@enforce_keys [
:endpoint,
:rtp_port,
:sip_port,
:registrar_credentials,
:external_ip,
:register_interval_ms,
:phone_number
]
defstruct @enforce_keys
@spec new(struct()) :: t()
def new(endpoint_state) do
endpoint_state
|> Map.from_struct()
|> Map.put(:endpoint, self())
|> then(&struct(__MODULE__, &1))
end
end