right  Talk To Us!

Cloud Web Services Outbound Service Queues

Managing Outbound Service Queues

This API provides the ability to manage the outbound service queues.

For info on starting outbound services see Starting Outbound Services.

  • Outbound Queues

    This retrieves info on all your active outbound service queues.

    Authorisation

    This API uses basic authentication, using your cloud account username and API Access Key.

    Username : cloudID/username (e.g. 1-2-0/bob@example.com)
    Password : API Access key

    Request:

    Url : https://ws.aculabcloud.net/service/v1/outbound_queues
    Methods : GET

    Response:

    A list of JSON objects each containing the following parameters:

    ParameterValueDescription
    service_namestringThe name of the service.
    lengthintegerThe length of the service's queue.

    Example:

    https://ws.aculabcloud.net/service/v1/outbound_queues

    Response:

        [  
    	   {
              "service_name": "service-name-1",
              "length": 78
           },
           {
              "service_name": "service-name-2",
              "length": 112
           }
    	]
  • Single Queue

    Gets queue information for a single outbound service or purges its queue of all outstanding service start requests.

    Method URL Description
    GET https://ws.aculabcloud.net/service/v1/outbound/<ServiceName>/queue Get current queue information
    DELETE https://ws.aculabcloud.net/service/v1/outbound/<ServiceName>/queue Purge all queued service starts

    Authorisation

    This API can be accesses using either the standard web service username & password used for services, or the service start password specific to the service.

    Using the standard web service username & password:

    Username : cloudID/username/outbound_service_name (e.g. 1-2-0/This email address is being protected from spambots. You need JavaScript enabled to view it./MyOutboundService)
    Password : outbound service password

    Or if using the service start password:

    Username : cloudID/username (e.g. 1-2-0/This email address is being protected from spambots. You need JavaScript enabled to view it.)
    Password : API Access Key

    • Gets the current length of the queue associated with the service.

      Request:

      Url : https://ws.aculabcloud.net/service/v1/outbound/<ServiceName>/queue
      Methods : GET

      Response:

      A JSON object containing the following parameters:

      ParameterValueDescription
      service_namestringThe name of the service.
      lengthintegerThe length of the service's queue.

      Example:

      https://ws.aculabcloud.net/service/v1/outbound/example-service/queue

      Response:

        {
          "service_name": "example-service",
          "length": 112
        }
    • Purges the current queue associated with the service. This is equivalent to calling service_cancel for each entry in the queue.

      Request:

      Url : https://ws.aculabcloud.net/service/v1/outbound/<ServiceName>/queue
      Methods : DELETE

      Response:

      A JSON object containing the following parameters:

      ParameterValueDescription
      service_namestringThe name of the service.
      cancelledintegerThe number of queued service_starts that have been cancelled.
      service_refsarray of stringsThe services references of each service that has been cancelled. A service reference is returned by service_start.

      Example:

      https://ws.aculabcloud.net/service/v1/outbound/example-service/queue

      Response:

        {
          "service_name": "example-service",
          "cancelled": 12,
      	"service_refs": [
      		"34100b7a_1.1666875127.13791",
      		"34100b7a_1.1666875127.13792",
      		"34100b7a_1.1666875127.13793",
      		"34100b7a_1.1666875127.13794",
      		"34100b7a_1.1666875127.13795",
      		"34100b7a_1.1666875127.13796",
      		"34100b7a_1.1666875127.13797",
      		"34100b7a_1.1666875127.13798",
      		"34100b7a_1.1666875127.13799",
      		"34100b7a_1.1666875127.13800",
      		"34100b7a_1.1666875127.13801",
      		"34100b7a_1.1666875127.13802"
      	]
        }

Cloud Web Services Inbound Services Management

Managing Inbound Services

This section covers the web services for listing, reading, writing, modifying and deleting inbound services.

In the past, the only mechanism for managing inbound services was to use the online Cloud Console. These web services provide an alternative mechanism, giving the same level of functionality without any manual interaction with the Cloud Console. What's more, the two mechanisms are interchangeable: Inbound services originally created & edited using the Cloud Console can be modified & deleted using the web services, and vice versa.

The inbound web services are accessed using the following URL paths:

MethodURLDescription
GEThttps://ws.aculabcloud.net/service/v1/inboundList the services
GEThttps://ws.aculabcloud.net/service/v1/schema/inboundGet the service schema
GEThttps://ws.aculabcloud.net/service/v1/inbound/<ServiceName>Read a service
PUThttps://ws.aculabcloud.net/service/v1/inbound/<ServiceName>Write (Create or replace) a service
PATCHhttps://ws.aculabcloud.net/service/v1/inbound/<ServiceName>Modify a service
DELETEhttps://ws.aculabcloud.net/service/v1/inbound/<ServiceName>Delete a service
  The URL paths for the Read, Write, Modify and Delete web services are the same and it is the HTTP request method that differentiates between them.

