# `ExKamailio.Session`
[🔗](https://github.com/membraneframework/ex_kamailio/blob/v0.1.0/lib/ex_kamailio/session.ex#L1)

State of a single call, threaded through `ExKamailio.CallHandler` callbacks:
the SIP identifiers plus every SDP that crossed the wire, in both
directions. A field is nil until the call has reached the step that fills it.

- `call_id`, `from_tag`, `to_tag`: SIP identifiers forwarded by Kamailio.
- `from_offerer_sdp`, `from_answerer_sdp`: `%ExSDP{}` received from that peer.
- `to_answerer_sdp`, `to_offerer_sdp`: `%ExSDP{}` the handler returned,
  forwarded by Kamailio to that peer.

# `call_id`

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

# `t`

```elixir
@type t() :: %ExKamailio.Session{
  call_id: call_id(),
  from_answerer_sdp: ExSDP.t() | nil,
  from_offerer_sdp: ExSDP.t() | nil,
  from_tag: String.t() | nil,
  to_answerer_sdp: ExSDP.t() | nil,
  to_offerer_sdp: ExSDP.t() | nil,
  to_tag: String.t() | nil
}
```

---

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