Technical Specifications
Reference this section during capacity planning or architecture reviews for compatibility, performance assumptions, and extensibility boundaries.
1. Support matrix
| Item | Details |
|---|---|
| Operating systems | 64-bit Linux (Debian 11+, Ubuntu 20.04+, CentOS Stream) and container/Kubernetes deployments |
| Databases | SQLite by default; PostgreSQL/MySQL recommended for production. SeaORM unifies the models layer |
| SIP codecs | G.711 a/u, G.729, Opus, G.722, iLBC (select per trunk or extension) |
| Transport protocols | UDP/TCP/TLS for SIP, RTP/SRTP for media, WebSocket/WebRTC for browser clients |
| Console | Web UI plus REST/AMI management interfaces (documentation served by Docusaurus) |
2. Performance references
Numbers below assume a 4 vCPU / 8 GB node with SRTP enabled; validate with
examples/perfcli.rsfor your workload.
- Concurrent calls: 500–800 per node is a common range depending on codec and recording strategy.
- Calls per second (CPS): lightweight scenarios sustain 30+ CPS, subject to carrier throttling.
- Latency: internal processing < 20 ms; end-to-end latency follows network quality.
3. Observability & interfaces
- Health probe:
handler::amiexposes/healthfor load balancers or black-box monitors;perfclican batch ping nodes. - Logging: configure
log_levelandlog_filefortracingoutput shipped to ELK/Loki. HTTP access logs supportAccessLogEventFormat. - Diagnostics UI:
templates/console/diagnostics.htmlbundles the WebRTC probe, trunk/route evaluation, and Web Dialer for most troubleshooting needs. - Webhook / AMI: extend
handler/ami.rsorhandler/llmproxy.rsto emit callbacks or integrate with external voice bots.
4. Security & compliance
- Encryption: TLS/SRTP and WebRTC DTLS, with certificates managed by
addons/acmeif desired. - Authentication: per-extension and per-trunk credentials; console middleware (
console/middleware.rs) enables custom auth flows. - Auditability: export call records and admin logs for retention programs—configure retention per policy.
5. Extension points
- Addons: follow samples such as
addons/wholesaleandaddons/acmeto build vertical features. - Playbook / LLM:
playbook/andllm/directories expose AI voice hooks for external models. - Handlers: add custom APIs/protocols under
handler/, e.g., webhooks or gRPC endpoints.
6. Deployment & resilience
- Multi-instance: run at least two nodes with a shared database; use an external SBC or load balancer for traffic splitting.
- State sharing: active call data lives in
proxy/active_call_registry.rs; share state via Redis/database or partition traffic per business unit. - Backups: store configs in Git, snapshot databases periodically, and offload recordings to object storage.
For official benchmarks, watch docs/specs for published reports or run cargo bench plus custom load tests in your staging environment.