Getting Started

Teleoh™ is the API that allows you to connect to the HEG network. Build simple or complex voice, SMS, fax, voice, IVR, PBX, voice broadcasting, calling card, two step verification, and call center applications. Teleoh™ Developer includes Teleoh™ XML and the Teleoh™ RESTful API.

Learn : TeleohXML™

Teleoh™ XML is how you give instructions to Teleoh™ and tell it what you want it to do during a voice call. Your entire call flow is dictitated by the Teleoh™ XML your application provides. A call flow is a road map for how calls will be handled from the moment they enter the phone system to the end of the call. Teleoh™ XML is properly formatted XML that Teleoh™ can understand.

When inbound calls are received on your behalf Teleoh™ needs to know how you wish to handle the call (connect it to a phone number, play an mp3 file to the caller, put the caller in a conference room, etc). Inbound calls are described as calls entering the HEG or Teleoh™ network. It's also possible to make calls using the Teleoh™ API, more details are provided about this later. Have a look at the diagram below for a better understanding of how inbound calls are handled by Teleoh™ and how Teleoh™ XML is used to direct the call flow.

Ready to give it a try?

We've put together a few step by step guides to help you get started. If your new to Teleoh™ or voice API's we highly suggest following one of our quick start guides before continuing with this tutorial. Quick Start : Your First Application & Phone Number Quick Start : Direct Dial from a SIP Endpoint

Learn : Teleoh RESTful API™

The Teleoh™ API serves two basic purposes. First, it enables developers to manage core tools. With the Teleoh™ API you can do everything you can do from the Teleoh™ Developer portal programmatically, including Creating Applications, Managing your SIP Endpoints, Viewing Call History, and more.

Second, the API allows you to control calls in real-time while they are taking place. Some of the more popular call control functions are Originate - Initiates a new outbound call, Call Transfer, Listing Members in a Conference Room, Hanging up a Call, and many more.

Originate API - Getting Started with Teleoh™


Learn : Obtaining API Credentials

1. Sign in to your Teleoh™ Developer account here (opens in a new window).

2. Click the "Create Your API Credentials" button on the Dashboard.



3. You should now be on the "Credentials" screen. Start by clicking the blue "Generate API User ID" button. This will instantly generate your API User ID and you should see it appear within a few seconds.



4. Lastly, click the "Generate API Key" button.



5. Your API credentials are now created, that was easy right? Head back over to your Dashboard and your FREE credits should now be available.






Learn : Receiving SMS/MMS Messages

The Teleoh™ messaging platform allows you to send and receive messages in real-time in a very similar way to the text and multimedia messaging your accustomed to on your wireless phone. Sending SMS or MMS is accomplished with either Teleoh™ XML (Docs) or the Teleoh™ API (Docs). This short tutorial will attempt to help you understand how to receive messages as well.

Sending messages is easy, have a look at the SMS/SendMessage API.


Where do incoming messages go?


In "Getting Started with Teleoh™ Developer" we touched on the subject of applications and how they are at the center of all incoming calls to the Teleoh™ cloud. It's no surprise that applications are also at the center of incoming SMS and MMS messages. When you receive an incoming message to one of your Teleoh™ DID numbers, Teleoh™ will send the details of the message in an HTTP POST or GET request to the "message_url" of the application linked to the DID number.

The diagram below is intended to help you understand how incoming messages are routed by Teleoh™



Example HTTP GET


As mentioned above, Teleoh™ can send a POST or GET request to your 'message_url', the method is specified as part of your application as 'message_method'. If the message is an MMS (includes media such as images or video) the 'mms_url' parameter will be present. The 'mms_url' is the location to the media and is url encoded.

http://yoururl.com/your_message_url.php?MessageTo=12145551212&MessageFrom=14695551212&text_message=Hey how are you&mms_url=http%3A%2F%2Fvoiceapi.cloud%2Fsms%2Fimages%2Fimage.png



-- RESTful API Documentation --


Application



Application/Create

Create a new VoiceAPI.cloud application. After creating an application you can point incoming numbers or outbound calls here.
POST https://voiceapi.cloud/API/{format}/Application/Create
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
app_nameA unique name for your application.
answer_urlThe cloud will request this URL looking for a valid XML on an incoming call.
answer_methodThe method used to request the answer_url (POST or GET)
hangup_urlThe URL the cloud will notify when a call is disconnected.
hangup_methodThe method used to notify the hangup_url (POST or GET)
message_urlThe URL the cloud will notify when a incoming SMS is received.
message_methodThe method used to notify the message_url (POST or GET).
Successful Response