To express what configuration options are set when using the Write or Modify web service, a fully complete or partially complete configuration can be supplied within the body of the HTTP request. When calling the Write web service and supplying a partially complete configuration, default values will be assumed for those options that are omitted. When calling the Modify web service and supplying a partially complete configuration, existing values will be assumed for those options are that omitted (The new configuration is effectively merged into the existing configuration).

  For inbound services, it is possible to call the Write web service without supplying a configuration at all. This will result in a configuration being written with all of its options set to default values.

Using the Get Schema web service, you can retrieve a copy of the inbound service configuration schema. This schema is used by the Cloud Server when it processes configurations received in web service requests. Should the Cloud Server encounter validation errors, the request will fail and all errors will be listed in an HTTP request error response. The schema can also be used locally, to ensure a tailor-made configuration validates before sending it in a web service request. Whilst it is not essential to do this, it can help gain a better understanding of the schema internals and save on the amount of requests sent to the same web service before your configuration is accepted.

  For more information about JSON schemas, visit The home of JSON Schema. See the implementations section for a list of all language specific validators, as well as some online validators. All the online validators are quite similar and simple to use (Paste the schema into one text box, paste a configuration into another text box and click a button to validate).

Response content

All web services in this API return response content of type "application/json".

 This is a low level API. For information on higher level APIs see the Web Services Language Wrappers
  • List

    This lists the names of all inbound services.

    You need to supply your account username and API access key in the basic authorisation string.

    URL : https://ws.aculabcloud.net/service/v1/inbound
    Methods : GET
    Username : cloudID/username (e.g. 1-2-0/bob@example.com)
    Password:Your API Access Key

    Returns on success:

    A JSON object within the body of a 200 response. The object contains the following parameter:

    ParameterValueDescription
    servicesarrayAn array of service description objects.

    Where each service description object contains the following parameters:

    ParameterValueDescription
    namestringThe name of the service.
    targetstringA UAS application or a REST API page that the service targets.
    descriptionstringA description of the service.

    Example:

    (GET) https://ws-1-2-0.aculabcloud.net/service/v1/inbound

    Response:

    {
        "services" : [
                {
                    "name" : "MyVoicemailService",
                    "target" : "http://11.222.33.44:50080/my_voicemail_first_page",
                    "description" : "This is the configuration for MyVoicemailService"
                },
                {
                    "name" : "MyOtherInboundService",
                    "target" : "http://11.222.33.44:50080/OtherInboundService",
                    "description" : "Another great inbound service"
                },
                ...
            ]
    }
  • Get Schema

    This retrieves the inbound service configuration schema. Tailor-made configurations can be validated against this schema, before including them into a Write or Modify web service request. The same schema is also used by the Cloud Server when it is processing configurations received in Write or Modify web service requests.

    The schema describes all possible configuration options and constraints of the value that each option can be set to. For instance, the expected value type (integer or string), the maximum length (if string), the number range (if integer) etc... The schema also describes relationships that certain options have with each other, where the allowed value of one option is effected by the value of another option.

    Your account settings influence the allowed values of certain configuration options. Also, over time Aculab may decide to add new options or change the constraints of an existing option. For this reason, it is best practice to always validate against a recently retrieved schema.

    You need to supply your account username and API access key in the basic authorisation string.

    URL : https://ws.aculabcloud.net/service/v1/schema/inbound
    Methods : GET
    Username : cloudID/username (e.g. 1-2-0/bob@example.com)
    Password:Your API Access Key

    Returns on success:

    A JSON object within the body of a 200 response. The JSON object is the inbound service configuration schema.

    Example:

    (GET) https://ws-1-2-0.aculabcloud.net/service/v1/schema/inbound

    Response:

    {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "Aculab Cloud Inbound Service Configuration Schema",
        "description": "This schema is used to validate an inbound service configuration before it is sent to the Cloud Server in the body of a 'Write' or 'Modify' web service request.",
        "type": "object",
        "properties": {
            "enabled": {...},
            "description": {...},
            "extra_channels": {...},
            "g729": {...},
            "maintenance_message": {...},
            "outbound_call_constraints": {...},
            "application_type": {...},
            "uas": {...},
            "rest": {...},
            "messages": {...},
            "fax": {...}
        },
        "definitions": {...},
        "allOf": [...],
        "additionalProperties": false
    }

  • Read

    This retrieves an existing inbound service configuration. The retrieved configuration will contain every configuration option and its setting.

    You need to supply your account username and API access key in the basic authorisation string.

    URL : https://ws.aculabcloud.net/service/v1/inbound/<ServiceName>
    Methods : GET
    Username : cloudID/username (e.g. 1-2-0/bob@example.com)
    Password:Your API Access Key

    Returns on success:

    A JSON object within the body of a 200 response. The JSON object is the inbound service configuration.

    Example:

    (GET) https://ws-1-2-0.aculabcloud.net/service/v1/inbound/MyVoicemailService

    Response:

    {
        "enabled": true,
        "description": "This is configuration for MyVoicemailService",
        "extra_channels": 0,
        "g729": false,
        "maintenance_message": {...},
        "outbound_call_constraints": {...},
        "application_type": "REST",
        "uas": {...},
        "rest": {
            "first_page": {
                "address": "http://11.222.33.44:50080/my_voicemail_first_page",
                "method": "POST"
            },
            "final_page": {
                "address": "http://11.222.33.44:50080/my_voicemail_final_page",
                "method": "POST"
            },
            "error_page": {
                "address": "http://11.222.33.44:50080/my_voicemail_error_page",
                "method": "POST"
            },
            "api_version": "2.0",
            "application_parameters": null,
            "tts_voice": "English UK Female Polly Amy",
            "authentication": {...},
            "call_recording": {...},
            "max_call_duration": 240,
            "early_media": false,
            "ring_time": 2
        },
        "messages": {...},
        "fax": {...}
    }

    If unsuccessful, you will receive an HTTP error response containing a JSON object. For example:

    {
        'error': {
            'code': 'HTTP 404',
            'text': 'The service name does not exist',
            'datetime': '2022-07-22_14:50:47',
            'link': 'https://www.aculab.com/cloud/web-services/services/inbound/management?target=service_action_tabs&tab-id=read'
        },
        'request': {
            'datetime': '2022-07-22_14:50:47',
            'url': '/service/v1/inbound/MyVoicemailService'
        }
    }
  • Write

    This writes an inbound service with the name as supplied in the URL and (Optionally) a configuration supplied within the body of the request. If the name does not exist in the list of inbound services, then a new service is created with the supplied configuration. If the name does exist in the list of inbound services, then the configuration of the existing service is replaced by the supplied configuration.

    If a configuration is supplied, any option that is omitted from the configuration will be set to its default value. If a configuration is not supplied, then a service will be created with all options set to their default values.

    If you are supplying a configuration, ensure the request's Content-Type header is set to 'application/json'. If you are not supplying a configuration, then ensure the request's Content-Length header is set to '0'.

    You need to supply your account username and API access key in the basic authorisation string.

    URL : https://ws.aculabcloud.net/service/v1/inbound/<ServiceName>
    Methods : PUT
    Username : cloudID/username (e.g. 1-2-0/bob@example.com)
    Password:Your API Access Key

    Returns on success:

    A JSON object within the body of either a 201 response (If the service was created) or a 200 response (If the service was replaced). The JSON object is the newly written inbound service configuration.


    Example 1 - Create a new service without supplying a configuration:

    In this example, assume 'MyFirstInboundService' does not already exist:

    (PUT) https://ws-1-2-0.aculabcloud.net/service/v1/inbound/MyFirstInboundService

    Response:

    You will receive a JSON object in the body of a 201 response. The JSON object is the configuration for the newly created 'MyFirstInboundService'. As the request body did not contain a configuration, all the options will have been set to their default values:

    {
        "enabled": true,
        "description": null,
        "extra_channels": 0,
        "g729": false,
        "maintenance_message": {...},
        "outbound_call_constraints": {...},
        "application_type": "UAS",
        "uas": {
            "application_name": null,
            "application_parameters": null,
            "fallback_message": {...}
        },
        "rest": {
            "first_page": {
                "address": null,
                "method": "POST"
            },
            "final_page": {
                "address": null,
                "method": "POST"
            },
            "error_page": {
                "address": null,
                "method": "POST"
            },
            "api_version": "2.0",
            "application_parameters": null,
            "tts_voice": "English UK Female Polly Amy",
            "authentication": {...},
            "call_recording": {...},
            "max_call_duration": 240,
            "early_media": false,
            "ring_time": 2
        },
        "messages": {...},
        "fax": {...}
    }

    Example 2 - Create a new service:

    In this example, assume 'MySecoundInboundService' does not already exist:

    (PUT) https://ws-1-2-0.aculabcloud.net/service/v1/inbound/MySecondInboundService
    
    With the following JSON in the body of the request:
    {
        "description"      : "This is my inbound REST service",
        "application_type" : "REST",
        "rest" : {
            "first_page" : {
                "address" : "http://11.222.33.44:50080/my_first_page"
            },
            "final_page" : {
                "address" : "http://11.222.33.44:50080/my_final_page"
            }
        }
    }
    

    Response:

    You will receive a JSON object in the body of a 201 response. The JSON object is configuration for the newly created 'MySecondInboundService'. The options that were not set in the supplied configuration will be set to their default values:

    {
        "enabled": true,
        "description": "This is my inbound REST service",
        "extra_channels": 0,
        "g729": false,
        "maintenance_message": {...},
        "outbound_call_constraints": {...},
        "application_type": "REST",
        "uas": {...},
        "rest": {
            "first_page": {
                "address": "http://11.222.33.44:50080/my_first_page",
                "method": "POST"
            },
            "final_page": {
                "address": "http://11.222.33.44:50080/my_final_page",
                "method": "POST"
            },
            "error_page": {
                "address": null,
                "method": "POST"
            },
            "api_version": "2.0",
            "application_parameters": null,
            "tts_voice": "English UK Female Polly Amy",
            "authentication": {...},
            "call_recording": {...},
            "max_call_duration": 240,
            "early_media": false,
            "ring_time": 2
        },
        "messages": {...},
        "fax": {...}
    }

    Example 3 - Replace the configuration of an existing service:

    In this example, assume 'MySecondInboundService' already exists and configured as shown above (In the response of the previous example):

    (PUT) https://ws-1-2-0.aculabcloud.net/service/v1/inbound/MySecondInboundService
    
    With the following JSON in the body of the request:
    {
        "application_type" : "REST",
        "rest" : {
            "first_page" : {
                "address" : "http://11.222.33.44:50080/my_first_page"
            },
            "error_page" : {
                "address" : "http://11.222.33.44:50080/my_error_page"
            }
        }
    }
    

    Response:

    You will receive a JSON object in the body of a 200 response. The JSON object contains the new configuration for the existing 'MySecondInboundService'. The options that were not set in the supplied configuration will be set to their default values:

    {
        "enabled": true,
        "description": null,
        "extra_channels": 0,
        "g729": false,
        "maintenance_message": {...},
        "outbound_call_constraints": {...},
        "application_type": "REST",
        "uas": {...},
        "rest": {
            "first_page": {
                "address": "http://11.222.33.44:50080/my_first_page",
                "method": "POST"
            },
            "final_page": {
                "address": null,
                "method": "POST"
            },
            "error_page": {
                "address": "http://11.222.33.44:50080/my_error_page",
                "method": "POST"
            },
            "api_version": "2.0",
            "application_parameters": null,
            "tts_voice": "English UK Female Polly Amy",
            "authentication": {...},
            "call_recording": {...},
            "max_call_duration": 240,
            "early_media": false,
            "ring_time": 2
        },
        "messages": {...},
        "fax": {...}
    }

    Example 4 - Failure to write a service due to configuration mistakes:

    (PUT) https://ws-1-2-0.aculabcloud.net/service/v1/inbound/MyExampleInboundService
    
    With the following JSON in the body of the request:
    {
        "description"      : "This is my inbound REST service",
        "application_type" : "ROAST",
        "rest" : {
            "first_page" : {
                "address" : "hello"
            },
            "final_page" : {
                "address" : "http://11.222.33.44:50080/my_final_page"
            }
        }
    }
    

    Response:

    {
        "error": {
            "code": "HTTP 400",
            "text": "Failed to validate configuration, see details for more information.",
            "details": [
                "application_type 'ROAST' is not one of ['UAS', 'REST'].", 
                "rest.first_page.address 'hello' must be prefixed with http:// or https:// and must not contain any of the following characters: caret, backslash, quotation mark, apostrophe or angled brackets.",
                "rest.first_page.address 'hello' is too short."
            ], 
            "datetime": "2022-07-22_14:05:58",
            "link": "https://www.aculab.com/cloud/web-services/services/inbound/management?target=service_action_tabs&tab-id=write"
        },
        "request": {
            "datetime": "2022-07-22_14:05:58",
            "url": "/service/v1/inbound/MyExampleInboundService"
        }
    }
    
  • Modify

    This modifies the configuration of an existing inbound service. The name of the service is supplied in the URL. The configuration containing the modified options is supplied within the body of the request, with the Content-Type header set to 'application/json'.

    It is not necessary to specify all possible service options in the configuration (You only need to specify the options you want to modify).

    When processing a Modify web service request, the Cloud Server iterates through each option in the existing configuration (The configuration that is returned after calling the Read web service). If the same option exists in the supplied configuration, then the value supplied replaces the existing value. The merged configuration is then validated by the inbound service schema before finally becoming the active.

    You need to supply your account username and API access key in the basic authorisation string.

    URL : https://ws.aculabcloud.net/service/v1/inbound/<ServiceName>
    Methods : PATCH
    Username : cloudID/username (e.g. 1-2-0/bob@example.com)
    Password:Your API Access Key

    Returns on success:

    A JSON object within the body of 200 response. The JSON object is the modified inbound service configuration.


    Example:

    Assume that an inbound service called 'MyRESTInboundService' exists that has the following configuration:

    {
        "enabled": true,
        "description": "This is my inbound REST service",
        "extra_channels": 0,
        "g729": false,
        "maintenance_message": {...},
        "outbound_call_constraints": {...},
        "application_type": "REST",
        "uas": {...},
        "rest": {
            "first_page": {
                "address": "http://11.222.33.44:50080/my_first_page",
                "method": "POST"
            },
            "final_page": {
                "address": "http://11.222.33.44:50080/my_final_page",
                "method": "POST"
            },
            "error_page": {
                "address": null,
                "method": "POST"
            },
            "api_version": "2.0",
            "application_parameters": null,
            "tts_voice": "English UK Female Polly Amy",
            "authentication": {...},
            "call_recording": {...},
            "max_call_duration": 240,
            "early_media": false,
            "ring_time": 2
        },
        "messages": {...},
        "fax": {...}
    }

    This is how the Modify web service might used to remove the rest.final_page.address and add a rest.first_page.address:

    (PATCH) https://ws-1-2-0.aculabcloud.net/service/v1/inbound/MyRESTInboundService
    
    With the following JSON in the body of the request:
    {
        "rest" : {
            "final_page" : {
                "address" : null
            },
            "error_page" : {
                "address" : "http://11.222.33.44:50080/my_error_page"
            }
        }
    }
    

    Response:

    You will receive a JSON object in the body of a 200 response. The JSON object is the modified configuration for 'MyRESTInboundService':

    {
        "enabled": true,
        "description": "This is my inbound REST service",
        "extra_channels": 0,
        "g729": false,
        "maintenance_message": {...},
        "outbound_call_constraints": {...},
        "application_type": "REST",
        "uas": {...},
        "rest": {
            "first_page": {
                "address": "http://11.222.33.44:50080/my_first_page",
                "method": "POST"
            },
            "final_page": {
                "address": null,
                "method": "POST"
            },
            "error_page" : {
                "address" : "http://11.222.33.44:50080/my_error_page",
                "method": "POST"
            },
            "api_version": "2.0",
            "application_parameters": null,
            "tts_voice": "English UK Female Polly Amy",
            "authentication": {...},
            "call_recording": {...},
            "max_call_duration": 240,
            "early_media": false,
            "ring_time": 2
        },
        "messages": {...},
        "fax": {...}
    }

    If unsuccessful, you will receive an HTTP error response containing a JSON object. For example:

    {
        'error': {
            'code': 'HTTP 404',
            'text': 'The service name does not exist',
            'datetime': '2022-07-22_14:40:32',
            'link': 'https://www.aculab.com/cloud/web-services/services/inbound/management?target=service_action_tabs&tab-id=modify'
        },
        'request': {
            'datetime': '2022-07-22_14:40:32',
            'url': '/service/v1/inbound/MyRESTInboundService'
        }
    }
    
  • Delete

    This deletes an inbound service, the name of which is supplied in the URL.

    You need to supply your account username and API access key in the basic authorisation string.

    URL : https://ws.aculabcloud.net/service/v1/inbound/<ServiceName>
    Methods : DELETE
    Username : cloudID/username (e.g. 1-2-0/bob@example.com)
    Password:Your API Access Key

    Returns on success:

    204 (No Content) status code.

    Example:

    (DELETE) https://ws-1-2-0.aculabcloud.net/service/v1/inbound/SomethingOrOther

    If unsuccessful, you will receive an HTTP error response containing a JSON object. For example:

    {
        'error': {
            'code': 'HTTP 404',
            'text': 'The service name does not exist',
            'datetime': '2022-07-22_14:45:09',
            'link': 'https://www.aculab.com/cloud/web-services/services/inbound/management?target=service_action_tabs&tab-id=delete'
        },
        'request': {
            'datetime': '2022-07-22_14:45:09',
            'url': '/service/v1/inbound/SomethingOrOther'
        }
    }

