Sign in
Sign up
Reference Visual Designer Tutorials
    • API Overview
      • API Endpoint
      • Authentication
      • Requests
      • Responses
      • Paging
      • Reason Codes Dictionary
    • Management APIs
      • Accounts
        • Retrieve Account
        • Create Account
        • Update Account
        • Delete Account
        • Account Roles
      • Tags
        • Create Tag
        • Update Tag
        • Get Tag list
        • Retrieve Tag
        • Delete Tag
      • Profiles
        • Access Control
        • Create Profile
        • Update Profile
        • Unlink a Profile from an Account
        • Link a Profile to an Organization
        • Unlink a Profile to an Organization
        • Get Profiles List
        • Paging
        • Filtering & Profile Document Inclusion
        • Get Profile Details
        • Get Profile Relationship
        • Get Account Relationship
        • Delete Profile
      • Identity Access Management Early Access
        • User Management
          • Create a User
          • Update a User
          • Retrieve a User
          • Delete a User
        • API Keys Management
          • Create an API Key
          • Update an API Key
          • Retrieve an API Key
          • Delete an API Key
      • Applications
      • Clients
        • Create a Client
        • Delete a Client
        • Change Client’s Password
        • Get a List of Available Clients
      • Incoming Phone Numbers
        • IncomingPhoneNumber Instance Resource
        • IncomingPhoneNumbers List Resource
        • Local IncomingPhoneNumber Factory Resource
        • Toll-Free IncomingPhoneNumber Factory Resource
        • Mobile IncomingPhoneNumber Factory Resource
        • Attach a phone number to an application
        • Delete a phone number
        • List of Phone Numbers
        • Incoming Phone Number Regex Support
      • Notifications
      • Usage Records
      • Audit Logs
    • Voice APIs
      • Calls
        • Call List Resource URI
        • Making a Call
        • Modifying Live Calls
        • Examples
        • List Filter
        • Paging Information
      • Outgoing Caller ID
      • Conference Management
        • Supported Operations
        • Conference List Resource URI
      • Conference Participants Management
        • Participants List Resource URI
      • Gather DTMF
      • Gather Speech
      • Play
      • Say
      • Hold
      • Recordings
      • Refers
        • Resource Properties
        • Supported Operations
        • Paging Information
      • Resume
      • SIP Refer Support
    • SMS APIs
      • Outgoing Caller ID
      • Messages
        • Send SMS
        • Get SMS List
        • Get single SMS Information
        • SMS Attributes
      • Email
    • Turnkey Apps APIs
      • SMS for Microsoft Teams
        • Business Customer
        • Manage Mappings
        • Bot details
        • Messages
      • Smart 2FA
        • Sending One-Time Passwords
        • Verifying One-Time Passwords
        • Cancel One-Time Passwords
        • Session Detail Record (SDR)
        • Usage Record One-Time Passwords
        • Limit
      • Message Exchange for Cisco UC-One
        • Create Operation
        • Read Operation
        • Update Operation
        • Delete Operation
        • Error Codes
      • Message Exchange for Cisco Webex Teams
        • Create Operation
        • Read Operation
        • Update Operation
        • Delete Operation
      • Call Queuing
        • Create Queue
        • Queue RCML
        • Enqueue RCML
      • Auto Attendant
        • Enterprise
        • User
        • Auto Attendant System
        • Phone Number
        • Announcement
        • Menu
        • Schedule
        • Usage Records
        • Single Sign On
      • Number Masking
      • Task Router
        • Create Enterprise
        • Get a List of Enterprises
        • Get Single Enterprise
        • Delete Enterprise
        • Create User
        • Get a List of Users
        • Get a Single User
        • Update User
        • Delete user
      • Campaign Manager
        • Business Customers
          • Business Customer Status
          • Create Business Customer
          • Update Business Customer
          • Delete Business Customer
          • Get List of Business Customers
          • Get Single Business Customer
        • User
          • User Role and Status
          • Create User
          • Update User
          • Delete User
        • Get List of Users
        • Get Single User
        • Manage Credits
        • Create Credit
          • Get List of Credits
          • Get Single Credit
        • Campaign
          • Campaign Status
          • Get List of Campaigns
          • Get Single Campaign
    • Visual Designer API
      • List Application Templates
      • :List a Specific Application Template
      • Create a Visual Designer Application
      • Get Application Details
      • Save Application Changes
      • Create Application Parameters
      • List Application Parameters
      • Delete Application Parameters
      • Upload Application Media Files
      • List Application Media Files
      • Play Application Media Files
      • Delete Application Media Files
      • Get Application Logs
      • Delete Application Logs
      • Get Application Settings
      • Modify Application Settings
      • Rename an Application
      • Delete an Application
      • Get Visual Designer Configuration
    • RCML
      • Overview
        • Interacting with Your Application
        • RCML Verbs
      • Dial
        • Client
        • Conference
        • Number
        • SIP
      • Email
      • Gather
      • Say
        • SSML Reference
      • Play
      • SMS
      • Hold
      • Resume
      • Hangup
      • Pause
      • Redirect
      • Record
      • Reject
      • Refer
    • Session Detail Records (SDRs)
      • Call SDR
      • Conference SDR
      • Gather DTMF SDR
      • Gather Speech SDR
      • Hold SDR
      • Play SDR
      • Recording SDR
      • Refer SDR
      • Resume SDR
      • Say SDR
      • Message SDR
