Follow CDYNE Blog on WordPress.com
Header Image -

Tag Archives

9 Articles

Phone Notify! Text-to-Speech Best Practices

Text-To-Speech (TTS) is a variation of speech synthesis that turns text into spoken words. CDYNE’s text-to-speech engine converts raw text to written-out words, and then assigns phonetic transcriptions to those words. The text is then read to the recipient using a computer generated voice. Text-to-speech can also be combined with recorded .wav files to create relevant call scripts according to your phone messaging web service needs.

21 views

CDYNE Phone Notify! API StatusChangePostURL

One of the great features of CDYNE Phone Notify! API is the ability to customize call logic exactly the way your business needs it. It handles complex call scripts, responds to call actions in real time, and can be programmed to deliver relevant communications exclusive to your customers or clients. For many Phone Notify! applications, it is important to know when a call is placed, the call status has changed, the call is finished, or when a call is received. The best way to automate this process is to use the StatusChangePostURL command. With a StatusChangePostURL in place, Phone Notify! will post phone call information to a URL you designate.

What information does the StatusChangePostURL command post?

Phone Notify! utilizes a command called StatusChangePostURL, which will post back information about the phone call to your server. Once you’ve created a web page to handle postbacks, the URL can be set to recieve this information automatically. The following values are posted:

  • QueueID – Contains the ID of the Call
  • ResponseCode – 1 = Call Answered, 2 or more – Call Unanswered (see all status codes here)
  • StartTime – Start time in Universal Time (UTC)
  • EndTime – End time in Universal Time (UTC)
  • Duration – Call Length in Seconds
  • machinedetection – Currently only HUMAN, MACHINE, or FAX
  • AC – Contains a status code – this is for advanced problem solving with Tech Support
  • digitsdialed – contains all the digits dialed during a call
  • incoming – contains true if the call was an incoming call
  • [Any Variables you collected] – any additional variables that you collected during the call

 

Where do I assign the StatusChangePostURL?

There are three scenarios for assigning the StatusChangePostURL command. The first is when using the Advanced methods of Phone Notify! API. You can pass it in the NotifyPhoneAdvanced and NotifyMultiplePhoneAdvanced programming operations. Each operation contains a parameter named, “StatusChangePostURL” where the URL can be input. A URL must be in lower case.

The Basic methods of Phone Notify! do not contain the “StatusChangePostURL” parameter, so an alternative is to assign the URL in the script. In this case, you can include the URL within your script by using the ~StatusChangePostURL(posturl)~ command. This should be placed at the beginning of your script.

The last scenario includes incoming phone calls. To set the URL in this case, you can log into your account online and specify a URL for each dedicated phone number assigned to your license key as shown in the image below:

For more information about CDYNE Phone Notify! API, please contact an account representative at 1-800-984-3710, inquire by email, or initiate a chat for more details.

Or sign up for a free trial license key to test CDYNE Phone Notify! API.

Developers find CDYNE Phone Notify! API integration details on the CDYNE developer’s wiki.

 

 

 

0 views

Deliver Relevant Communications to Customers and Clients

CDYNE Phone Notify! API is an automated API phone notification system that allows IT departments to build voice applications to deliver relevant communications to customers and clients.  It has the ability to send or receive up to 5,000 tier-1 quality phone calls per minute using text to speech (TTS) in multiple languages, recorded files, or both. With over 50 programming methods, you can build powerful applications that will handle complex phone scripts, send immediate or scheduled phone calls, respond to call actions in real time, and manage call lists. Phone Notify! allows programmers to send automated phone alerts, conduct phone surveys, perform conference calls, and integrate custom business applications into their existing system.

AN OVERVIEW

There are over 50 Phone Notify! programming operations available to build and integrate voice applications into your system. They can be categorized into the list shown below. Additionally, a detailed operation list by category may be found here.

  • Send and Receive Phone Calls
  • Status Report Management
  • Script Management
  • Sound File Management
  • List Management

 

TUTORIALS & SCRIPTING SAMPLES

