Quickstart
From dashboard token to a live runtime host.
The dashboard issues a short-lived install token. The installer validates the signed license, pulls signed release artifacts, writes the local configuration, and registers the instance heartbeat.
Create a workspace
Sign in, choose a plan, create the workspace, then generate an install token scoped to that workspace.
Install on a host
Run the installer on Ubuntu with Docker. The first production path is VPS + Docker Compose.
Connect providers
Add your LLM, STT, TTS, telephony, storage, and analytics credentials in the private runtime environment.
Verify readiness
Use aywa status, /readyz, and /metrics before routing production calls.
Deployment
VPS first. Compose by default. Kubernetes when needed.
The first production distribution should be an installer that lays down Docker Compose, a signed runtime image, Caddy or a compatible reverse proxy, and a license renewal agent. That keeps the setup simple for agencies and technical teams while leaving a path to Kubernetes later.
Architecture
A small control plane, a private data plane.
Aywa's SaaS layer should never need raw call audio, transcripts, provider secrets, tool payloads, or recordings. Those belong to the deployed runtime and the customer's storage.
Aywa control plane
Customer runtime
Customer data plane
Runtime engine
The phone experience is governed by the turn manager.
The runtime coordinates streaming speech recognition, model streaming, tool calls, speech synthesis, interruption, and media playback as one voice session rather than separate provider calls.
Smart endpointing
Partial and final STT events decide when to wait, continue listening, or start the next assistant turn.
Barge-in
User speech can cancel pending LLM work, abort TTS, and stop RTP/WebRTC playout for the active turn.
Provider fallback
TTS and model routes can fail over while preserving the same call and assistant lifecycle.
Warm transfer
Transfer is modeled as a state machine with bridge, return, and SIP dialog handling.
Answering machine detection
AMD signals feed the same call state and webhook flow as live human conversations.
Live controls
Monitor and control URLs can say, add a message, end a call, transfer, or hand off.
Providers
Bring the providers you already trust.
These are the production integration categories reflected by the current runtime code and docs. Provider credentials stay in the runtime environment, not in the Aywa SaaS control plane.
Tools and webhooks
Tool execution belongs near the runtime.
Tool calls, webhook delivery, and replay sit inside the runtime boundary. The outbox writes jobs before dispatch, retries after crashes, and exposes delivery attempts for support review.
tool server
assistant server
phone-number server
account webhook fallback
License
Signed leases, offline validation, fair renewal.
The runtime should validate a public-key signed license locally and renew it in the background when the subscription is active. If the network is unavailable, the runtime continues through the signed lease and grace window instead of depending on a per-call SaaS check.
Control plane issues a signed license with plan, instance allowance, expiration, grace, and key id.
Runtime validates the signature locally and reports heartbeat metadata without sending media data.
License agent renews the lease while billing remains active and registry access remains allowed.
Updates and activation stop after grace, while customer data stays in the deployed infrastructure.
Operations
Production readiness is explicit.
Production startup should fail closed unless API auth, HTTPS public URL, Postgres, encryption key, Redis, S3 artifacts, and webhook signing are configured. Health and readiness endpoints make that visible.
Health
/health, /healthz, and /readyz separate liveness from readiness.
Metrics
/metrics exposes Prometheus text, while /metrics.json serves dashboard counters.
Timeline
/call/:id/timeline merges call logs, messages, webhook attempts, artifacts, and warnings.
Support bundle
aywa support-bundle --redact packages diagnostics without provider secrets or raw payload secrets.
RUNTIME_PUBLIC_URL=https://voice.example.com
RUNTIME_STORE_POSTGRES_URL=postgres://...
RUNTIME_STORE_ENCRYPTION_KEY=base64...
REDIS_URL=redis://...
RUNTIME_ARTIFACT_S3_BUCKET=voice-artifacts
WEBHOOK_SIGNING_SECRET=long-random-secret
VOICE_PIPELINE_ENABLED=true
VOICE_PIPELINE_STT_ENABLED=true
VOICE_PIPELINE_TTS_ENABLED=true
Migration
Switch execution without rewriting the assistant.
The importer is for compatible assistant configurations from third-party voice platforms. It is designed to move execution into Aywa Runtime while keeping the assistant contract familiar and the infrastructure boundary explicit.
Security and privacy
Document the boundary clearly.
Aywa Runtime is independently developed. Compatibility workflows identify migration sources and payload shapes only when useful; the product boundary remains Aywa's own runtime, installer, license, and operator model.
Stored by Aywa SaaS
Account identity, workspace membership, billing state, license records, install token hashes, instance metadata.
Stored by customer infra
Provider keys, phone calls, recordings, transcripts, tools, webhook payloads, runtime logs, artifacts.
Never hide this
Customers still operate their runtime, providers, telephony, backups, network security, and incident response.