Cloud Web Services Inbound Services

Inbound Services

Inbound services define how inbound voice and fax calls and messages are to be handled. They define the application is going to manage the call (REST or UAS) and/or an endpoint that is going to receive notifications when a message is received.

You can create, configure and delete inbound services using the Cloud Console or use the inbound services Management API.

Cloud REST API Class Speech Model Options

speech model options

  Available in REST API Version 2 and later.

Defines the model and optional settings used for speech recognition.

Used by actions get input, play, run speech menu, start transcription and connect with a translator.

language wrappers and examples

It has the following properties:

PropertyRequired/OptionalDefaultDescription
modeloptional-The name of the model to use. Use a model that is supported by the language being recognised. When no model is specified, a model suitable for the language will be selected.
enhancedoptionalfalseWhether to use an enhanced variant of the model, if one is available.

Note: premium models are charged at a higher rate than standard models.


  • Examples:


    • Select the "latest_short" model:

          {
      		"model" : "latest_short"
          }
      
    • Select the standard "phone_call" model:

          {
      		"model" : "phone_call",
      		"enhanced" : false
          }
      
    • Select the enhanced "phone_call" model:

          {
      		"model" : "phone_call",
      		"enhanced" : true
          }
      
  • SpeechModelOptions Class
    Namespace: Aculab.Cloud.RestAPIWrapper
    Assembly: Aculab.Cloud.RestAPIWrapper.dll

    A class representing the model and optional settings used for speech recognition.

    • public class SpeechModelOptions 
      {
          // Constructors
          public SpeechModelOptions(string model = null, bool? enhanced = null);
      
          // Members
          public string Model;
          public bool? Enhanced;
      }
      

      Examples:

      • Select the "latest_short" model:

        var speechModelOptions = new SpeechModelOptions()
        {
            Model = "latest_short"
        };
        
      • Select the standard "phone_call" model:

        var speechModelOptions = new SpeechModelOptions()
        {
            Model = "phone_call",
            Enhanced =  false
        };
        
      • Select the enhanced "phone_call" model:

        var speechModelOptions = new SpeechModelOptions()
        {
            Model = "phone_call",
            Enhanced = true
        };
        
    • public class SpeechModelOptions 
      {
          // Constructors
          public SpeechModelOptions(string model = null, bool? enhanced = null);
      
          // Members
          public string Model;
          public bool? Enhanced;
      }
      

      Examples:

      • Select the "latest_short" model:

        var speechModelOptions = new SpeechModelOptions()
        {
            Model = "latest_short"
        };
        
      • Select the standard "phone_call" model:

        var speechModelOptions = new SpeechModelOptions()
        {
            Model = "phone_call",
            Enhanced =  false
        };
        
      • Select the enhanced "phone_call" model:

        var speechModelOptions = new SpeechModelOptions()
        {
            Model = "phone_call",
            Enhanced = true
        };
        
    • public class SpeechModelOptions 
      {
          // Constructors
          public SpeechModelOptions(string model = null, bool? enhanced = null);
      
          // Members
          public string Model;
          public bool? Enhanced;
      }
      

      Examples:

      • Select the "latest_short" model:

        var speechModelOptions = new SpeechModelOptions()
        {
            Model = "latest_short"
        };
        
      • Select the standard "phone_call" model:

        var speechModelOptions = new SpeechModelOptions()
        {
            Model = "phone_call",
            Enhanced =  false
        };
        
      • Select the enhanced "phone_call" model:

        var speechModelOptions = new SpeechModelOptions()
        {
            Model = "phone_call",
            Enhanced = true
        };
        
  • SpeechModelOptions Class
    Namespace: Aculab.Cloud.RestAPIWrapper
    Assembly: Aculab.Cloud.RestAPIWrapper.dll

    A class representing the model and optional settings used for speech recognition.

    • Public Class SpeechModelOptions
          ' Constructors
          Public Sub New (Optional model As String = Nothing, Optional enhanced As Bool? = Nothing)
      
          ' Members
          Public Property Model As String
          Public Property Enhanced As Bool?
      End Class
      

      Examples:

      • Select the "latest_short" model

        Dim speechModelOptions = New SpeechModelOptions(model:="latest_short")
        
      • Select the standard "phone_call" model

        Dim speechModelOptions = New SpeechModelOptions(model:="phone_call", enhanced:=False)
        
      • Select the enhanced "phone_call" model

        Dim speechModelOptions = New SpeechModelOptions(model:="phone_call", enhanced:=True)
        
    • Public Class SpeechModelOptions
          ' Constructors
          Public Sub New (Optional model As String = Nothing, Optional enhanced As Bool? = Nothing)
      
          ' Members
          Public Property Model As String
          Public Property Enhanced As Bool?
      End Class
      

      Examples:

      • Select the "latest_short" model

        Dim speechModelOptions = New SpeechModelOptions(model:="latest_short")
        
      • Select the standard "phone_call" model

        Dim speechModelOptions = New SpeechModelOptions(model:="phone_call", enhanced:=False)
        
      • Select the enhanced "phone_call" model

        Dim speechModelOptions = New SpeechModelOptions(model:="phone_call", enhanced:=True)
        
  • class SpeechModelOptions extends JSONElement

    Represents the Speech Model Options support class.

    Class synopsis:

    // Constructors:
    public SpeechModelOptions()
    
    // Members:
    public void setModel(String model)
    public void setEnhanced(boolean enhanced)
    

    Examples:

    • Select the "latest_short" model:

      SpeechModelOptions speechModelOpts = new SpeechModelOptions();
      speechModelOpts.setModel("latest_short");
      
    • Select the standard "phone_call" model:

      SpeechModelOptions speechModelOpts = new SpeechModelOptions();
      speechModelOpts.setEnhanced(false);
      speechModelOpts.setModel("phone_call");
      
    • Select the enhanced "phone_call" model:

      SpeechModelOptions speechModelOpts = new SpeechModelOptions();
      speechModelOpts.setEnhanced(true);
      speechModelOpts.setModel("phone_call");
      
  • class SpeechModelOptions

    Represents the Speech Model Options support class.

    Class synopsis:

    # SpeechModelOptions object:
    SpeechModelOptions()
    
    # Instance methods:
    SpeechModelOptions.set_model(model)
    SpeechModelOptions.set_enhanced(enhanced)
    

    Examples:

    • Select the "latest_short" model:

      speech_model_opts = SpeechModelOptions()
      speech_model_opts.set_model("latest_short")
      
    • Select the standard "phone_call" model:

      speech_model_opts = SpeechModelOptions()
      speech_model_opts.set_enhanced(False)
      speech_model_opts.set_model("phone_call")
      
    • Select the enhanced "phone_call" model:

      speech_model_opts = SpeechModelOptions()
      speech_model_opts.set_enhanced(True)
      speech_model_opts.set_model("phone_call")
      
  • The SpeechModelOptions class

    Introduction

    Represents the speech model options.

    Class synopsis

    class SpeechModelOptions {
    
        /* methods */
        public __construct()
        public self setModel(string $model)
        public self setEnhanced(boolean $enhanced)
    }
    

    Examples:

    • Select the "latest_short" model:

      $speech_model_options = new \Aculab\TelephonyRestAPI\SpeechModelOptions();
      $speech_model_options->setModel("latest_short");
      
    • Select the standard "phone_call" model:

      $speech_model_options = new \Aculab\TelephonyRestAPI\SpeechModelOptions();
      $speech_model_options->setModel("phone_call")
          ->setEnhanced(false);
      
    • Select the enhanced "phone_call" model:

      $speech_model_options = new \Aculab\TelephonyRestAPI\SpeechModelOptions();
      $speech_model_options->setModel("phone_call")
          ->setEnhanced(true);
      

