Skip to main content
Use createTwilioCallProvider from @agentium/core/telephony. It implements outbound create, read, hangup, and normalization of already verified status events.

Before you connect

An owned caller ID, account SID, HTTPS TwiML answer endpoint, and optional HTTPS status callback. Return a complete Basic header from authorization().
This adapter uses HTTP and does not require the carrier’s Node SDK. You may still use that SDK in your host to validate callbacks or issue application credentials.

Configure the provider

This complete factory accepts host-owned configuration. Constructing it does not place a call. Read secrets and route values from your server configuration before calling it.
routeId identifies a fixed host-approved route. Version it when the account or destination infrastructure changes. allowedFrom is a snapshot of permitted E.164 caller IDs. authorization returns the full HTTP header and can read rotating credentials on each request. Pass this provider to OutboundCallService with an intent store and an authorization function. The call lifecycle recipe exercises create, deduplication, read, and hangup without dialing.

Provider behavior

Uses the Calls REST resource. Hangup reads the call first: queued/ringing calls are cancelled; active calls are completed. Your answer endpoint returns TwiML and establishes any media stream.

Status and failure handling

Verify provider signature, account, freshness, and replay constraints before normalizing a callback. Resolve tenant and intent from trusted storage; see callbacks and recovery. Create is never automatically retried by this adapter. A timeout after dispatch may mean the carrier accepted the call. Keep the original intent and reconcile it before attempting another effect. Hangup acknowledgement is not a terminal call status. See the provider’s call API documentation for account provisioning, answer documents, and media configuration. Agentium’s telephony contract describes its neutral request, status, and error types.