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.
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.
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.
Provides a clean slate for Acting on DTMF Commands. This will clear the default of “press 1 to repeat.”
Sets the label, “MainMenu,” which states in TTS “Thank you for calling CDYNE Corporation. Please choose a selection from one of the following options.”
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.”
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).
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.
Sets the label, “Join,” which states in TTS “Please wait while you are connected to the conference call.”
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.
Sets the label, “Unavailable,” which states in TTS “We’re sorry no one is available at this time.”
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.
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.