Choose an integration
Kapso forwards signed Calling webhooks, proxies call actions, and stores call logs. Your media server or voice provider handles audio and the conversation. Complete Calling setup first.
These provider guides may describe connecting directly to Meta. Through Kapso, use your project API key, Kapso’s call-action URLs, and Kapso’s webhook signature scheme. Do not substitute a Meta access token or app-secret verifier into the Kapso integration.
Kapso’s dashboard Pipecat provider uses a Cloud session-launch contract; a stock self-hosted Pipecat server does not automatically implement it. The direct webhook path works with your own server. Before testing, choose whether the dashboard-assigned agent or your receiver answers the number’s calls.
ElevenLabs text-to-speech can also be used inside a Pipecat pipeline. This is different from using ElevenLabs Agents, which hosts the conversation, prompt, and tools.
Connect the call to the agent
Your integration needs three parts:- Receiver and call state. Verify signed events, process every call and status in a batch, and maintain one session per Meta call ID. Keep messaging and permission-reply handling on a shared receiver. See Receive calls.
- WebRTC media. Generate real SDP from the peer carrying this call’s audio. HTTPS carries events and SDP; audio needs a reachable WebRTC path, including TURN when your network requires it. Keep the peer alive while ringing and throughout the call.
- Provider session. Connect the peer’s audio to your chosen runtime. Match input/output encoding and sample rates; for ElevenLabs, read the negotiated audio formats in the conversation metadata. Keep provider credentials on your server and associate its session ID with the Meta call ID.
pre_accept, then accept. Start the greeting after accept succeeds and media is connected.
For outbound calls, apply the SDP answer to the pending connection, then wait for the matching ACCEPTED status and media readiness. The answer can arrive while the phone is still ringing. If your provider speaks immediately when a conversation opens, wait until this point to start it.
Handle provider interruptions, tools, keepalive, errors, and conversation completion. Configure the prompt, voice, and turn detection in the provider; they are separate from the Calling transport.
End both sessions
- Caller hangs up: Meta sends
terminate; close the provider session, pipeline, and WebRTC peer. - Agent hangs up: let farewell audio finish, send
terminatethrough Kapso, then release those resources. For ElevenLabs, connect end-call behavior and conversation completion to this cleanup. - Startup or provider fails: decline an unanswered inbound call with
reject, or end an active call withterminate, and release resources even if cleanup reports an error.

