Platform
ScaiWave ScaiGrid ScaiCore ScaiBot ScaiDrive ScaiKey Models Tools & Services
Solutions
Organisations Developers Internet Service Providers Managed Service Providers AI-in-a-Box
Resources
Support Documentation Blog Downloads
Company
About Research Careers Investment Opportunities Contact
Log in

Changelog

User-visible changes only. Internal refactors and infrastructure work omitted.

v0.0.1 — Initial rollout (2026-06-22)#

The first ship covers the full feature set end-to-end. Module identity, permissions, admin pages, and the lifecycle hooks are all wired; the API mounts at /v1/modules/scaidial/.

Call handling#

  • SIP trunks register outbound to any carrier or PBX via livekit-sip. Auth by credentials or IP whitelist. Per-trunk sync state machine (pendingsyncederror) with retry endpoint.
  • DIDs map carrier-delivered numbers to dialplans.
  • Extensions route calls to a user (wave), a bot (bot), a voicemail box, an external number, or a SIP endpoint. Per-extension DND, ring timeout, timeout action, outbound caller-ID override, and voicemail greeting.
  • Dialplans with six match types (always, did, extension, caller_prefix, time_window) and six action types (ring_extension, ring_bot, voicemail, forward, hangup, play_message). Visual rule builder ships with the admin UI.

Live call control#

  • Active Calls page lists every call in ringing / active / held, with per-leg controls: hangup, hold/unhold, blind transfer (SIP REFER).
  • Bots ring via the same kickoff path ScaiBot's web widget uses — no separate orchestration layer.

Voicemail + history#

  • Voicemail recordings stored in ScaiBunker S3. Web playback via the admin UI and /my/dial.
  • Optional voicemail transcripts via ScaiEcho — opt-in per tenant.
  • Call History page with five filters: caller substring, extension, end reason, date range. Keyset pagination.

End-user portal#

  • /my/dial self-service surface. Every tenant user with at least one extension grant sees their extensions, voicemail, recent calls, and forwarding rules.
  • DND toggle and forwarding-rule manager on owned extensions, no admin permission required.
  • In-browser softphone — click-to-call to any E.164 or SIP URI. WebRTC into a LiveKit room; SIP leg added via livekit-sip.

Tenant policy#

  • Per-tenant policy table with the first opt-in: voicemail transcripts (off by default). Audit trail of who flipped what.

Admin operations#

  • Generic SIP trunk form — no provider-specific bindings.
  • Test-connection probe before persisting a trunk.
  • Carrier-whitelist tuple surfaced on the Trunks page: egress IPv4/IPv6, SIP port, RTP UDP range.
  • All admin pages use typed forms — no JSON editing required for the day-to-day flow.

Integrations#

  • ScaiBot voice — extensions of type bot route calls to a ScaiBot bot. The bot's voice worker joins the same LiveKit room as the SIP participant.
  • ScaiEcho — voicemail transcripts run through ScaiEcho when the tenant opts in.

What's not in v0.0.1#

  • Multi-trunk routing (LCR). The current outbound originate picks the oldest synced trunk per tenant.
  • Attended transfer. Blind only in v1.
  • Conference rooms. Two-leg calls only.
  • IVR menus. The play_message action is one-way.
  • Per-voicemail-box configuration. One tenant-wide default box for now.
Updated 2026-06-23 01:06:32 View source (.md) rev 1