Voice Agent APIs With Built-In Function Calling - Zian AI

Voice Agent APIs With Built-In Function Calling

Quick answer: Three kinds of product have function calling built in: realtime model APIs (OpenAI Realtime, Gemini Live, Amazon Nova 2 Sonic), voice-agent platforms (Vapi, Retell AI, ElevenLabs Agents, Bland, Synthflow) and frameworks (Pipecat, LiveKit Agents). We read all ten on 14 October 2026. Seven document MCP tools during a call. Five document a non-blocking tool mode, and two more offer only fire-and-forget. Vapi and ElevenLabs default to a 20-second tool timeout and Retell to 120 seconds.

Where can I find a voice agent API with built-in function calling support?

In one sentence: built-in function calling means the voice model or agent can decide mid-conversation to call a function you defined, fill its arguments from what the caller said, and use the result in its next spoken turn. Every product in this guide does that. They differ in what you hand over, where your function runs, and what the caller hears while it runs.

  • Realtime model APIs (OpenAI Realtime API, Google Gemini Live API, Amazon Nova 2 Sonic). You declare tools in the session configuration; the model emits a call; your application runs it and sends the result back over the same connection. You own telephony, hosting and timeouts.
  • Voice-agent platforms (Vapi, Retell AI, ElevenLabs Agents, Bland, Synthflow). You register an HTTPS endpoint or a connected integration, and the platform calls it mid-call. The platform owns the phone line, the filler speech and the timeout.
  • Open-source frameworks (Pipecat, LiveKit Agents). The function lives in the agent’s own process. You own everything, including the defaults you forget to change.

What counts as built-in function calling, and what does not

Four things get called function calling in vendor marketing but fail the test, because the agent never uses your function’s result mid-call:

  • Post-call webhooks. Synthflow’s own docs say an email containing the call summary has to come “from your own system using the post-call webhook instead”.
  • A vendor’s own MCP server. Bland, Retell and Synthflow each publish one so that Claude, Cursor or Codex can manage your account. Retell’s MCP page says this is “not the same” as an agent calling a server’s tools during a call.
  • Provider-hosted tools such as web search, which run inside the model provider. LiveKit calls these “provider tools” and keeps them apart from function tools.
  • Client-side tools with no return path. Vapi says its Web SDK tools “cannot send a tool ‘result’ back to the model”.

The answer changes in three situations. If calls arrive by phone rather than browser, the model APIs need a telephony bridge first. If your tools already sit behind an MCP server, the MCP column narrows the field to seven. If any tool takes longer than about a second, the async column matters most.

How we built this matrix. Inclusion rule, applied identically to every row: a product is listed if its own documentation, read on 14 October 2026, lets the voice model or agent call a developer-defined function during a live conversation. Post-call webhooks, account-management MCP servers and provider-hosted tools do not count. Every cell comes from that vendor’s own documentation page, saved on the day and linked in the source table below. Where a cell reads “we could not find”, we searched the vendor’s docs index and named tool pages (for Bland, also its website sitemap and changelog) and confirmed each saved page contained something we knew was on it before treating an absence as real. These are the ten developer stacks we compared, not a sweep of the whole category. Disclosure: this page is published by Zian, and Zian appears in it as the first option.

The function-calling capability matrix, read 14 October 2026

Five questions per row: declaration, execution, async, timeout and MCP.

