Parrot Platform
Putting the "T" back in OTP.
Parrot Platform provides Elixir libraries and OTP behaviours for building real-time communication services using SIP and RTP.
Key Features
- SIP Protocol Stack: Full RFC 3261 compliant SIP implementation
- Handler Pattern: Flexible callback system for SIP events
Parrot.UasHandlerfor UAS (server) applicationsParrot.UacHandlerfor UAC (client) applications
- RTP Audio: Built-in support for G.711 (PCMA) audio streaming
- Audio Devices: System audio device support via PortAudio plugin
- gen_statem Architecture: Robust state machine implementation for transactions and dialogs
- Media Integration: Audio processing through Membrane multimedia libraries
Getting started
Get started with the Parrot Platform by follow the instructions at https://hexdocs.pm/parrot_platform/overview.html#quick-start
Brandon's Notes
Next steps:
- Add git push hook check for mix format
- Get github actions working / CICD passing
- add OPUS support to uas and uac examples and generators
- create proper silence generator for scenarios where we need it
- better pattern matching in media modules
- better pattern matching in examples/generators
- implement B2BUA and media "bridge"-ing
- load test
- create Parrot Platform audio file welcome message for basic sample app generator to use
- update Parrot.SipHandler to Parrot.UasHandler
- figure out if Handler adapter is a good way to handle things
- Control Parrot logging levels from the handler behavior
- update docs to show a pattern matching example of INVITE handling
- build basic app generator (mix parrot.gen.uas creates UAS applications)
License
This project is licensed under the GNU General Public License v2.0.