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.

ActionAuto-allow whenEscalate when
Provide shipment statusCaller authenticated; customer-safe facts onlyLow location confidence or active incident
Record carrier availabilityApproved contact with a valid carrier profileIdentity mismatch
Record tender acceptanceInsurance, authority, equipment, rate and contact all matchAny exception
Record ETADriver or carrier link verifiedMaterial GPS/ELD conflict
Confirm appointmentFacility record and contact matchNew cost or rejection outside policy
Create recovery requestActive incident and evidence threshold metTier 0 cargo, safety or custody issue
Activate vendorPre-approved vendor, playbook and budget thresholdOver 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.

< 500ms
Webhook acknowledgement
< 2s
Median tool action
< 60s
Failover
< 5 min
Incident campaign launch

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.