Programmable Voice
Programmable Voice lets you place and control phone calls from your own application. Create outbound calls with a REST API call, and script what happens on a live call (inbound or outbound) with OneML, an XML markup you return from a webhook URL on your own server. Use it to build IVR menus, call forwarding, voicemail, automated outbound notifications, and any other workflow that needs to originate or control a phone call in real time.
How a call is controlled
PressOne controls every call, inbound or outbound, the same way: it requests a URL on your server and executes the OneML document your server returns. There is no separate mechanism for inbound versus outbound calls: both are driven by the same webhook loop.
- A call event occurs: an inbound call arrives at one of your numbers, or you originate an outbound call through the REST API.
- PressOne requests your configured webhook URL, sending call parameters such as
CallSid,From, andTo. - Your server returns a OneML document, and PressOne executes it verb by verb (speaking prompts, collecting input, recording audio, or bridging the call to another number) until the document ends or a verb ends the call.
Your server can return a different OneML document at every step, so a call can move through menus, hold music, agent transfers, or voicemail entirely under your control.
Compatibility
OneML is compatible with Twilio's TwiML, and the REST surface mirrors the 2010-04-01 API, so most existing TwiML documents and integrations run unmodified. See Twilio compatibility for the exact matrix of supported and unsupported features.
Next steps
| Page | Description |
|---|---|
| Quickstart | Make your first call in a few minutes. |
| Receiving calls | Answer inbound calls and build an IVR menu. |
| Webhooks | Request format, standard parameters, and signature verification. |
| Status callbacks | Get notified as an outbound call moves through its lifecycle. |
| Recording calls | Record calls and retrieve the resulting audio. |
| Forwarding calls | Bridge a call to another number with <Dial>. |
| OneML reference | Every OneML verb and attribute. |
| Order-tracking tutorial | Build a complete order-status line end to end. |
| API reference | REST endpoints for creating, listing, and managing calls. |