# `Membrane.WebRTC.PhoenixSignaling`
[🔗](https://github.com/membraneframework/membrane_webrtc_plugin/blob/v0.26.7/lib/membrane_webrtc/phoenix_signaling.ex#L2)

Provides signaling capabilities for WebRTC connections through Phoenix channels.

# `signaling_id`

```elixir
@type signaling_id() :: String.t()
```

A type representing an unique identifier that is used to distinguish between different Phoenix Signaling
instances.

# `new`

```elixir
@spec new(signaling_id()) :: Membrane.WebRTC.Signaling.t()
```

Returns an instance of a Phoenix Signaling associated with given signaling ID.

# `register_channel`

```elixir
@spec register_channel(signaling_id(), pid() | nil) :: :ok
```

Registers Phoenix.Channel process as WebRTC signaling peer
so that it can send and receive signaling messages.

# `signal`

```elixir
@spec signal(signaling_id(), Membrane.WebRTC.Signaling.message_content()) ::
  :ok | no_return()
```

Sends a signal message via the Phoenix Signaling instance associated with given signaling ID.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
