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
15 KiB
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 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:
- Regression evals (rung 3–4: "eval sets that regression-test past failures" — already in the vision doc, now with a mechanism).
- Load testing (N concurrent synthetic callers).
- 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:
- A reliability/policy guarantee only local media termination can make — degradation (A1), escape-hatch reflexes (A2), opt-out enforcement.
- A data-gravity loop on calls the operator owns — archive, QA, evals, training signal (A3, F1, F3).
- 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) · AI-powered CX Insights · conversational AI platform · voice AI overview
- Parloa: Test (simulation) · simulations & evaluations · Bayesian A/B testing · Parloa × OpenAI
- Cohort comparison: Cognigy vs Parloa (incl. NICE acquisition)
- Builder tier: Vapi review (Retell) · Retell vs Vapi (Cekura)
- Handoff: warm transfer without losing context · AI-to-human handoff guide (Telnyx)