Direction/progress pressure-test (D1-D6, P1-P6, R1-R3) and the boost.ai/Parloa/Vapi cohort scan (F1-F7, adjacencies A1-A11). Standing backlog for planning sessions. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018vNe64BBDkgo5oQVkBa3XF
261 lines
15 KiB
Markdown
261 lines
15 KiB
Markdown
# Market Feature Scan — Enterprise Voice-AI Cohort & Natural Adjacencies
|
||
|
||
- **Date:** 2026-07-03
|
||
- **Scope:** Feature surfaces of the enterprise conversational/voice-AI cohort (boost.ai, Parloa,
|
||
PolyAI, Cognigy) and the builder-tier platforms (Vapi, Retell), mined for capabilities that
|
||
translate to **engine primitives** — plus a map of the natural adjacencies that fit rutster's
|
||
niche. Companion to the
|
||
[adversarial review](2026-07-03-adversarial-review.md) of the same date.
|
||
- **Framing constraint (maintainer-stated):** rutster is a toolkit for DIY builders and
|
||
integrators — *not* another UCaaS/CCaaS product. Every feature below is evaluated as an engine
|
||
primitive a builder composes, never as a turnkey SaaS feature to clone. The filter is
|
||
ADR-0008's FOB/green-zone test plus the capability ladder.
|
||
- **Status:** Advisory research record. Items marked ★ are candidates for future specs/ADRs.
|
||
|
||
---
|
||
|
||
## Part I — The cohort, briefly
|
||
|
||
| Player | What they are | Why they matter to rutster |
|
||
|---|---|---|
|
||
| **boost.ai** | Gartner-MQ-leader enterprise conversational-AI suite (chat+voice), regulated-industry heavy, quote-priced SaaS | Their feature surface is a map of what regulated contact-center buyers pay for |
|
||
| **Parloa** | Voice-first "AI agent lifecycle" platform (Design/Test/Scale/Optimize), PCI DSS/DORA positioning | Their **Test** phase (simulation + evals) is the single most engine-translatable idea in the cohort |
|
||
| **PolyAI** | Voice-specialized agent platform, caller-interaction craft | Less to mine — differentiation is craft, not primitives |
|
||
| **Cognigy** | Omnichannel enterprise platform; acquired by NICE for ~$955M (closed 2025-09) | The acquisition price validates the domain; omnichannel is the anti-pattern to refuse |
|
||
| **Vapi / Retell** | Builder-tier cloud voice-agent platforms, per-minute pricing | Closest to the rutster persona; sets the **developer-ergonomics bar** (not the enterprise-surface bar) |
|
||
|
||
**Structural observation:** every serious player is enterprise-only or cloud-only. There is no
|
||
self-hostable engine in the category — the "Asterisk slot" is empty. Separately, a dedicated
|
||
SaaS category exists just for voice-agent *testing/evals* (Cekura, Coval) — confidence is a
|
||
product buyers pay for on its own.
|
||
|
||
**boost.ai's most instructive move:** their voice line splits into **Express Voice**
|
||
(speech-to-speech, direct to multimodal models) and **Enterprise Voice** (cascade STT/LLM/TTS
|
||
for regulated scenarios). The market leader productized exactly the s2s-vs-cascade duality —
|
||
independent confirmation of adversarial-review finding D3: the tap must treat both brain shapes
|
||
as first-class, and a cascade reference brain belongs in `examples/`.
|
||
|
||
---
|
||
|
||
## Part II — Features worth incorporating (ranked by engine-fit)
|
||
|
||
### F1. ★ Simulation testing / synthetic callers (`rutster-sim`) — the standout
|
||
|
||
**Source:** Parloa Test — thousands of simulated conversations pre-deployment (one model plays
|
||
the caller, one runs the agent), scored by deterministic checks + LLM-as-judge. Cekura/Coval
|
||
sell this as standalone SaaS. **Nobody ships it self-hosted.**
|
||
|
||
**Why rutster is structurally close:** the tap is symmetric. A synthetic *caller* is just a
|
||
media-leg ingress speaking audio, and the slice-3 mock brain is already half the harness. A
|
||
`rutster-sim` that runs scripted/LLM-driven caller scenarios against a call flow **in CI, from
|
||
the terminal** is perfectly shaped for the git-versioned builder persona.
|
||
|
||
**One build, three payoffs:**
|
||
1. Regression evals (rung 3–4: "eval sets that regression-test past failures" — already in the
|
||
vision doc, now with a mechanism).
|
||
2. Load testing (N concurrent synthetic callers).
|
||
3. The latency/barge-in benchmark from adversarial-review R2 — the *same harness*.
|
||
|
||
**Disposition:** FOB-adjacent tooling (differentiating). Strongest single feature candidate in
|
||
this scan.
|
||
|
||
### F2. ★ Warm handoff as a protocol, not just a barge (rung-2 sharpening)
|
||
|
||
**Source:** 2026 table stakes across the cohort — structured pre-transfer summary (who's
|
||
calling, what they want, what the AI attempted, why escalating, sentiment) delivered to the
|
||
human via whisper-audio or screen-pop before bridging.
|
||
|
||
**Engine translation:** rung 2 currently reads "human agent barges in / takes over." Sharpen to
|
||
a **handoff protocol**:
|
||
- A **typed handoff artifact** as a first-class event in the tap protocol / event stream.
|
||
- Whisper-play into the human leg before bridging (the audiohook primitive already retained
|
||
from Asterisk covers the media side).
|
||
- Call variables passed to the destination via the event stream.
|
||
- Reverse direction (cheap, later): brain stays on post-handoff as a **copilot whispering to
|
||
the human** — same audiohook, Cresta-shaped, also unshipped self-hosted.
|
||
|
||
**Disposition:** FOB (differentiating; the escalation primitive is the white space).
|
||
|
||
### F3. Outcome-native CDR + the call-record bundle
|
||
|
||
**Source:** boost.ai CX Insights — auto-review of every conversation, outcome categorization
|
||
(why automated vs escalated), quality rating/tagging; their sales pitch is the numbers
|
||
("70% automation, 75% FCR").
|
||
|
||
**Engine translation:**
|
||
- **Containment / escalation-reason / resolution as native CDR schema fields**, not
|
||
integrator bolt-ons. Containment rate and first-contact resolution are *the* KPIs of the
|
||
category; the schema should speak them natively.
|
||
- A canonical **call-record bundle** (audio + transcript + event timeline + outcome) plus a
|
||
post-call hook, so a builder points any LLM at it for automated review. rutster ships the
|
||
bundle format and the hook; the ecosystem ships dashboards.
|
||
|
||
**Disposition:** schema = FOB-adjacent (call model / CDR); review loop = green zone via hook.
|
||
|
||
### F4. Mid-call brain transfer ("squads-lite")
|
||
|
||
**Source:** Vapi Squads — one call routed across specialized agents (triage → specialist →
|
||
closer).
|
||
|
||
**Engine translation:** slice-2's tap reconnect machinery already survives brain disconnects;
|
||
making the brain URL switchable per-call via the API turns that into a **brain-transfer
|
||
primitive**. Small delta, large composability win for integrators.
|
||
|
||
**Disposition:** FOB (tap engine); near-term cheap.
|
||
|
||
### F5. Cost metering inside the spend gate
|
||
|
||
**Source:** Vapi/Retell per-call cost breakdowns per component.
|
||
|
||
**Engine translation:** `rutster-spend` is planned as a *cap*; it should also be a *meter* —
|
||
per-call attribution of CPaaS minutes + brain usage, emitted into the CDR. For integrators this
|
||
is load-bearing unit economics: they resell on margin, and **cost-per-contained-call** is their
|
||
P&L line.
|
||
|
||
**Disposition:** FOB (spend gate is constitutive); extend step 6's scope.
|
||
|
||
### F6. PCI redaction primitive
|
||
|
||
**Source:** Parloa's PCI DSS/DORA positioning; standard enterprise requirement.
|
||
|
||
**Engine translation:** pause-recording / segment redaction + DTMF masking on the audiohook
|
||
path during payment capture. FOB by ADR-0008's own test (security-constitutive, in the media
|
||
path); directly serves the compliance wedge.
|
||
|
||
### F7. A/B traffic splits at the routing layer (defer, keep the seam)
|
||
|
||
**Source:** Parloa's Bayesian A/B testing of agents.
|
||
|
||
**Engine translation:** percentage split between two brain configs at the routing layer,
|
||
variant recorded in CDR; the integrator (or a small service) does the statistics. Defer the
|
||
feature; design the routing seam so it's possible.
|
||
|
||
---
|
||
|
||
## Part III — Natural adjacencies (what fits the niche)
|
||
|
||
Mapped in rings, from "falls out of primitives already owned" outward.
|
||
|
||
### Ring 1 — falls out of the substrate
|
||
|
||
**★ A1. Graceful degradation when the brain is down.** The claim only self-hosted can make:
|
||
every cloud voice-AI product *is* the dependency — when the model API 503s, their customers get
|
||
dead air. rutster terminates media locally, so it can degrade: brain unreachable → deterministic
|
||
local IVR / structured voicemail / straight-to-queue. *"The phone still answers when the AI
|
||
doesn't."* FOB (hot-path, unenforceable from outside the media). **Candidate for explicit
|
||
capability-ladder placement.**
|
||
|
||
**★ A2. Local keyword reflexes — the "operator!" reflex.** The second instance of the local-
|
||
reflex doctrine after barge-in: caller says "agent" / "human" / "representative" or mashes 0 →
|
||
local detection fires the escalation policy regardless of the brain's behavior. Outbound
|
||
flavor: "stop calling" → TCPA opt-out enforced locally, recorded in the audit surface. Small
|
||
keyword-spotting models make this feasible without a brain round-trip. Strategically, this is a
|
||
better demo of reflexes-as-moat than barge-in alone, because it's a **policy guarantee**
|
||
("callers can always reach a human / opt out, even if the AI misbehaves") — the auditable
|
||
boundary made concrete.
|
||
|
||
**A3. The call archive as data gravity.** Media + CDR are already owned; a searchable archive
|
||
(the F3 bundle, indexed) is nearly free and is the substrate rungs 3–4 stand on. Years of a
|
||
business's calls in *their* object storage is the compounding moat. Natural extension: **QA on
|
||
human agents too** — the same LLM-review loop scores human calls (Observe.AI/Cresta's business,
|
||
sold as SaaS on calls the customer doesn't own). One loop, both populations, self-hosted.
|
||
|
||
**A4. Bread-and-butter thin layers:** Voicemail 2.0 (AI answers → structured message → summary
|
||
to email/Slack); queue callbacks ("press 1 to hold your place"); transactional **SMS as a tool
|
||
call** via the CPaaS API ("I'll text you the link"). Scope note recorded deliberately:
|
||
SMS-from-a-call is a tool call (green zone, fine); an SMS *channel* is omnichannel creep
|
||
(refuse).
|
||
|
||
### Ring 2 — the deployment-shape insight
|
||
|
||
**★ A5. Multi-tenancy is the integrator's actual unit — decide its timing explicitly.** The
|
||
2006 pattern was not one Asterisk per SMB; it was one integrator box serving dozens of clients
|
||
(Vicidial hosting, multi-tenant FreePBX builds). The docs list hard multi-tenancy as a pillar,
|
||
but the spearhead and ladder are implicitly single-tenant. If the integrator is half the
|
||
persona, tenant-scoped numbers/brains/spend-caps/recordings/event-streams are the difference
|
||
between a DIY toy and a thing an integrator bets a client book on. **Retrofitting tenant IDs
|
||
into a CDR/config schema is miserable — the timing decision deserves an ADR or spec note before
|
||
the CDR/config schemas ossify.**
|
||
|
||
**A6. Verticals arrive via the integrator, not via rutster.** Dental/medical intake (HIPAA —
|
||
needs the graduation path), trades dispatch and after-hours answering, law-firm intake,
|
||
restaurants, property management, municipal 311-style lines (public sector's sovereignty
|
||
preference — boost.ai's traction there validates it). The engine's job is to make each vertical
|
||
a template someone else ships (→ Ring 3).
|
||
|
||
### Ring 3 — ecosystem artifacts (host the conventions, don't build the products)
|
||
|
||
- **A7. Brain adapters** — OpenAI Realtime (shipped), Gemini Live, cascade reference
|
||
(Whisper + open LLM + local TTS), local s2s when it matures. The adapter registry is the
|
||
integration surface (Home Assistant model).
|
||
- **A8. Scenario/eval packs** — community-shared synthetic-caller suites for `rutster-sim`
|
||
("dental-intake pack: 40 scenarios, expected outcomes"). Evals-as-shareable-artifacts turns
|
||
F1 into an ecosystem; vertical eval packs are how integrator knowledge gets encoded and
|
||
traded.
|
||
- **A9. Vertical starter kits** — routing config + prompts + eval pack + tool definitions per
|
||
vertical. The "thousand integrator builds" pattern, git-cloneable.
|
||
- **A10. A Terraform provider / declarative reconciler** — the Kubernetes model is already
|
||
ratified; `terraform-provider-rutster` (or the native reconciler) makes "Terraform for call
|
||
centers" literal, and it's the artifact the persona expects to exist.
|
||
- **A11. The homelab wedge — a Home Assistant integration.** A phone line into HA Assist: call
|
||
the house, AI answers, controls the home, takes messages. Strategically small but precisely
|
||
the persona's watering hole; demo fuel OpenAI-direct cannot replicate (local control plane);
|
||
the historical ignition path for self-hosted projects (r/selfhosted → blog posts →
|
||
integrators discover it). Cheap, viral, on-thesis.
|
||
|
||
---
|
||
|
||
## Part IV — Explicit refusals (the Five9-parity fence, restated)
|
||
|
||
Product-shaped features observed in the cohort that rutster must not incorporate:
|
||
|
||
- Visual no-code flow builders (Vapi Flow Studio, boost.ai canvas) — GUI territory; the
|
||
reference GUI is a pure API client and the ecosystem's problem.
|
||
- Knowledge-base / RAG hosting — a **brain** concern; the integrator wires retrieval into their
|
||
brain; the tap doesn't care.
|
||
- Prebuilt intent libraries; managed dashboards.
|
||
- Omnichannel chat/messaging suites. One deliberate deferral recorded: **text frames in the tap
|
||
protocol** would be nearly free and opens a text-channel door later — decide consciously
|
||
(for or against) rather than by accident when someone PRs it.
|
||
- Workforce management / scheduling; CRM — deep CCaaS territory.
|
||
- Being a CPaaS (number resale, SMS routing); being an SBC; video; meetings/UCaaS.
|
||
- **Voice biometrics** — will be requested for regulated verticals; genuinely useful; must be a
|
||
green-zone integration point (an audiohook consumer), never FOB.
|
||
|
||
---
|
||
|
||
## Part V — The through-line (a filter for future feature requests)
|
||
|
||
Nearly everything that naturally fits is one of three shapes:
|
||
|
||
1. **A reliability/policy guarantee only local media termination can make** — degradation
|
||
(A1), escape-hatch reflexes (A2), opt-out enforcement.
|
||
2. **A data-gravity loop on calls the operator owns** — archive, QA, evals, training signal
|
||
(A3, F1, F3).
|
||
3. **An ecosystem convention** — adapters, packs, templates, providers (A7–A11).
|
||
|
||
If a proposed feature is none of these and is not already on the capability ladder, it is
|
||
probably someone else's product.
|
||
|
||
**Promoted to planning (schema-touching, expensive to retrofit):**
|
||
- **A1 — brain-down degradation** → capability-ladder placement.
|
||
- **A5 — multi-tenancy timing** → ADR/spec note before CDR/config schemas ossify.
|
||
|
||
---
|
||
|
||
## Sources
|
||
|
||
- boost.ai: [upgraded voice offering (Express/Enterprise Voice)](https://boost.ai/announcements/introducing-upgraded-voice-offering/) ·
|
||
[AI-powered CX Insights](https://boost.ai/announcements/boost-ai-introduces-ai-powered-cx-insights/) ·
|
||
[conversational AI platform](https://boost.ai/product/conversational-ai-platform) ·
|
||
[voice AI overview](https://boost.ai/learn/voice-ai/)
|
||
- Parloa: [Test (simulation)](https://www.parloa.com/platform/test/) ·
|
||
[simulations & evaluations](https://www.parloa.com/resources/blog/simulations-and-evaluations-ensure-ai-agent-reliability/) ·
|
||
[Bayesian A/B testing](https://www.parloa.com/blog/ai-agent-testing/) ·
|
||
[Parloa × OpenAI](https://openai.com/index/parloa/)
|
||
- Cohort comparison: [Cognigy vs Parloa (incl. NICE acquisition)](https://www.webfuse.com/compare/cognigy-vs-parloa)
|
||
- Builder tier: [Vapi review (Retell)](https://www.retellai.com/blog/vapi-ai-review) ·
|
||
[Retell vs Vapi (Cekura)](https://www.cekura.ai/blogs/retell-vs-vapi)
|
||
- Handoff: [warm transfer without losing context](https://www.sigmamind.ai/blog/warm-transfer) ·
|
||
[AI-to-human handoff guide (Telnyx)](https://telnyx.com/resources/ai-to-human-handoff-voice-ai)
|