Voicent Gateway SDK Reference Table of Content << Previous >> Next

Voicent Gateway C# Simple Interface For IVR Applications

In addition to the basic Voicent C# Simple Interface class, the extended API contains the following functions.

The C# interface source code is included at the end of this section.


SYNOPSIS

string CallIvr(string phoneno, string appname, bool selfdelete)

DESCRIPTION

Make a phone call to the specified number and use the IVR application to interact and control the phone call.
 
The options are:
 
phoneno The phone number to call
appname The name of the deployed IVR application
selfdelete Ask the gateway to automatically delete the call request after the call is made if it is set to '1'

The return value is the call request id <reqId>.

EXAMPLE

string reqId = CallIvr("123-4567", "reminderApp", 0);
 
Make a call to phone number '123-4567' and use 'reminderApp' on the gateway for call interaction. You can use CallStatus to get the call status and responses, or use CallRemove to remove the call record.
 

SYNOPSIS

string CallStatus(string reqId, Dictionary<string, string> responses)

DESCRIPTION

Check the call status and responses of the call with reqId. The second parameter is a reference to a dictionary and is used to collect responses. So if you have an element named AttendMeeting, the response can be accessed as responses["AttendMeeting"]. Please note that you can have multiple IVR elements that collect responses.

EXAMPLE

string status = CallStatus("11234035434", responses);
 

Source Code

Voicent class that contains additional API for interfacing with IVR Studio.

----------------
File Voicent.cs:
----------------
using System;
using System.Net;
using System.IO;


namespace Voicent
{
  ...
  public class
Voicent
  {
    ...


    public string
CallIvr(string phoneno, string appname, bool selfdelete)
    {
      // call request url
      string urlstr = "/ocall/callreqHandler.jsp";

      // setting the http post string
      string poststr = "info=Simple Text Call " + phoneno;

      poststr += "&phoneno=" + phoneno;
      poststr += "&firstocc=10";
      poststr += "&selfdelete=";
      poststr += (selfdelete ? "1" : "0");

      poststr += "&startapp=" + appname;

      // Send Call Request
      String rcstr = PostToGateway(urlstr, poststr);
      return GetRequestID(rcstr);
    }

    public string
CallStatus(string reqID, Dictionary<string, string> responses)
    {
      // call status url
      string urlstr = "/ocall/callstatusHandler.jsp";
      string poststr = "reqid=" + reqID;

      // Send Call Request
      string rcstr = PostToGateway(urlstr, poststr);
      string[] rcarr = rcstr.Split("^");
     
      // call responses is the 9th field
      string[] resparr = rcarr[8].Split("|");
      for (int i = 0; i < resparr.length; i++) {
          // each is a name value pair
          string[] nvarr = resparr[i].Split("=");
          $responses.Add(nvarr[0], nvarr[1]);
      }

      // call status is the 3rd field
      return rcarr[2];

    }

    ...
  }
}
 

Developer Network Table of Content << Previous >> Next