Option How tools are declared Where the function executes Can the call carry on while it runs? Documented tool timeout MCP tools during a call
Zian (AI agents platform) No schema to write: per Zian’s FAQ, “KB scope, tool access, and rules are all configurable” Zian’s platform: CRM, calendar, knowledge-base and web research lookups; “Use our API for custom workflows” Not published on zian.ai Not published on zian.ai Not published on zian.ai
OpenAI Realtime API JSON Schema "type": "function" in session.tools (session-wide) or response.tools (one response) Your client or server: you receive function_call, return function_call_output, then send response.create No per-tool async flag in the Realtime guides; async: true is documented for the Responses API. OpenAI’s separate GPT-Live model delegates tools to a backend, and “Live speech and delegated work continue independently” None documented; your code runs the function Yes: "type": "mcp" with server_url, executed by the Realtime API itself, optional require_approval
Google Gemini Live API function_declarations in the session config Your client: reply with FunctionResponse objects via send_tool_response Gemini 3.8 Live: yes, NON_BLOCKING is the default, with scheduling SILENT / WHEN_IDLE / INTERRUPTED. Gemini 3.1 Flash Live: synchronous only None documented Not on the Live API tools page; remote MCP is documented for Gemini’s Interactions API
Amazon Nova 2 Sonic toolSpec with a JSON inputSchema in the promptStart event; toolChoice auto, any or a named tool Your application: receive toolUse, send toolResult Yes, by default: “No extra configuration is required” None documented; with no toolResult “the model enters a waiting state” We could not find it on the Nova 2 Sonic tool pages
Vapi Tool type function with a function.parameters JSON Schema, in the dashboard or POST /tool Your server, via Vapi’s tool-calls webhook to server.url (an API Request tool can call an HTTPS endpoint directly) Fire-and-forget only: with async on, “the assistant will move forward without waiting for your server to respond”; default synchronous timeoutSeconds default 20 s, range 1–300 s Yes: MCP tool type, Streamable HTTP by default
Retell AI Custom function: URL, method, headers, and a JSON-schema parameter object Your endpoint; Retell sends the request (POST by default) signed with X-Retell-Signature Waits by default: Retell “waits for your response before continuing”; optional Talk While Waiting line. If the caller speaks meanwhile, the agent answers them, the request still runs to completion and the result stays in the transcript for a later turn 120,000 ms default, range 1,000–600,000 ms; max_retry 0–5 Yes: remote MCP server over Streamable HTTP
ElevenLabs Agents Webhook, client, code, MCP and system tools; LLM-filled path, query and body parameters Your API (webhook tools), your app (client tools) or an ElevenLabs sandbox (code tools) Yes: execution_mode async “runs the tool in the background without blocking” response_timeout_secs default 20 s, range 5–300 s Yes: SSE and streamable HTTP, with per-tool approval modes
Bland Webhook, custom-code or integration tool in the tool builder, tagged into a prompt with @ Your endpoint (webhook tools run GET and POST), Bland’s code runtime, or a connected service Fire-and-forget only: “Check nothing and the tool fires and moves on” Range 1,000–60,000 ms We could not find an agent-side MCP tool type; Bland’s MCP server is for coding and personal agents
Synthflow Custom action: HTTP method, URL, headers, body, and <variable> placeholders Your API, before or during the call Waits: start, delay and failure messages plus optional action audio cover the gap Configurable: failure_timeout, in seconds, on the Create Action API; we could not find a default value, as at 14 October 2026 Yes, on Prompt Builder agents only: Streamable HTTP preferred, SSE fallback, no stdio
Pipecat A direct function (schema derived from its signature and docstring) or a FunctionSchema Your agent process Yes: cancel_on_interruption=False makes the call asynchronous None unless you set one: timeout_secs and function_call_timeout_secs both default to None Yes: MCPClient over stdio, SSE or Streamable HTTP
LiveKit Agents @function_tool (Python) or llm.tool() (Node.js) Your agent process Yes: a tool becomes non-blocking once it calls ctx.update() None for function tools; MCP session timeout default 5 s Yes, Python only: MCPToolset

Across the ten developer stacks (Zian is left out of these counts because it is an AI agents platform, not a tool-calling API): seven document MCP tools during a call, namely OpenAI Realtime, Vapi, Retell, ElevenLabs, Synthflow, Pipecat and LiveKit. Five document a non-blocking mode, where the conversation keeps going while a tool runs: Gemini 3.8 Live (not 3.1 Flash Live), Nova 2 Sonic, ElevenLabs, Pipecat and LiveKit. Two more, Vapi and Bland, offer only fire-and-forget, where the agent moves on without waiting for the result. The other three either wait (Retell, Synthflow) or document no per-tool async flag (OpenAI Realtime). Only three publish a default tool timeout: Vapi and ElevenLabs at 20 seconds, Retell at 120 seconds.

On a voice platform, the function runs on your server and the platform holds the stopwatch; on a model API or a framework, you hold both.