Cloud Guides Messaging

Messaging

Aculab Cloud lets you communicate with your customers using SMS text messages and MMS messages with multimedia content. You can purchase telephone numbers and use them to send and receive messages.

Requirements

To send and receive messages, you need:

  • A Production or Premium account - if you have a Developer account, please upgrade your account.
  • A telephone number on Aculab Cloud which has messaging enabled - to check this, view your purchased Telephone Numbers. If SMS/MMS is enabled for a number a green envelope icon will be displayed. You can enable/disable SMS/MMS by clicking the envelope icon. If no envelope is displayed then messaging is not supported on your number.
  • A web server - so Aculab Cloud can tell you about status updates for your messages.
  • Credit on your account - so you can buy a number and pay for your messages.

To receive messages, you also need:

  • An Inbound Service for your number which must be able to handle messages. An Inbound Service tells Aculab Cloud how to handle incoming messages and calls to a particular number.
    • First, view your own Telephone Numbers.
    • Click on the service link icon to edit or create the service for your number.
    • Click the service's Messages tab and enter your url into the Notification page field. This is the URL of a page on your web server which Aculab Cloud will access to tell you when new messages arrive.

Note that, to send messages, you don't need an Outbound Service. You only need to call the managing messages web service.


  • How it works

    You pass the message to Aculab Cloud via the Managing Messages Web Service. You can do this from your browser's address bar, call the appropriate function from one of our High-Level Language Wrappers or call it direct.

    Aculab Cloud queues the message then submits it to a carrier and accesses your status_page to say that's done. The carrier accepts the message, sends it on towards the mobile phone, and Aculab Cloud accesses your status_page to tell you it's been sent.

    If you've requested a delivery report and they're supported, the phone will acknowledge receipt, the carrier passes that on to Aculab Cloud, which accesses your status page to tell you the message has been delivered.

    For more details

    See Handling status updates for details of what is sent to your status page.

  • How it works

    A mobile phone sends a message to your number. It is received by one of our carriers, which passes it on. It's received by Aculab Cloud, which accesses your notification page to give you the message.

    How to receive messages

    When messages are received on your numbers, you can choose to be notified via pages which you host on your web server. To make this work for one of your numbers:

    • Check you've enabled messages (SMS/MMS) on that number by viewing your telephone numbers and ensuring a green envelope is displayed for the number. If a red envelope is displayed, click to change to green.
    • If you've not already done so, create an Inbound Service for the number.
    • Again if not done already, configure the number's Inbound Service by entering the URL of your web page on its Messages tab.

    For more details

    To see the content of what Aculab Cloud passes to your notification page, see Managing Messages.



