Integration
RubyVox Voice Gateway
RubyVox can request an action. Only DIBS can approve and commit it. That single boundary is what makes voice safe during a disruption.
Product boundary
Telnyx
PSTN and SIP, phone numbers, call control, media streams, signed webhooks (Ed25519).
RubyVox
Speech pipeline, conversational agent, barge-in, intent extraction, tool calling.
DIBS Voice Gateway
Authentication, idempotency, session correlation, least-privilege context, policy enforcement, audit.
Authentication and call state
Signatures are verified before any context is loaded; timestamps outside a five-minute window and replayed event IDs are rejected.
signed_message = telnyx_timestamp + ":" + raw_request_body valid = Ed25519.Verify( Telnyx-Signature-Ed25519, signed_message, TELNYX_PUBLIC_KEY) RubyVox → DIBS canonical signing string: HTTP_METHOD \n REQUEST_PATH \n TIMESTAMP \n NONCE \n SHA256(RAW_BODY)
CREATED → INITIATED → RINGING → ANSWERED
→ CONSENT_CAPTURED → CALLER_VERIFIED → CONTEXT_LOADED
→ ACTIVE → ACTION_REQUESTED
→ ACTION_APPROVED | DENIED | ESCALATED
→ TRANSFERRED | CALLBACK_SCHEDULED | COMPLETED | FAILED
Every transition is audited.Action allowlist
What the agent may request, what commits automatically, and what escalates to a human.
| Action | Auto-allow when | Escalate when |
|---|---|---|
| Provide shipment status | Caller authenticated; customer-safe facts only | Low location confidence or active incident |
| Record carrier availability | Approved contact with a valid carrier profile | Identity mismatch |
| Record tender acceptance | Insurance, authority, equipment, rate and contact all match | Any exception |
| Record ETA | Driver or carrier link verified | Material GPS/ELD conflict |
| Confirm appointment | Facility record and contact match | New cost or rejection outside policy |
| Create recovery request | Active incident and evidence threshold met | Tier 0 cargo, safety or custody issue |
| Activate vendor | Pre-approved vendor, playbook and budget threshold | Over budget or non-approved vendor |
Never permitted
Changing banking details, releasing payment, overriding a fraud hold, promising coverage or payout, or authorising air charter. These route to finance, compliance and legal workflows only.
Incident mode and resilience targets
Severity runs 1 (single delay) to 5 (multi-region catastrophe). Campaigns stop the moment capacity is secured and never negotiate beyond ceilings.
Recovery campaign object
- campaignId, incidentId, type, priorityTier, targetPool, loadIds.
- callWindowMinutes and retryPolicy bound outbound volume.
- permittedActions is an explicit subset of the allowlist.
- successCondition halts the campaign as soon as capacity is secured.