Quantcast
Channel: Telestax Docs Online
Viewing all articles
Browse latest Browse all 94

Restcomm API – Applications

$
0
0

Applications 

An Application instance resource represents a RCML set of instructions used by a RestComm interpreter to process an on-going call, SMS or USSD.

RestComm stores only part of the metadata for this Application, which contains as one of its attributes the URL with the address of the application server where the RCML can be retrieved.

Currently there are 3 types of Applications that are supported: Voice, SMS and USSD. Each type of Application will be used by its specific interpreter.

Considering the access control executed by multi-tenancy, each Application can be created, read, updated or deleted by its owner solely. Any attempt of access to an Application using an account different than its owner will be denied.

Applications Resource URI

2012-04-24/Accounts/{AccountSid}/Applications/{ApplicationSid}

Resource Properties

PROPERTY DESCRIPTION
Sid A string that uniquely identifies this Application.
DateCreated The date when this Application was created.
DateUpdated The date wher this Application was last updated.
FriendlyName A friendly name for this Application.
AccountSid The unique ID of the Account that owns this Application.
ApiVersion Version of the API applied to this Application.
HasVoiceCallerIdLookup Look up the caller’s caller-ID name from the CNAM database. Either true or false.
Uri The URI for this Application, relative to http://localhost:port/restcomm.
RcmlUrl The HTTP address that RestComm will use to get the RCML of this Application.
Kind The kind of this Application. (Supported values: voice, sms or ussd)

Supported Operations

HTTP GET

Returns the representation of an Application resource, including the properties described on the table “Resource Properties”.

HTTP POST and PUT  

Modifies an Application resource and returns the representation, including the properties described on the table “Resource Properties”. The table below describes a list of optional parameters.

Request Parameters

You may specify one or more of the following parameters to update this Application’s respective properties:

PROPERTY DESCRIPTION
FriendlyName A friendly name for this Application.
VoiceCallerIdLookup Look up the caller’s caller-ID name from the CNAM database. Either true or false.
RcmlUrl The HTTP address that RestComm will use to get the RCML of this Application.
Kind The kind of this Application. (Supported values: voice, sms or ussd)

HTTP DELETE

Remove the Application from RestComm’s database. This Application will not be displayed anymore at the list of available applications while using AdminUI, consequently, not possible to be assigned to a RestComm Number or Client.

If successful, returns an HTTP 204 response with no body.

Applications List Resource URI

2012-04-24/Accounts/{AccountSid}/Applications

Supported Operations

HTTP GET

Returns a list of Applications resource representations, each representing a application given to your account.

List Filters

Given the rules of multi-tenancy, the list of applications is automatically filtered using the informed account to authenticate, returning all the applications owned by this account. No additional filters are currently supported.

HTTP POST

Create a new Application resource with the information provided by the required and optional parameters described by the tables below.

Required Parameters

Your request must include exactly the following parameters:

PROPERTY DESCRIPTION
FriendlyName A friendly name for this Application.

Optional Parameters

Your request may include the following parameters:

PROPERTY DESCRIPTION
ApiVersion Version of the API applied to this Application.
HasVoiceCallerIdLookup Look up the caller’s caller-ID name from the CNAM database. Either true or false.
RcmlUrl The HTTP address that RestComm will use to get the RCML of this Application.
Kind The kind of this Application. (Supported values: voice, sms or ussd)

HTTP PUT

Not supported.

HTTP DELETE

Not supported.

Create an Application

curl -X POST http://ACae6e420f425248d6a26948c17a9e2acf:f8b593f84593130c39700c11ee996c0e@127.0.0.1:8080/restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Applications -d "FriendlyName=Application FooBar" -d "ApiVersion=2012-04-24" -d "HasVoiceCallerIdLookup=false" -d "RcmlUrl=http://127.0.0.1:8080/restcomm-rvd/services/apps/foobar/controller" -d "Kind=voice"

The output of the command will be similar to the one below