US-specific information

Aculab Cloud supports SMS and MMS on regular (10DLC) and toll-free numbers, as well as short codes. As part of the fight against misuse, sending SMS and MMS messages from each US number requires setting up a campaign. Please contact us so we can talk through your use cases and create your campaigns for you.

Regular numbers (10DLC)

SMS and MMS messages sent from Aculab Cloud regular numbers, termed 10 Digit Long Codes (10DLC), pass through Application to Person (A2P) routes. All use cases must be submitted in advance and agreed with The Campaign Registry, www.campaignregistry.com. This is something we will work to arrange for you. This approach provides the best reliability, as these routes are designed to handle A2P traffic and the carrier spam filters are aware of your use case. Messages sent and received via these routes generally attract carrier surcharges, which we will pass on without mark-up as an additional charge applied to your account.

Aculab Cloud maintains a list of opted-out numbers that our API prevents you from messaging. We automatically reply to opt-in, opt-out and help messages sent to your numbers. If you need the content of these messages to be changed from that shown below, please contact support.

Opt-in:

KeywordsDefault reply
START, YES, UNSTOP You have successfully been re-subscribed to messages from this number. Reply HELP for help. Reply STOP to unsubscribe. Msg and data rates may apply.

Opt-out:

KeywordsDefault reply
STOP, STOPALL, UNSUBSCRIBE, CANCEL, END, QUIT You have successfully been unsubscribed. You will not receive any more messages from this number. Reply START to resubscribe.

