Skip to main content
CarrierX

Resources

Programmable voice with FlexML

Create interactive voice applications using high-level instructions, integrate HTTP applications, and make or receive phone calls. FlexML is the CarrierX markup language that describes what happens on each call.

Example call flowFlexML

Incoming call

  1. <Say>

    “Press 1 for sales, 2 for support.”

  2. <Gather>

    Waits for the caller's key press

  • If the caller presses Key 1

    <Dial>

    Sales team

  • If the caller presses Key 2

    <Dial>

    Support team

  • If the caller presses no key

    <Record>

    Takes a message

Each step is one FlexML instruction. Your application decides what the call does next.

Why FlexML

Voice that follows your business logic

A FlexML application is a short set of XML instructions that controls a call: routing, media playback and interactive voice response. CarrierX's interpreter carries them out in real time, while the caller is on the line.

  • Add voice to your applications

    Make and receive phone calls from your own software, and look up customer records while a call is in progress.

  • No SIP server to run

    Build interactive voice applications without running your own SIP server. Host call flows on CarrierX's cloud platform or serve them from your own.

  • Familiar if you are migrating

    FlexML stays compatible with familiar standards such as TwiML, and CarrierX publishes guides for moving from Twilio or Plivo.

Use cases

What you can build

FlexML handles the call flow; CarrierX's conference and Mediator products cover meetings and private forwarding.

  • IVR and call routingFlexML

    Menus that gather key presses and move callers through prompts, with conditional logic that responds to what they enter.

  • Notifications and alertsFlexML

    Outbound calls that deliver a message by text to speech or a recorded audio file.

  • ConferencingConference

    A hosted conference bridge for up to 1,000 callers per meeting, secured with access codes and user roles.

  • Number masking and forwardingMediator

    Forward calls from a rented number while masking the number that appears on the destination phone, preserving caller privacy.

  • Voice messaging and recordingFlexML

    Capture messages and conversations as call recordings, in multiple formats.

  • AI-powered voice assistantsFlexML

    Stream call audio to the application behind your assistant.

Features

What FlexML gives you

FlexML integrates with CarrierX's telephony infrastructure, and the FlexML API manages the accounts, calls and phone numbers behind it.

  • REST API

    Endpoints for managing accounts, calls and phone numbers (DIDs).

  • Webhooks

    Serve call instructions from your own servers through webhook callbacks, or host them on CarrierX.

  • Phone numbers

    Rent phone numbers to connect to the PSTN, and place or receive calls on them.

  • Text to speech

    Speak any text to the caller using simple markup.

  • Audio playback

    Play audio files or remotely hosted streaming media.

  • Recording

    Create call recordings in multiple formats.

  • Key-press input

    Gather and respond to DTMF, the tones callers send.

  • Answering machine detection

    Detect when an answering machine picks up a call.

  • Call control

    Dial out, hang up or reject calls, with conditional routing and callbacks.

Questions

Common questions

Programmable voice

Talk through your voice application

Book a call with the CarrierX team to walk through the call flow you want to build on FlexML.