<RestcommResponse>
  <Application>
    <Sid>APdc46145309d14e97b62230cd3f269ed4</Sid>
    <DateCreated>Wed, 27 Jan 2016 11:23:54 -0200</DateCreated>
    <DateUpdated>Wed, 27 Jan 2016 11:23:54 -0200</DateUpdated>
    <FriendlyName>Application FooBar</FriendlyName>
    <AccountSid>ACae6e420f425248d6a26948c17a9e2acf</AccountSid>
    <ApiVersion>2012-04-24</ApiVersion>
    <VoiceCallerIdLookup>false</VoiceCallerIdLookup>
    <Uri>/restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Applications/APdc46145309d14e97b62230cd3f269ed4</Uri>
    <RcmlUrl>http://127.0.0.1:8080/restcomm-rvd/services/apps/foobar/controller</RcmlUrl>
    <Kind>voice</Kind>
  </Application>
</RestcommResponse>

Update a Application

curl -X POST http://ACae6e420f425248d6a26948c17a9e2acf:f8b593f84593130c39700c11ee996c0e@127.0.0.1:8080/restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Applications/APdc46145309d14e97b62230cd3f269ed4 -d "FriendlyName=Application X"

The output of the command will be similar to the one below

<RestcommResponse>
  <Application>
    <Sid>APdc46145309d14e97b62230cd3f269ed4</Sid>
    <DateCreated>Wed, 27 Jan 2016 11:23:54 -0200</DateCreated>
    <DateUpdated>Wed, 27 Jan 2016 12:50:18 -0200</DateUpdated>
    <FriendlyName>Application X</FriendlyName>
    <AccountSid>ACae6e420f425248d6a26948c17a9e2acf</AccountSid>
    <ApiVersion>2012-04-24</ApiVersion>
    <VoiceCallerIdLookup>false</VoiceCallerIdLookup>
    <Uri>/restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Applications/APdc46145309d14e97b62230cd3f269ed4</Uri>
    <RcmlUrl>http://127.0.0.1:8080/restcomm-rvd/services/apps/foobar/controller</RcmlUrl>
    <Kind>voice</Kind>
  </Application>
</RestcommResponse>

Delete a Application

curl -X DELETE http://ACae6e420f425248d6a26948c17a9e2acf:f8b593f84593130c39700c11ee996c0e@127.0.0.1:8080/restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Applications/APdc46145309d14e97b62230cd3f269ed4

No output for DELETE operation.

Get a List of available Applications

curl -X GET http://ACae6e420f425248d6a26948c17a9e2acf:f8b593f84593130c39700c11ee996c0e@127.0.0.1:8080/restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Applications.json

The output of the command will be similar to the one below

[
  {
    "sid": "AP73926e7113fa4d95981aa96b76eca854",
    "date_created": "Wed, 23 Sep 2015 06:56:04 -0300",
    "date_updated": "Wed, 23 Sep 2015 06:56:04 -0300",
    "friendly_name": "rvdCollectVerbDemo",
    "account_sid": "ACae6e420f425248d6a26948c17a9e2acf",
    "api_version": "2012-04-24",
    "voice_caller_id_lookup": false,
    "uri": "/restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Applications/AP73926e7113fa4d95981aa96b76eca854.json",
    "rcml_url": "/restcomm-rvd/services/apps/PR7addb947898443329cf50913103f77a2/controller",
    "kind": "voice"
  },
  {
    "sid": "AP81cf45088cba4abcac1261385916d582",
    "date_created": "Wed, 23 Sep 2015 06:56:17 -0300",
    "date_updated": "Wed, 23 Sep 2015 06:56:17 -0300",
    "friendly_name": "rvdESDemo",
    "account_sid": "ACae6e420f425248d6a26948c17a9e2acf",
    "api_version": "2012-04-24",
    "voice_caller_id_lookup": false,
    "uri": "/restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Applications/AP81cf45088cba4abcac1261385916d582.json",
    "rcml_url": "/restcomm-rvd/services/apps/PR2cbed2a2a56947cdbeaa8b0af8a6c02d/controller",
    "kind": "voice"
  }
 ]

 

The post Restcomm API – Applications appeared first on Telestax Docs Online.


Viewing all articles
Browse latest Browse all 94

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>