Help:

KeywordsDefault reply
HELP, INFO Reply STOP to unsubscribe. Msg and data rates may apply.

Toll-free numbers

SMS and MMS messages sent to or from Aculab Cloud toll-free numbers pass through A2P routes where possible. All use cases must be submitted in advance and verified with our carriers. This is something we will work to arrange for you, and applies to all SMS/MMS providers. This approach provides the best reliability, as these routes are designed to handle A2P traffic and the carrier spam filters are aware of your use case. Messages sent and received via these routes generally attract carrier surcharges, which we will pass on without mark-up as an addition made to your account. Also, these messages will usually be limited to a set number of Messages Per Second (MPS), dependent on use case and as agreed with our carriers.

Aculab Cloud maintains a list of opted-out numbers that our API prevents you from messaging. Our carriers automatically reply to opt-in and opt-out messages. We automatically reply to help messages sent to your numbers. If you need the content of that message to be changed from that shown below, please contact support.

Help:

KeywordsDefault reply
HELP, INFO Reply STOP to unsubscribe. Msg and data rates may apply.

Short codes

Aculab Cloud also supports exclusive and shared short codes. We will work with you to arrange the lease of a five or six digit short code, and to agree the use cases associated with it. Please contact us to learn more.

Archive

The Aculab blog