Model APIs: OpenAI Realtime, Gemini Live and Nova 2 Sonic hand the call back to you

All three take a JSON-schema tool definition and return a structured call. None runs your function or publishes a timeout for it, because the function runs in your code.

OpenAI Realtime API. Tools are set “either at the session level, or the individual response level” (session.tools or response.tools). The model returns a function_call item with a call_id; your code runs it, adds a function_call_output item and sends response.create. OpenAI’s “Realtime with tools” page adds a second route: an mcp tool with a server_url is “executed by the Realtime API itself”, with optional approval. The same page deprecates connector_id for models released after 1 September 2026. OpenAI’s newer GPT-Live model instead delegates tool use to a backend and “can continue speaking while your application reviews a backend result”.

Google Gemini Live API. You declare function_declarations in the session config and answer with send_tool_response; “the Live API doesn’t support automatic tool response handling”. The model matters. Google’s Gemini 3.8 Live page says NON_BLOCKING “is now the default function calling mode”, with scheduling (SILENT, WHEN_IDLE, INTERRUPTED) deciding when the model speaks about a result. The Live API tools page lists Gemini 3.1 Flash Live Preview as “Supported (synchronous only)”. Remote MCP appears on Google’s function-calling page for the Interactions API, not for the Live API.

Amazon Nova 2 Sonic. Tools go in the promptStart event as a toolSpec with a JSON inputSchema, and toolChoice can be auto (default), any or a named tool. Nova sends toolUse and expects toolResult. Asynchronous tool calling needs “no extra configuration”, and AWS says the system “does not automatically cancel or ignore tool calls based on new user input”. The warning that matters on a phone line: without a toolResult, “the model enters a waiting state, causing unresponsive behavior”.

Voice-agent platforms: Vapi, Retell, ElevenLabs, Bland and Synthflow call your endpoint

On the platforms, a tool is an HTTPS request the platform makes for the agent. What bites in production is the timeout default, what the caller hears, and whether a call can go non-blocking.

Vapi. A Function tool is type: "function" with a function.parameters schema and a server.url. Vapi posts a tool-calls message; the result “must be a flat string”, and you should “always respond with HTTP 200”, reporting failures through error. The server timeout defaults to 20 seconds (1 to 300 allowed), and request-start, delayed, complete and failed messages cover the wait. Async mode exists, but the assistant “will move forward without waiting for your server to respond”, so it suits triggers, not lookups. Vapi’s MCP tool imports a server’s complete tool list with no per-tool filter, so scope the server.

Retell AI. A custom function is a URL, a method (POST by default), headers and a JSON-schema parameter object, signed with X-Retell-Signature. Retell “waits for your response before continuing”, with a timeout that defaults to 120,000 ms (1,000 to 600,000 allowed), optional max_retry from 0 to 5, and a 15,000-character cap on the result. Talk While Waiting (off by default) fills the gap. If the caller interrupts, “the request to your endpoint is not cancelled”; our guide to gating tool calls on an unfinished turn covers that risk. Retell’s MCP tools use Streamable HTTP and do not run an interactive OAuth flow.

ElevenLabs Agents. Five tool kinds: client, webhook, code, MCP and system. Per-tool settings do work other stacks leave to you: execution_mode (immediate, post_tool_speech or async), pre_tool_speech (default auto, which “decides based on recent tool latency”) and interruption_mode (default allow). response_timeout_secs defaults to 20 and must be 5 to 300. MCP works over SSE and streamable HTTP, but “MCP support is not currently available for users on Zero Retention Mode or those requiring HIPAA compliance”.

Bland. The current builder (the older raw-JSON “Custom Tools” are labelled legacy) offers webhook, custom-code and integration tools, tagged into a prompt with @. Tools do not follow the agent into pathways. Webhook tools run GET and POST, the timeout accepts 1,000 to 60,000 ms, agent speech fills the wait, and a tool waits for a response only if you check an output field. We could not find an MCP tool type for Bland agents as at 14 October 2026: the MCP pages in Bland’s docs index cover its own server for coding and personal agents, and its August 2025 MCP changelog entry is about documentation access.

