README.md
# ExRTP
[](https://hex.pm/packages/ex_rtp)
[](https://hexdocs.pm/ex_rtp)
[](https://github.com/elixir-webrtc/ex_rtp/actions/workflows/ci.yml)
[](https://codecov.io/gh/elixir-webrtc/ex_rtp)
Implementation of the RTP protocol in Elixir.
Implements:
- [RTP: A Transport Protocol for Real-Time Applications](https://datatracker.ietf.org/doc/html/rfc3550)
- [A General Mechanism for RTP Header Extensions](https://datatracker.ietf.org/doc/html/rfc8285)
Includes out-of-the-box support for these RTP header extensions:
- [A Real-time Transport Protocol (RTP) Header Extension for Client-to-Mixer Audio Level Indication](https://datatracker.ietf.org/doc/html/rfc6464)
- [RTP Header Extension for the RTP Control Protocol (RTCP) Source Description Items](https://datatracker.ietf.org/doc/html/rfc7941)
- [RTP Extensions for Transport-wide Congestion Control](https://datatracker.ietf.org/doc/html/draft-holmer-rmcat-transport-wide-cc-extensions-01)
New RTP header extensions can be added by implementing the `ExRTP.Packet.Extension` behaviour.
See [documentation](https://hexdocs.pm/ex_rtp/ExRTP.Packet.html) for usage examples.
## Installation
Add `ex_rtp` to dependencies in `mix.exs`:
```elixir
def deps do
[
{:ex_rtp, "~> 0.4.0"}
]
end
```