docs 1.0
  • docs
    • 1.0
  • docs
  • CSP:RCML

REST Communications Markup Language Overview

The REST Communications Markup Language represents a set of instructions you can use to tell Restcomm what to do when you receive an incoming call or SMS.

When someone makes a call or sends an SMS to one of your Restcomm numbers#, Restcomm will look up the URL associated with that phone number and make a request to that URL. Restcomm will read RCML instructions at that URL to determine what to do: record the call#, play a message for the caller#, prompt the caller to press digits on their keypad#, etc.

For example, the following will say a short message#, and then record the caller’s voice:

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Say voice="woman">Please leave a message after the tone.</Say>
    <Record maxLength="20" />
</Response>

RCML is similar to HTML.Only one RCML document is rendered to the caller at once#, but many documents can be linked together to build complex interactive voice applications.

Calls from a Restcomm number to an outside number are controlled using RCML in the same manner as incoming calls.The initial URL for the call is provided as a parameter to the Restcomm REST API request you make to initiate the call.

How Restcomm Interacts with Your Application

Restcomm Request

The way Restcomm passes data to you application depends on the request method for the given URI. If the request method is GET then the data is passed in the query string or the part after the question mark.If the request method is POST then the data is sent a multi-part form data just like when a browser submits a form.

Restcomm Voice Request.Any time Restcomm makes a request to you applications it will include the following data as request parameters.

Request Parameters

Parameter Description

CallSid

The unique identifier for this call.You can use the CallSid to modify the call by POSTing to Calls/{CallSid} with a new RCML URL (LCM is not supported for P2P calls).

AccountSid

Your account id.

From

The phone number of the originator of the call.

To

The phone number of the call recipient.

CallStatus

The status of the call.The possible values are queued (for outbound calls only), initiated, ringing, in-progress, busy, completed, failed, or no-answer.

ApiVersion

The version of the Restcomm API used to handle this call.

Direction

The direction of the call. The possible values are inbound, outbound-api and outbound-dial.

CallerName

The caller ID for the caller in the case of inbound calls.

Restcomm Response

In your response to the request from Restcomm you want to provide RCML that will instruct Restcomm on how to handle the current call.

MIME Types. Restcomm supports the MIME types described in the table below.

Supported MIME Types

Parameter Description

text/xml, application/xml

Restcomm interprets the returned document as an XML instruction set.

When your application returns the RCML document the root element of the document must always be <Response> or the parser will complain.
Your application should return properly XML escaped RCML document.

The RCML Verbs

You can use different combinations of the verbs below to create all kinds of interactive voice and messaging applications.

  • Dial

    • Client

    • Conference

    • Number

    • SIP

  • Email

  • Gather

  • Hangup

  • Pause

  • Play

  • Record

  • Redirect

  • Reject

Contact Us

+1 (650) 263 6146

SALES

SUPPORT

GENERAL

Follow Us

Turnkey Applications

SMART 2FA

MESSAGE EXCHANGE

CISCO WEBEX

CALL QUEUE

Learn

BLOG

TERMS AND CONDITIONS

Additional Links

ABOUT

FAQ'S

PRIVACY POLICY

CONTACT