Tutorials 1 and 2 use C# in Visual Studio 2010. You may find additional source code examples and download code examples from the Phone Notify! developer’s wiki. The script samples show advance scripting features that are available with Phone Notify! API.

Build an appointment reminder using NotifyPhoneBasic and RecordSoundViaPhoneCall methods

Integrate conference calls using NotifyPhoneAdvanced, SetIncomingCallScript, and CancelConference methods

An advanced scripting example for automated phone reminders

Additional scripting examples for a political poll, school announcement, registration confirmation, survey, and recording sound files may be found on the CDYNE developer’s wiki.

For more information about CDYNE Phone Notify! API, please contact an account representative at 1-800-984-3710, inquire by email, or initiate a chat for more details.

Or sign up for a free trial license key to test CDYNE Phone Notify! API.

Developers find CDYNE Phone Notify! API integration details on the CDYNE developer’s wiki.

1 view

Phone Notify! Programming Methods

This is a tutorial on how to program the PAV API avoid invalid or incorrect address entries.

This simple web form that was created using Visual Studio’s C# ASP.NET Web Forms Application to verify an address before completing an entry to the database.

address-input

This is how it was programmed:

 

This section of code is simply for aesthetics and will be what the end user’s see when completing the form.

Once you have created a new project within Visual Studio, you will need to add the API WSDL (http://pav3.cdyne.com/PavService.svc?wsdl) the project as a service reference. Once it has been added you would then need to include it in the very top section of the “Default.aspx.cs” page as shown below in the highlight yellow box. In our case we have named the project “VerifyAddress” and given the service reference the name of “WSDL”.

service reference

After the service reference has been added, we then navigate to the “Default.aspx” page within the project and add the necessary text boxes and button.


Now that the textboxes and button have been created, the portion of code below is added to the “Default.aspx.cs” page.  The API request code is contained within the “Submit” button click event.  All information passed along within the request with the exception of the parameter :”Urbanization” (which is used for address within Puerto Rico only) and the API license key are passed from the textboxes to the request code once an end user presses “Submit”.

After the address has been submitted, the end user would receive an alert box notating if there was an error verifying the address and if so, the error is explained and the user is asked to re-enter the address.  If no errors occur and the address verifies successfully (CDYNE ReturnCode of 100, 101, 102, or 200) the end user receives an alert box stating their order has been successfully submitted.

Once the “OK” button is pressed on the alert box, the textboxes on the form then display the text as it was shown when the page was first loaded and another address can be verified.

0 views

Conference Calling with Phone Notify! API

With over 50 programming methods, you can build powerful applications with Phone Notify! that will handle complex phone scripts, send immediate or scheduled phone calls, respond to call actions in real time, and manage call lists. One of the features included in Phone Notify! is the ability to create a conference, add a call to a conference, and cancel the conference. This tutorial will show the programming methods used along with sample call scripts.

This tutorial uses C# in Visual Studio 2010. You can find additional source code examples and download code examples from the Phone Notify! developer’s wiki.

Phone Notify! Operations Used

Step 1: Consuming Phone Notify! Web Service

  • Open a new or existing project in Visual Studio 2010
  • From the top tool bar, go to Project>Add Service Reference, which will open up the following screen:

  • Click on the Advanced button in the lower left-hand corner, which will open up another screen:

  • Click on the Add Web Reference button, which will open up a third screen:

  • Add the Phone Notify WSDL URL: http://ws.cdyne.com/NotifyWS/PhoneNotify.asmx?wsdl to the URL box, and click on the green arrow. This will pull up the Phone Notify! Web Service Description as shown in the next screen:
  • Name the web reference. In this case, we named it WSDL. Then click the Add Reference button.

Step 2: Start Conference

The following example uses the NotifyPhoneAdvanced method to receive an incoming phone call, and the SetIncomingCallScript method to set the call script which will initiate a conference call. A dedicated phone number assigned to your account license key is required to receive phone calls.

The script in the code above uses advanced Notify commands that are available with Phone Notify! API. The following list includes notes on these commands:

~statuschangepostURL(“User’s specified URL”)~
This posts information about the call to a URL you specify. Using this method is highly suggested if you have a server to postback to on the web. The posturl must be in lower case. In this instance, when an inbound call is placed a conference key is posted to the URL specified here.

~ActOnDigitPress(false)~
Turns off Message Interruption for digit commands (i.e., 1 for repeat). This is useful for a message that, for example, says “enter your zip code” and it won’t jump around in the Dial Plan when the digits are pressed.

~ClearDTMF()~
Provides a clean slate for Acting on DTMF Commands. This will clear the default of “press 1 to repeat.”

~Label(MainMenu)~
Sets the label, “MainMenu,” which states in TTS “Thank you for calling CDYNE Corporation. Please choose a selection from one of the following options.”

~AssignDTMF(1|Join)~
Assigns 1 on the dial pad to go to the label “Join.” In this script, the star (*) is subsequently assigned to the label “MainMenu” and the pound sign (#) is assigned to go to the label “EndCall.”

~WaitForDTMF(5)~
This function will wait 5 seconds for a DTMF Command ( it accepts only one digit). Make sure that ActOnDigitPress(true) is set (It is true by default).

~Goto(MainMenu)~
This will go to a label defined by the Label command. In this instance, if the recipient does not press a designated digit within 5 seconds, the Goto command instructs the script to go to the MainMenu.

~Label(Join)~
Sets the label, “Join,” which states in TTS “Please wait while you are connected to the conference call.”

~Conference()~
Provides a way to conference multiple Notifies together. The first Notify that uses the conference command will return a ConfKey variable (you must use StatusChangePostURL to get it). You can then start other Notifies with the same ConfKey to join the person to the same room using the ~SetVar(ConfKey|the confkey guid)~ command.

~Label(Unavailable)~
Sets the label, “Unavailable,” which states in TTS “We’re sorry no one is available at this time.”

~Label(EndCall)~
Sets the label, “EndCall,” which will end the call.

Step 3: Add a Caller to Conference

In the example below, an outbound call to an operator or representative is initiated to let them know that the caller in Step 2 is in queue. This is done with the NotifyPhoneAdvanced method. If the operator or representative accepts the call, both calls will be joined in a conference.

~SetVar(ConfKey|”Conference Key”)~
The conference key is placed here. In most cases the servers handling the process will know to grab the conference key generated and posted to the URL during the phone call in Step 2.

Step 4: Cancel Conference

The CancelConference operation cancels the conference if the inbound call (from Step 2) is not accepted by the operator or representative in Step3. It will play the message, “We’re sorry no one is available at this time.” This is specified in Step 2 to play in the event the conference is cancelled.

For more information about CDYNE Phone Notify! API, please contact an account representative at 1-800-984-3710, inquire by email, or initiate a chat for more details.

Or sign up for a free trial license key to test CDYNE Phone Notify! API.

Developers find CDYNE Phone Notify! API integration details on the CDYNE developer’s wiki.

11 views

Building an Appointment Reminder with CDYNE Phone Notify! Web Service

Phone Notify! Web Service supports 50 operations to build customizable and scalable voice applications. It’s designed to enable any business application to send or receive up to 5,000 tier-1 quality phone calls per minute using text to speech, recorded files, or both. This article will take a look at 2 operations to build a basic voice application that will use text to speech and a recorded sound file to send out an appointment reminder.

This tutorial uses  C# in Visual Studio 2010. You can find additional source code examples and download code examples from the Phone Notify! developer’s wiki.

Phone Notify! Operations Used

Step 1: Consuming Phone Notify! Web Service

  • Open a new or existing project in Visual Studio 2010
  • From the top tool bar, go to Project>Add Service Reference, which will open up the following screen:

  • Click on the Advanced button in the lower left-hand corner, which will open up another screen:

  • Click on the Add Web Reference button, which will open up a third screen:

  • Add the Phone Notify WSDL URL: http://ws.cdyne.com/NotifyWS/PhoneNotify.asmx?wsdl to the URL box, and click on the green arrow. This will pull up the Phone Notify! Web Service Description as shown in the next screen:
  • Name the web reference. In this case, we named it WSDL. Then click the Add Reference button.

Step 2: Setting Up a Basic Notify

The example below shows the code used to send a Basic Notify using the NotifyPhoneBasic method.

A few notes about using the NotifyPhoneBasic method:

  • This method will call any phone number in the US/Canada and read the TextToSay to that phone number
  • PhoneNumberToDial and CallerID must be filled in (they can be in any format as long as there is 10 digits)

When the program below is run with a license key, CDYNE Corporation will call 3215554757 with a text to speech message stating, “John Williams has an appointment with Dr. Smith on Tuesday, May 13 at 3pm.” The strings written in red in the screenshot is made up of the following components:

  • Phone number to dial – “3215554757”
  • Script –  “John Williams has an appointment with Dr. Smith on Tuesday, May 13 at 3pm.”
  • Caller ID – “7575449510”
  • Caller ID Name – “CDYNE Corporation.”
  • Voice ID – “4”
  • License Key – this is required to send or receive phone calls with Phone Notify! Web Service.

This notify uses voice ID 4, named Callie, and represents a US English female voice, age 30.You can invoke all voices available with Phone Notify! with the getVoices method. You may also listen to the voices at http://cepstral.com/demos/. Please note that the Cepstral website may contain voices not currently available with the Phone Notify! Web Service.

WSDL.PhoneNotify pn = new WSDL.PhoneNotify();

WSDL.NotifyReturn nr = pn.NotifyPhoneBasic(“3215554757”,

“John Williams has an appointment with Dr. Smith on Tuesday, May 13 at 3pm.”,

“17575449510”, “CDYNE Corporation”, “4”, “LicenseKey”);

Step 3: Request a Phone Call to Record a Sound File

One way to make automated phone reminders more personal is to use a recorded voice. Although text to speech can be very useful in some applications, it is a mechanical and impersonal sounding messaging tool for some customer interactions. In this step, we will use the RecordSoundViaPhoneCall method to call a designated phone number and record a sound file. The sound file recording states, “has an appointment with Dr. Smith on,” and leaves out the customer’s name, and the date and time of the appointment. These three values will remain as text to speech when we put the script together in Step 4.

A few notes about the RecordSoundViaPhoneCall method:

  • SoundfileIDs can only be lowercase and contain normal file characters
  • The CallerIDName will be the SoundFileID
  • The CallerID will be an 800 or 866 number

When this program is run with a license key, the phone number designated in the code (3215554757) will receive a phone call with instructions to record sound file “smith1.” Once recorded, the file will play back and the user has the option to accept or rerecord the message. We’ll access this file in the next step.

WSDL.PhoneNotify pn = new WSDL.PhoneNotify();

WSDL.RecordSoundViaPhoneCall(“3215554757”, “smith1”, “LicenseKey”);

Step 4: Putting Together the Script

In the final step, we’ll use the NotifyPhoneBasic method to combine the text to speech and recorded file, which we named smith1.

When the program below is run with a license key, CDYNE Corporation will call 3215554757 with a recorded message combined with text to speech variables. The variables include, “John Williams” and “Tuesday, May 13 at 3pm.”

WSDL.PhoneNotify pn = new WSDL.PhoneNotify();

WSDL.NotifyReturn nr = WSDL.NotifyPhoneBasic(“3215554757”,

“John Williams ~^smith1~ Tuesday, May 13 at 3pm.”,

“17575449510”, “CDYNE Corporation”, “4”, ” LicenseKey”);

For more information about CDYNE Phone Notify! API, please contact an account representative at 1-800-984-3710, inquire by email, or initiate a chat for more details.

Or sign up for a free trial license key to test CDYNE Phone Notify! API.

Developers find CDYNE Phone Notify! API integration details on the CDYNE developer’s wiki.

0 views