Custom Voice Providers#
IncidentRelay can load custom Python voice providers for self-hosted installations.
A voice provider is a Python module that knows how to place a phone call through a specific provider API: Mango, Voximplant, Zadarma, Asterisk gateway, internal PBX, or any other service.
IncidentRelay itself does not need to know provider-specific API details. It loads your provider module and communicates with it through a stable provider API.
Supported features#
The provider API is designed for:
- Text-to-speech calls
- Provider call ID tracking
- Call status callbacks
- DTMF button callbacks
- ACK / Resolve actions from phone keypad
- Optional call status polling
Directory layout#
Default custom providers directory:
/usr/local/lib/incidentrelay/voice_providers
Example:
/usr/local/lib/incidentrelay/voice_providers/
├── README.md
├── mango.py
├── zadarma.py
└── internal_pbx.py
Only server administrators should be able to write to this directory, because provider files are executable Python code.
Recommended permissions:
sudo mkdir -p /usr/local/lib/incidentrelay/voice_providers
sudo chown root:root /usr/local/lib/incidentrelay/voice_providers
sudo chmod 755 /usr/local/lib/incidentrelay/voice_providers
Documentation sections#
Examples#
Example provider files are stored in:
examples/voice_providers/
Recommended start:
examples/voice_providers/example_http.py