Synthflow. A custom action is an HTTP request with method, URL, headers, body, authentication and <variable_name> placeholders, run before or during the call. While it runs, the agent can speak start, delay and failure messages over optional action audio. MCP connectors work “on Prompt Builder agents only”, Streamable HTTP preferred and SSE as fallback; a timed-out MCP call is handled by the LLM, and Synthflow “cannot guarantee the response time of your MCP server”. Synthflow’s Create Action API reference documents failure_timeout (“How long to wait for the custom action to complete before timing out (in seconds)”) and a message_delay_time threshold for the delay message; we could not find a default value for either, as at 14 October 2026.

Would rather not own the tool layer? Zian’s AI agents answer inbound calls 24/7 and run outbound follow-up across voice, SMS, email, WhatsApp, Instagram and Facebook Messenger, with research, web and knowledge-base lookups and API and CRM integrations (HubSpot, Salesforce, HighLevel, Zapier) built in. Zian is in partnership-application beta.

Apply For Partnership

Frameworks: Pipecat and LiveKit Agents run the function in your process

A framework tool is a function in the agent’s own process: no webhook, no network hop to your code, and no platform default protecting you from a slow API.

Pipecat. The preferred definition is a “direct function” whose name, description and parameters are derived from its signature and docstring; FunctionSchema is the verbose alternative. @tool_options sets cancel_on_interruption (default True; set False and “the conversation is not held while it runs”), timeout_secs (default None) and cancellable_by_llm. Pipecat’s LLMService source starts a timeout only when timeout_secs or the global function_call_timeout_secs is set, and both default to None. A Pipecat tool has no timeout until you give it one. MCPClient adds MCP tools over stdio, SSE or Streamable HTTP.

LiveKit Agents. Tools are @function_tool methods in Python or llm.tool() in Node.js. LiveKit says it plainly: “Tools that take more than a few seconds block the conversation until they return.” A tool that calls ctx.update() becomes non-blocking, and ctx.with_filler() (Python) plays filler without the LLM. Function tools have no framework timeout; LiveKit’s advice is to “set explicit timeouts on your HTTP requests”. MCP is “ONLY Available in Python”, and LiveKit’s source defaults the HTTP MCP server to 5-second connection and client-session timeouts; our guide to MCP tool timeouts and transport for voice agents covers what to set instead.

How long can a tool take, and which setting handles it on each stack?

The latency bands come from our guide to why voice agents go silent on tool calls, where the evidence for each band lives. This table adds the setting on each stack that implements the band. Measure the caller-audible p95, not the median.

Tool round-trip, p95 Pattern The setting that does it
Under 400 ms Plain synchronous call, no filler Defaults everywhere. Turn off any pre-tool line: Retell Talk While Waiting off (its default), ElevenLabs pre_tool_speech off, Bland agent speech blank, Synthflow action audio None
400 ms – 1.2 s Synchronous, one short line before the request Vapi request-start message; Retell Talk While Waiting; ElevenLabs pre_tool_speech auto or force; Bland agent speech; Synthflow start message; LiveKit session.say(); on the model APIs, your own pre-recorded line
1.2 s – 4 s Non-blocking: the conversation carries on while the tool runs Gemini 3.8 Live NON_BLOCKING (default) with a scheduling value; Nova 2 Sonic (default); ElevenLabs execution_mode async; Pipecat cancel_on_interruption=False; LiveKit ctx.update(); OpenAI’s GPT-Live, which keeps speaking while delegated backend work runs. On Vapi, Retell, Bland, Synthflow and the OpenAI Realtime API we found no per-tool switch that keeps the call going and still waits for the result, so use staged delay messages (Vapi timingMilliseconds, Synthflow delay message) or move the work off the call
Over 4 s Off the call: commit to a callback or a text Fire-and-forget is acceptable here because the caller is not waiting for the answer: Vapi async, Bland with no output fields checked. Then set the timeout explicitly (next row)
Any band Set the timeout below what a caller will tolerate Vapi timeoutSeconds (default 20); Retell timeout (default 120,000 ms); ElevenLabs response_timeout_secs (default 20, minimum 5); Bland timeout (minimum 1,000 ms); Synthflow failure_timeout (seconds, no published default); Pipecat timeout_secs (default none); on the model APIs and LiveKit, your own HTTP client timeout

