Voice

Calls as code.
Voice you can read.

Every Dials call is a path. A scope authorizes it, a route shapes it, a usage event records it. Whether a human is dialing or an agent is, the surface is the same.

At a glance

What voice looks like on Dials.

Inbound
Policy-routed
Every inbound number rings against a declarative routing graph.
Outbound
Signed + audited
STIR/SHAKEN attestation, DNC suppression, full per-call usage.
Real-time
WebRTC + SIP
Bring your own media engine — Dials provides the trust layer.
Async
Voicemail + transcripts
Drop, send, transcribe, and route — all under the same scope.

Programmable

One call.
One verified path.

Place an outbound call from your console, your CLI, or any MCP-aware agent. The same scoped session, the same signed event, the same line in the ledger.

  • Outbound and inbound
  • STIR/SHAKEN signed
  • Per-call usage event
  • Mock by default
HTTP
POST /api/calls/outbound
  { "to": "+15125550100",
    "from": "+15125550199",
    "agent": "reception" }
CLI
dials calls dial \
  --to   +1 512 555 0100 \
  --from +1 512 555 0199 \
  --agent reception
MCP
{
  "tool": "dials.calls.dial",
  "arguments": {
    "to":   "+15125550100",
    "from": "+15125550199",
    "agent": "reception"
  }
}

Real-time media

Bring the model.
We bring the wires.

Dials owns the call leg, the signing layer, the consent state, and the audit ledger. Your model owns the conversation. The two meet at a clean media interface.

  • Bidirectional audio
  • Whisper/local STT optional
  • Barge-in supported
  • Latency-aware routing
dials · voice
Live call · 00:42
+1 512 555 0100
DirectionOutbound
CodecOpus 48k · 20ms
Jitter11 ms
Loss0.0 %
SigningSTIR/SHAKEN A

Async voice

Voicemail
is a first-class object.

When the conversation isn't live, the recording, transcript, and intent classification land in the same usage ledger as everything else. A missed call is still part of the record.

  • Voicemail drop
  • Per-language transcription
  • Intent + summary
  • Routing back to a seat
dials · voicemail
Inbox · agent.reception
+1 415 555 0144
Booking inquiry
00:38
+1 646 555 0188
Status update
01:02
+1 312 555 0142
Callback request
00:21

On the wire

A call is a path. A path has a policy. A policy is something you can read.

The Dials voice model.

Hear it for yourself.

Place a mock call against your scoped session and watch the event land in the ledger. No carrier credentials required.