Skip to main content
Run the call service without a carrier account or phone network. The provider fixture lets you inspect the exact host integration flow before replacing it with a real adapter. Download the complete project, extract it, then run npm install and npm run check. Use npm start to execute the recipe with the requirements below.

Install and run

Use a supported Node version, then:
Save this as telephony.ts:
telephony.ts
Expected output:

What this verifies

The same intent and payload reach the provider’s create once. A different user cannot read Alice’s intent. The application requests hangup and then reads status to establish cancellation; acknowledgement alone is not enough. This fixture exercises local contracts. It does not establish live carrier interoperability, callback verification, or media delivery.

Connect a real carrier

Replace provider with Twilio, Telnyx, SignalWire, Vonage, Exotel, or LiveKit SIP. Use a durable intent store, authenticated identity, and application authorization before exposing an endpoint. With a real provider, create() places a real call. Preserve the business intent ID across retries. An uncertain create must be reconciled; generating a new intent can dial twice. The media path is a separate voice integration.