Developers · VoiceML
Move programmable voice workloads without rewriting call logic.
VoiceML is VoiceTel's XML-based voice runtime for teams that already use voice markup, callbacks, recordings, conferences, queues, and API-driven call flows. Preserve the interaction model you built while moving the economics, support path, and carrier layer to VoiceTel.
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Gather numDigits="1" action="/route" method="POST" timeout="6">
<Say>Press 1 for sales or 2 for support.</Say>
</Gather>
<Dial timeout="20">
<Queue>support</Queue>
</Dial>
<Record maxLength="120" transcribe="true" action="/voicemail" />
</Response>
Call control
Answer, route, record, gather, dial, queue, conference, redirect, stream, and transcribe.
Signed webhooks help your application verify callbacks, and existing handlers can be pointed toward VoiceTel when they stay within the supported VoiceML-compatible surface.
- Signed webhooks Signed
- Existing handlers Unchanged
- English speech-to-text Included
- Production STT, TTS, and storage No markup
What developers can build
-
Inbound IVRs and call routing
Create phone menus, route callers by input, forward to queues, record voicemails, and send callbacks into your application.
-
Outbound calling workflows
Trigger calls from your product, control call behavior with markup, and connect users, agents, customers, or automated systems.
-
Call recording and transcription
Free defaults get you transcribing English calls on day one. Swap in your preferred STT, TTS, or recording-storage vendor when you're ready to tune for production — billed directly, no VoiceTel markup.
-
Queues, conferences, live call control
Build support, sales, dispatch, appointment, and contact-center workflows without starting from scratch.
Validator
Verify your markup before you ship.
Paste any VoiceML response into the validator and confirm every element is well-formed XML and matches the verb / noun schema. Pure client-side; nothing uploaded.
Start building with VoiceTel.
Update your existing voice URL to voiceml.voicetel.com and your markup works unchanged.