{
    "application": {
        "app_id": {},
        "app_name": "Demo Application",
        "answer_url": "http:\/\/myurl.com\/demo\/demo.php",
        "answer_method": "POST",
        "hangup_url": "http:\/\/myurl.com\/hangup.php",
        "hangup_method": "POST",
        "message_url": "http:\/\/myurl.com\/message.php",
        "message_method": "POST"
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <application>
      <app_id />
      <app_name>Demo Application</app_name>
      <answer_url>http://myurl.com/demo/demo.php</answer_url>
      <answer_method>POST</answer_method>
      <hangup_url>http://myurl.com/hangup.php</hangup_url>
      <hangup_method>POST</hangup_method>
      <message_url>http://myurl.com/message.php</message_url>
      <message_method>POST</message_method>
   </application>
</heg>

| API Simulator

Initiate a live call to the Application/Create service using the API simulator.


Application/GetAll

Get a list of all applications linked to your account.
POST https://voiceapi.cloud/API/{format}/Application/GetAll
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
Successful Response


{
    "application": [{
        "app_id": "8",
        "app_name": "First Application ",
        "answer_url": "http:\/\/voiceapi.cloud\/customertest.php",
        "answer_method": "POST",
        "hangup_url": "http:\/\/mywebsite.com\/hangup.asp",
        "hangup_method": "POST",
        "message_url": "http:\/\/mywebsite.com\/message.asp",
        "message_method": "POST"
    }, {
        "app_id": "13",
        "app_name": "Demo Application",
        "answer_url": "http:\/\/myurl.com\/demo\/demo.php",
        "answer_method": "POST",
        "hangup_url": "http:\/\/myurl.com\/hangup.php",
        "hangup_method": "POST",
        "message_url": "http:\/\/myurl.com\/message.php",
        "message_method": "POST"
    }]
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <application>
      <app_id>8</app_id>
      <app_name>First Application</app_name>
      <answer_url>http://voiceapi.cloud/customertest.php</answer_url>
      <answer_method>POST</answer_method>
      <hangup_url>http://mywebsite.com/hangup.asp</hangup_url>
      <hangup_method>POST</hangup_method>
      <message_url>http://mywebsite.com/message.asp</message_url>
      <message_method>POST</message_method>
   </application>
   <application>
      <app_id>13</app_id>
      <app_name>Demo Application</app_name>
      <answer_url>http://myurl.com/demo/demo.php</answer_url>
      <answer_method>POST</answer_method>
      <hangup_url>http://myurl.com/hangup.php</hangup_url>
      <hangup_method>POST</hangup_method>
      <message_url>http://myurl.com/message.php</message_url>
      <message_method>POST</message_method>
   </application>
</heg>

| API Simulator

Initiate a live call to the Application/GetAll service using the API simulator.


Application/Get

Get the details of a specific application.
POST https://voiceapi.cloud/API/{format}/Application/Get
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
app_idThe ID of the application for which your requesting the details.
Successful Response


{
    "application": {
        "app_id": {},
        "app_name": "First Application ",
        "answer_url": "http:\/\/mywebsite.com\/answer.php",
        "answer_method": "POST",
        "hangup_url": "http:\/\/mywebsite.com\/hangup.asp",
        "hangup_method": "POST",
        "message_url": "http:\/\/mywebsite.com\/message.asp",
        "message_method": "POST"
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <application>
      <app_id />
      <app_name>First Application</app_name>
      <answer_url>http://mywebsite.com/answer.asp</answer_url>
      <answer_method>POST</answer_method>
      <hangup_url>http://mywebsite.com/hangup.asp</hangup_url>
      <hangup_method>POST</hangup_method>
      <message_url>http://mywebsite.com/message.asp</message_url>
      <message_method>POST</message_method>
   </application>
</heg>

| API Simulator

Initiate a live call to the Application/Get service using the API simulator.


Application/Modify

Modify a application. Only parameters passed will be updated. Outside of app_id no parameter is required.
POST https://voiceapi.cloud/API/{format}/Application/Modify
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
app_idThe ID of the application for which you want to modify.
app_nameA unique name for your application.
answer_urlThe cloud will request this URL looking for a valid XML on an incoming call.
answer_methodThe method used to request the answer_url (POST or GET)
hangup_urlThe URL the cloud will notify when a call is disconnected.
hangup_methodThe method used to notify the hangup_url (POST or GET)
message_urlThe URL the cloud will notify when a incoming SMS is received.
message_methodThe method used to notify the message_url (POST or GET).
Successful Response


{
    "application": {
        "app_id": {},
        "app_name": "First Application ",
        "answer_url": "http:\/\/mywebsite.com\/answer.php",
        "answer_method": "POST",
        "hangup_url": "http:\/\/mywebsite.com\/hangup.asp",
        "hangup_method": "POST",
        "message_url": "http:\/\/mywebsite.com\/message.asp",
        "message_method": "POST"
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <application>
      <app_id />
      <app_name>First Application</app_name>
      <answer_url>http://mywebsite.com/answer.asp</answer_url>
      <answer_method>POST</answer_method>
      <hangup_url>http://mywebsite.com/hangup.asp</hangup_url>
      <hangup_method>POST</hangup_method>
      <message_url>http://mywebsite.com/message.asp</message_url>
      <message_method>POST</message_method>
   </application>
</heg>

| API Simulator

Initiate a live call to the Application/Modify service using the API simulator.


Application/Delete

Delete a application.
POST https://voiceapi.cloud/API/{format}/Application/Delete
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
Successful Response


{
    "application": {
        "app_id": "12"
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <application>
      <app_id>12</app_id>
   </application>
</heg>

| API Simulator

Initiate a live call to the Application/Delete service using the API simulator.

Endpoint



Endpoint/Create

Create a new endpoint (SIP credentials). The new SIP password will be auto generated and returned with the response.
POST https://voiceapi.cloud/API/{format}/Endpoint/Create
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
usernameThe username for the SIP endpoint.
aliasThe nickname or alias for the SIP endpoint.
realmThe SIP realm or domain. Use 'mysipaddress.com' or your own custom domain.
app_idThe app_id of the application that will be requested when calls are placed from the endpoint.
Successful Response


{
    "endpoint": {
      "endpoint_id": "13",
      "username": "4334gg34g34-j9@hqva2",
      "password": "pQo81PDI86dvtre",
      "alias": "Test SIP Account",
      "realm": "mysipaddress.com",
      "app_id": "13"
    }
  }

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <endpoint>
      <endpoint_id>13</endpoint_id>
      <username>4334gg34g34-j9@hqva2</username>
      <password>pQo81PDI86dvtre</password>
      <alias>Test SIP Account</alias>
      <realm>mysipaddress.com</realm>
      <app_id>13</app_id>
   </endpoint>
</heg>

| API Simulator

Initiate a live call to the Endpoint/Create service using the API simulator.


Endpoint/ReloadPassword

Update the SIP password on an endpoint. A new password will be auto generated and returned with the response.
POST https://voiceapi.cloud/API/{format}/Endpoint/ReloadPassword
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
endpoint_idThe ID of the endpoint you wish to reload the password for.
Successful Response


{
    "endpoint": {
        "endpoint_id": "13",
        "username": "4334gg34g34-jtq53r88",
        "password": "yNBv9kRYaetM0Z0",
        "alias": "Test SIP Account",
        "realm": "mysipaddress.com",
        "app_id": "13"
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <endpoint>
      <endpoint_id>13</endpoint_id>
      <username>4334gg34g34-jtq53r88</username>
      <password>5LOC9I1BWDdTIco</password>
      <alias>Test SIP Account</alias>
      <realm>mysipaddress.com</realm>
      <app_id>13</app_id>
   </endpoint>
</heg>

| API Simulator

Initiate a live call to the Endpoint/ReloadPassword service using the API simulator.


Endpoint/GetAll

Get all endpoints connected to your account.
POST https://voiceapi.cloud/API/{format}/Endpoint/GetAll
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
Successful Response


{
    "endpoint": [{
        "endpoint_id": "13",
        "username": "4334gg34g34-jtq53r88",
        "password": "yNBv9kRYaetM0Z0",
        "alias": "Test SIP Account",
        "realm": "mysipaddress.com",
        "app_id": "13"
    }, {
        "endpoint_id": "14",
        "username": "4334gg34g34-j9@hqva2",
        "password": "pQo81PDI86dvtre",
        "alias": "Test SIP Account",
        "realm": "mysipaddress.com",
        "app_id": "13"
    }]
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <endpoint>
      <endpoint_id>13</endpoint_id>
      <username>4334gg34g34-jtq53r88</username>
      <password>yNBv9kRYaetM0Z0</password>
      <alias>Test SIP Account</alias>
      <realm>mysipaddress.com</realm>
      <app_id>13</app_id>
   </endpoint>
   <endpoint>
      <endpoint_id>14</endpoint_id>
      <username>4334gg34g34-j9@hqva2</username>
      <password>pQo81PDI86dvtre</password>
      <alias>Test SIP Account</alias>
      <realm>mysipaddress.com</realm>
      <app_id>13</app_id>
   </endpoint>
</heg>

| API Simulator

Initiate a live call to the Endpoint/GetAll service using the API simulator.


Endpoint/Get

Get the details of a specific endpoint.
POST https://voiceapi.cloud/API/{format}/Endpoint/Get
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
endpoint_idThe ID of the endpoint you wish to get the details of.
Successful Response


{
    "endpoint": {
        "endpoint_id": "13",
        "username": "4334gg34g34-jtq53r88",
        "password": "yNBv9kRYaetM0Z0",
        "alias": "Test SIP Account",
        "realm": "mysipaddress.com",
        "app_id": "13"
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <endpoint>
      <endpoint_id>13</endpoint_id>
      <username>4334gg34g34-jtq53r88</username>
      <password>yNBv9kRYaetM0Z0</password>
      <alias>Test SIP Account</alias>
      <realm>mysipaddress.com</realm>
      <app_id>13</app_id>
   </endpoint>
</heg>

| API Simulator

Initiate a live call to the Endpoint/Get service using the API simulator.


Endpoint/Delete

Delete a specific endpoint.
POST https://voiceapi.cloud/API/{format}/Endpoint/Delete
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
endpoint_idThe ID of the endpoint you wish to delete.
Successful Response


{
    "application": {
        "endpoint_id": "13"
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <application>
      <endpoint_id>13</endpoint_id>
   </application>
</heg>

| API Simulator

Initiate a live call to the Endpoint/Delete service using the API simulator.


Endpoint/Modify

Modify an endpoint. Allows you to update the alias and application.
POST https://voiceapi.cloud/API/{format}/Endpoint/Modify
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
aliasThe nickname or alias for the SIP endpoint.
app_idThe app_id of the application that will be requested when calls are placed from the endpoint.
Successful Response


{
    "endpoint": {
        "endpoint_id": 13,
        "username": "4334gg34g34-jtq53r88",
        "password": "dahV3pdeYA3t8nU",
        "alias": "New Alias",
        "realm": "mysipaddress.com",
        "app_id": "13",
        "app_name": "Some Application"
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <endpoint>
      <endpoint_id>13</endpoint_id>
      <username>4334gg34g34-j9@hqva2</username>
      <password>pQo81PDI86dvtre</password>
      <alias>New Alias</alias>
      <realm>mysipaddress.com</realm>
      <app_id>13</app_id>
      <app_name>Some Application</app_name>
   </endpoint>
</heg>

| API Simulator

Initiate a live call to the Endpoint/Modify service using the API simulator.

Recording



Recording/GetAll

Get a list of all recordings within a specified date range.
POST https://voiceapi.cloud/API/{format}/Recording/GetAll
Parameters
Variable Required Description
API_UER_IDYour API user ID
API_KEYYour API key
start_dateThe start date of your search range formatted as YYYY-MM-DD
end_dateThe end date of your search range formatted as YYYY-MM-DD
Successful Response


{
  "heg": {
    "recording": [
      {
        "RecordingDate": "2016-08-10 00:00:00",
        "RecordingID": "10",
        "Nickname": "08-09-2016-2:54:09AM",
        "CallUUID": "98dcb32e-bc2c-42d0-a5e1-8f2934f39e61",
        "RecordUrl": "http://voiceapi.cloud/API/recordings/call_fufu347832334r34r.mp3",
        "RecordingDuration": "0:12"
      },
      {
        "RecordingID": "11",
        "Nickname": "08-09-2016-2:54:09AM",
        "CallUUID": "98dreere32e-bc2c-42d0-a5e1-8f2934f39e61",
        "RecordUrl": "http://voiceapi.cloud/API/recordings/call_fufuergerger2334r34r.mp3",
        "RecordingDuration": "0:12"
      }
    ]
  }
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <recording>
      <RecordingDate>2016-08-10 00:00:00</RecordingDate>
      <RecordingID>10</RecordingID>
      <Nickname>08-09-2016-2:54:09AM</Nickname>
      <CallUUID>98dcb32e-bc2c-42d0-a5e1-8f2934f39e61</CallUUID>
      <RecordUrl>http://voiceapi.cloud/API/recordings/call_fufu347832334r34r.mp3</RecordUrl>
      <RecordingDuration>0:12</RecordingDuration>
   </recording>
   <recording>
      <RecordingID>11</RecordingID>
      <Nickname>08-09-2016-2:54:09AM</Nickname>
      <CallUUID>98dreere32e-bc2c-42d0-a5e1-8f2934f39e61</CallUUID>
      <RecordUrl>http://voiceapi.cloud/API/recordings/call_fufuergerger2334r34r.mp3</RecordUrl>
      <RecordingDuration>0:12</RecordingDuration>
   </recording>
</heg>

| API Simulator

Initiate a live call to the Recording/GetAll service using the API simulator.


Recording/Get

Get the details of a specific recording.
POST https://voiceapi.cloud/API/{format}/Recording/Get
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
RecordingIDThe RecordingID of the recording your looking to get the details on.
Successful Response


{
	"recording": {
		"RecordingDate": "2016-08-12",
		"RecordingID": "38",
		"Nickname": "08-09-2016-2:54:09AM",
		"CallUUID": "98dcb32e-bc2c-42d0-a5e1-8f2934f39e61",
		"RecordUrl": "http:\/\/voiceapi.cloud\/API\/callflow\/recordings\/call_n32fjqs7-.mp3",
		"RecordingDuration": "0:12"
	}
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <recording>
      <RecordingDate>2016-08-10 00:00:00</RecordingDate>
      <RecordingID>38</RecordingID>
      <Nickname>08-09-2016-2:54:09AM</Nickname>
      <CallUUID>98dcb32e-bc2c-4232-a5e1-8f2934f39e61</CallUUID>
      <RecordUrl>http://voiceapi.cloud/API/recordings/call_2rr4f344-.mp3</RecordUrl>
      <RecordingDuration>0:12</RecordingDuration>
   </recording>
</heg>

| API Simulator

Initiate a live call to the Recording/Get service using the API simulator.


Recording/Modify

Update the Nickname of a specific recording.
POST https://voiceapi.cloud/API/{format}/Recording/Modify
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
RecordingIDThe RecordingID of the recording you wish to update.
NicknameThe new Nickname to give the recording. 10 character minimum.
Successful Response


{
	"recording": {
		"RecordingDate": "2016-08-11 00:00:00",
		"RecordingID": "38",
		"Nickname": "My New Recording",
		"CallUUID": "98dcb32e-bc2c-42d0-a5e1-8f2934f39e61",
		"RecordUrl": "http:\/\/voiceapi.cloud\/API\/callflow\/rec\/call_n32fjqs7-.mp3",
		"RecordingDuration": "0:12"
	}
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <recording>
      <RecordingDate>2016-08-12 00:00:00</RecordingDate>
      <RecordingID>38</RecordingID>
      <Nickname>My New Name</Nickname>
      <CallUUID>98dcb32e-bc2c-4858-a5e1-8f2934f39e61</CallUUID>
      <RecordUrl>http://voiceapi.cloud/API/callflow/rec/call_negerjqs7-.mp3</RecordUrl>
      <RecordingDuration>0:12</RecordingDuration>
   </recording>
</heg>

| API Simulator

Initiate a live call to the Recording/Modify service using the API simulator.


Recording/Delete

Delete a specific recording.
POST https://voiceapi.cloud/API/{format}/Recording/Delete
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
RecordingIDThe RecordingID of the recording you wish to delete.
Successful Response


{
    "application": {
        "RecordingID": "13"
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <application>
      <RecordingID>13</RecordingID>
   </application>
</heg>

| API Simulator

Initiate a live call to the Recording/Delete service using the API simulator.

Pricing



Pricing/Get

Get the outbound rates for a specific destination or country code. A maximum of 200 results are returned.
POST https://voiceapi.cloud/API/{format}/Pricing/Get
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
CountryCodeThe country code. For example:
1 - United States
52 - Mexico
typeIf left blank will default to TERMINATION or outbound rates. Valid options are 'TERMINATION' or 'WIRELESS' to get wireless rate plans.
Successful Response


{
    "pricing": {
        "destination_id": "39331",
        "country_code": "1",
        "destination_name": "United States",
        "destination_price": "0.0050"
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <pricing>
      <destination_id>39331</destination_id>
      <country_code>1</country_code>
      <destination_name>United States</destination_name>
      <destination_price>0.0050</destination_price>
   </pricing>
</heg>

| API Simulator

Initiate a live call to the Pricing/Get service using the API simulator.

Conference



Conference/ListMembers

List the members in a specific conference using the conference room name as specified in your cloud XML. See the conference XML for more details.
POST https://voiceapi.cloud/API/{format}/Conference/ListMembers
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
ConferenceRoomThe name of the conference room you wish to list the members of.
Successful Response


{
    "conference": {
        "member": [{
            "call_uuid": "935c9658-589e-4e62-9913-1204686aab69",
            "caller_name": "+12144630000",
            "caller_number": "+12144630000",
            "permissions": "hear|speak"
        }, {
            "call_uuid": "a52f8316-5c8c-491e-9feb-22d5bc2dfc32",
            "caller_name": "Don Hawkins",
            "caller_number": "160702230753",
            "permissions": "hear|speak|talking|floor|vid-floor"
        }]
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <conference>
      <member>
         <call_uuid>935c9658-589e-4e62-9913-1204686aab69</call_uuid>
         <caller_name>+12144630000</caller_name>
         <caller_number>+12144630000</caller_number>
         <permissions>hear|speak</permissions>
      </member>
      <member>
         <call_uuid>a52f8316-5c8c-491e-9feb-22d5bc2dfc32</call_uuid>
         <caller_name>Don Hawkins</caller_name>
         <caller_number>160702230753</caller_number>
         <permissions>hear|speak|talking|floor|vid-floor</permissions>
      </member>
   </conference>
</heg>

| API Simulator

Initiate a live call to the Conference/ListMembers service using the API simulator.


Conference/UnMuteMember

Unmute a member in the conference previously muted.
POST https://voiceapi.cloud/API/{format}/Conference/UnMuteMember
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
ConferenceRoomThe name of the conference room.
MemberIDThe ID of the member in the conference room. You can get the ID of all members using the ListMembers function.
Successful Response


{
    "conference": {
        "@attributes": {
            "name": "HoldRoom"
        },
        "member": {
            "@attributes": {
                "id": "39"
            }
        }
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <conference name="HoldRoom">
      <member id="39" />
   </conference>
</heg>

| API Simulator

Initiate a live call to the Conference/UnMuteMember service using the API simulator.


Conference/MuteMember

Mute a member in a conference room.
POST https://voiceapi.cloud/API/{format}/Conference/MuteMember
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
ConferenceRoomThe name of the conference room.
MemberIDThe ID of the member in the conference room. You can get the ID of all members using the ListMembers method.
Successful Response


{
    "conference": {
        "@attributes": {
            "name": "TestConference"
        },
        "member": {
            "@attributes": {
                "id": "39"
            }
        }
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <conference name="TestConference">
      <member id="39" />
   </conference>
</heg>

| API Simulator

Initiate a live call to the Conference/MuteMember service using the API simulator.


Conference/KickMember

Kick or disconnect a specific member from a specific conference. The member will return to the XML call flow.
POST https://voiceapi.cloud/API/{format}/Conference/KickMember
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
ConferenceRoomThe name of the conference room.
MemberIDThe ID of the member in the conference room. You can get the ID of all members using the ListMembers function.
Successful Response


{
    "conference": {
        "@attributes": {
            "name": "TestConference"
        },
        "member": {
            "@attributes": {
                "id": "41"
            }
        }
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <conference name="TestConference">
      <member id="41" />
   </conference>
</heg>

| API Simulator

Initiate a live call to the Conference/KickMember service using the API simulator.


Conference/PlayAudio

Play audio to a specific member in the conference.
POST https://voiceapi.cloud/API/{format}/Conference/PlayAudio
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
ConferenceRoomThe name of the conference room.
MemberIDThe ID of the member in the conference room. You can get the ID of all members using the ListMembers function.
SoundUrlA fully qualified domain name or address to a wav or mp3 file.
Successful Response


{
    "conference": {
        "@attributes": {
            "name": "HoldingRoom"
        },
        "member": {
            "@attributes": {
                "id": "42"
            }
        }
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <conference name="HoldingRoom">
      <member id="42" />
   </conference>
</heg>

| API Simulator

Initiate a live call to the Conference/PlayAudio service using the API simulator.


Conference/StopPlayAudio

Stop playing audio to a specific member in the conference. Usually only needed for longer audio files, if your audio file is short it will stop at the end.
POST https://voiceapi.cloud/API/{format}/Conference/StopPlayAudio
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
ConferenceRoomThe name of the conference room.
MemberIDThe ID of the member in the conference room. You can get the ID of all members using the ListMembers function.
Successful Response


{
    "conference": {
        "@attributes": {
            "name": "HoldingRoom"
        },
        "member": {
            "@attributes": {
                "id": "98"
            }
        }
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <conference name="HoldingRoom">
      <member id="98" />
   </conference>
</heg>

| API Simulator

Initiate a live call to the Conference/StopPlayAudio service using the API simulator.


Conference/DeafMember

Make a member of a specific conference room deaf.
POST https://voiceapi.cloud/API/{format}/Conference/DeafMember
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
ConferenceRoomThe name of the conference room.
MemberIDThe ID of the member in the conference room. You can get the ID of all members using the ListMembers method.
Successful Response


{
    "conference": {
        "@attributes": {
            "name": "TestConference"
        },
        "member": {
            "@attributes": {
                "id": "46"
            }
        }
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <conference name="TestConference">
      <member id="46" />
   </conference>
</heg>

| API Simulator

Initiate a live call to the Conference/DeafMember service using the API simulator.


Conference/UnDeafMember

Make a member of a specific conference room undeaf that was previously made deaf.
POST https://voiceapi.cloud/API/{format}/Conference/UnDeafMember
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
ConferenceRoomThe name of the conference room.
MemberID The ID of the member in the conference room. You can get the ID of all members using the ListMembers method.
Successful Response


{
    "conference": {
        "@attributes": {
            "name": "TestConference"
        },
        "member": {
            "@attributes": {
                "id": "46"
            }
        }
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <conference name="TestConference">
      <member id="46" />
   </conference>
</heg>

| API Simulator

Initiate a live call to the Conference/UnDeafMember service using the API simulator.

Call



Call/Originate

Make a outbound call.

The Originate API service is useful if your creating an auto dialer application (call center, voice broadcasting, verification via voice, etc). The call will be fired and assigned a unique identifier (call_uuid). When the call is answered the Teleoh cloud will send a POST or GET request to your NewUrl, which should then return Teleoh XML to further direct the call flow.

If you provide a callbackUrl, Teleoh will send a POST request to it when specific events occur, including when the call is ringing, answered, or hungup. You can use the 'call_uuid' (included in the call back) to further manage the call with a Call API method (for example 'Hangup') or continue to manage the call with Teleoh XML.
POST https://voiceapi.cloud/API/{format}/Call/Originate
Parameters
Variable Required Description
API_USER_IDYour API User ID
API_KEYYour API Key
CallToThe phone number to call with the country code. Ex. 12145551212
NewUrlThe URL where Teleoh will redirect the call. This URL should return Teleoh XML to further direct the call flow.
NewUrlMethodThe method used to call the NewUrl. Should be either POST or GET.
caller_nameThe caller ID name displayed on the outbound call.
caller_id_numberThe caller ID number with country code. Ex: 12145551212. If not provided Teleoh will use 00000000000 as the caller_id_number, please note that not all carriers will accept this value and your call may not be completed because of it.
callbackUrlURL that is notified by the cloud when the call is answered, ringing, or hung up.
Successful Response


{
    "call": {
      "call_uuid": "e4f69397-7b9c-45a0-a9c8-19ea2d23c81d",
      "NewUrl": "http://myurl.com/teleoh_call_flow.php",
      "NewUrlMethod": "POST",
      "callbackUrl": "http://hawkinsegroup.com"
  }
}

<heg>
    <call>
        <call_uuid>e4f69397-7b9c-45a0-a9c8-19ea2d23c81d</call_uuid>
        <NewUrl>http://myurl.com/teleoh_call_flow.php</NewUrl>
        <NewUrlMethod>POST</NewUrlMethod>
        <caller_name>Our Company</caller_name>
        <caller_id_number/>12145551212</caller_id_number>
        <callbackUrl>http://hawkinsegroup.com</callbackUrl>
    </call>
</heg>

| API Simulator

Initiate a live call to the Call/Originate service using the API simulator.


Call/CallDetail

Get the details of a live call using the UUID of the call.
POST https://voiceapi.cloud/API/{format}/Call/CallDetail
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
call_uuidThe UUID of the call to get the details of.
Successful Response


{
    "call": {
        "call_uuid": "70e7fc82-7202-4ceb-a701-40ccf86218d2",
        "direction": "inbound",
        "to": "775",
        "from": "702230753",
        "CallTime": "46620025-02-16 19:30:02",
        "callerid_name": "Hawkins%20E%20Group",
        "callerid_number": "14692145044"
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <call>
      <call_uuid>70e7fc82-7202-4ceb-a701-40ccf86218d2</call_uuid>
      <direction>inbound</direction>
      <to>775</to>
      <from>702230753</from>
      <CallTime>46620025-02-16 19:30:02</CallTime>
      <callerid_name>Hawkins%20E%20Group</callerid_name>
      <callerid_number>14692145044</callerid_number>
   </call>
</heg>

| API Simulator

Initiate a live call to the Call/CallDetail service using the API simulator.


Call/CallTransfer

Transfer an active call to a new URL. Your new URL should return Teleoh XML to further direct the call flow. If the call is currently part of a 'dial' (speaking to B leg) you can choose to transfer just one or both legs of the call.
POST https://voiceapi.cloud/API/{format}/Call/CallTransfer
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
call_uuidThe unique ID / UUID of the call you wish to transfer.
legThe leg of the call you'd like to transfer. Valid options are aleg, bleg and both.
NewUrlThe URL where Teleoh will redirect the call. This URL should return Teleoh XML to further direct the call flow.
NewUrlMethodThe method Teleoh will use to request the NewUrl. Valid options are POST and GET.
Successful Response


{
    "call": {
        "call_uuid": "5caf4201-13c5-4cc4-97b1-0f630fedf8bf",
        "NewUrl": "http://yourwebsite.com/othertest.php"
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <call>
      <call_uuid>0a8ce573-84c6-4f1a-acf0-db97e5e46f97</call_uuid>
      <NewUrl>http%3A%2F%2Fyourwebsite.com%2Fothetest.php</NewUrl>
   </call>
</heg>

| API Simulator

Initiate a live call to the Call/CallTransfer service using the API simulator.


Call/Hangup

Hangup or disconnect a specific call from the network.
POST https://voiceapi.cloud/API/{format}/Call/Hangup
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
call_uuidThe UUID of the call to hang up.
Successful Response


{
    "call": {
        "call_uuid": "b687bbb7-48bf-4ff8-9093-41b12d416052"
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <call>
      <call_uuid>b687bbb7-48bf-4ff8-9093-41b12d416052</call_uuid>
   </call>
</heg>

| API Simulator

Initiate a live call to the Call/Hangup service using the API simulator.


Call/DTMF

Send DTMF digits on an active call.
POST https://voiceapi.cloud/API/{format}/Call/DTMF
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
call_uuidThe UUID of the call to send the DTMF digits.
digitsThe digits to send. Example: 123
Successful Response


{
    "call": {
        "call_uuid": "2154c13e-989c-4314-8479-799474fff1aa"
    }
}

<heg>
<call>
<call_uuid>2154c13e-989c-4314-8479-799474fff1aa</call_uuid>
</call>
</heg>

| API Simulator

Initiate a live call to the Call/DTMF service using the API simulator.


Call/PlayAudio

Play an audio file to a specific caller.
POST https://voiceapi.cloud/API/{format}/Call/PlayAudio
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
call_uuidThe UUID of the call to play the sound to.
SoundUrlThe URL to the audio to play. WAV and MP3 files are supported.
Successful Response


{
    "call": {
        "call_uuid": "840bded3-15b6-4575-86da-b40310d0dfff"
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <call>
      <call_uuid>840bded3-15b6-4575-86da-b40310d0dfff</call_uuid>
   </call>
</heg>

| API Simulator

Initiate a live call to the Call/PlayAudio service using the API simulator.


Call/StopAudio

Stop the audio started by PlayAudio from playing to a caller.
POST https://voiceapi.cloud/API/{format}/Call/StopAudio
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
call_uuidThe call UUID
Successful Response


{
    "call": {
        "call_uuid": "b2a11029-5bc2-447d-b4ec-1104621762f5"
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <call>
      <call_uuid>b2a11029-5bc2-447d-b4ec-1104621762f5</call_uuid>
   </call>
</heg>

| API Simulator

Initiate a live call to the Call/StopAudio service using the API simulator.


Call/CallHistory

Get call detail history between two specific dates. A max of 500 results are returned with any date range.
POST https://voiceapi.cloud/API/{format}/Call/CallHistory
Parameters
Variable Required Description
API_USER_IDYour API User ID
API_KEYYour API Key
start_dateThe start date of your search range formatted as YYYY-MM-DD
end_dateThe end date of your search range formatted as YYYY-MM-DD
Successful Response


{
	"call": {
		"API_USER_ID": "898958",
		"answer_time": "2016-08-29 22:41:59",
		"duration": "63",
		"call_direction": "outbound",
		"billed_duration": "57",
		"call_uuid": "a628a43e-b2d5-43a9-8c5d-31a9573dd4f5",
		"end_time": "2016-08-29 22:42:56",
		"to": "12144630000",
		"from": "19723071454",
		"caller_name": "Jane Doe",
		"destination_name": "United States",
		"originator": "45c5136d-e1aa-4fa7-98ca-af7c5446f1a4",
		"originated_legs": {},
		"rate": "0.0050",
		"total": "0.00475"
	}
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <call>
      <API_USER_ID>89545412</API_USER_ID>
      <answer_time>2016-08-29 22:41:59</answer_time>
      <duration>63</duration>
      <call_direction>outbound</call_direction>
      <billed_duration>57</billed_duration>
      <call_uuid>a628a43e-b2d5-43a9-8c5d-31a9573dd4f5</call_uuid>
      <end_time>2016-08-29 22:42:56</end_time>
      <to>12144630000</to>
      <from>19723071454</from>
      <caller_name>Jane Doe</caller_name>
      <destination_name>United States</destination_name>
      <originator>45c5136d-e1aa-4fa7-98ca-af7c5446f1a4</originator>
      <originated_legs />
      <rate>0.0050</rate>
      <total>0.00475</total>
   </call>
</heg>

| API Simulator

Initiate a live call to the Call/CallHistory service using the API simulator.


Call/SetVariable

Set a variable that is present throughout the call flow and passed with each action request. 'SetVariable' allows you to set a variable without using 'GetDigits' or overwrite a variable previously set using 'GetDigits'.
POST https://voiceapi.cloud/API/{format}/Call/SetVariable
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
call_uuidThe call_uuid of the call you wish to set a variable for.
variable_nameThe name of your variable (3 character min)
variable_valueThe value of your variable (1 character min)
Successful Response





| API Simulator

Initiate a live call to the Call/SetVariable service using the API simulator.

Number



Number/GetAll

Get all phone numbers connected to your account.
POST https://voiceapi.cloud/API/{format}/Number/GetAll
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
Successful Response


{
    "number": [{
        "@attributes": {
            "id": "4"
        },
        "digits": " 19726164680",
        "price": "0.50",
        "start_date": "2016-08-19 12:51:10",
        "renewal_date": {},
        "app_id": "13"
    }, {
        "@attributes": {
            "id": "3"
        },
        "digits": " 18665905753",
        "price": "2.75",
        "start_date": "2016-08-19 12:40:01",
        "renewal_date": {},
        "app_id": "13"
    }, {
        "@attributes": {
            "id": "2"
        },
        "digits": " 18174067551",
        "price": "0.50",
        "start_date": "2016-08-19 12:17:44",
        "renewal_date": {},
        "app_id": "13"
    }, {
        "@attributes": {
            "id": "1"
        },
        "digits": {},
        "price": "0.50",
        "start_date": "2016-08-19 12:07:23",
        "renewal_date": {},
        "app_id": "13"
    }]
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <number id="4">
      <digits>19726164680</digits>
      <price>0.50</price>
      <start_date>2016-08-19 12:51:10</start_date>
      <renewal_date />
      <app_id>13</app_id>
   </number>
   <number id="3">
      <digits>18665905753</digits>
      <price>2.75</price>
      <start_date>2016-08-19 12:40:01</start_date>
      <renewal_date />
      <app_id>13</app_id>
   </number>
   <number id="2">
      <digits>18174067551</digits>
      <price>0.50</price>
      <start_date>2016-08-19 12:17:44</start_date>
      <renewal_date />
      <app_id>13</app_id>
   </number>
   <number id="1">
      <digits />
      <price>0.50</price>
      <start_date>2016-08-19 12:07:23</start_date>
      <renewal_date />
      <app_id>13</app_id>
   </number>
</heg>

| API Simulator

Initiate a live call to the Number/GetAll service using the API simulator.


Number/SearchLocal

Search for US local numbers.
POST https://voiceapi.cloud/API/{format}/Number/SearchLocal
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
acAny valid US three digit area code.
zipAny valid US zip code.
maxThe max number of results to return. The default is 10 and the max is 125.
patternA pattern to search for in the local number. * can be used as a wildcard. Letters and numbers are accepted.
Successful Response


{
	"number": [{
		"@attributes": {
			"id": "4"
		},
		"digits": " 19726164680",
		"price": "0.50",
		"start_date": "2016-08-19 12:51:10",
		"renewal_date": {},
		"app_id": "13"
	}, {
		"@attributes": {
			"id": "1"
		},
		"digits": {},
		"price": "0.50",
		"start_date": "2016-08-19 12:07:23",
		"renewal_date": {},
		"app_id": "13"
	}]
}

<?xml version="1.0" encoding="UTF-8"?>
<heg results="25">
   <number>
      <digits>+19725884597</digits>
      <formatted>(972) 588-4597</formatted>
      <city>RENNER</city>
      <state>TX</state>
      <price>0.50</price>
   </number>
   <number>
      <digits>+19725884563</digits>
      <formatted>(972) 588-4563</formatted>
      <city>RENNER</city>
      <state>TX</state>
      <price>0.50</price>
   </number>
</heg>

| API Simulator

Initiate a live call to the Number/SearchLocal service using the API simulator.


Number/Modify

Change the application linked to one of your phone numbers.
POST https://voiceapi.cloud/API/{format}/Number/Modify
Parameters
Variable Required Description
API_USER_IDYour API User ID
API_KEYYour API Key
number_idThe Id of the phone number you wish to modify.
app_idThe Id of the application you wish to link to the phone number.
Successful Response


{
    "number": {
        "@attributes": {
            "id": "2"
        },
        "digits": " 18174067551",
        "price": "0.50",
        "start_date": "2016-08-19 12:17:44",
        "renewal_date": "9\/18\/2016",
        "app_id": "13",
        "app_name: "Name of app 13"
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <number id="2">
      <digits>18174067551</digits>
      <price>0.50</price>
      <start_date>2016-08-19 12:17:44</start_date>
      <renewal_date>9/18/2016</renewal_date>
      <app_id>13</app_id>
      <app_name>Name of app 13</app_name>
   </number>
</heg>

| API Simulator

Initiate a live call to the Number/Modify service using the API simulator.


Number/SearchTollFree

Search for available U.S. toll free numbers.
POST https://voiceapi.cloud/API/{format}/Number/SearchTollFree
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
patternA pattern to search for in the toll free number. * can be used as a wildcard. Letters and numbers are accepted.
maxThe max results to return. Max is 125 and the default is 10.
Successful Response


{
    "@attributes": {
        "results": "2"
    },
    "number": [{
        "digits": "+18665890798",
        "formatted": "(866) 589-0798",
        "pattern_match": {},
        "price": "2.75"
    }, {
        "digits": "+18665890391",
        "formatted": "(866) 589-0391",
        "pattern_match": {},
        "price": "2.75"
    }]
}

<?xml version="1.0" encoding="UTF-8"?>
<heg results="2">
   <number>
      <digits>+18665890798</digits>
      <formatted>(866) 589-0798</formatted>
      <pattern_match />
      <price>2.75</price>
   </number>
   <number>
      <digits>+18665890391</digits>
      <formatted>(866) 589-0391</formatted>
      <pattern_match />
      <price>2.75</price>
   </number>
</heg>

| API Simulator

Initiate a live call to the Number/SearchTollFree service using the API simulator.


Number/BuyLocalNumber

Purchase a local number for use with voice and SMS.
POST https://voiceapi.cloud/API/{format}/Number/BuyLocalNumber
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
digitsThe phone number you wish to purchase. Must be in in E.164 format, like +19195551212.
app_idThe application ID where Teleoh will direct all incoming calls. See the "Applications" API for more information.
Successful Response


{
    "number": {
        "@attributes": {
            "id": "4"
        },
        "digits": " 19726164680",
        "price": "0.50",
        "start_date": "2016-08-19 12:51:10",
        "renewal_date": "9\/18\/2016"
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <number id="2">
      <digits>18174067551</digits>
      <price>0.50</price>
      <start_date>2016-08-19 12:17:44</start_date>
      <renewal_date>9/18/2016</renewal_date>
   </number>
</heg>

| API Simulator

Initiate a live call to the Number/BuyLocalNumber service using the API simulator.


Number/BuyTollFreeNumber

Purchase a toll free number for use with voice and SMS.
POST https://voiceapi.cloud/API/{format}/Number/BuyTollFreeNumber
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
digitsThe toll free phone number you wish to purchase. Must be in in E.164 format, like +18885551212.
app_idThe application ID where Teleoh will direct all incoming calls. See the "Applications" API for more information.
Successful Response


{
    "number": {
        "@attributes": {
            "id": "4"
        },
        "digits": " 18880001245",
        "price": "0.50",
        "start_date": "2016-08-19 12:51:10",
        "renewal_date": "9\/18\/2016"
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <number id="3">
      <digits>18665905753</digits>
      <price>2.75</price>
      <start_date>2016-08-19 12:40:01</start_date>
      <renewal_date>9/18/2016</renewal_date>
   </number>
</heg>

| API Simulator

Initiate a live call to the Number/BuyTollFreeNumber service using the API simulator.


Number/Get

Get the details of a single phone number.
POST https://voiceapi.cloud/API/{format}/Number/Get
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
number_idThe ID of the number you wish to get the details of.
Successful Response


{
    "number": {
        "@attributes": {
            "id": "2"
        },
        "digits": " 18174067551",
        "price": "0.50",
        "start_date": "2016-08-19 12:17:44",
        "renewal_date": "9\/18\/2016",
        "app_id": "13"
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <number id="2">
      <digits>18174067551</digits>
      <price>0.50</price>
      <start_date>2016-08-19 12:17:44</start_date>
      <renewal_date>9/18/2016</renewal_date>
      <app_id>13</app_id>
   </number>
</heg>

| API Simulator

Initiate a live call to the Number/Get service using the API simulator.


Number/Delete

Remove a number from your Teleoh account. Remember, once a number is removed you will not be able to get it back.
POST https://voiceapi.cloud/API/{format}/Number/Delete
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
number_idThe ID of the number, can be obtained from Get or GetAll.
Successful Response


{
    "number": {
        "@attributes": {
            "id": "5"
        }
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <number id="5" />
</heg>

| API Simulator

Initiate a live call to the Number/Delete service using the API simulator.

SMS



SMS/SendMessage

Send a SMS or MMS message to the specified phone number.

Messages can only be sent 'from' a phone number purchased in your account.
For broadcasting messages you can send up to one (1) message per second per Teleoh phone number.

When sending MMS, the size of all images or video for a message should not exceed 1.5MB. If sending from a mobile to a Teleoh number the mobile carrier will usually handle changing the image file size on your behalf.
POST https://voiceapi.cloud/API/{format}/SMS/SendMessage
Parameters
Variable Required Description
API_USER_IDYour API User ID
API_KEYYour API Key
toThe phone number to send the message to. Should include country code and the 10 digit number.
fromThe phone number to send the message from. Must be a DID number purchased in your Teleoh account.
text_messageThe text of your message. Must be 2048 characters or less.
media_urlFor MMS messages only. The media (usually a image) you'd like to send. Should be a fully qualified domain name. Example: http://yoursite.com/yourimage.jpg
callbackUrlURL that is notified via POST by Teleoh when the status of the SMS message changes.

Fields:
message_id = The ID of the message
MessageAction = either 'delivered' or 'error'
result = A description of the message status, such as "Message not delivered to carrier".
Successful Response


{
	"sms": {
		"@attributes": {
			"message_id": "18787"
		},
		"to": "12144630000",
		"from": "19723624569",
		"text_message": "Test a message with the JSON API.",
		"media_url": {}
	}
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <sms message_id="18789">
      <to>12144630000</to>
      <from>19723624587</from>
      <text_message>Testing a message with the XML API.</text_message>
      <media_url />
   </sms>
</heg>

| API Simulator

Initiate a live call to the SMS/SendMessage service using the API simulator.


SMS/GetAll

Get all messages withing a specified date range.
POST https://voiceapi.cloud/API/{format}/SMS/GetAll
Parameters
Variable Required Description
API_USER_IDYour API User ID
API_USER_KEYYour API Key
start_dateThe start date of your search range formatted as YYYY-MM-DD
end_dateThe end date of your search range formatted as YYYY-MM-DD
maxThe maximum number of results to return. The default is 100 and the the max is 500.
toThe 'to' number. Provide this attribute to view messages sent only to this number. Only part of the 'to' number can be provided for a search like experience.
fromThe 'from' number. Provide this attribute to view messages sent only from this number. Only part of the 'from' number can be provided for a search like experience.
Successful Response


{
	"sms": [{
		"@attributes": {
			"message_id": "15"
		},
		"send_date": "2016-08-30 19:07:07",
		"direction": "outbound",
		"to": "12144630000",
		"from": "19723625216",
		"text_message": "This is the text of the SMS.",
		"media_url": {},
		"callbackUrl": "http:\/\/myurl.com\/sms_callback.php",
		"rate": "0.01",
		"total_billed": "0.01",
		"status": "DELIVERED",
		"status_description": "Message delivered to carrier"
	}, {
		"@attributes": {
			"message_id": "16"
		},
		"send_date": "2016-08-30 19:09:05",
		"direction": "outbound",
		"to": "12144630000",
		"from": "19723625216",
		"text_message": "Sending my last SMS message.",
		"media_url": {},
		"callbackUrl": "http:\/\/myurl.com\/sms_callback.php",
		"rate": "0.01",
		"total_billed": "0.01",
		"status": "DELIVERED",
		"status_description": "Message delivered to carrier"
	}]
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <sms message_id="15">
      <send_date>2016-08-30 19:07:07</send_date>
      <direction>outbound</direction>
      <to>12144630000</to>
      <from>19723625216</from>
      <text_message>Sending my first SMS</text_message>
      <media_url />
      <callbackUrl>http://myurl.com/sms_callback.php</callbackUrl>
      <rate>0.01</rate>
      <total_billed>0.01</total_billed>
      <status>DELIVERED</status>
      <status_description>Message delivered to carrier</status_description>
   </sms>
   <sms message_id="16">
      <send_date>2016-08-30 19:09:05</send_date>
      <direction>outbound</direction>
      <to>12144630000</to>
      <from>19723625216</from>
      <text_message>Sending my second SMS.</text_message>
      <media_url />
      <callbackUrl>http://myurl.com/sms_callback.php</callbackUrl>
      <rate>0.01</rate>
      <total_billed>0.01</total_billed>
      <status>DELIVERED</status>
      <status_description>Message delivered to carrier</status_description>
   </sms>
</heg>

| API Simulator

Initiate a live call to the SMS/GetAll service using the API simulator.


SMS/Get

Get the details of a single message_id.
POST https://voiceapi.cloud/API/{format}/SMS/Get
Parameters
Variable Required Description
API_USER_IDYour API User ID
API_KEYYour API Key
message_idThe message_id of the message you'd like to get the details of.
Successful Response


{
  "sms": {
    "message_id": "16",
    "send_date": "2016-08-30 19:09:05",
    "direction": "outbound",
    "to": "12144630000",
    "from": "19723625216",
    "text_message": "Sending my second SMS.",
    "callbackUrl": "http://myurl.com/sms_callback.php",
    "rate": "0.01",
    "total_billed": "0.01",
    "status": "DELIVERED",
    "status_description": "Message delivered to carrier"
  }
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
  <sms message_id="16">
      <send_date>2016-08-30 19:09:05</send_date>
      <direction>outbound</direction>
      <to>12144630000</to>
      <from>19723625216</from>
      <text_message>Sending my second SMS.</text_message>
      <media_url />
      <callbackUrl>http://myurl.com/sms_callback.php</callbackUrl>
      <rate>0.01</rate>
      <total_billed>0.01</total_billed>
      <status>DELIVERED</status>
      <status_description>Message delivered to carrier</status_description>
   </sms>
</heg>

| API Simulator

Initiate a live call to the SMS/Get service using the API simulator.

Fax



Fax/OriginateFax

Sends a PDF file as a fax document.
POST https://voiceapi.cloud/API/{format}/Fax/OriginateFax
Parameters
Variable Required Description
API_USER_IDYour API User ID
API_KEYYour API Key
FaxToThe phone number to send the fax to with the country code. Ex. 12145551212
DocumentUrlA fully qualified Url to the PDF document you wish to fax.
caller_nameThe caller ID name displayed on the outbound call.
caller_id_numberThe caller ID number with country code. Ex: 12145551212. Must be a valid phone number with country code.
callbackUrlURL that is notified by the cloud when the fax is sent or failed.
Successful Response


{
   "fax": {
      "call_uuid": "d71d2fce-4830-4c25-8bd5-b779f5748206",
      "FaxTo": "18017526865",
      "DocumentUrl": "http://someurl.com/document_to_fax.pdf",
      "caller_name": "Hawkins E Group",
      "caller_id_number": "14692145044",
      "callbackUrl": "http://someurl.com/callback.php"
   }
}

<heg>
   <fax>
      <call_uuid>d71d2fce-4830-4c25-8bd5-b779f5748206</call_uuid>
      <FaxTo>18017526865</FaxTo>
      <DocumentUrl>http://someurl.com/document_to_fax.pdf</DocumentUrl>
      <caller_name>Hawkins E Group</caller_name>
      <caller_id_number>14692145044</caller_id_number>
      <callbackUrl>http://someurl.com/callback.php</callbackUrl>
   </fax>
</heg>

| API Simulator

Initiate a live call to the Fax/OriginateFax service using the API simulator.

Logs



Logs/GetAll

Get a list of errors returned by the network between two specific dates.
POST https://voiceapi.cloud/API/{format}/Logs/GetAll
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
start_dateYYYY-DD-MM
end_dateYYYY-DD-MM
Successful Response


{  
   "error":[  
      {  
         "@attributes":{  
            "id":"5302"
         },
         "API_USER_ID":"898958",
         "service":"SMS\/SendMessage",
         "error_name":"Sending of the message failed.",
         "error_type":"API"
      },
      {  
         "@attributes":{  
            "id":"5301"
         },
         "API_USER_ID":"898958",
         "service":"SMS\/SendMessage",
         "error_name":"Sending of the message failed.",
         "error_type":"API"
      },
      {  
         "@attributes":{  
            "id":"5300"
         },
         "API_USER_ID":"898958",
         "service":"Call\/Originate",
         "error_name":"'caller_id_number' must be a valid phone number with country code.",
         "error_type":"API"
      }
   ]
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
	 <errorlog id="5302">
	    <API_USER_ID>898958</API_USER_ID>
	    <service>SMS/SendMessage</service>
	    <errorlog_name>Sending of the message failed.</errorlog_name>
		<errorlog_type>API</errorlog_type>
	 </errorlog>
	 <errorlog id="5301">
	    <API_USER_ID>898958</API_USER_ID>
	    <service>SMS/SendMessage</service>
	    <errorlog_name>Sending of the message failed.</errorlog_name>
		<errorlog_type>API</errorlog_type>
	 </errorlog>
	 <errorlog id="5300">
	    <API_USER_ID>898958</API_USER_ID>
	    <service>Call/Originate</service>
	    <errorlog_name>'caller_id_number' must be a valid phone number with country code.</errorlog_name>
		<errorlog_type>API</errorlog_type>
	 </errorlog>
</heg>

| API Simulator

Initiate a live call to the Logs/GetAll service using the API simulator.


Logs/Get

Get the details of a single error returned by the network.
POST https://voiceapi.cloud/API/{format}/Logs/Get
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
error_idThe id of the error.
Successful Response


{  
   "error":{  
      "@attributes":{  
         "id":"5305"
      },
      "API_USER_ID":"898958",
      "service":"SMS\/SendMessage",
      "error_name":"Sending of the message failed.",
      "error_type":"API"
   }
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <error id="5305">
      <API_USER_ID>898958</API_USER_ID>
      <service>SMS/SendMessage</service>
      <error_name>Sending of the message failed.</error_name>
      <error_type>API</error_type>
   </error>
</heg>

| API Simulator

Initiate a live call to the Logs/Get service using the API simulator.

TSV



TSV/Create

Create a two step verification (TSV) request. This is the first step in the TSV flow. This API will return the 'customer_verification_code' and 'checksum' values needed to verify the user in the second step. Note that each TSV request expires after five minutes if not verified.
POST https://voiceapi.cloud/API/{format}/TSV/Create
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
phone_numberThe phone number of the TSV participant.
tsv_methodThe method used for verification. Valid values are CALL and SMS.
from_numberA phone number in your Teleoh account, used to set the "from" caller ID for SMS or calls.
company_nameYour company name. Used in the SMS message or phone call to the party attempting verification.
Successful Response


{
    "tsv": {
      "request_id": "987654338",
      "customer_verification_code": "59205",
      "checksum": "vpBCxv5cGurtaHcUodPwVDDJC5fh7EDV39X",
      "phone_number": "12145551212",
      "from_number": "14692145044",
      "company_name": "Your Company",
      "tsv_method": "SMS",
      "status": "1"
  }
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <tsv>
      <request_id>987654338</request_id>
      <customer_verification_code>59205</customer_verification_code>
      <checksum>vpBCxv5cGurtaHcUodPwVDDJC5fh7EDV39X</checksum>
      <phone_number>12145551212</phone_number>
      <from_number>14692145044</from_number>
      <company_name>Your Company</company_name>
      <tsv_method>SMS</tsv_method>
      <status>1</status>
   </tsv>
</heg>

| API Simulator

Initiate a live call to the TSV/Create service using the API simulator.


TSV/Verify

After creating a two step verification request with the 'Create' API service use this service to check if the customer completed the verification. For SMS verificaions include the 'customer_verification_code' parameter to validate. The 'status' returned can be one of the following (1- VERIFIED. 2-PENDING VERIFICATION. 3- EXPIRED. 4-FAILED)
POST https://voiceapi.cloud/API/{format}/TSV/Verify
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
request_idThe 'request_id' returned from the 'Create' service.
checksumThe 'checksum' returned from the 'Create' service.
customer_verification_codeFor SMS Only : The customers verification code as entered by them on your website.
Successful Response


{
  "tsv": {
    "request_id": "987654392",
    "checksum": "rhD69hlvFFS0YmapjvwQ9ElyNikaRm2IWDf",
    "tsv_method": "CALL",
    "status": "1"
  }
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <tsv>
      <request_id>987654392</request_id>
      <checksum>rhD69hlvFFS0YmapjvwQ9ElyNikaRm2IWDf</checksum>
      <tsv_method>CALL</tsv_method>
      <status>1</status>
   </tsv>
</heg>

| API Simulator

Initiate a live call to the TSV/Verify service using the API simulator.

Dial



Dial/Create

TOOL The 'Dial' API provides the easiest way to initiate a outbound call from one of your Teleoh DID/phone numbers. There are many ways to make calls using the Teleoh API and Teleoh XML, this API provides a simple almost non programmatic way to place outgoing calls quickly. If you want to place outbound calls and have the answering party connected to one of your applications and to utilize additional features use the Call/Originate API instead.
POST https://voiceapi.cloud/API/{format}/Dial/Create
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API key
CallToThe phone number with country code you wish to call.
caller_id_numberA phone number in your Teleoh account, used to set the 'from' caller ID.
ConnectWithThe number to connect the CallTo number with. Ideally this would be a phone number where you can be reached.
Successful Response


{
  "dial": {
    "call_uuid": "dce25b46-10fe-4893-8908-c3e838a5ad6d",
    "ConnectWith": "12142873673",
    "CallTo": "19722761010",
    "caller_id_number": "19723625216"
  }
}

<?xml version="1.0" encoding="UTF-8"?>
<heg>
   <dial>
      <call_uuid>dce25b46-10fe-4893-8908-c3e838a5ad6d</call_uuid>
      <ConnectWith>12142873673</ConnectWith>
      <CallTo>19722761010</CallTo>
      <caller_id_number>19723625216</caller_id_number>
   </dial>
</heg>

| API Simulator

Initiate a live call to the Dial/Create service using the API simulator.

Wireless



Wireless/Activate

Activate a new device/SIM on a wireless network. Some activations may be completed instantly while others (such as number ports) may not. Regardless of the activation outcome, the activation_id will be returned by the API. Use the "activation_id" with the ActivationStatus service to check the status of an activation.
POST https://voiceapi.cloud/API/{format}/Wireless/Activate
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API Key
IMEIThe electronic serial number of the device. Can be a IMEI, MEID, or ESN.
ICCIDThe ICCID number from the SIM card.
networkThe network to process the activation on. Valid options are GSMT,GSMA,VZW, and PCS.
rate_idThe ID of the rate plan, obtained from the Pricing/Get API.
addressThe address of the subscriber. Should be formatted as '123 Main St,75231,STE 4050'. Do not include city or state.
custom_idA custom identifier for your records.
Successful Response


{
    "activate": { "activation_id": "5c2adae3f48b4202bb26a0e6" }
}

<heg>
   <activate custom_id="">
      <activation_id>5c2adae3f48b4202bb26a0e6</activation_id>
   </activate>
</heg>

| API Simulator

Initiate a live call to the Wireless/Activate service using the API simulator.


Wireless/ActivationStatus

Get the status of an activation. After using the "Activate" service you may want to use this service to check the status of your activation if necessary.
POST https://voiceapi.cloud/API/{format}/Wireless/ActivationStatus
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API Key
activation_idThe activation_id returned by the Activate service.
Successful Response


{
   "activation": {
      "@activation_id": "5c5b967bf48b4202bb26a375",
      "status": "Active",
      "subscriber_id": "502361",
      "mdn": "5555551234"
   }
}

<heg>
   <activation activation_id="5c5b967bf48b4202bb26a375">
      <status>Active</status>
      <subscriber_id>502361</subscriber_id>
      <mdn>5555551234</mdn>
   </activation>
</heg>

| API Simulator

Initiate a live call to the Wireless/ActivationStatus service using the API simulator.


Wireless/Device

Change either the ESN or ICCID on a specific wireless account. subscriber_id must be provided. You can obtain the subscriber_id from the GetSubscriber, ActivationStatus, or for instantly completed activations the Activate service. Note that you should only provide information for the equipment you wish to change; either ESN, ICCID, or both.
POST https://voiceapi.cloud/API/{format}/Wireless/Device
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API Key
subscriber_idThe subscriber_id returned by the GetSubscriber, ActivationStatus, or Activate service.
ESNThe electronic serial number of the device. Can be a IMEI, MEID, or ESN.
ICCIDThe ICCID number from the SIM card.
Successful Response





| API Simulator

Initiate a live call to the Wireless/Device service using the API simulator.


Wireless/Status

Change the status of a particular subscirber_id. This service will not work for subscribers in CANCELLED status.
POST https://voiceapi.cloud/API/{format}/Wireless/Status
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API Key
subscriber_idThe subscriber_id returned by the GetSubscriber, ActivationStatus, or Activate service.
new_statusThe desired new status. Can be either SUSPENDED, ACTIVE, or CANCELLED. Note that cancelling a subscriber_id is not a reversable action.
Successful Response


{
    "status": {
      "subscriber_id": "502356",
      "new_status": "SUSPENDED"
    }
  }

<heg>
   <status>
      <subscriber_id>502356</subscriber_id>
      <new_status>SUSPENDED</new_status>
   </status>
</heg>

| API Simulator

Initiate a live call to the Wireless/Status service using the API simulator.


Wireless/GetSubscriber

Get a subscribers details either by MDN, ESN, or by using the subscriber_id. Usage details are returned when available. Possible status values are ACTIVE, SUSPENDED, OVERAGE, GRACE PERIOD, and CANCELLED.
POST https://voiceapi.cloud/API/{format}/Wireless/GetSubscriber
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API Key
subscriber_idThe subscriber_id returned by the ActivationStatus or Activate service.
MDNThe mobile number of the subscriber.
IMEIThe electronic serial number of the device. Can be a IMEI, MEID, or ESN.
ICCIDThe ICCID of the associated SIM card.
custom_idThe custom_id provided for the subscriber.
Successful Response


{
    "subscriber": {
      "-subscriber_id": "502356",
      "-custom_id": "0628198300",
      "activation_date": "2018-12-28 21:31:17",
      "imei": "990005889652322",
      "iccid": "89014103278477366232",
      "mdn": "9034828473",
      "rate": {
        "-id": "10",
        "-name": "IoT",
        "expiration_date": "1/7/2018",
        "usage_voice": "18",
        "usage_sms": "0",
        "usage_data": "143.476",
        "usage_ancillary": "3.00",
        "cash_balance": "-18.00"
      },
      "status": "ACTIVE",
      "last_udpate": "2018-12-29 23:50:50"
    }
  }

<heg>
   <subscriber subscriber_id="502371" custom_id="">
      <activation_date>2019-02-11 00:10:02</activation_date>
      <imei>990005889658754</imei>
      <iccid>89014103271291068714</iccid>
      <mdn>2145026206</mdn>
      <rate id="8566">
         <plan_name>5GB Mobile Select</plan_name>
         <expiration_date>3/13/2019</expiration_date>
         <usage_voice>35</usage_voice>
         <usage_sms>0</usage_sms>
         <usage_data>405.242</usage_data>
         <usage_ancillary>3.00</usage_ancillary>
         <cash_balance>-3.00</cash_balance>
      </rate>
      <status>OVERAGE</status>
      <last_udpate>2019-02-18 14:35:39</last_udpate>
      <stacked_plans>
         <plan>
            <DATETIME>2019-02-18 14:21:29</DATETIME>
            <rate_id>8567</rate_id>
            <status>PENDING</status>
         </plan>
      </stacked_plans>
   </subscriber>
</heg>

| API Simulator

Initiate a live call to the Wireless/GetSubscriber service using the API simulator.


Wireless/Eligibility

Check the elibibility status of a IMEI or ICCID for activation. Provide MDN to check if a phone number is eligable for porting. Provide one or all tree criteria, only the ones provided will return results.
POST https://voiceapi.cloud/API/{format}/Wireless/Eligibility
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API Key
IMEI[Device Eligibility] The IMEI of the device.
ICCID[SIM Eligibility] The ICCID of the SIM card.
MDN[Porting Eligibility] Provide a MDN or phone number to determine if it's eligable to be ported.
zipIf checking the port eligibility (providing a MDN), a zip code must be provided.
Successful Response


{
    "eligibility": {
      "imei": {
        "number": "990004771158754",
        "status": "Eligable",
        "message": "This device is eligible.",
        "device": "Samsung Galaxy"
      },
      "iccid": {
        "number": "89014103271819344449",
        "status": "Not Eligable",
        "message": "Not an HEG SIM."
      },
      "mdn": {
        "number": "4692145044",
        "status": "Eligable",
        "message": "Operation performed successfully."
      }
    }
  }

<heg>
   <eligibility>
      <imei>
         <number>990004771158754</number>
         <status>Eligable</status>
         <message>This device is eligible.</message>
         <device>Samsung Galaxy</device>
      </imei>
      <iccid>
         <number>89014103271819344449</number>
         <status>Not Eligable</status>
         <message>Not an HEG SIM.</message>
      </iccid>
      <mdn>
         <number>4692145044</number>
         <status>Eligable</status>
         <message>Operation performed successfully.</message>
      </mdn>
   </eligibility>
</heg>

| API Simulator

Initiate a live call to the Wireless/Eligibility service using the API simulator.


Wireless/Replenish

Add another cycle to a wireless subscriber or add cash to the cash bank. If the subscriber is in GRACE PERIOD status the replenish will be applied instantly, otherwise it will be stacked and applied at the end of the current cycle.
POST https://voiceapi.cloud/API/{format}/Wireless/Replenish
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API Key
subscriber_idThe subscriber_id returned by the GetSubscriber, ActivationStatus, or Activate service.
typeREPLENISH or CASH are valid options.
rate_idIf type is REPLENISH provide the rate_id. Keep the same rate_id or provide a new rate_id to change the plan for the next cycle.
cash_amountIf adding cash the cash_amount represents the amount of cash you wish to add to the cash bank. Provide in dollar format, for example 5.00
Successful Response


{
   "replenish": {
      "@subscriber_id": "502371",
      "type": "REPLENISH",
      "rate_id": "8567",
      "expiration_date": "STACKED"
   }
}

<heg>
   <replenish subscriber_id="502371">
      <type>REPLENISH</type>
      <rate_id>8567</rate_id>
      <expiration_date>STACKED</expiration_date>
   </replenish>
</heg>

| API Simulator

Initiate a live call to the Wireless/Replenish service using the API simulator.


Wireless/Swap

Change the active IMEI or ICCID on a subscribers account.
POST https://voiceapi.cloud/API/{format}/Wireless/Swap
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API Key
subscriber_idThe IMEI of the new device you wish to be utilized on the account.
IMEIThe ICCID of the device you wish to be used on the account.
ICCID
Successful Response


{
   "swap": {
      "@subscriber_id": "502450",
      "IMEI": "518787878181487555"
   }
}

<heg>
   <swap subscriber_id="982450">
      <IMEI>518787878181487555</IMEI>
   </swap>
</heg>

| API Simulator

Initiate a live call to the Wireless/Swap service using the API simulator.


Wireless/ActivatePort

Activate a new device/SIM on a wireless network and port a customers existing number.
POST https://voiceapi.cloud/API/{format}/Wireless/ActivatePort
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API Key
IMEIThe electronic serial number of the device. Can be a IMEI, MEID, or ESN.
ICCIDThe ICCID number from the SIM card.
networkThe network to process the activation on. Valid options are GSMT,GSMA,VZW, and PCS.
rate_idThe ID of the rate plan, obtained from the Pricing/Get API.
custom_idA custom identifier for your records.
addressPort Info: The address of the subscriber. Should be formatted as '123 Main St,75231,STE 4050'. Do not include city or state.
account_namePort Info: The name on the account with the previous provider.
account_numberPort Info: The account number with the previous provider.
account_pinPort Info: The PIN number on the account with the previous provider.
number_to_portPort Info: The 10 digit number you wish to port.
Successful Response





| API Simulator

Initiate a live call to the Wireless/ActivatePort service using the API simulator.


Wireless/Unstack

Unstack a stacked plan and make it active immediately. If 'stacked_plan_id' is not supplied to first plan in line will be unstacked.
POST https://voiceapi.cloud/API/{format}/Wireless/Unstack
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API Key
subscriber_idThe subscriber_id you wish to unstack a plan for.
stacked_plan_idThe 'stacked_plan_id' of the plan you wish to unstack, you can find this using the GetSubscriber method.
Successful Response





| API Simulator

Initiate a live call to the Wireless/Unstack service using the API simulator.


Wireless/ActivateCancel

Cancels a pending activation. NOTE: Only number ports in error status (CT,DN,ER) and activations pending for over 12 hours can be cancelled.
POST https://voiceapi.cloud/API/{format}/Wireless/ActivateCancel
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API Key
activation_idThe activation_id returned from the 'ActivatePort' or 'Activate' service.
Successful Response





| API Simulator

Initiate a live call to the Wireless/ActivateCancel service using the API simulator.


Wireless/GetSubscribers

Get a list of all wireless subscribers.
POST https://voiceapi.cloud/API/{format}/Wireless/GetSubscribers
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API Key
show_cancelledSet to 'Y' to show cancelled subscribers.
Successful Response





| API Simulator

Initiate a live call to the Wireless/GetSubscribers service using the API simulator.


Wireless/SoftCap

Set a soft cap for voice, SMS, and data. Once the cap is reached for any of the limits the subscriber will be placed in SUSPENDED status.
POST https://voiceapi.cloud/API/{format}/Wireless/SoftCap
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API Key
subscriber_idThe subscriber_id returned by the GetSubscriber method.
voice_limitThe cap to set for voice in minutes.
sms_limitThe cap to set for inbound & outbound SMS.
data_limitThe cap to set for data in MB's.
Successful Response


{
   "softcap": {
      "@subscriber_id": "502433221",
      "voice": "8000",
      "sms": "5000",
      "data": "2565"
   }
}

<heg>
<softcap subscriber_id="502433221">
<voice>8000</voice>
<sms>5000</sms>
<data>2565</data>
</softcap>
</heg>

| API Simulator

Initiate a live call to the Wireless/SoftCap service using the API simulator.

CallingCard



CallingCard/Create

Create a new calling card.
POST https://voiceapi.cloud/API/{format}/CallingCard/Create
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API Key
nameThe name of the calling card, 10 characters or more.
descriptionA description of the calling card for your reference.
greeting_urlFully qualified url to a WAV or MP3 file you wish to play as the greeting.
greeting_speak_textThe text to speak as the greeting. NOTE: Either greeting_url or greeting_speak_text can be supplied, not both.
speak_voiceIf greeting_speak_text is supplied specifiy the voice. Default is Watson. Options include Watson(English/US) Summer(English/US) Alix(English/US) Maria(Spanish/US) Sofia(Spanish/Latin) Kate(English/England) Isabela(Portuguese/Brazil) Emi(Japanese/Japan) Renee(French) Birgit(German) Dieter(German)
pin_set_idsValid pin_set_id of a PIN set or multiple comma seperated pin_set_id's.
typeThe type of calling card. 1 - PIN (User enters pin each time to authenticate.) 2 - PINLESS (caller ID verification, user enters PIN only the first time they dial the system).
statusThe numeric identifier of the status. Either 1 for active, 2 for inactive.
Successful Response


{
	"callingcard": {
		"@attributes": {
			"calling_card_id": "55"
		},
		"name": "Mexico Unlimited",
		"description": "Our mexico unlimited calling card for online sales only.",
		"greeting_url": {},
		"greeting_speak_text": "Welcome to Mexico Unlimited",
		"speak_voice": "Watson",
		"pin_set_ids": "1418187,781818,441717",
		"type": "1",
		"status": "1"
	}
}

<heg>
   <callingcard calling_card_id="845">
      <name>Unlimited Mexico</name>
      <description>Our unlimited calling card for Mexico sold online only.</description>
      <greeting_url />
      <greeting_speak_text>Welcome to Mexico Unlimited</greeting_speak_text>
      <speak_voice>Watson</speak_voice>
      <pin_set_ids>114,5547</pin_set_ids>
      <type>1</type>
      <status>1</status>
   </callingcard>
</heg>

| API Simulator

Initiate a live call to the CallingCard/Create service using the API simulator.


CallingCard/Modify

Modify an existing calling card.
POST https://voiceapi.cloud/API/{format}/CallingCard/Modify
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API Key
calling_card_idA valid calling_card_id number. Can be obtain from the 'CallingCard' Create, Get, or GetAll service.
nameThe name of the calling card, 10 characters or more.
descriptionA description of the calling card for your reference.
greeting_urlFully qualified url to a WAV or MP3 file you wish to play as the greeting.
greeting_speak_textThe text to speak as the greeting. NOTE: Either greeting_url or greeting_speak_text can be supplied, not both.
speak_voiceIf greeting_speak_text is supplied specifiy the voice. Default is Watson. Options include Watson(English/US) Summer(English/US) Alix(English/US) Maria(Spanish/US) Sofia(Spanish/Latin) Kate(English/England) Isabela(Portuguese/Brazil) Emi(Japanese/Japan) Renee(French) Birgit(German) Dieter(German)
pin_set_idsValid pin_set_id of a PIN set or multiple comma seperated pin_set_id's.
statusThe numeric identifier of the status. Either 1 for active, 2 for inactive.
Successful Response


{  
   "callingcard":{  
      "@attributes":{  
         "calling_card_id":"7"
      },
      "name":"Unlimited Mexico",
      "description":"Our unlimited calling card for Mexico sold online only.",
      "greeting_url":{  

      },
      "greeting_speak_text":"Welcome to Mexico Unlimited",
      "speak_voice":{  

      },
      "pin_set_ids":"2,1",
      "type":"1",
      "status":"1"
   }
}

<heg>
   <callingcard calling_card_id="8">
      <name>New Name</name>
      <description>This is a new description.</description>
      <greeting_url />
      <greeting_speak_text>Thank you for using a HEG Calling Card.</greeting_speak_text>
      <speak_voice>Summer</speak_voice>
      <pin_set_ids>1</pin_set_ids>
      <type>1</type>
      <status>2</status>
   </callingcard>
</heg>

| API Simulator

Initiate a live call to the CallingCard/Modify service using the API simulator.


CallingCard/Get

Get details about a specific calling card.
POST https://voiceapi.cloud/API/{format}/CallingCard/Get
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API Key
calling_card_idA valid calling_card_id number. Can be obtain from the 'CallingCard' Create, Get, or GetAll service.
Successful Response


{  
   "callingcard":{  
      "@attributes":{  
         "calling_card_id":"7"
      },
      "name":"Unlimited Mexico",
      "description":"Our unlimited calling card for Mexico sold online only.",
      "greeting_url":{  

      },
      "greeting_speak_text":"Welcome to Mexico Unlimited",
      "speak_voice":{  

      },
      "pin_set_ids":"2,1",
      "type":"1",
      "status":"1"
   }
}


<heg>
   <callingcard calling_card_id="74434">
      <name>Unlimited Mexico</name>
      <description>Our unlimited calling card for Mexico sold online only.</description>
      <greeting_url />
      <greeting_speak_text>Welcome to Mexico Unlimited</greeting_speak_text>
      <speak_voice />
      <pin_set_ids>156</pin_set_ids>
      <type>1</type>
      <status>1</status>
   </callingcard>
</heg>

| API Simulator

Initiate a live call to the CallingCard/Get service using the API simulator.


CallingCard/GetAll

Get a full list of calling cards on your account. To save resources this service provides limited details about each calling card. To view full details use the Get service.
POST https://voiceapi.cloud/API/{format}/CallingCard/GetAll
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API Key
Successful Response


{  
   "callingcard":[  
      {  
         "calling_card_id":"80987",
         "name":"Dominican Callaround",
         "type":"1",
         "status":"1"
      },
      {  
         "calling_card_id":"90987",
         "name":"Unlimited Mexico",
         "type":"1",
         "status":"1"
      },
      {  
         "calling_card_id":"60987",
         "name":"Mexico Unlimited",
         "type":"1",
         "status":"1"
      }
   ]
}


<heg>
   <callingcard>
      <calling_card_id>809876</calling_card_id>
      <name>Dominican Callaround</name>
      <type>1</type>
      <status>1</status>
   </callingcard>
   <callingcard>
      <calling_card_id>709876</calling_card_id>
      <name>Unlimited Mexico</name>
      <type>1</type>
      <status>1</status>
   </callingcard>
   <callingcard>
      <calling_card_id>609876</calling_card_id>
      <name>Mexico Unlimited</name>
      <type>1</type>
      <status>1</status>
   </callingcard>
</heg>

| API Simulator

Initiate a live call to the CallingCard/GetAll service using the API simulator.


CallingCard/Delete

Delete an existing calling card.
POST https://voiceapi.cloud/API/{format}/CallingCard/Delete
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API Key
calling_card_idA valid calling_card_id number.
Successful Response


{  
   "callingcard":{  
      "calling_card_id":"7"
   }
}

<heg>
   <callingcard>
      <calling_card_id>7</calling_card_id>
   </callingcard>
</heg>

| API Simulator

Initiate a live call to the CallingCard/Delete service using the API simulator.


CallingCard/CreatePinSet

Create a new pin set. Pin sets are a set of pin numbers used for authentication for users placing outbound calls. A Calling Card can have an unlimited number of PIN sets.
POST https://voiceapi.cloud/API/{format}/CallingCard/CreatePinSet
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API Key
nameThe name of the pin set for your reference.
pin_countThe amount of PIN numbers you wish to generate for this PIN set. Valid values are 1 to 50000
pin_lengthThe length of the PIN numbers generated. Valid values are 5 to 20.
pin_default_valueThe default starting value of each PIN number. Valid values are any full dollar amount, for example 0.00 or 1.50.
statusThe status of the PIN set. Valid values are 1 (active), 2 (inactive).
Successful Response


{  
   "pinset":{  
      "@attributes":{  
         "pin_set_id":"8"
      },
      "name":"Pin Set One",
      "pin_count":"10",
      "pin_length":"20",
      "pin_default_value":"25.00",
      "status":"1"
   }
}

<heg>
   <pinset pin_set_id="7">
      <name>Florida Distribution PINs</name>
      <pin_count>100</pin_count>
      <pin_length>10</pin_length>
      <pin_default_value>10.00</pin_default_value>
      <status>1</status>
   </pinset>
</heg>

| API Simulator

Initiate a live call to the CallingCard/CreatePinSet service using the API simulator.


CallingCard/ModifyPinSet

Modify an existing PIN set.
POST https://voiceapi.cloud/API/{format}/CallingCard/ModifyPinSet
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API Key
pin_set_idThe ID of a valid PIN set. Obtained from CreatePinSet service.
nameThe name of the pin set for your reference.
statusThe status of the PIN set. Valid values are 1 (Active), 2 (Inactive).
Successful Response


{  
   "pinset":{  
      "@attributes":{  
         "pin_set_id":"7"
      },
      "name":"New Name",
      "status":"2"
   }
}

<heg>
   <pinset pin_set_id="7">
      <name>New Name</name>
      <status>2</status>
   </pinset>
</heg>

| API Simulator

Initiate a live call to the CallingCard/ModifyPinSet service using the API simulator.


CallingCard/GetPinSet

Get details and PIN numbers of a specific PIN set.
POST https://voiceapi.cloud/API/{format}/CallingCard/GetPinSet
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API Key
pin_set_idThe pin_set_id of a valid PIN set.
Successful Response


{  
   "pinset":{  
      "@attributes":{  
         "pin_set_id":"10"
      },
      "name":"New PIN Set",
      "pin_default_value":"0.00",
      "status":"1",
      "pins":{  
         "pin":[  
            {  
               "@attributes":{  
                  "pin_id":"204"
               },
               "number":"842251830386",
               "value":"0.00",
               "caller_id":{  

               }
            },
            {  
               "@attributes":{  
                  "pin_id":"198"
               },
               "number":"379294682068",
               "value":"0.00",
               "caller_id":{  

               }
            },
            {  
               "@attributes":{  
                  "pin_id":"197"
               },
               "number":"137763747109",
               "value":"0.00",
               "caller_id":{  

               }
            },
            {  
               "@attributes":{  
                  "pin_id":"179"
               },
               "number":"406168866691",
               "value":"0.00",
               "caller_id":{  

               }
            }
         ]
      }
   }
}

<heg>
   <pinset pin_set_id="10">
      <name>New PIN Set</name>
      <pin_default_value>0.00</pin_default_value>
      <status>1</status>
      <pins>
         <pin pin_id="204">
            <number>842251830386</number>
            <value>0.00</value>
            <caller_id />
         </pin>
         <pin pin_id="203">
            <number>760906459626</number>
            <value>0.00</value>
            <caller_id />
         </pin>
      </pins>
   </pinset>
</heg>

| API Simulator

Initiate a live call to the CallingCard/GetPinSet service using the API simulator.


CallingCard/GetAllPinSets

Get a full list of PIN sets on your account.
POST https://voiceapi.cloud/API/{format}/CallingCard/GetAllPinSets
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API Key
Successful Response


{  
   "pinset":[  
      {  
         "@attributes":{  
            "pin_set_id":"10"
         },
         "name":"New PIN Set",
         "pin_default_value":"0.00",
         "status":"1"
      },
      {  
         "@attributes":{  
            "pin_set_id":"8"
         },
         "name":"Pin Set One",
         "pin_default_value":"25.00",
         "status":"1"
      },
      {  
         "@attributes":{  
            "pin_set_id":"7"
         },
         "name":"New Name",
         "pin_default_value":"25.00",
         "status":"2"
      },
   ]
}

<heg>
   <pinset pin_set_id="10">
      <name>New PIN Set</name>
      <pin_default_value>0.00</pin_default_value>
      <status>1</status>
   </pinset>
   <pinset pin_set_id="8">
      <name>Pin Set One</name>
      <pin_default_value>25.00</pin_default_value>
      <status>1</status>
   </pinset>
   <pinset pin_set_id="7">
      <name>New Name</name>
      <pin_default_value>25.00</pin_default_value>
      <status>2</status>
   </pinset>
</heg>

| API Simulator

Initiate a live call to the CallingCard/GetAllPinSets service using the API simulator.


CallingCard/DeletePinSet

Delete an existing PIN set.
POST https://voiceapi.cloud/API/{format}/CallingCard/DeletePinSet
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API Key
pin_set_idThe pin_set_id of a valid PIN set.
Successful Response


{  
   "pinset":{  
      "pin_set_id":"10"
   }
}

<heg>
   <pinset>
      <pin_set_id>9</pin_set_id>
   </pinset>
</heg>

| API Simulator

Initiate a live call to the CallingCard/DeletePinSet service using the API simulator.


CallingCard/GetPin

Get the deails of specific PIN number in a specific PIN set.
POST https://voiceapi.cloud/API/{format}/CallingCard/GetPin
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API Key
pin_numberThe PIN number you wish to get details about. A list of all PIN numbers in a PIN set are available using the GetPinSet service.
pin_set_idThe ID of a valid PIN set. Should be the same PIN set where the PIN is housed.
Successful Response


{
	"pin": {
		"@attributes": {
			"pin_id": "209"
		},
		"pin_number": "5152713150",
		"pin_set": "First PIN Ser",
		"value": "15.00",
		"caller_id": {},
		"status": "1"
	}
}

<heg>
   <pin pin_id="209">
      <pin_number>5152713150</pin_number>
      <pin_set pin_set_id="11">First PIN Ser</pin_set>
      <value>15.00</value>
      <caller_id />
      <status>1</status>
   </pin>
</heg>

| API Simulator

Initiate a live call to the CallingCard/GetPin service using the API simulator.


CallingCard/ModifyPin

Modify a specific PIN number in a specific PIN set.
POST https://voiceapi.cloud/API/{format}/CallingCard/ModifyPin
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API Key
pin_numberThe PIN number you wish to modify.
pin_set_idThe ID of a valid PIN set. Should be the same PIN set where the PIN is housed.
pin_valueThe value of the calling credit available on the PIN in full dollar amount. For example, 20.00
caller_idThe caller ID linked to this PIN number.
statusThe status of the PIN. Valid values are 1 (active), 2 (inactive).
Successful Response


{  
   "pin":{  
      "@attributes":{  
         "pin_id":"218"
      },
      "pin_number":"2028171354",
      "pin_set":"First PIN Ser",
      "value":"50.00",
      "caller_id":"91446363458",
      "status":"1"
   }
}

<heg>
   <pin pin_id="226">
      <pin_number>0941640373</pin_number>
      <pin_set pin_set_id="11">First PIN Ser</pin_set>
      <value>50.00</value>
      <caller_id>2145554545</caller_id>
      <status>1</status>
   </pin>
</heg>

| API Simulator

Initiate a live call to the CallingCard/ModifyPin service using the API simulator.


CallingCard/SetRate

Set the outbound rate for a specific destination on a calling card.
POST https://voiceapi.cloud/API/{format}/CallingCard/SetRate
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API Key
calling_card_idA valid calling_card_id number.
country_codeThe country_code of the destination you wish to set the rate for.
your_priceThe price you wish to charge per minute for calls to this destination.
Successful Response


{  
   "callingcard":{  
      "@attributes":{  
         "calling_card_id":"8"
      },
      "name":"Dominican Callaround",
      "rate":{  
         "destination_id":"633",
         "country_code":"54",
         "destination_name":"ARGENTINA Fixed",
         "destination_price":"0.02717",
         "your_price":"0.25"
      }
   }
}

<heg>
   <callingcard calling_card_id="8">
      <name>Dominican Callaround</name>
      <rate>
         <destination_id>633</destination_id>
         <country_code>54</country_code>
         <destination_name>ARGENTINA Fixed</destination_name>
         <destination_price>0.02717</destination_price>
         <your_price>0.25</your_price>
      </rate>
   </callingcard>
</heg>

| API Simulator

Initiate a live call to the CallingCard/SetRate service using the API simulator.


CallingCard/GetRates

Get rates previously set for a specific destination on a calling card.
POST https://voiceapi.cloud/API/{format}/CallingCard/GetRates
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API Key
calling_card_idA valid calling_card_id number.
country_codeThe country_code of the destination you wish to get the rates for.
Successful Response


{  
   "callingcard":{  
      "@attributes":{  
         "calling_card_id":"8"
      },
      "name":"Dominican Callaround",
      "rate":{  
         "destination_id":"616",
         "country_code":"54266",
         "destination_name":"ARGENTINA Argentina - Fixed Corridor",
         "destination_price":"0.017498",
         "your_price":"0.85",
         "your_profit":"0.33"
      }
   }
}

<heg>
   <callingcard calling_card_id="8">
      <name>Dominican Callaround</name>
      <rate>
         <destination_id>616</destination_id>
         <country_code>54266</country_code>
         <destination_name>ARGENTINA Argentina - Fixed Corridor</destination_name>
         <destination_price>0.017498</destination_price>
         <your_price>0.35</your_price>
         <your_profit>0.33</your_profit>
      </rate>
      <rate>
         <destination_id>616</destination_id>
         <country_code>54266</country_code>
         <destination_name>ARGENTINA Argentina - Fixed Corridor</destination_name>
         <destination_price>0.017498</destination_price>
         <your_price>0.85</your_price>
         <your_profit>0.83</your_profit>
      </rate>
   </callingcard>
</heg>

| API Simulator

Initiate a live call to the CallingCard/GetRates service using the API simulator.

WirelessReload



WirelessReload/DetectOperator

Find the mobile provider of a customer using the mobile number.
POST https://voiceapi.cloud/API/{format}/WirelessReload/DetectOperator
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API Key
MDNThe MDN (Mobile Device Number) of the customer or subscriber.
country_codeThe country code of the subscriber. For example, US
Successful Response


{
   "operator": {
      "@operator_code": "563",
      "name": "Verizon USA"
   }
}

<heg>
   <operator operator_code="563">
      <name>Verizon USA</name>
   </operator>
</heg>

| API Simulator

Initiate a live call to the WirelessReload/DetectOperator service using the API simulator.


WirelessReload/GetOperators

Get a list of operators for a specific country.
POST https://voiceapi.cloud/API/{format}/WirelessReload/GetOperators
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API Key
country_codeA valid country code. For examle, US or MX
Successful Response


{
   "operators": {
      "country": "United States",
      "country_code": "US",
      "operator": [
         {
            "@operator_code": "548",
            "name": "T-Mobile USA",
            "logo": {
               "size1": "https://s3.amazonaws.com/rld-operator/2188e739-cd73-4faf-b4da-08e7ec41f725-size-1.png",
               "size2": "https://s3.amazonaws.com/rld-operator/2188e739-cd73-4faf-b4da-08e7ec41f725-size-2.png",
               "size3": "https://s3.amazonaws.com/rld-operator/2188e739-cd73-4faf-b4da-08e7ec41f725-size-3.png"
            },
            "amounts": {
               "mostPopular": []
            }
         },
         {
            "@operator_code": "547",
            "name": "Life Wireless PIN USA",
            "logo": {
               "size1": "https://s3.amazonaws.com/rld-operator/5bc48fa0-2783-438f-993a-c3b478973c18-size-2.png",
               "size2": "https://s3.amazonaws.com/rld-operator/5bc48fa0-2783-438f-993a-c3b478973c18-size-1.png",
               "size3": "https://s3.amazonaws.com/rld-operator/5bc48fa0-2783-438f-993a-c3b478973c18-size-3.png"
            },
            "amounts": {
               "mostPopular": "20",
               "amount": [
                  "30",
                  "20",
                  "13",
                  "10",
                  "8",
                  "5"
               ]
            }
         },
         {
            "@operator_code": "546",
            "name": "Safelink Wireless CA USA",
            "logo": {
               "size1": "https://s3.amazonaws.com/rld-operator/faa93d52-26db-4541-8f35-cd965220a824-size-3.png",
               "size2": "https://s3.amazonaws.com/rld-operator/faa93d52-26db-4541-8f35-cd965220a824-size-1.png",
               "size3": "https://s3.amazonaws.com/rld-operator/faa93d52-26db-4541-8f35-cd965220a824-size-2.png"
            },
            "amounts": {
               "mostPopular": "18",
               "amount": [
                  "33",
                  "18",
                  "10"
               ]
            }
         }
      ]
   }
}

<heg>
   <operators>
      <country>United States</country>
      <country_code>US</country_code>
      <operator operator_code="548">
         <name>T-Mobile USA</name>
         <logo>
            <size1>https://s3.amazonaws.com/rld-operator/2188e739-cd73-4faf-b4da-08e7ec41f725-size-1.png</size1>
            <size2>https://s3.amazonaws.com/rld-operator/2188e739-cd73-4faf-b4da-08e7ec41f725-size-2.png</size2>
            <size3>https://s3.amazonaws.com/rld-operator/2188e739-cd73-4faf-b4da-08e7ec41f725-size-3.png</size3>
         </logo>
         <amounts>
            <mostPopular />
         </amounts>
      </operator>
      <operator operator_code="547">
         <name>Life Wireless PIN USA</name>
         <logo>
            <size1>https://s3.amazonaws.com/rld-operator/5bc48fa0-2783-438f-993a-c3b478973c18-size-2.png</size1>
            <size2>https://s3.amazonaws.com/rld-operator/5bc48fa0-2783-438f-993a-c3b478973c18-size-1.png</size2>
            <size3>https://s3.amazonaws.com/rld-operator/5bc48fa0-2783-438f-993a-c3b478973c18-size-3.png</size3>
         </logo>
         <amounts>
            <mostPopular>20</mostPopular>
            <amount>30</amount>
            <amount>20</amount>
            <amount>13</amount>
            <amount>10</amount>
            <amount>8</amount>
            <amount>5</amount>
         </amounts>
      </operator>
      <operator operator_code="546">
         <name>Safelink Wireless CA USA</name>
         <logo>
            <size1>https://s3.amazonaws.com/rld-operator/faa93d52-26db-4541-8f35-cd965220a824-size-3.png</size1>
            <size2>https://s3.amazonaws.com/rld-operator/faa93d52-26db-4541-8f35-cd965220a824-size-1.png</size2>
            <size3>https://s3.amazonaws.com/rld-operator/faa93d52-26db-4541-8f35-cd965220a824-size-2.png</size3>
         </logo>
         <amounts>
            <mostPopular>18</mostPopular>
            <amount>33</amount>
            <amount>18</amount>
            <amount>10</amount>
         </amounts>
      </operator>
   </operators>
</heg>

| API Simulator

Initiate a live call to the WirelessReload/GetOperators service using the API simulator.


WirelessReload/GetCommissions

Get a list of commissions for a specific operator.
POST https://voiceapi.cloud/API/{format}/WirelessReload/GetCommissions
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API Key
operator_codeA valid operator code, can be obtained from the 'GetOperators' service.
Successful Response


{
   "operator": {
      "@operator_code": "554",
      "name": "ATT USA",
      "country_code": "US",
      "commission_percentage": "10.5"
   }
}

<heg>
   <operator operator_code="554">
      <name>ATT USA</name>
      <country_code>US</country_code>
      <commission_percentage>10.5</commission_percentage>
   </operator>
</heg>

| API Simulator

Initiate a live call to the WirelessReload/GetCommissions service using the API simulator.


WirelessReload/TopUp

Top up a wireless subscriber.
NOTE: Most Top Up's are automatically loaded to the wireless subscribers account. A few operators still utilize PIN numbers. If a PIN number is required to be loaded it will be returned in the pin namespace.
POST https://voiceapi.cloud/API/{format}/WirelessReload/TopUp
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API Key
MDNThe MDN (Mobile Device Number) of the customer or subscriber.
country_codeThe country code of the subscriber. For example, US or MX.
operator_codeThe operator code, can be obtained from the 'GetOperators' service.
amountThe dollar amount of the reload. For example, 5, 10, or 20.
Successful Response


{
   "topup": {
      "MDN": "4698195945",
      "amount": "10",
      "operator": {
         "@operator_code": "564",
         "name": "Good2go PIN USA",
         "country_code": "US",
         "commission_percentage": "4.2"
      },
      "pin": {
         "number": "773709732284082",
         "serial": "669115",
         "validity": "90 days"
      },
      "cost": "9.58",
      "balance": "10.42"
   }
}

<heg>
   <topup>
      <MDN>4698185944</MDN>
      <amount>10</amount>
      <operator operator_code="564">
         <name>Good2go PIN USA</name>
         <country_code>US</country_code>
         <commission_percentage>4.2</commission_percentage>
      </operator>
      <pin>
         <number>773709732284082</number>
         <serial>669115</serial>
         <validity>90 days</validity>
      </pin>
      <cost>9.58</cost>
      <balance>10.42</balance>
   </topup>
</heg>

| API Simulator

Initiate a live call to the WirelessReload/TopUp service using the API simulator.


WirelessReload/GetCountries

Get a list of countries where operators are available for the wireless reload service.
POST https://voiceapi.cloud/API/{format}/WirelessReload/GetCountries
Parameters
Variable Required Description
API_USER_IDYour API user ID
API_KEYYour API Key
Successful Response


{
    "countries": {
      "country": [
        {
          "name": "Zimbabwe",
          "country_code": "ZW",
          "flag": "https://s3.amazonaws.com/rld-flags/zw.svg",
          "currency_code": "ZWL",
          "currency_name": "Zimbabwean Dollar (2009)"
        },
        {
          "name": "Zambia",
          "country_code": "ZM",
          "flag": "https://s3.amazonaws.com/rld-flags/zm.svg",
          "currency_code": "ZMW",
          "currency_name": "ZMW"
        },
        {
          "name": "Yemen",
          "country_code": "YE",
          "flag": "https://s3.amazonaws.com/rld-flags/ye.svg",
          "currency_code": "YER",
          "currency_name": "Yemeni Rial"
        }
      ]
    }
  }

<heg>
   <countries>
      <country>
         <name>Zimbabwe</name>
         <country_code>ZW</country_code>
         <flag>https://s3.amazonaws.com/rld-flags/zw.svg</flag>
         <currency_code>ZWL</currency_code>
         <currency_name>Zimbabwean Dollar (2009)</currency_name>
      </country>
      <country>
         <name>Zambia</name>
         <country_code>ZM</country_code>
         <flag>https://s3.amazonaws.com/rld-flags/zm.svg</flag>
         <currency_code>ZMW</currency_code>
         <currency_name>ZMW</currency_name>
      </country>
      <country>
         <name>Yemen</name>
         <country_code>YE</country_code>
         <flag>https://s3.amazonaws.com/rld-flags/ye.svg</flag>
         <currency_code>YER</currency_code>
         <currency_name>Yemeni Rial</currency_name>
      </country>
   </countries>
</heg>

| API Simulator

Initiate a live call to the WirelessReload/GetCountries service using the API simulator.

-- TeleohXML™ Documentation --


XML Functions



<Speak>

Use the Speak element to have the clouds text-to-speech engine read aloud any text, including variables obtained from GetDigits. When the Speak element has finished the cloud will make a GET or POST request to the action URL if provided. The call flow will continue using the XML that is received from the action URL.
Attributes
The <Speak> element supports the following attributes that enhance its behavior, include these parameters in your XML:

Attribute Description Acceptable Values Default
actionThe call flow will redirect to this URL using your specified method when the Speak action is complete.fully qualified URLNA
methodThe method used to call the action URL.POST,GETPOST
loopHow many times the speak will loop. max 10 loops0
speak_voiceThe voice for the speak.Watson(English/US) Summer(English/US) Alix(English/US) Maria(Spanish/US) Sofia(Spanish/Latin) Kate(English/England) Isabela(Portuguese/Brazil) Emi(Japanese/Japan) Renee(French) Birgit(German) Dieter(German) Watson
Action Request Parameters
Once the <Speak> element is finished processing Teleoh™ will request the provided 'action' URL to determine how to continue the call flow. The following parameters will be sent either by POST or GET (depending on which 'method' you speciy in your XML).

Parameter Description Notes
CallUUIDThe unique identifier for the call.Can be used to manage the call in real-time with the API.
CallToThe number the call is to.Incoming: The DID number
Outgoing: The number dialed
CallFromThe number the call is from.Incoming: The number calling the DID
Outgoing: SIP username (part before the @)
CallDirectionThe direction of the call.inbound or outbound
CallTimeThe time the channel was created, usually the same time billing starts.year-month-day hour:minute:seconds In CST/CDT Time Zone.
API_USER_IDYour API user IDUseful if managing multiple accounts for clients.
Example XML


<heg>
<Response>
<Speak action="http://yoururl.com/yourscript.language" method="POST" loop="0" speak_voice="Watson">This is the text to speak.</Speak>
</Response>
</heg>

<heg>
<Response>
<Speak action="http://yoururl.com/yourscript.language" method="POST" loop="0" speak_voice="Watson">You entered {nameofGetDigitsVariable}</Speak>
</Response>
</heg>


<GetDigits>

Use the GetDigits element to collect digits from the caller and save them as a variable that can be used throughout the call flow. The GetDigits element supports the nesting of a Play or Speak element allowing you to prompt the caller for their entry.
Attributes
The <GetDigits> element supports the following attributes that enhance its behavior, include these parameters in your XML:

Attribute Description Acceptable Values Default
actionThe call flow will redirect to this URL using your specified method when the GetDigits action is complete.fully qualified URL
methodThe method used to call the action URL.POST,GETPOST
digitTimeoutAmount of time in seconds the caller has to finish the input.
numDigitsThe number of digits expected.
finishOnKeyThe key the caller can press to complete the input.
retriesIf entry is invalid retry the GetDigits element this many times.
variable_nameThe name of the variable to store the entered digits for the call. Will be submitted as a POST/GET parameter throughout the call flow.variable_name (no spaces)
invalidDigitsSoundSound to be played if the digits entered by the caller are invalid. Only works when GetDigits is nested with a Play element, otherwise "Invalid digits" is spoken by the TTS engine.fully qualified URL (mp3 or wav)
Action Request Parameters
Once the <GetDigits> element is finished processing Teleoh™ will request the provided 'action' URL to determine how to continue the call flow. The following parameters will be sent either by POST or GET (depending on which 'method' you speciy in your XML).

Parameter Description Notes
CallUUIDThe unique identifier for the call.Can be used to manage the call in real-time with the API.
CallToThe number the call is to.Incoming: The DID number
Outgoing: The number dialed
CallFromThe number the call is from.Incoming: The number calling the DID
Outgoing: SIP username (part before the @)
CallDirectionThe direction of the call.inbound or outbound
CallTimeThe time the channel was created, usually the same time billing starts.year-month-day hour:minute:seconds In CST/CDT Time Zone.
API_USER_IDYour API user IDUseful if managing multiple accounts for clients.
{GetDigitsVariableName}Contains the value of the digits the caller entered. For example, if your GetDigits "variable_name" is "account_number" then the "account_number" parameter will contain the value of the digits entered.This parameter is "sticky" and will be passed throughout the call flow.
Example XML


<heg>
   <Response>
      <GetDigits action="http://yoururl.com/yourscript.language" method="POST" digitTimeout="10" numDigits="10" finishOnKey="#" retries="1" variable_name="mobile_number">
         <Speak loop="0" speak_voice="Watson">Please enter you 10 digit mobile number.</Speak>
      </GetDigits>
   </Response>
</heg>

<heg>
   <Response>
      <GetDigits action="http://yoururl.com/yourscript.language" method="POST" digitTimeout="10" numDigits="10" finishOnKey="#" retries="1" variable_name="mobile_number">
         <Play>http://yoururl.com/sounds/prompt_for_mobile_number.wav</Play>
      </GetDigits>
   </Response>
</heg>


<Record>

The Record element is used to make a recording anywhere in your call flow. Example use cases of the Record element include user verification, voicemail messages & greetings, and more. The Play or Speak elements may be nested with the Record element. NOTE: Record is not used for recording phone calls, please refer to the Dial element.
Attributes
The <Record> element supports the following attributes that enhance its behavior, include these parameters in your XML:

Attribute Description Acceptable Values Default
actionThe call flow will redirect to this URL using your specified method when the Record action is complete.fully qualified URL
methodThe method used to call the action URL.POST,GETPOST
max_lengthThe maximum length in seconds of the recording. The cloud will submit to your action URL once the max length is reached.numeric
play_beepPlay a beep before recording begins.Y or N
finishOnKeyThe key the caller can press to end the recording.
Action Request Parameters
Once the <Record> element is finished processing Teleoh™ will request the provided 'action' URL to determine how to continue the call flow. The following parameters will be sent either by POST or GET (depending on which 'method' you speciy in your XML).

Parameter Description Notes
CallUUIDThe unique identifier for the call.Can be used to manage the call in real-time with the API.
CallToThe number the call is to.Incoming: The DID number
Outgoing: The number dialed
CallFromThe number the call is from.Incoming: The number calling the DID
Outgoing: SIP username (part before the @)
CallDirectionThe direction of the call.inbound or outbound
CallTimeThe time the channel was created, usually the same time billing starts.year-month-day hour:minute:seconds In CST/CDT Time Zone.
API_USER_IDCan be used to manage the call in real-time with the API.Useful if managing multiple accounts for clients.
RecordUrlThe URL where you can access the recording.Submitted after the recording is completed.
RecordingIDThe recording ID.
RecordingDurationThe duration of the recording.MM:SS
Example XML


<heg>
   <Response>
      <Record action="http://yoururl.com/yourscript.language" mathod="POST" finishOnKey="*" max_length="25" play_beep="Y">
         <Speak loop="0" speak_voice="Alix">Please leave a message after the beep.</Speak>
      </Record>
   </Response>
</heg>


<Play>

The Play element is used to play a sound file to the caller. Currently both MP3 and WAV (8K) are supported.
Attributes
The <Play> element supports the following attributes that enhance its behavior, include these parameters in your XML:

Attribute Description Acceptable Values Default
actionThe call flow will redirect to this URL using your specified method when the Play action is complete.fully qualified URL
methodThe method used to call the action URL.POST,GETPOST
loopHow many times the music will loop.max 10 loops0
Action Request Parameters
Once the <Play> element is finished processing Teleoh™ will request the provided 'action' URL to determine how to continue the call flow. The following parameters will be sent either by POST or GET (depending on which 'method' you speciy in your XML).

Parameter Description Notes
CallUUIDThe unique identifier for the call.Can be used to manage the call in real-time with the API.
CallToThe number the call is to.Incoming: The DID number
Outgoing: The number dialed
CallFromThe number the call is from.Incoming: The number calling the DID
Outgoing: SIP username (part before the @)
CallDirectionThe direction of the call.inbound or outbound
CallTimeThe time the channel was created, usually the same time billing starts.year-month-day hour:minute:seconds In CST/CDT Time Zone.
API_USER_IDYour API user IDUseful if managing multiple accounts for clients.
Example XML


<heg>
<Response>
<Play action="http://yoururl.com/yourscript.language" method="POST" loop="0">
http://yoururl.com/sounds/musicfile.mp3</Play>
</Response>
</heg>


<Dial>

A central component of the cloud API, the Dial element connects any call with a POTS phone (traditional phone number) or a SIP endpoint. Dial supports the calling of up to 10 phone numbers and 10 SIP endpoints at the same time. Dial multiple users/numbers and bridge the call to whoever answers first. Call confirm / call screen, background callbacks, outbound caller ID manipulation, and hold music are all features of the Dial element. The Number and User elements can be nested within the dial element.
Attributes
The <Dial> element supports the following attributes that enhance its behavior, include these parameters in your XML:

Attribute Description Acceptable Values Default
actionThe call flow will redirect to this URL using your specified method when the Dial action is complete.fully qualified URL
methodThe method used to call the action URL.POST,GETPOST
caller_nameThe caller ID name displayed on the outbound call.A-ZVoiceAPI
caller_id_numberThe caller ID number with country code. Ex: 121455512120-914692145044
hold_music_urlThe hold music that will be played while the call is ringing.To use system provided music provide one of the following keywords: classical,funk,relaxed,hiphop,smooth,techno. Alternatively, you can provide your own URL to a WAV or MP3 file.
confirm_keyThe digit to be pressed by the called party to accept the call. confirm_sound_url must be set.*,#,0-9
confirm_sound_urlThe sound file to play to the party answering the call to confirm the call. confirm_key must be set. You can now use the word 'default' to play the default confirm sound, this will automatically set the confirm_key to #. fully qualified URL WAV/MP3 or keyword 'default'
digitsMatchA list of digits that are sent to the callbackUrl when the digits pressed by the user match the digitsMatch parameter (A leg).*,#,0-9
digitsMatchBLegA list of digits that are sent to the callbackUrl when the digits pressed by the user match the digitsMatchBLeg parameter (B leg).*,#,0-9
callbackUrlURL that is notified by the cloud when the call is answered, ringing, or hung up. Also used to notify when "digits match". See the callbackUrl parameters below. fully qualified URL
recordFlag to record the call. Use Y to record the entire conversation (may not be legal in some jurisdictions).Y or NN
redirectIf set to Y the call flow will continue for Aleg when Bleg hangs up. If set to N or left empty both calls will be disconnected when either leg hangs up.Y or NN
maxDurationSet the max duration for the call in seconds, after this time has been reached the call will be disconnected. NOTE: If you set the max duration higher than the available credit in your Teleoh account the max duration will default to max based on the funds in your account.Seconds, such as 60 for one minute.
noanswer_timeoutThe amount of time in seconds to wait before redirecting A leg to the action Url. Works best when using call confirm since answering machines and voice mail count as a call answered.10-300
Action Request Parameters
Once the <Dial> element is finished processing Teleoh™ will request the provided 'action' URL to determine how to continue the call flow. The following parameters will be sent either by POST or GET (depending on which 'method' you speciy in your XML).

Parameter Description Notes
CallUUIDThe unique identifier for the call.Can be used to manage the call in real-time with the API.
CallToThe number the call is to.Incoming: The DID number
Outgoing: The number dialed
CallFromThe number the call is from.Incoming: The number calling the DID
Outgoing: SIP username (part before the @)
CallDirectionThe direction of the call.inbound or outbound
CallTimeThe time the channel was created, usually the same time billing starts.year-month-day hour:minute:seconds In CST/CDT Time Zone.
API_USER_IDYour API user IDUseful if managing multiple accounts for clients.
RecordUrlThe full URL where you can access the call recording. "record" attribute must be set to Y. IMPORTANT: Only returned when the A leg call flow continues (redirect attribute set to Y). If A leg hangs up first the recording will only be posted to the callbackUrl when the DialAction is "hangup" since no further request to the action Url will take place.
RecordingIDThe recording ID.The recording ID.
RecordingDurationThe recording duration.MM:SS
Example XML


<heg>
   <Response>
      <Dial action="http://yoururl.com/yourscript.language" method="POST" hold_music_url="relaxed" caller_id_number="14692145044" caller_name="John Doe" confirm_sound_url="http://yoururl.com/confirm_message.mp3" confirm_key="1" callbackUrl="http://yoururl.com/call_back_script.language" digitsMatch="*">
         <Number>12145551212</Number>
         <Number>12145551213</Number>
         <Number>12145551214</Number>
         <Number>12145551215</Number>
         <User>23892389378@mysipaddress.com</User>
         <User>48934843833@mysipaddress.com</User>
      </Dial>
   </Response>
</heg>

<heg>
   <Response>
      <Dial action="http://yoururl.com/yourscript.language" method="POST" hold_music_url="relaxed" caller_id_number="14692145044" caller_name="John Doe">
         <User>48934843833@mysipaddress.com</User>
      </Dial>
   </Response>
</heg>


<Wait>

Waits for a specified number of seconds while the caller hears silence. The Speak and Play elements can be nested inside the Wait element.
Attributes
The <Wait> element supports the following attributes that enhance its behavior, include these parameters in your XML:

Attribute Description Acceptable Values Default
actionThe call flow will redirect to this URL using your specified method when the Play action is complete.fully qualified URL
methodThe method used to call the action URL.POST,GETPOST
lengthThe amount of time to wait in seconds.0-9
Action Request Parameters
Once the <Wait> element is finished processing Teleoh™ will request the provided 'action' URL to determine how to continue the call flow. The following parameters will be sent either by POST or GET (depending on which 'method' you speciy in your XML).

Parameter Description Notes
CallUUIDThe unique identifier for the call.Can be used to manage the call in real-time with the API.
CallToThe number the call is to.Incoming: The DID number
Outgoing: The number dialed
CallFromThe number the call is from.Incoming: The number calling the DID
Outgoing: SIP username (part before the @)
CallDirectionThe direction of the call.inbound or outbound
CallTimeThe time the channel was created, usually the same time billing starts.year-month-day hour:minute:seconds In CST/CDT Time Zone.
API_USER_IDYour API user IDUseful if managing multiple accounts for clients.
Example XML


<heg>
   <Response>
      <Wait length="10" action="http://yoururl.com/yourscript.language">
         <Speak loop="0" speak_voice="Watson">Please hold for a moment.</Speak>
      </Wait>
   </Response>
</heg>


<Redirect>

Redirect the call to a different URL. Redirect does not support the nesting of any additional elements.
Attributes
The <Redirect> element supports the following attributes that enhance its behavior, include these parameters in your XML:

Attribute Description Acceptable Values Default
actionThe call flow will redirect to this URL using your specified method when the Redirect action is complete.fully qualified URL
methodThe method used to call the action URL.POST,GETPOST
Action Request Parameters
Once the <Redirect> element is finished processing Teleoh™ will request the provided 'action' URL to determine how to continue the call flow. The following parameters will be sent either by POST or GET (depending on which 'method' you speciy in your XML).

Parameter Description Notes
CallUUIDThe unique identifier for the call.Can be used to manage the call in real-time with the API.
CallToThe number the call is to.Incoming: The DID number
Outgoing: The number dialed
CallFromThe number the call is from.Incoming: The number calling the DID
Outgoing: SIP username (part before the @)
CallDirectionThe direction of the call.inbound or outbound
CallTimeThe time the channel was created, usually the same time billing starts.year-month-day hour:minute:seconds In CST/CDT Time Zone.
API_USER_IDYour API user IDUseful if managing multiple accounts for clients.
Example XML


<heg>
   <Response>
      <Redirect action="http://yoururl.com/new_script.language" method="POST" />
   </Response>
</heg>


<Hangup>

Disconnect the call. Supports the nesting of Speak and Play elements.
Attributes
The <Hangup> element supports the following attributes that enhance its behavior, include these parameters in your XML:

Attribute Description Acceptable Values Default
Action Request Parameters
Once the <Hangup> element is finished processing Teleoh™ will request the provided 'action' URL to determine how to continue the call flow. The following parameters will be sent either by POST or GET (depending on which 'method' you speciy in your XML).

Parameter Description Notes
Example XML


<heg>
   <Response>
      <Hangup />
      <Speak loop="0" speak_voice="Summer">Thank you for calling. Goodbye!</Speak>
   </Response>
</heg>

<heg>
   <Response>
      <Hangup />
      <Play>http://yoururl.com/sounds/music_file.mp3</Play>
   </Response>
</heg>


<Conference>

The Conference element allows you to start or enter a pre-existing conference. Teleoh cloud conferences offer the ability to set a moderator and user PIN to keep your conference rooms secure. You can set the name of your conference room to a value of your choosing. While other Teleoh API users may have conference rooms with the same name, conferences are linked to your account which means that two accounts with same room name will be dialing into different conferences.
Attributes
The <Conference> element supports the following attributes that enhance its behavior, include these parameters in your XML:

Attribute Description Acceptable Values Default
actionThe call flow will redirect to this URL using your specified method when the Conference action is complete.fully qualified URL
methodThe method used to call the action URL.POST,GETPOST
maxMembersThe max number of callers allowed in the conference.0-9, up to 50
hangupOnStarOption to end the call and leave conference when * is pressed.Y or NN
recordOption to record the entire conference.Y or NN
user_pinOption to require users joining the conference to enter a PIN number.0-9
mod_pinOption to require the conference moderator of the conference to enter a PIN number.0-9
enterSoundSound to play upon entry to the conference.fully qualified URL of a WAV or MP3 sound file
exitSoundSound to play upon exiting the conference.fully qualified URL of a WAV or MP3 sound file
waitSoundMusic that will be played to the first caller in the conference while waiting on other members to join.To use system provided music provide one of the following keywords: classical,funk,relaxed,hiphop,smooth,techno. Alternatively, you can provide your own URL to a WAV or MP3 file.
Action Request Parameters
Once the <Conference> element is finished processing Teleoh™ will request the provided 'action' URL to determine how to continue the call flow. The following parameters will be sent either by POST or GET (depending on which 'method' you speciy in your XML).

Parameter Description Notes
CallUUIDThe unique identifier for the call.Can be used to manage the call in real-time with the API.
CallToThe number the call is to.Incoming: The DID number
Outgoing: The number dialed
CallFromThe number the call is from.Incoming: The number calling the DID
Outgoing: SIP username (part before the @)
CallDirectionThe direction of the call.inbound or outbound
CallTimeThe time the channel was created, usually the same time billing starts.year-month-day hour:minute:seconds In CST/CDT Time Zone.
API_USER_IDYour API user IDUseful if managing multiple accounts for clients.
Example XML


<heg>
   <Response>
      <Conference action="http://yoururl.com/yourscript.language?from=conference" method="POST" user_pin="1234" mod_pin="4321" maxMembers="10" record="N" hangupOnStar="Y" enterSound="http://yoururl.com/sounds/enter.mp3" exitSound="http://yoururl.com/sounds/exit.mp3" waitSound="techno">My First Conference Room</Conference>
   </Response>
</heg>

<heg>
   <Response>
      <Conference action="http://yoururl.com/yourscript.language" method="POST" max_members="2" waitSound="smooth">Holding Room</Conference>
   </Response>
</heg>


<Message>

Use the Message method to send a SMS or MMS message during the call flow. Messages can only be sent 'from' a phone number purchased in your account. When sending MMS, the size of all images or video for a message should not exceed 1.5MB.
Attributes
The <Message> element supports the following attributes that enhance its behavior, include these parameters in your XML:

Attribute Description Acceptable Values Default
actionThe call flow will redirect to this URL using your specified method when the Message action is complete.fully qualified URLNA
methodThe method used to call the action URL.POST,GETPOST
toThe phone number to send the message to. Should include country code and the 10 digit number.Ten digit phone number to send the message 'to' with country code. Ex. 19721112222NA
fromThe phone number to send the message from. Must be a DID number purchased in your Teleoh account.Ten digit phone number to send the message 'from' with country code. Ex. 19721112222NA
text_messageThe text of your message. Must be 2048 characters or less.TextNA
media_urlFor MMS messages only. The media (usually a image) you'd like to send. Should be a fully qualified domain name. Example: http://yoursite.com/yourimage.jpgfully qualified URLNA
callbackUrlURL that is notified via POST by Teleoh when the status of the SMS message changes.

Fields: message_id = The ID of the message MessageAction = either 'delivered' or 'error' result = A description of the message status, such as "Message not delivered to carrier".
fully qualified URLNA
Action Request Parameters
Once the <Message> element is finished processing Teleoh™ will request the provided 'action' URL to determine how to continue the call flow. The following parameters will be sent either by POST or GET (depending on which 'method' you speciy in your XML).

Parameter Description Notes
CallUUIDThe unique identifier for the call.Can be used to manage the call in real-time with the API.
CallToThe number the call is to.Incoming: The DID number Outgoing: The number dialed
CallFromThe number the call is from. Incoming: The number calling the DID Outgoing: SIP username (part before the @)
CallDirectionThe direction of the call.inbound or outbound
CallTimeThe time the channel was created, usually the same time billing starts.year-month-day hour:minute:seconds In CST/CDT Time Zone.
API_USER_IDYour API user IDUseful if managing multiple accounts for clients.
Example XML


<heg>
   <Response>
      <Message action="http://myurl.com/" method="POST" to="12145551212" from="19723620000">
Your verification code is 5899-4457
      </Message>
   </Response>
</heg>

<heg>
   <Response>
      <Message action="http://myurl.com/" method="POST" to="12145551212" from="19723620000" media_url="http://myurl.com/pics/meme.jpg" callbackUrl="http://myurl.com/sms_callback.php">MMS</Message>
   </Response>
</heg>


<SetVariable>

Set a variable that is present throughout the call flow and passed with each action request. 'SetVariable' allows you to set a variable without using 'GetDigits' or overwrite a variable previously set using 'GetDigits'.
Attributes
The <SetVariable> element supports the following attributes that enhance its behavior, include these parameters in your XML:

Attribute Description Acceptable Values Default
actionThe call flow will redirect to this URL using your specified method when the SetVariable action is complete.fully qualified URLNA
methodThe method used to call the action URL.POST,GETPOST
variable_nameThe name of the variable to store the value for the call. Will be submitted as a POST/GET parameter throughout the call flow.variable_name (no spaces)NA
variable_valueThe value of the variable.The value of the variable, any valid text is accepted.NA
Action Request Parameters
Once the <SetVariable> element is finished processing Teleoh™ will request the provided 'action' URL to determine how to continue the call flow. The following parameters will be sent either by POST or GET (depending on which 'method' you speciy in your XML).

Parameter Description Notes
CallUUIDThe unique identified for the call.Can be used to manage the call in real-time with the API.
CallToThe number the call is to.Incoming: The DID number Outgoing: The number dialed
CallFromThe number the call is from.Incoming: The number calling the DID Outgoing: SIP username (part before the @)
CallDirectionThe direction of the call.inbound or outbound
CallTimeThe time the channel was created, usually the same time billing starts.year-month-day hour:minute:seconds In CST/CDT Time Zone.
API_USER_IDYour API user IDUseful if managing multiple accounts for clients.
{VariableName}Contains the value of the variable.This parameter is "sticky" and will be passed throughout the call flow to the action url.
Example XML


<heg>
   <Response>
      <SetVariable action="http://myurl.com/" method="POST" variable_name="your_variable_name" variable_value="Your variable value here."/>
   </Response>
</heg>