> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.getdial.ai/api-reference/self-hosted-protocol/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.getdial.ai/_mcp/server. # Self-hosted LLM protocol ## Docs - [Self-hosted LLM protocol](https://docs.getdial.ai/api-reference/self-hosted-protocol/overview.md): The WebSocket protocol your server speaks when driving a Dial call in Self-Hosted mode — connection, signing, message types, and resumability. - [ping_pong](https://docs.getdial.ai/api-reference/self-hosted-protocol/ping-pong.md): Keepalive between Dial and your server — Dial pings, you echo it back. - [call_connected](https://docs.getdial.ai/api-reference/self-hosted-protocol/call-connected.md): Sent when Dial connects to your server — on every connection, including reconnects. - [transcript_update](https://docs.getdial.ai/api-reference/self-hosted-protocol/transcript-update.md): The latest full transcript snapshot. Informational — no response expected. - [response_required](https://docs.getdial.ai/api-reference/self-hosted-protocol/response-required.md): Dial wants the agent to speak — reply with response frames carrying this response_id. - [reminder_required](https://docs.getdial.ai/api-reference/self-hosted-protocol/reminder-required.md): The user has been silent for a while — optionally produce a gentle nudge. - [response](https://docs.getdial.ai/api-reference/self-hosted-protocol/response.md): The agent's spoken reply to a request — streamable, and able to end the call. - [interrupt](https://docs.getdial.ai/api-reference/self-hosted-protocol/interrupt.md): Make the agent speak immediately, barging in out of turn.