The default timeouts are longer than any caller will wait

Every published default in the matrix is longer than the 4-second line where our dead-air guide says the work no longer belongs on the call. Vapi’s 20 seconds is five times that line (20 ÷ 4 = 5), and Retell’s 120 seconds is 30 times it (120,000 ms ÷ 4,000 ms = 30). ElevenLabs cannot be set below 5 seconds. Pipecat and LiveKit function tools have no timeout unless you add one. Retell’s timeout also applies per attempt: its page puts the worst case at “your timeout times (max_retry + 1), plus the backoff between attempts”, so 120 seconds with five retries is 720 seconds before backoff. On a phone call, the default is the setting most likely to ship by accident. The first thing to change after you enable function calling on any voice stack is the timeout; the second is what the caller hears before the tool fires.

Which should I use?

Start with what you want to own. For the cost side, our analysis of when to switch from a voice agent platform to a framework works the crossover through with real prices.

  1. Zian, if you want the agent’s lookups and CRM writes done rather than built. Zian is an AI sales and reception agents platform: it answers inbound calls 24/7 as an AI receptionist, follows up across calls, SMS, email, WhatsApp, Instagram DMs and Facebook Messenger, and books appointments from both. Research, web and knowledge-base lookups and integrations (HubSpot, Salesforce, HighLevel, Zapier, plus Zian’s API for custom workflows) are built in, and tool access is configurable per agent. Zian’s home page counts 50,769+ qualified sales appointments set. The honest gap: Zian is in partnership-application beta, has no public price, and does not publish a developer tool-schema format or timeout figures.
  2. LeadsNow.ai, if you want the outcome done for you. LeadsNow.ai is a pay-per-result, done-for-you AI appointment-setting and lead-generation service that runs on Zian. It answers leads in under 60 seconds, 24/7.
  3. A voice-agent platform, if you have an API and want someone else to run the phone line. ElevenLabs if you want per-tool async and latency-aware pre-tool speech as settings rather than code; Retell if you want signed requests and configurable retries; Vapi if you want separate tool types for direct HTTPS calls, your own server, browser-side actions and MCP; Synthflow if your team builds in a dashboard and already runs an MCP server; Bland if you want webhook, code and connected-integration tools in one builder.
  4. A realtime model API, if you want the lowest layer and will run the bridge yourself. Gemini 3.8 Live and Nova 2 Sonic make non-blocking tools the default; OpenAI Realtime is the one of the three whose realtime docs we found MCP tools in. For OpenAI with non-blocking tools, OpenAI’s GPT-Live delegates tool use to a backend and keeps the conversation going while it runs.
  5. A framework, if tools must live in your own process. The most control and the fewest guard-rails: set every timeout yourself.

Who each is wrong for: model APIs, for a team with nobody to own telephony and timeouts; platforms, if a tool must run inside a private network with no inbound HTTPS; frameworks, if nobody will own an on-call rota; fire-and-forget async (Vapi, Bland), for any lookup whose answer the caller is waiting to hear.

Where every figure on this page comes from