News, views and industry insights from Aculab

  • Eliminating Barriers to Communication with Live Audio Translation for Phone Calls

    In an increasingly interconnected world, clear and effective communication is more essential than ever. That’s why Aculab intends to help break down language barriers and foster cross-cultural communications.

    Continue reading

  • The End of the PSTN in the US

    As the technical world has evolved, so has the way we communicate. The gradual, global transition away from the Public Switched Telephone Network (PSTN) is the most noticeable change in recent years. This begs the question, is the PSTN in the US headed towards a slow end as we transition into the digital era?

    Continue reading

  • Revolutionising the Landscape of Remote Authentication

    In a time where borders blur and workplaces extend beyond the confines of traditional offices, the significance of remote authentication has taken centre stage. As we advance, so does the need for secure and efficient ways to verify and authenticate our identity remotely. Finding the balance between security and user convenience is key when seeking to implement successful remote authentication.

     

    Continue reading

  • Choosing The Ideal Communication Platform: Key Considerations to Optimise Your Business

    Communication Platforms as a Service have become a necessity in the current digital age; allowing businesses to obtain frictionless means of communicating effectively. However, as technology rapidly evolves, so must communications. Much of the platforms on offer today are homogenous, so choosing the best fit for your business can be difficult. In this blog, we have shared some key points and trends for to consider, so your business can amplify communications and increase operational efficiency!

     

    Continue reading

  • 10 questions people are asking about The Big Switch Off

    With The Big Switch Off fast approaching, people naturally have questions and concerns ahead of the shutdown. The transition from conventional networks to digital technology is unavoidable in the fast-evolving world of telecommunications. In this blog, we address ten common questions people have about the Big PSTN Switch Off, shedding light on the topic and providing clarity.

     

    Continue reading