# `ExWapp.Session.Worker.OutboundConfirmation`
[🔗](https://github.com/elchemista/ex_wapp/blob/v0.1.5/lib/ex_wapp/session/worker/outbound_confirmation.ex#L1)

Tracks outbound message delivery confirmation and handles the
silent-drop fallback strategy for self-chat messages.

# `handle_timeout`

Handles the confirmation timeout: checks message status and optionally
retries via fallback.

`start_worker_fn` receives `(state, jid, fun)` and must return
`{:ok, worker, mon} | {:error, reason}`.

`send_fn` receives `(session_pid, state, jid, text, opts)` and performs the
actual send.

Returns the updated state.

# `handle_timeout`

```elixir
@spec handle_timeout(
  map(),
  String.t(),
  map(),
  (map(), String.t(), (-&gt; term()) -&gt;
     {:ok, pid(), reference()} | {:error, term()}),
  (pid(), map(), String.t(), String.t(), keyword() -&gt; term()),
  (map(), pid(), reference(), String.t() -&gt; map()),
  keyword()
) :: map()
```

# `schedule`

```elixir
@spec schedule(map(), String.t(), String.t(), String.t(), term(), non_neg_integer(), [
  {:timeout_ms, pos_integer()}
]) :: map()
```

Schedules a confirmation timer for an outbound message when the
destination is the user's own JID.

Returns the updated state.

---

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