Skip to main content

Technical Specifications

Reference this section during capacity planning or architecture reviews for compatibility, performance assumptions, and extensibility boundaries.

1. Support matrix

ItemDetails
Operating systems64-bit Linux (Debian 11+, Ubuntu 20.04+, CentOS Stream) and container/Kubernetes deployments
DatabasesSQLite by default; PostgreSQL/MySQL recommended for production. SeaORM unifies the models layer
SIP codecsG.711 a/u, G.729, Opus, G.722, iLBC (select per trunk or extension)
Transport protocolsUDP/TCP/TLS for SIP, RTP/SRTP for media, WebSocket/WebRTC for browser clients
ConsoleWeb 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.rs for 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::ami exposes /health for load balancers or black-box monitors; perfcli can batch ping nodes.
  • Logging: configure log_level and log_file for tracing output shipped to ELK/Loki. HTTP access logs support AccessLogEventFormat.
  • Diagnostics UI: templates/console/diagnostics.html bundles the WebRTC probe, trunk/route evaluation, and Web Dialer for most troubleshooting needs.
  • Webhook / AMI: extend handler/ami.rs or handler/llmproxy.rs to emit callbacks or integrate with external voice bots.

4. Security & compliance

  • Encryption: TLS/SRTP and WebRTC DTLS, with certificates managed by addons/acme if 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/wholesale and addons/acme to build vertical features.
  • Playbook / LLM: playbook/ and llm/ 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.