voice broadcast Sample
An outbound application that handles answered outbound calls that have been classified.
Live speakers are played a notification message and then asked to press a digit to confirm they have received and understood the message. Answering machines are played a different notification message.
Live speakers are played a notification message and then asked to press a digit to confirm they have received and understood the message. Answering machines are played a different notification message.
-
-
{ "actions" : [ { "play" : { "play_list" : [ { "text_to_say" : "Hello." } ] } }, { "play" : { "play_list" : [ { "text_to_say" : "This is a recorded notification message to let you know that Saint Custards Preparatory School will open for the spring term on 5th September next year. Please call <say-as interpret-as='digits'>443069990123</say-as> to let us know that you have received this message." } ] } } ], "token" : "my voice broadcast instance id", "api_version": "2.0" }
-
{ "actions" : [ { "play" : { "play_list" : [ { "text_to_say" : "Hello." } ] } }, { "play" : { "play_list" : [ { "text_to_say" : "This is a notification to let you know that Saint Custards Preparatory School will open for the spring term on 5th September next year." } ] } }, { "run_menu" : { "prompt" : { "play" : { "play_list" : [ { "text_to_say" : "Please press 1 to confirm that you have received and understood this message, or press 2 to hear the message again." } ] } }, "menu_options" : [ { "digit" : "1", "next_page" : { "url" : "ConfirmMessage" } }, { "digit" : "2", "next_page" : { "url" : "VoiceBroadcast" } } ], "on_digit_timeout_messages": [ { "play" : { "play_list" : [ { "text_to_say" : "I didn't catch your entry." } ] } } ], "on_invalid_digit_messages" : [ { "play" : { "play_list" : [ { "text_to_say" : "That wasn't one of the options. Please try again." } ] } } ] } } ], "token" : "my voice broadcast instance id", "api_version": "2.0" }
-
{ "actions" : [ { "play" : { "play_list" : [ { "text_to_say" : "Thanks for your confirmation. Goodbye." } ] } } ], "token" : "my voice broadcast instance id", "api_version": "2.0" }
-
{ [ ], "token" : "Error for Action: xxxx ActionIndex: xxxx Result: xxxx" }
-
{ }
-
-
-
Implementing this sample as an ASP.Net Web application:
-
// CSharp Wrapper sample for the Aculab Telephony REST API. // // Voice Broadcast: // An application that handles answered outbound calls that have been classified. // Live speakers are played a notification message and then asked to press a // digit to confirm they have received and understood the message. Answering // machines are played a different notification message. using System; using System.Collections.Generic; using Aculab.Cloud.RestAPIWrapper; public partial class VoiceBroadcast : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { // Unpack the request TelephonyRequest ourRequest = new TelephonyRequest(Request); String farEndType = ourRequest.InstanceInfo.ThisCall.FarEndType; // Setup the actions List<TelephonyAction> actions = new List<TelephonyAction> { Play.SayText("Hello.") }; if (farEndType.CompareTo("answering_machine") == 0) { // Simply leave a message on the answering machine actions.Add(Play.SayText("This is a recorded notification message to let you know that Saint " + "Custards Preparatory School will open for the spring term on 5th " + "September next year. Please call " + "<say-as interpret-as='digits'>443069990123</say-as> " + "to let us know that you have received this message.")); } else { // Play the notification message actions.Add(Play.SayText("This is a notification to let you know that Saint Custards Preparatory " + "School will open for the spring term on 5th September next year.")); // Set up a run menu action to obtain an acknowledgement or repeat the notification message Play prompt = Play.SayText("Please press 1 to confirm that you have received and understood " + "this message, or press 2 to hear the message again."); List<MenuOption> menuOptions = new List<MenuOption> { new MenuOption('1', new WebPageRequest("ConfirmMessage.aspx")), new MenuOption('2', new WebPageRequest("VoiceBroadcast.aspx")) }; RunMenu runMenuAction = new RunMenu(menuOptions, prompt); runMenuAction.OnDigitTimeoutMessages = new List<Play> { Play.SayText("I didn't catch your entry.") }; runMenuAction.OnInvalidDigitMessages = new List<Play> { Play.SayText("That wasn't one of the options. Please try again.") }; actions.Add(runMenuAction); } // Respond TelephonyResponse ourResponse = new TelephonyResponse(actions, "my voice broadcast instance id"); ourResponse.ToHttpResponse(Response); } }
-
// CSharp Wrapper sample for the Aculab Telephony REST API. // // Voice Broadcast: // ConfirmMessage page using System; using System.Collections.Generic; using Aculab.Cloud.RestAPIWrapper; public partial class ConfirmMessage : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { // Unpack the request TelephonyRequest ourRequest = new TelephonyRequest(Request); String token = ourRequest.InstanceInfo.Token; // Setup the actions List<TelephonyAction> actions = new List<TelephonyAction>(); actions.Add(Play.SayText("Thanks for your confirmation. Goodbye.")); // Respond TelephonyResponse ourResponse = new TelephonyResponse(actions, token); ourResponse.ToHttpResponse(Response); } }
-
using System; using Aculab.Cloud.RestAPIWrapper; public partial class ErrorPage : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { // Unpack the request TelephonyRequest ourRequest = new TelephonyRequest(Request); ErrorResult result = ourRequest.InstanceInfo.ErrorResult; String token = String.Format("Action: {0}\nActionIndex: {1}\nResult: {2}", result.Action, result.ActionIndex, result.Result); // Respond TelephonyResponse ourResponse = new TelephonyResponse(null, token); ourResponse.ToHttpResponse(Response); } }
-
using System; using Aculab.Cloud.RestAPIWrapper; public partial class FinalPage : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { // Unpack the request TelephonyRequest ourRequest = new TelephonyRequest(Request); } }
-
-
Implementing this sample as an ASP.Net Core Web application:
-
// ASP.NET Core CSharp Wrapper sample for the Aculab Telephony REST API. // // Voice Broadcast: // An application that handles answered outbound calls that have been classified. // Live speakers are played a notification message and then asked to press a // digit to confirm they have received and understood the message. Answering // machines are played a different notification message. using System; using System.Net; using System.Collections.Generic; using Microsoft.AspNetCore.Mvc; using Aculab.Cloud.RestAPIWrapper; using System.Threading.Tasks; namespace Aculab.Cloud.RESTAPI.NETCoreCSharpSamples.Controllers { [Route("VoiceBroadcast")] public class VoiceBroadcastController : ControllerBase { // Process the GET or POST request, set up the actions and construct the json response. [Route("FirstPage")] [HttpGet] [HttpPost] [ProducesResponseType(200)] [ProducesResponseType(400)] [ProducesResponseType(500)] public async Task<IActionResult> VoiceBroadcast() { try { // Unpack the request var telephonyRequest = await TelephonyRequest.UnpackRequestAsync(Request); String farEndType = telephonyRequest.InstanceInfo.ThisCall.FarEndType; // Setup the actions required List<TelephonyAction> actions = new List<TelephonyAction>(); actions.Add(Play.SayText("Hello.")); if (farEndType.CompareTo("answering_machine") == 0) { // Simply leave a message on the answering machine actions.Add(Play.SayText("This is a recorded notification message to let you know that Saint " + "Custards Preparatory School will open for the spring term on 5th " + "September next year. Please call " + "<say-as interpret-as='digits'>443069990123</say-as> " + "to let us know that you have received this message.")); } else { // Play the notification message actions.Add(Play.SayText("This is a notification to let you know that Saint Custards Preparatory " + "School will open for the spring term on 5th September next year.")); // Set up a run menu action to obtain an acknowledgement or repeat the notification message Play prompt = Play.SayText("Please press 1 to confirm that you have received and understood " + "this message, or press 2 to hear the message again."); List<MenuOption> menuOptions = new List<MenuOption>() { new MenuOption('1', new WebPageRequest("VoiceBroadcast/ConfirmMessage")), new MenuOption('2', new WebPageRequest("VoiceBroadcast/FirstPage")) }; RunMenu runMenuAction = new RunMenu(menuOptions, prompt); runMenuAction.OnDigitTimeoutMessages = new List<Play>() { Play.SayText("I didn't catch your entry.") }; runMenuAction.OnInvalidDigitMessages = new List<Play>() { Play.SayText("That wasn't one of the options. " + "Please try again.") }; actions.Add(runMenuAction); } // Create response TelephonyResponse ourResponse = new TelephonyResponse(actions, "my voice broadcast instance id"); return new OkObjectResult(ourResponse.ToJson(this)); } catch (ArgumentException) { return BadRequest(); } catch (Exception e) { return StatusCode((int)HttpStatusCode.InternalServerError, e.Message); } } } }
-
// ASP.NET Core CSharp Wrapper sample for the Aculab Telephony REST API. // // Voice Broadcast: // An application that handles answered outbound calls that have been classified. // Live speakers are played a notification message and then asked to press a // digit to confirm they have received and understood the message. Answering // machines are played a different notification message. using System; using System.Net; using System.Collections.Generic; using Microsoft.AspNetCore.Mvc; using Aculab.Cloud.RestAPIWrapper; using System.Threading.Tasks; namespace Aculab.Cloud.RESTAPI.NETCoreCSharpSamples.Controllers { [Route("VoiceBroadcast")] public class VoiceBroadcastController : ControllerBase { // Process the GET or POST request, set up the actions and construct the json response. [Route("ConfirmMessage")] [HttpGet] [HttpPost] [ProducesResponseType(200)] [ProducesResponseType(400)] [ProducesResponseType(500)] public async Task<IActionResult> ConfirmMessage() { try { // Unpack the request var telephonyRequest = await TelephonyRequest.UnpackRequestAsync(Request); String token = telephonyRequest.InstanceInfo.Token; // Setup the actions required List<TelephonyAction> actions = new List<TelephonyAction>() { Play.SayText("Thanks for your confirmation. Goodbye.") }; // Create response TelephonyResponse ourResponse = new TelephonyResponse(actions, token); return new OkObjectResult(ourResponse.ToJson(this)); } catch (ArgumentException) { return BadRequest(); } catch (Exception e) { return StatusCode((int)HttpStatusCode.InternalServerError, e.Message); } } } }
-
// ASP.NET Core CSharp Wrapper sample for the Aculab Telephony REST API. using System; using Microsoft.AspNetCore.Mvc; using Aculab.Cloud.RestAPIWrapper; using System.Net; using System.Threading.Tasks; namespace Aculab.Cloud.RESTAPI.NETCoreCSharpSamples.Controllers { public class RESTSampleController : ControllerBase { // Process the GET or POST request for the Error condition [Route("ErrorPage")] [HttpGet] [HttpPost] [ProducesResponseType(200)] [ProducesResponseType(400)] [ProducesResponseType(500)] public async Task<IActionResult> ErrorPage() { try { // Unpack the request var telephonyRequest = await TelephonyRequest.UnpackRequestAsync(Request); ErrorResult result = telephonyRequest.InstanceInfo.ErrorResult; String token = String.Format("Action: {0}\nActionIndex: {1}\nResult: {2}", result.Action, result.ActionIndex, result.Result); // Create response TelephonyResponse ourResponse = new TelephonyResponse(null, token); return new OkObjectResult(ourResponse.ToJson(this)); } catch (ArgumentException) { return BadRequest(); } catch (Exception e) { return StatusCode((int)HttpStatusCode.InternalServerError, e.Message); } } } }
-
// ASP.NET Core CSharp Wrapper sample for the Aculab Telephony REST API. using System; using Microsoft.AspNetCore.Mvc; using Aculab.Cloud.RestAPIWrapper; using System.Net; using System.Threading.Tasks; namespace Aculab.Cloud.RESTAPI.NETCoreCSharpSamples.Controllers { public class RESTSampleController : ControllerBase { // Process the GET or POST request for the Final Page [Route("FinalPage")] [HttpGet] [HttpPost] [ProducesResponseType(200)] [ProducesResponseType(400)] [ProducesResponseType(500)] public async Task<IActionResult> FinalPage() { try { // Unpack the request var telephonyRequest = await TelephonyRequest.UnpackRequestAsync(Request); String token = telephonyRequest.InstanceInfo.Token; // Create response // Only very limited actions can be returned here TelephonyResponse ourResponse = new TelephonyResponse(null, token); return new OkObjectResult(ourResponse.ToJson(this)); } catch (ArgumentException) { return BadRequest(); } catch (Exception e) { return StatusCode((int)HttpStatusCode.InternalServerError, e.Message); } } } }
-
-
-
Implemented as ASP.Net Web App:
-
' Visual Basic Wrapper sample for the Aculab Telephony REST API. ' ' The first page for the Voice Broadcast sample: ' An application that handles answered outbound calls that have been classified. ' Live speakers are played a notification message and then asked to press a ' digit to confirm they have received and understood the message. Answering ' machines are played a different notification message. Imports System.Collections.Generic Imports Aculab.Cloud.RestAPIWrapper Partial Class VoiceBroadcast Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) ' Unpack the request Dim ourRequest As TelephonyRequest = New TelephonyRequest(Request) Dim farEndType As String = ourRequest.InstanceInfo.ThisCall.FarEndType ' Setup the actions Dim actions As List(Of TelephonyAction) = New List(Of TelephonyAction) actions.Add(Play.SayText("Hello.")) If farEndType.CompareTo("answering_machine") = 0 Then ' Simply leave a message on the answering machine actions.Add(Play.SayText("This is a recorded notification message to let you know that Saint " + "Custards Preparatory School will open for the spring term on 5th " + "September next year. Please call " + "<say-as interpret-as='digits'>443069990123</say-as> " + "to let us know that you have received this message.")) Else ' Play the notification message actions.Add(Play.SayText("This is a notification to let you know that Saint Custards Preparatory " + _ "School will open for the spring term on 5th September next year.")) ' Set up a run menu action to obtain an acknowledgement or repeat the notification message Dim prompt As Play = Play.SayText("Please press 1 to confirm that you have received and understood " + "this message, or press 2 to hear the message again.") Dim menuOptions As List(Of MenuOption) = New List(Of MenuOption) menuOptions.Add(New MenuOption("1", New WebPageRequest("ConfirmMessage.aspx"))) menuOptions.Add(New MenuOption("2", New WebPageRequest("VoiceBroadcast.aspx"))) Dim runMenuAction As RunMenu = New RunMenu(menuOptions, prompt) runMenuAction.OnDigitTimeoutMessages = New List(Of Play) From { Play.SayText("I didn't catch your entry.") } runMenuAction.OnInvalidDigitMessages = New List(Of Play) From { Play.SayText("That wasn't one of the options. Please try again.") } actions.Add(runMenuAction) End If ' Respond Dim ourResponse As TelephonyResponse = New TelephonyResponse(actions, "my voice broadcast instance id") ourResponse.ToHttpResponse(Response) End Sub End Class
-
' Visual Basic Wrapper sample for the Aculab Telephony REST API. ' ' A page from the Voice Broadcast sample: ' This plays a confirmation message. Imports System.Collections.Generic Imports Aculab.Cloud.RestAPIWrapper Partial Class ConfirmMessage Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) ' Unpack the request Dim ourRequest As TelephonyRequest = New TelephonyRequest(Request) Dim token As String = ourRequest.InstanceInfo.Token ' Setup the actions Dim actions As List(Of TelephonyAction) = New List(Of TelephonyAction) actions.Add(Play.SayText("Thanks for your confirmation. Goodbye.")) ' Respond Dim ourResponse As TelephonyResponse = New TelephonyResponse(actions, token) ourResponse.ToHttpResponse(Response) End Sub End Class
-
' Visual Basic Wrapper sample for the Aculab Telephony REST API. ' ' A generic error page for all the samples. Imports Aculab.Cloud.RestAPIWrapper Partial Class ErrorPage Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) ' Unpack the request Dim ourRequest As TelephonyRequest = New TelephonyRequest(Request) Dim result As ErrorResult = ourRequest.InstanceInfo.ErrorResult Dim token As String = String.Format("Action: {0}\nActionIndex: {1}\nResult: {2}", _ result.Action, result.ActionIndex, result.Result) ' Respond Dim ourResponse As TelephonyResponse = New TelephonyResponse(token) ourResponse.ToHttpResponse(Response) End Sub End Class
-
' Visual Basic Wrapper sample for the Aculab Telephony REST API. ' ' A generic final page for all the samples: Imports Aculab.Cloud.RestAPIWrapper Partial Class FinalPage Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) ' Unpack the request Dim ourRequest As TelephonyRequest = New TelephonyRequest(Request) ' Do application tidying up ' ... End Sub End Class
-
-
Implemented as Java Servlets:
-
// Java Servlet sample for the Aculab Telephony REST API. // // Voice Broadcast: // An application that handles answered outbound calls that have been classified. // Live speakers are played a notification message and then asked to press a // digit to confirm they have received and understood the message. Answering // machines are played a different notification message. package com.aculab.telephonyrestapi.samples; import javax.servlet.http.*; import javax.servlet.ServletException; import java.io.IOException; import java.util.ArrayList; import java.util.List; import com.aculab.telephonyrestapi.*; public class VoiceBroadcast extends HttpServlet { private static final long serialVersionUID = -3689455870958870956L; @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { handleRequest(request, response); } @Override public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { handleRequest(request, response); } private void handleRequest(HttpServletRequest request, HttpServletResponse response) throws IOException { // Unpack the request TelephonyRequest ourRequest = new TelephonyRequest(request); String farEndType = ourRequest.getInstanceInfo().getThisCall().getFarEndType(); // Set up the actions List<TelephonyAction> actions = new ArrayList<TelephonyAction>(); actions.add(Play.sayText("Hello.")); if (farEndType.compareTo("answering_machine") == 0) { // Simply leave a message on the answering machine actions.add(Play.sayText("This is a recorded notification message to let you know that Saint " + "Custards Preparatory School will open for the spring term on 5th " + "September next year. Please call " + "<say-as interpret-as='digits'>443069990123</say-as> " + "to let us know that you have received this message.")); } else { // Play the notification message actions.add(Play.sayText("This is a notification to let you know that Saint Custards Preparatory " + "School will open for the spring term on 5th September next year.")); // Set up a run menu action to obtain an acknowledgement or repeat the notification message Play prompt = Play.sayText("Please press 1 to confirm that you have received and understood " + "this message, or press 2 to hear the message again."); List<MenuOption> menuOptions = new ArrayList<MenuOption>(); menuOptions.add(new MenuOption('1', new WebPageRequest("ConfirmMessage"))); menuOptions.add(new MenuOption('2', new WebPageRequest("VoiceBroadcast"))); RunMenu runMenuAction = new RunMenu(prompt, menuOptions); List<Play> timeoutMsgs = new ArrayList<Play>(); timeoutMsgs.add(Play.sayText("I didn't catch your entry.", "Paul")); runMenuAction.setOnDigitTimeoutMessages(timeoutMsgs); List<Play> invalidMsgs = new ArrayList<Play>(); invalidMsgs.add(Play.sayText("That wasn't one of the options. Please try again.", "Paul")); runMenuAction.setOnInvalidDigitMessages(invalidMsgs); actions.add(runMenuAction); } // Respond TelephonyResponse ourResponse = new TelephonyResponse(actions, "my voice broadcast instance id"); ourResponse.setHttpServletResponse(response); } }
-
// Java Servlet sample for the Aculab Telephony REST API. // package com.aculab.telephonyrestapi.samples; import javax.servlet.http.*; import javax.servlet.ServletException; import java.io.IOException; import java.util.ArrayList; import java.util.List; import com.aculab.telephonyrestapi.*; public class ConfirmMessage extends HttpServlet { private static final long serialVersionUID = 1052633605054507967L; @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { handleRequest(request, response); } @Override public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { handleRequest(request, response); } private void handleRequest(HttpServletRequest request, HttpServletResponse response) throws IOException { // Unpack the request TelephonyRequest ourRequest = new TelephonyRequest(request); String token = ourRequest.getInstanceInfo().getToken(); // Set up the actions List<TelephonyAction> actions = new ArrayList<TelephonyAction>(); actions.add(Play.sayText("Thanks for your confirmation. Goodbye.", "Paul")); // Respond TelephonyResponse ourResponse = new TelephonyResponse(actions, token); ourResponse.setHttpServletResponse(response); } }
-
// Java Servlet sample for the Aculab Telephony REST API. // package com.aculab.telephonyrestapi.samples; import javax.servlet.http.*; import javax.servlet.ServletException; import java.io.IOException; import java.util.ArrayList; import java.util.List; import com.aculab.telephonyrestapi.*; public class ErrorPage extends HttpServlet { private static final long serialVersionUID = -4842873371047361437L; @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { handleRequest(request, response); } @Override public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { handleRequest(request, response); } private void handleRequest(HttpServletRequest request, HttpServletResponse response) throws IOException { // Unpack the request TelephonyRequest ourRequest = new TelephonyRequest(request); ErrorResult result = ourRequest.getInstanceInfo().getErrorResult(); String token = String.format("Action: %s\nActionIndex: %d\nResult: %s", result.getAction(), result.getActionIndex(), result.getResult()); // Respond List<TelephonyAction> actions = new ArrayList<TelephonyAction>(); TelephonyResponse ourResponse = new TelephonyResponse(actions, token); ourResponse.setHttpServletResponse(response); } }
-
// Java Servlet sample for the Aculab Telephony REST API. // package com.aculab.telephonyrestapi.samples; import javax.servlet.http.*; import javax.servlet.ServletException; import java.io.IOException; import com.aculab.telephonyrestapi.*; public class FinalPage extends HttpServlet { private static final long serialVersionUID = 5940620014313056844L; @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { handleRequest(request, response); } @Override public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { handleRequest(request, response); } private void handleRequest(HttpServletRequest request, HttpServletResponse response) throws IOException { // Unpack the request TelephonyRequest ourRequest = new TelephonyRequest(request); } }
-
-
Implemented as a Flask web application:
-
@app.route('/VoiceBroadcast', methods=['GET','POST']) def handle_VoiceBroadcast(): my_request = TelephonyRequest(request) app_inst_id = my_request.get_application_instance_id() print("VoiceBroadcast: app_inst_id='{}'".format(app_inst_id)) # get the call classification (machine / non-machine) this_call = my_request.get_this_call() list_of_actions = [] list_of_actions.append(Play(text_to_say="Hello.")) # the far end type will only be available if classify is enabled far_end_type = this_call.get('far_end_type', 'unknown') if far_end_type.find('answering_machine') != -1: play_action = Play(text_to_say=("This is a recorded notification message to let you know that Saint " "Custards Preparatory School will open for the spring term on 5th " "September next year. Please call " "<say-as interpret-as='digits'>443069990123</say-as> " "to let us know that you have received this message.")) list_of_actions.append(play_action) else: play_action = Play(text_to_say=("This is a notification to let you know that Saint Custards Preparatory " "School will open for the spring term on 5th September next year.")) list_of_actions.append(play_action) menu_options = [] menu_options.append(MenuOption('1',WebPage(url='ConfirmMessage'))) menu_options.append(MenuOption('2',WebPage(url='VoiceBroadcast'))) # set up a run menu action to obtain an acknowledgement or repeat the notification message my_menu = RunMenu(menu_options) my_menu.set_prompt(Play(text_to_say=("Please press 1 to confirm that you have received and understood " "this message, or press 2 to hear the message again."))) my_menu.set_on_digit_timeout_messages([Play(text_to_say="I didn't catch your entry.")]) my_menu.set_on_invalid_digit_messages([Play(text_to_say="That wasn't one of the options. Please try again.")]) list_of_actions.append(my_menu) my_response = TelephonyResponse(list_of_actions, token='my voice broadcast instance id') return my_response.get_json()
-
@app.route('/ConfirmMessage', methods=['GET','POST']) def handle_ConfirmMessage(): my_request = TelephonyRequest(request) my_token = my_request.get_token() list_of_actions = [] list_of_actions.append(Play(text_to_say="Thanks for your confirmation. Goodbye.")) my_response = TelephonyResponse(list_of_actions, my_token) return my_response.get_json()
-
@app.route('/ErrorPage', methods=['GET','POST']) def handle_ErrorPage(): my_request = TelephonyRequest(request) token = my_request.get_token() app_inst_id = my_request.get_application_instance_id() error_result_dict = my_request.get_error_result() action_string = error_result_dict.get('action', "?") result_string = error_result_dict.get('result', "?") print("ErrorPage: app_inst_id='{}' token='{}' action='{}' result='{}'".format(app_inst_id, token, action_string, result_string)) my_response = TelephonyResponse([Play(text_to_say='An error has occurred')]) return my_response.get_json()
-
@app.route('/FinalPage', methods=['GET','POST']) def handle_FinalPage(): # The FinalPage handler follows the guidelines on: # https://www.aculab.com/cloud/voice-and-fax-apis/rest-api/rest-api-version-2/rest-api-version-2/writing-a-rest-application # The guidelines are: # "Your final page should return an empty response, a 204 is preferable, but empty JSON is acceptable." my_request = TelephonyRequest(request) token = my_request.get_token() app_inst_id = my_request.get_application_instance_id() print("FinalPage: app_inst_id='{}' token='{}'".format(app_inst_id, token)) empty_json = '{}'.encode('utf-8') return empty_json
-
-
-
<?php header("Content-Type: application/json; charset=UTF-8"); require __DIR__ . "/../../autoload.php"; // set headers to prevent the page being cached by intermediaries header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past header("Content-Type: application/json; charset=UTF-8"); use \Aculab\TelephonyRestAPI\InstanceInfo; use \Aculab\TelephonyRestAPI\Response; use \Aculab\TelephonyRestAPI\Play; use \Aculab\TelephonyRestAPI\RunMenu; use \Aculab\TelephonyRestAPI\MessageList; $info = InstanceInfo::getInstanceInfo(); $endType = ''; $response = new Response(); if ($info != null) { $response->setToken($info->getToken()); $callInfo = $info->getThisCallInfo(); if ($callInfo != null) { $endType = $callInfo->getFarEndType(); } } $response->addAction(Play::sayText("Hello.")); if ($endType == 'human') { $response->addAction( Play::sayText( "This is a notification to let you know that Saint Custards Preparatory " . "School will open for the spring term on 5th September next year." ) ); // Create the menu action $menuPrompt = Play::sayText( "Please press 1 to confirm that you have " . "received and understood this message, " . "or press 2 to hear the message again." ); $menu = new RunMenu(); $menu->setPrompt($menuPrompt); $menu->addMenuOption('1', 'ConfirmMessage.php'); $menu->addMenuOption('2', 'First.php'); // Set up some new info messages for digit timeout and invalid digit $onDigitTimeoutMessages = new MessageList(); $onDigitTimeoutMessages->addMessage( Play::sayText( "I didn't catch your entry." ) ); $menu->setOnDigitTimeoutMessages($onDigitTimeoutMessages); $onInvalidDigitMessages = new MessageList(); $onInvalidDigitMessages->addMessage( Play::sayText( "That wasn't one of the options. Please try again." ) ); $menu->setOnInvalidDigitMessages($onInvalidDigitMessages); $response->addAction($menu); } elseif ($endType == 'answering_machine') { $response->addAction( Play::sayText( "This is a recorded notification message to let you know that Saint " . "Custards Preparatory School will open for the spring term on 5th " . "September next year. Please call " . "<say-as interpret-as='digits'>443069990123</say-as> " . "to let us know that you have received this message." ) ); } // else no actions, so the call will be disconnected print $response;
-
<?php header("Content-Type: application/json; charset=UTF-8"); require __DIR__ . "/../../autoload.php"; use \Aculab\TelephonyRestAPI\Play; use \Aculab\TelephonyRestAPI\Response; use \Aculab\TelephonyRestAPI\InstanceInfo; $info = InstanceInfo::getInstanceInfo(); $response = new Response(); $response->setToken($info->getToken()); $play = new Play(); $play->addText('Thanks for your confirmation. Goodbye.'); $response->addAction($play); print $response;
-
<?php header("Content-Type: application/json; charset=UTF-8"); require __DIR__ . "/../../autoload.php"; use Aculab\TelephonyRestAPI\Play; use Aculab\TelephonyRestAPI\Response; use Aculab\TelephonyRestAPI\InstanceInfo; $info = InstanceInfo::getInstanceInfo(); $error = $info->getErrorResult(); $action = $error->getAction(); $desc = $error->getResult(); if (!is_null($action)) { error_log("Error from action \"$action\" with result:" . PHP_EOL . "$desc" . PHP_EOL); } else { error_log("Error result:" . PHP_EOL . "$desc" . PHP_EOL); } $response = new Response(); $response->setToken('Error'); $play = new Play(); $play->addText('An error has occurred.'); $response->addAction($play); print $response;
-
<?php require __DIR__ . "/../../autoload.php"; http_response_code(204); header("Content-Type: application/json; charset=UTF-8"); use Aculab\TelephonyRestAPI\InstanceInfo; $info = InstanceInfo::getInstanceInfo(); $call = $info->getThisCallInfo(); $callid = $call->getCallId(); $duration = $call->getSecondsCallDuration(); error_log("This call id: $callid" . PHP_EOL . "This call duration: $duration" . PHP_EOL);
-