# `ExWapp.Message.Handler.Inbound`
[🔗](https://github.com/elchemista/ex_wapp/blob/v0.1.5/lib/ex_wapp/message/handler/inbound.ex#L1)

Coordinates the inbound message pipeline after a `<message>` node reaches a
session.

Sender resolution, decryption, canonical content decoding, synchronization,
persistence, publication, and receipt generation are delegated to focused
modules. Wrappers therefore receive normalized `ExWapp.Message.Content`
values instead of interpreting wire payloads themselves.

# `handle_message`

```elixir
@spec handle_message(ExWapp.Binary.Node.t(), pid(), map()) :: {:ok, map(), [term()]}
```

Processes an inbound message node and returns updated state plus protocol actions.

# `persist_notification_devices`

```elixir
@spec persist_notification_devices(map(), term()) :: :ok
```

Records device JIDs advertised by a notification in the session cache.

---

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