Phone numbers for AssemblyAI — SIP trunk setup with DIDHub
AssemblyAI provides realtime speech-to-text (Universal-Streaming) and the LeMUR LLM API for voice intelligence on top of audio. To put AssemblyAI on a phone number, bridge PSTN to AssemblyAI's WebSocket streaming API via a SIP-to-WebSocket gateway (LiveKit, Pipecat, or custom). DIDHub is the carrier on the PSTN side — A-attestation, regional ingress, 136-country inventory.
Why DIDHub for AssemblyAI
- AssemblyAI is the AI; DIDHub is the phone line. Clean separation: AssemblyAI does STT + LeMUR; DIDHub provides the DIDs, voice routing, and STIR/SHAKEN signing. Both layers work better when each does one thing well.
- Sub-50ms regional ingress for the realtime streaming API. AssemblyAI's Universal-Streaming model is latency-sensitive. DIDHub's regional SIP/RTP edges (NOAM, EU, APAC, MENA) keep the PSTN-to-AssemblyAI hop tight.
- STIR/SHAKEN A-attestation. Critical for production US/CA outbound from AssemblyAI-powered voice agents. DIDHub-allocated and DIDHub-ported numbers are signed A by default.
- Compatible with LiveKit, Pipecat, custom bridges. Whatever pattern you use to bridge SIP to WebSocket, DIDHub works on the carrier side.
BYOC setup — step by step
- Sign up at /signup and provision DIDs.
- Generate DIDHub SIP credentials.
- Set up a SIP-to-WebSocket bridge: LiveKit Agents (most common pattern), Pipecat, or a custom Node/Python bridge.
- In the bridge, register the DIDHub SIP trunk as the inbound carrier.
- Connect the bridge to AssemblyAI's Universal-Streaming WebSocket endpoint. Send audio frames upstream, receive transcripts/events downstream.
- Optionally wire LeMUR for LLM-powered post-processing on top of the transcript.
- Test inbound + outbound; validate latency end-to-end.
Caller-ID configuration
For outbound, your bridge layer specifies the From-header. Use a DIDHub-allocated DID. For US/CA, A-attestation is automatic on DIDHub-allocated numbers.
For US/CA outbound: DIDHub signs every call with STIR/SHAKEN attestation A on DIDHub-allocated and DIDHub-ported numbers. This is the level that mobile carriers (T-Mobile, Verizon, AT&T) treat with baseline trust — calls signed with weaker attestation are increasingly flagged as “Spam Likely” or sent straight to voicemail. See STIR/SHAKEN explained for the full background.
For non-US destinations: present a local DID as Caller-ID for best answer rates. AI agent calling a Madrid customer should present a +34 (Spanish) Caller-ID, not a US number. DIDHub serves 136 countries with dedicated landing pages so you can match Caller-ID to destination.
Latency & regional ingress
Realtime AI voice is brittle to network latency — an extra 100ms of SIP egress can break the natural-conversation feel. DIDHub operates SIP/RTP edges in:
- NOAM: Ashburn (US-East), San Jose (US-West), Dallas
- EU: Frankfurt, Amsterdam
- APAC: Singapore, Tokyo
- MENA: Dubai
Pick the edge nearest to your AssemblyAI inference region. Typical sub-50ms regional ingress for the closest pair. If you need a region we don't list, talk to [email protected] — we add edges in response to customer demand.
FAQ
Does AssemblyAI have native phone-call support?
AssemblyAI provides the streaming STT and LeMUR LLM APIs — not a turnkey phone-agent product. To put it on a phone number, you connect via a SIP-to-WebSocket bridge (LiveKit, Pipecat, custom) with DIDHub as the SIP carrier.
What's the easiest pattern to use?
LiveKit Agents has the cleanest documented pattern: livekit-sip ingests from DIDHub, the LiveKit Agent SDK bridges audio to AssemblyAI's WebSocket, transcripts and LeMUR responses flow back through your application.
AssemblyAI vs Deepgram for voice agents?
Both offer realtime STT with similar latency profiles; AssemblyAI's LeMUR is a built-in LLM for transcript post-processing, while Deepgram has its own Voice Agent API. Pick based on the specific feature set you need; DIDHub works as the carrier for either.
Latency expectations?
AssemblyAI's Universal-Streaming model is fast (~300ms first-word). Pair with DIDHub's regional edge nearest to your AssemblyAI inference region for the tightest end-to-end latency.
Provision your first AssemblyAI DID
Sign up at /signup, pick a country / area code, and route the DID to your AssemblyAI BYOC SIP trunk. $1.99/mo for a US number, sub-60-second activation on most countries. No commits.
Ready to get a number?
Pick a DID in 130+ countries from $1.99/month. Activates instantly on most numbers.