Figure Who published it Link Date read
OpenAI Realtime: tools set in session.tools or response.tools; MCP tools executed by the Realtime API; connector_id deprecated for models released after 1 September 2026 OpenAI developers.openai.com/api/docs/guides/realtime-mcp 14 October 2026
OpenAI Realtime function-call flow (function_call, function_call_output, response.create) OpenAI developers.openai.com/api/docs/guides/realtime-conversations 14 October 2026
OpenAI async: true flag documented for the Responses API OpenAI developers.openai.com/api/docs/guides/async-tool-calling 14 October 2026
GPT-Live delegates tool use to a backend and can keep speaking OpenAI developers.openai.com/api/docs/guides/live-delegation 14 October 2026
Gemini 3.8 Live: NON_BLOCKING is the default function calling mode; scheduling SILENT, WHEN_IDLE, INTERRUPTED Google ai.google.dev/gemini-api/docs/models/gemini-3.8-live 14 October 2026
Gemini 3.1 Flash Live: function calling synchronous only; no automatic tool response handling in the Live API Google ai.google.dev/gemini-api/docs/live-api/tools 14 October 2026
Remote MCP documented for the Gemini Interactions API Google ai.google.dev/gemini-api/docs/function-calling 14 October 2026
Nova 2 Sonic: toolSpec in promptStart; toolChoice auto, any or tool; waiting state without toolResult Amazon Web Services docs.aws.amazon.com/nova/latest/nova2-userguide/sonic-tool-configuration.html 14 October 2026
Nova 2 Sonic: asynchronous tool calling with no extra configuration; no automatic cancellation Amazon Web Services docs.aws.amazon.com/nova/latest/nova2-userguide/sonic-async-tools.html 14 October 2026
Vapi: server timeoutSeconds default 20 s, range 1–300 s; async defaults to synchronous (false) Vapi docs.vapi.ai/api-reference/tools/create 14 October 2026
Vapi: Function tool request and response format; always respond HTTP 200 Vapi docs.vapi.ai/tools/custom-tools 14 October 2026
Vapi: MCP tool, Streamable HTTP by default, no per-tool filter Vapi docs.vapi.ai/tools/mcp 14 October 2026
Vapi: client-side tools cannot send a result back Vapi docs.vapi.ai/tools/client-side-websdk 14 October 2026
Retell: timeout default 120,000 ms, range 1,000–600,000 ms; max_retry 0–5; result capped at 15,000 characters; worst case timeout times (max_retry + 1) Retell AI docs.retellai.com/build/single-multi-prompt/custom-function 14 October 2026
Retell: MCP tools over Streamable HTTP; no interactive OAuth flow Retell AI docs.retellai.com/build/single-multi-prompt/mcp 14 October 2026
ElevenLabs: response_timeout_secs default 20 s, range 5–300 s; execution_mode, pre_tool_speech, interruption_mode ElevenLabs elevenlabs.io/docs/eleven-agents/api-reference/tools/create 14 October 2026
ElevenLabs: five tool kinds ElevenLabs elevenlabs.io/docs/eleven-agents/customization/tools 14 October 2026
ElevenLabs: MCP over SSE and streamable HTTP; not available with Zero Retention Mode or HIPAA ElevenLabs elevenlabs.io/docs/eleven-agents/customization/tools/mcp 14 October 2026
Bland: tool timeout 1,000–60,000 ms; webhook tools run GET and POST; wait only if an output field is checked Bland docs.bland.ai/agents/tools 14 October 2026
Bland: Custom Tools now legacy Bland docs.bland.ai/tutorials/tools/overview 14 October 2026
Bland: 4 August 2025 MCP changelog entry is documentation access Bland www.bland.ai/changelog/2025-08-04-model-context-protocol-integration 14 October 2026
Synthflow: custom actions, start/delay/failure messages, action audio default None Synthflow docs.synthflow.ai/about-custom-actions 14 October 2026
Synthflow: custom action failure_timeout (seconds) and message_delay_time delay threshold; no default stated Synthflow docs.synthflow.ai/api-reference/platform-api/actions/create-action 14 October 2026
Synthflow: MCP on Prompt Builder agents only; Streamable HTTP preferred, SSE fallback, no stdio Synthflow docs.synthflow.ai/mcp-actions 14 October 2026
Pipecat: cancel_on_interruption default True; timeout_secs default None; cancellable_by_llm default False Pipecat (Daily) docs.pipecat.ai/pipecat/learn/function-calling 14 October 2026
Pipecat: function_call_timeout_secs defaults to None; timeout task only started when a timeout is set Pipecat (Daily), source code github.com/pipecat-ai/pipecat/blob/main/src/pipecat/services/llm_service.py 14 October 2026
Pipecat: MCPClient over stdio, SSE or Streamable HTTP Pipecat (Daily) docs.pipecat.ai/api-reference/server/utilities/mcp/mcp 14 October 2026
LiveKit: tools longer than a few seconds block the conversation; ctx.update() makes a tool non-blocking LiveKit docs.livekit.io/agents/logic/tools/async/ 14 October 2026
LiveKit: set explicit timeouts on HTTP requests LiveKit docs.livekit.io/agents/logic/tools/definition/ 14 October 2026
LiveKit: MCP Python only LiveKit docs.livekit.io/agents/logic/tools/mcp/ 14 October 2026
LiveKit: MCP connection timeout 5 s and client session timeout 5 s defaults LiveKit, source code github.com/livekit/agents/blob/main/livekit-agents/livekit/agents/llm/mcp.py 14 October 2026
Latency bands: under 400 ms, 400 ms–1.2 s, 1.2–4 s, over 4 s Zian (our decision rule) zian.ai/ai-voice-agent-silent-tool-calls-dead-air/ 14 October 2026
Counts: 7 of 10 with MCP, 5 non-blocking, 2 fire-and-forget, 3 published default timeouts Zian (this page) The matrix above 14 October 2026
Zian: tool access configurable; CRM, comms, calendars, knowledge bases; Use our API for custom workflows Zian zian.ai/features-integrations/ 14 October 2026
Zian: 50,769+ qualified sales appointments set Zian zian.ai/ 14 October 2026
LeadsNow.ai: pay-per-result; leads answered in under 60 seconds, 24/7 LeadsNow.ai leadsnow.ai/ 14 October 2026

