{
  "slug": "voice-agent-transport-webrtc-vs-websocket-vs-sip",
  "title": "Voice Agent Transport: WebRTC vs WebSocket, and Where SIP Fits",
  "description": "WebRTC vs WebSocket for voice AI agents: which transport each vendor documents as of the corpus's 2026-07-09 verification, how cascaded stacks use WebSocket components, a decision tree by client type, and a per-transport test checklist.",
  "kind": "sub",
  "order": 5,
  "target_query": "WebRTC vs WebSocket for voice AI agents",
  "secondary_queries": [
    "webrtc vs websocket voice ai",
    "openai realtime api webrtc"
  ],
  "tags": [
    "voice",
    "webrtc",
    "websocket",
    "sip",
    "transport",
    "realtime",
    "agents",
    "production"
  ],
  "published": "2026-10-09",
  "updated": "2026-10-09",
  "words": 1231,
  "estimated_tokens": 1637,
  "premium": false,
  "rights": {
    "access": "free",
    "note": "Editorial guides are always free and never part of the licensed corpus.",
    "license": "https://changegamer.ai/license.xml",
    "pricing": "https://changegamer.ai/api/pricing.json",
    "payment": "https://changegamer.ai/api/payment.json"
  },
  "license": "https://changegamer.ai/license.xml",
  "citation": "ChangeGamer (2026-10-09). Voice Agent Transport: WebRTC vs WebSocket, and Where SIP Fits. ChangeGamer. https://changegamer.ai/articles/voice-agent-transport-webrtc-vs-websocket-vs-sip (updated 2026-10-09).",
  "bibtex": "@misc{changegamer_voice_agent_transport_webrtc_vs_websocket_vs_sip, title = {Voice Agent Transport: WebRTC vs WebSocket, and Where SIP Fits}, publisher = {ChangeGamer}, year = {2026}, url = {https://changegamer.ai/articles/voice-agent-transport-webrtc-vs-websocket-vs-sip}, note = {Updated 2026-10-09}}",
  "canonical": "https://changegamer.ai/articles/voice-agent-transport-webrtc-vs-websocket-vs-sip",
  "markdown": "https://changegamer.ai/articles/voice-agent-transport-webrtc-vs-websocket-vs-sip.md",
  "takeaways": [
    "Transport for a voice agent tends to follow the client: the voice-realtime-agents reference pairs WebRTC with browser and mobile clients, WebSocket with server-to-server integration, and SIP with telephony where a vendor offers it.",
    "As of July 2026, OpenAI recommends WebRTC for browsers and mobile because of lower jitter and NAT traversal handling, and recommends WebSocket for server-to-server, according to the voice-realtime-agents reference.",
    "Google Gemini Live and xAI document WebSocket as their transport, and Amazon Nova Sonic uses Bedrock bidirectional streaming over WebSocket with a WebRTC path only through an AWS blog reference implementation.",
    "Because xAI's realtime API matches the OpenAI Realtime specification, a client built for OpenAI Realtime can point at xAI with minimal changes, according to the reference, so test event handling rather than assume it.",
    "The voice-realtime-agents reference does not cover SIP trunking, touch-tone handling or the phone network, so telephony choices need the vendor's own documentation and a test with real calls."
  ],
  "outline": [
    {
      "depth": 2,
      "text": "What transport does each voice API document?",
      "anchor": "what-transport-does-each-voice-api-document",
      "url": "https://changegamer.ai/articles/voice-agent-transport-webrtc-vs-websocket-vs-sip#what-transport-does-each-voice-api-document"
    },
    {
      "depth": 3,
      "text": "Why does OpenAI recommend WebRTC for browsers?",
      "anchor": "why-does-openai-recommend-webrtc-for-browsers",
      "url": "https://changegamer.ai/articles/voice-agent-transport-webrtc-vs-websocket-vs-sip#why-does-openai-recommend-webrtc-for-browsers"
    },
    {
      "depth": 3,
      "text": "What does \"OpenAI-compatible\" mean for transport?",
      "anchor": "what-does-openai-compatible-mean-for-transport",
      "url": "https://changegamer.ai/articles/voice-agent-transport-webrtc-vs-websocket-vs-sip#what-does-openai-compatible-mean-for-transport"
    },
    {
      "depth": 2,
      "text": "Which transport do the cascade components use?",
      "anchor": "which-transport-do-the-cascade-components-use",
      "url": "https://changegamer.ai/articles/voice-agent-transport-webrtc-vs-websocket-vs-sip#which-transport-do-the-cascade-components-use"
    },
    {
      "depth": 2,
      "text": "How should you choose a transport by client type?",
      "anchor": "how-should-you-choose-a-transport-by-client-type",
      "url": "https://changegamer.ai/articles/voice-agent-transport-webrtc-vs-websocket-vs-sip#how-should-you-choose-a-transport-by-client-type"
    },
    {
      "depth": 2,
      "text": "Where does SIP fit, and what does the corpus not say?",
      "anchor": "where-does-sip-fit-and-what-does-the-corpus-not-say",
      "url": "https://changegamer.ai/articles/voice-agent-transport-webrtc-vs-websocket-vs-sip#where-does-sip-fit-and-what-does-the-corpus-not-say"
    },
    {
      "depth": 2,
      "text": "Which transports do the open frameworks support?",
      "anchor": "which-transports-do-the-open-frameworks-support",
      "url": "https://changegamer.ai/articles/voice-agent-transport-webrtc-vs-websocket-vs-sip#which-transports-do-the-open-frameworks-support"
    },
    {
      "depth": 2,
      "text": "What should you test for each transport?",
      "anchor": "what-should-you-test-for-each-transport",
      "url": "https://changegamer.ai/articles/voice-agent-transport-webrtc-vs-websocket-vs-sip#what-should-you-test-for-each-transport"
    },
    {
      "depth": 2,
      "text": "What does ChangeGamer's own experience add?",
      "anchor": "what-does-changegamer-s-own-experience-add",
      "url": "https://changegamer.ai/articles/voice-agent-transport-webrtc-vs-websocket-vs-sip#what-does-changegamer-s-own-experience-add"
    }
  ],
  "faq": [
    {
      "question": "Should a voice AI agent use WebRTC or WebSocket?",
      "answer": "Use WebRTC when the caller is in a browser or mobile app and WebSocket when a server connects to the model, which is the pattern in the voice-realtime-agents reference. OpenAI recommends WebRTC for browsers and mobile as of July 2026, citing lower jitter and NAT traversal handling."
    },
    {
      "question": "Does the OpenAI Realtime API support WebRTC?",
      "answer": "Yes. The voice-realtime-agents reference, web-verified on 2026-07-09, lists WebRTC, WebSocket and a SIP path for the OpenAI Realtime API, and says OpenAI recommends WebRTC for browser and mobile clients and WebSocket for server-to-server connections."
    },
    {
      "question": "Does xAI's voice API use WebRTC?",
      "answer": "The reference records WebSocket streaming for the xAI Grok Voice Agent API, and does not mention WebRTC. It matches the OpenAI Realtime specification, so a client built for OpenAI Realtime can point at xAI with minimal changes."
    },
    {
      "question": "Can a voice AI agent answer phone calls over SIP?",
      "answer": "Some vendors offer a SIP path, and the reference names OpenAI as one, but it does not cover trunking, touch-tone input or the phone network. Confirm telephony details in the vendor's own documentation and test with real calls before launch."
    }
  ],
  "body": "The transport for a voice agent is the channel that carries audio between the caller's client and the model, and the voice-realtime-agents reference says the choice tends to follow the client: WebRTC for browsers and mobile, WebSocket for server-to-server, and SIP where a vendor adds it for telephony. This article is the deeper companion to the transport section of [voice AI agent in production](/articles/voice-ai-agent-in-production). It adds a per-vendor matrix, the cascade case, a decision tree and a test checklist, and leaves the contract itself to [voice and realtime agents](/resources/voice-realtime-agents).\n\nEvery vendor fact below was web-verified by that reference on 2026-07-09. Its 2026-09-28 pass re-checked only the open-framework versions, not the vendor APIs, so re-confirm a row before building on it.\n\n## What transport does each voice API document?\n\nEach of the four native speech-to-speech APIs in the corpus documents WebSocket, and OpenAI is the only vendor the reference records with first-party WebRTC and SIP paths (AWS publishes a WebRTC reference implementation for Nova Sonic). The matrix below restates the reference per vendor.\n\n| Vendor | Transports in the corpus | Notes |\n|---|---|---|\n| OpenAI Realtime | WebRTC, WebSocket, SIP | WebRTC recommended for browsers and mobile, WebSocket for server-to-server |\n| Google Gemini Live | WebSocket | Bidirectional streaming; no other transport recorded |\n| Amazon Nova Sonic | WebSocket (Bedrock bidirectional streaming) | WebRTC only via an AWS blog reference implementation |\n| xAI Grok Voice Agent API | WebSocket | Matches the OpenAI Realtime specification |\n\nAbsence from the table is not proof of absence in the product. The reference records what it verified, and a vendor may have added a path since.\n\n### Why does OpenAI recommend WebRTC for browsers?\n\nAs of July 2026, OpenAI recommends WebRTC for browser and mobile clients because of lower jitter and NAT traversal handling, per the reference. That is the only reason the corpus gives for WebRTC. It states no benchmark comparing WebRTC with WebSocket and no latency figure per transport, so this article claims neither that one transport is faster than another nor a number for either.\n\n### What does \"OpenAI-compatible\" mean for transport?\n\nIt means the client protocol is shared, so switching vendors is not a transport migration. The reference says xAI matches the OpenAI Realtime specification and that clients built for OpenAI Realtime can point at it with minimal changes. Both sides use WebSocket in that pairing, so the change is endpoint, credentials and model name. Test event handling anyway, since \"minimal\" is the reference's word, not a guarantee.\n\n## Which transport do the cascade components use?\n\nThe streaming components the corpus lists for a cascaded stack are all documented over WebSocket: Deepgram for speech-to-text, and ElevenLabs and Cartesia for text-to-speech. For how cascaded and native stacks differ, see [voice agent architecture: cascaded vs speech-to-speech](/articles/voice-agent-architecture-cascaded-vs-speech-to-speech).\n\n| Component | Role | Transport in the corpus |\n|---|---|---|\n| Deepgram | Streaming speech-to-text | WebSocket |\n| ElevenLabs | Streaming text-to-speech | WebSocket |\n| Cartesia | Streaming text-to-speech | WebSocket |\n\nThis is inference, not a corpus claim: in a cascade with a browser or mobile caller, the WebRTC leg typically ends at your server, and your server speaks WebSocket to the transcription and synthesis services. The consequence is that the client-facing transport and the component-facing transport are separate decisions. Choosing WebRTC for the caller does not change how the components connect, and a WebSocket-only component does not rule out a WebRTC client.\n\n## How should you choose a transport by client type?\n\nStart from where the caller is, then check what your chosen vendor or framework documents. The tree below is the author's inference built on the reference's pattern.\n\n1. **Caller in a browser or mobile app.** Use WebRTC if the vendor offers it. OpenAI does, Pipecat lists WebRTC transports, and LiveKit Agents runs on LiveKit's WebRTC infrastructure. If the reference records only WebSocket for a vendor, as it does for Gemini Live and xAI, a relay or framework may need to sit between the app and the model (as inference; the reference also notes a LiveKit plugin for xAI).\n2. **Your server talks to the model.** Use WebSocket. Every vendor in the matrix documents it, and OpenAI recommends it for server-to-server.\n3. **Caller on a phone.** Look for a vendor SIP path or a telephony integration, covered in the next section, and treat the vendor documentation as the authority.\n4. **More than one of the above.** Keep the model-facing leg on one transport and vary only the client-facing leg, so a new client type does not touch the model integration. This is a design preference, not a corpus claim.\n\n## Where does SIP fit, and what does the corpus not say?\n\nSIP is a telephony path that the corpus records for OpenAI and nothing more: the reference says an OpenAI SIP integration path is available for telephony and gives no detail beyond that. It also records that Amazon Nova Sonic works with Amazon Connect, Vonage and Twilio.\n\nPhone-specific mechanics are out of scope because the source material is silent on them: trunk setup, DTMF and phone-network effects get no claims here. For phone calls, rely on the vendor's own telephony documentation and test with real calls.\n\n## Which transports do the open frameworks support?\n\nIn the reference, Pipecat's transport list spans WebRTC (Daily, LiveKit, SmallWebRTC), WebSocket and telephony, while LiveKit Agents sits on LiveKit's WebRTC stack. Pipecat models its pipeline as frames flowing through transport, speech-to-text, language-model and synthesis stages, which suggests, as inference, that the transport is one stage among several.\n\nPicking a framework therefore picks a transport menu. If you need WebRTC to a browser and a vendor offers only WebSocket, a framework can sit between them. The reference lists OpenAI Realtime, Amazon Nova Sonic and Gemini Live among Pipecat's speech-to-speech services, and says LiveKit Agents covers cascaded and native backends without application changes.\n\n## What should you test for each transport?\n\nTest each transport for connection lifecycle, interruption behavior and failure handling on the real network path, because the corpus gives no transport-specific test guidance. The checklist is inference.\n\n- **Connect and reconnect.** Drop the connection mid-turn and confirm the agent recovers or hands off audibly rather than going silent.\n- **Barge-in across the wire.** Interrupt the agent from the real client and confirm queued audio stops. The method is in [testing turn detection and barge-in](/articles/voice-turn-detection-and-barge-in-testing).\n- **Real client networks.** Run from a mobile network and a restrictive office network, not only a developer machine, because the corpus names NAT traversal as a WebRTC concern.\n- **Tool calls on the same session.** Confirm function calls and results flow over the chosen transport. See [function calling in a voice agent](/articles/tools-in-a-voice-agent-loop).\n- **Measure per leg.** Time the client leg and the component legs separately, per [the voice agent latency budget](/articles/voice-agent-latency-budget).\n- **Phone path.** Place real calls, since nothing else in the corpus covers it.\n\n## What does ChangeGamer's own experience add?\n\nNothing about voice transport: as of October 2026 ChangeGamer runs no voice agent and carries no call traffic. Its own agent-facing surface, is HTTPS and JSON endpoints, an `llms.txt` file, and an HTTP 402 payment-required response, so nothing here is a measured result from its own WebRTC, WebSocket or SIP deployment. Everything transport-specific comes from the reference and its 2026-07-09 vendor verification.\n\nThe remaining sub-articles in the [voice agents cluster](/articles/voice-ai-agent-in-production) cover the other production decisions.",
  "cluster": {
    "id": "voice-agents-in-production",
    "title": "Voice agents in production",
    "description": "How to build and run a live voice AI agent — architecture choice, turn detection and barge-in, latency budget, tool calls in a voice loop, transport, cost, human handoff, guardrails, monitoring and launch — covering live caller conversations only, not offline dubbing/localization (ai-dubbing-localization-and-subtitling) and not the WER/MOS/VoiceBench scoring methodology owned by the evaluating-voice-agents resource.",
    "status": "complete",
    "pillar": {
      "slug": "voice-ai-agent-in-production",
      "title": "Voice AI Agent in Production: Architecture, Latency, Handoff and Launch",
      "description": "How to build and run a voice AI agent in production: cascaded vs speech-to-speech architecture, turn detection and barge-in, the latency budget, tool calls in a voice loop, transport, cost, human handoff and launch sequencing.",
      "kind": "pillar",
      "order": 0,
      "html": "https://changegamer.ai/articles/voice-ai-agent-in-production",
      "markdown": "https://changegamer.ai/articles/voice-ai-agent-in-production.md",
      "json": "https://changegamer.ai/api/articles/voice-ai-agent-in-production.json"
    },
    "articles": [
      {
        "slug": "voice-agent-latency-budget",
        "title": "Voice Agent Latency Budget: Where the 600 ms Goes and How to Hold It",
        "description": "How to split a 600 ms voice agent latency budget across speech-to-text, the language model, speech synthesis and tool calls, how to measure each stage, and which levers hold the budget.",
        "kind": "sub",
        "order": 1,
        "html": "https://changegamer.ai/articles/voice-agent-latency-budget",
        "markdown": "https://changegamer.ai/articles/voice-agent-latency-budget.md",
        "json": "https://changegamer.ai/api/articles/voice-agent-latency-budget.json"
      },
      {
        "slug": "voice-turn-detection-and-barge-in-testing",
        "title": "How to Test Voice Agent Turn Detection and Barge-In",
        "description": "How to test voice agent turn detection and barge-in: build a labelled clip set, count barge-in accuracy and false-interruption rate, separate cut-off from talk-over failures, and split offline gates from online monitors.",
        "kind": "sub",
        "order": 2,
        "html": "https://changegamer.ai/articles/voice-turn-detection-and-barge-in-testing",
        "markdown": "https://changegamer.ai/articles/voice-turn-detection-and-barge-in-testing.md",
        "json": "https://changegamer.ai/api/articles/voice-turn-detection-and-barge-in-testing.json"
      },
      {
        "slug": "voice-agent-architecture-cascaded-vs-speech-to-speech",
        "title": "What to Log and Filter in a Voice Agent, by Architecture",
        "description": "What to log and filter in a voice agent depending on architecture: where a cascaded pipeline gives you text seams for logging, redaction and output filters, what a native speech-to-speech model leaves you to do from outside, and what a model swap forces you to re-test.",
        "kind": "sub",
        "order": 3,
        "html": "https://changegamer.ai/articles/voice-agent-architecture-cascaded-vs-speech-to-speech",
        "markdown": "https://changegamer.ai/articles/voice-agent-architecture-cascaded-vs-speech-to-speech.md",
        "json": "https://changegamer.ai/api/articles/voice-agent-architecture-cascaded-vs-speech-to-speech.json"
      },
      {
        "slug": "tools-in-a-voice-agent-loop",
        "title": "Function Calling in a Voice Agent: What a Tool May Be in a Spoken Loop",
        "description": "Function calling in a voice agent: which vendors and frameworks support tools as of the corpus's 2026-07-09 verification, how to classify tools as lookup, action or handoff, what barge-in does to a side effect, and a checklist for admitting a tool.",
        "kind": "sub",
        "order": 4,
        "html": "https://changegamer.ai/articles/tools-in-a-voice-agent-loop",
        "markdown": "https://changegamer.ai/articles/tools-in-a-voice-agent-loop.md",
        "json": "https://changegamer.ai/api/articles/tools-in-a-voice-agent-loop.json"
      },
      {
        "slug": "voice-agent-transport-webrtc-vs-websocket-vs-sip",
        "title": "Voice Agent Transport: WebRTC vs WebSocket, and Where SIP Fits",
        "description": "WebRTC vs WebSocket for voice AI agents: which transport each vendor documents as of the corpus's 2026-07-09 verification, how cascaded stacks use WebSocket components, a decision tree by client type, and a per-transport test checklist.",
        "kind": "sub",
        "order": 5,
        "html": "https://changegamer.ai/articles/voice-agent-transport-webrtc-vs-websocket-vs-sip",
        "markdown": "https://changegamer.ai/articles/voice-agent-transport-webrtc-vs-websocket-vs-sip.md",
        "json": "https://changegamer.ai/api/articles/voice-agent-transport-webrtc-vs-websocket-vs-sip.json"
      },
      {
        "slug": "voice-agent-human-handoff",
        "title": "Voice Agent Human Handoff: What Happens on the Call When the Agent Lets Go",
        "description": "Voice agent human handoff mechanics: the handoff as a tool that ends the agent's session, barge-in during the transfer announcement, what the caller hears on hold and on failure, a context payload schema, and a real-call test checklist.",
        "kind": "sub",
        "order": 6,
        "html": "https://changegamer.ai/articles/voice-agent-human-handoff",
        "markdown": "https://changegamer.ai/articles/voice-agent-human-handoff.md",
        "json": "https://changegamer.ai/api/articles/voice-agent-human-handoff.json"
      },
      {
        "slug": "voice-agent-cost-per-minute",
        "title": "How to Compute Your Voice Agent Cost per Minute",
        "description": "How to compute a voice agent cost per minute from your own pilot: symbolic formulas for native speech-to-speech and cascaded STT, LLM and TTS, the variables that move the result, idle audio, retries, tool-call turns, and a sensitivity check.",
        "kind": "sub",
        "order": 7,
        "html": "https://changegamer.ai/articles/voice-agent-cost-per-minute",
        "markdown": "https://changegamer.ai/articles/voice-agent-cost-per-minute.md",
        "json": "https://changegamer.ai/api/articles/voice-agent-cost-per-minute.json"
      },
      {
        "slug": "guardrails-for-spoken-output-in-voice-agents",
        "title": "Voice Agent Guardrails: Checking What the Agent Says Before the Caller Hears It",
        "description": "Voice agent guardrails for spoken output: sentence-level gating before TTS, fail-closed judges, spoken numbers a text PII filter misses, readback before state changes, transcription-driven injection, refusal phrasing for the ear, and an adversarial test list.",
        "kind": "sub",
        "order": 8,
        "html": "https://changegamer.ai/articles/guardrails-for-spoken-output-in-voice-agents",
        "markdown": "https://changegamer.ai/articles/guardrails-for-spoken-output-in-voice-agents.md",
        "json": "https://changegamer.ai/api/articles/guardrails-for-spoken-output-in-voice-agents.json"
      },
      {
        "slug": "voice-agent-online-monitoring",
        "title": "How to Monitor a Voice Agent in Production: Dashboard, Alerts and Runbook",
        "description": "How to monitor a voice agent in production: per-stage latency percentiles, transcription confidence, containment paired with a resolution signal, live false-interruption rate, a handoff trigger review, and call-audio retention, each with what to chart, alert on and do.",
        "kind": "sub",
        "order": 9,
        "html": "https://changegamer.ai/articles/voice-agent-online-monitoring",
        "markdown": "https://changegamer.ai/articles/voice-agent-online-monitoring.md",
        "json": "https://changegamer.ai/api/articles/voice-agent-online-monitoring.json"
      },
      {
        "slug": "voice-agent-vendor-change-management",
        "title": "How to Handle Voice AI Vendor Model Changes Without Regressing Callers",
        "description": "How to handle voice AI vendor model changes: classify the change, record the model id on every trace, replay an offline set with hard calls on old and new, canary before cutover, keep a rollback, and run a deprecation-readiness routine.",
        "kind": "sub",
        "order": 10,
        "html": "https://changegamer.ai/articles/voice-agent-vendor-change-management",
        "markdown": "https://changegamer.ai/articles/voice-agent-vendor-change-management.md",
        "json": "https://changegamer.ai/api/articles/voice-agent-vendor-change-management.json"
      },
      {
        "slug": "voice-agent-launch-checklist",
        "title": "Voice Agent Launch Checklist: The Go/No-Go Gates Before Real Callers",
        "description": "A voice agent launch checklist as yes/no gates: scope, offline replay, per-stage latency, barge-in, tools, transport, handoff, cost, guardrails, monitoring and rollback, each with a pass signal and the article that owns the method.",
        "kind": "sub",
        "order": 11,
        "html": "https://changegamer.ai/articles/voice-agent-launch-checklist",
        "markdown": "https://changegamer.ai/articles/voice-agent-launch-checklist.md",
        "json": "https://changegamer.ai/api/articles/voice-agent-launch-checklist.json"
      },
      {
        "slug": "voice-agent-multilingual-callers",
        "title": "How Does a Voice Agent Handle Callers Who Speak Another Language?",
        "description": "How a live voice agent handles callers who speak another language: detecting the language, choosing speech components per language, slicing evaluation by language and handing off when the language is unsupported, with the thin corpus evidence stated plainly.",
        "kind": "sub",
        "order": 12,
        "html": "https://changegamer.ai/articles/voice-agent-multilingual-callers",
        "markdown": "https://changegamer.ai/articles/voice-agent-multilingual-callers.md",
        "json": "https://changegamer.ai/api/articles/voice-agent-multilingual-callers.json"
      }
    ]
  },
  "navigation": {
    "pillar": {
      "slug": "voice-ai-agent-in-production",
      "title": "Voice AI Agent in Production: Architecture, Latency, Handoff and Launch",
      "description": "How to build and run a voice AI agent in production: cascaded vs speech-to-speech architecture, turn detection and barge-in, the latency budget, tool calls in a voice loop, transport, cost, human handoff and launch sequencing.",
      "kind": "pillar",
      "order": 0,
      "html": "https://changegamer.ai/articles/voice-ai-agent-in-production",
      "markdown": "https://changegamer.ai/articles/voice-ai-agent-in-production.md",
      "json": "https://changegamer.ai/api/articles/voice-ai-agent-in-production.json"
    },
    "previous": {
      "slug": "tools-in-a-voice-agent-loop",
      "title": "Function Calling in a Voice Agent: What a Tool May Be in a Spoken Loop",
      "description": "Function calling in a voice agent: which vendors and frameworks support tools as of the corpus's 2026-07-09 verification, how to classify tools as lookup, action or handoff, what barge-in does to a side effect, and a checklist for admitting a tool.",
      "kind": "sub",
      "order": 4,
      "html": "https://changegamer.ai/articles/tools-in-a-voice-agent-loop",
      "markdown": "https://changegamer.ai/articles/tools-in-a-voice-agent-loop.md",
      "json": "https://changegamer.ai/api/articles/tools-in-a-voice-agent-loop.json"
    },
    "next": {
      "slug": "voice-agent-human-handoff",
      "title": "Voice Agent Human Handoff: What Happens on the Call When the Agent Lets Go",
      "description": "Voice agent human handoff mechanics: the handoff as a tool that ends the agent's session, barge-in during the transfer announcement, what the caller hears on hold and on failure, a context payload schema, and a real-call test checklist.",
      "kind": "sub",
      "order": 6,
      "html": "https://changegamer.ai/articles/voice-agent-human-handoff",
      "markdown": "https://changegamer.ai/articles/voice-agent-human-handoff.md",
      "json": "https://changegamer.ai/api/articles/voice-agent-human-handoff.json"
    }
  },
  "resources": [
    {
      "slug": "voice-realtime-agents",
      "html": "https://changegamer.ai/resources/voice-realtime-agents",
      "markdown": "https://changegamer.ai/resources/voice-realtime-agents.md",
      "json": "https://changegamer.ai/api/resources/voice-realtime-agents.json"
    }
  ]
}