Frequently asked questions

Which voice AI APIs support function calling?

At the model layer, the OpenAI Realtime API, the Google Gemini Live API and Amazon Nova 2 Sonic. As managed voice-agent platforms, Vapi, Retell AI, ElevenLabs Agents, Bland and Synthflow. As open-source frameworks, Pipecat and LiveKit Agents. All ten documented it on 14 October 2026.

Can a voice agent keep talking while a function runs?

Five of the ten document a non-blocking mode: Gemini 3.8 Live, where Google’s model page makes NON_BLOCKING the default function calling mode; Nova 2 Sonic, by default; ElevenLabs, with execution mode set to async; Pipecat, with cancel_on_interruption set to False; and LiveKit, once a tool calls ctx.update. Vapi and Bland offer only fire-and-forget, where the agent moves on without waiting for the result. Gemini 3.1 Flash Live is synchronous only. Outside these ten, OpenAI’s GPT-Live keeps speaking while the backend it delegates to runs your tools.

What timeout should I set on a voice agent tool call?

Shorter than the default. Vapi and ElevenLabs default to 20 seconds, and Retell’s custom function page sets 120,000 ms by default. Pipecat and LiveKit function tools have no timeout until you add one. Our rule is that a tool whose p95 is over about 4 seconds does not belong on the call: end the turn with a commitment and deliver the answer by callback or text.

Do voice agent platforms support MCP servers?

Most do. Vapi, Retell AI, ElevenLabs Agents and Synthflow let an agent call tools on an external MCP server during a call, and so do the OpenAI Realtime API, Pipecat and LiveKit Agents (Python only). The limits are on the vendors’ own pages: ElevenLabs excludes Zero Retention Mode and HIPAA workspaces, and Synthflow supports Prompt Builder agents only. We could not find an agent-side MCP tool type for Bland as at 14 October 2026.

What happens if the caller interrupts while a tool is running?

It depends on the stack. Retell says the request to your endpoint is not cancelled and runs to completion. Nova 2 Sonic never cancels a pending tool call automatically and delivers the result anyway. Pipecat cancels the call by default, because cancel_on_interruption defaults to True. ElevenLabs lets the caller interrupt by default and offers per-tool settings to suppress that while a tool runs. If a tool books or charges something, treat it as a write and gate it.

Does Zian offer a function-calling API for voice agents?

Zian is an AI sales and reception agents platform rather than a tool-calling API. Its features page says agents connect to your CRM, comms, calendars and knowledge bases, that tool access is configurable, and that its API is available for custom workflows. Zian does not publish a tool schema format, timeout figures or MCP support, as at 14 October 2026. It is in partnership-application beta.

Want the calls answered and the follow-up run without writing a tool layer? Zian’s agents answer inbound calls 24/7, book appointments and follow up across voice, SMS, email, WhatsApp, Instagram DMs and Facebook Messenger, in 30+ languages. Zian is in partnership-application beta.

Apply For Partnership


Related Blogs

Related from Zian AI