Developers: IVR, SMS, CRM, Dialers

Tcl/Tk IVR Interface

The Voicent Tcl/Tk IVR module contains the following functions:

Call IVR

Synopsis - callIvr

callIvr phoneno appname selfdelete gateway

Description - callIvr

Make a phone call to the specificed number and use the IVR application to interact and control the phone call.
Parameters
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'.
gateway - Installed Voicent Gateway. Defaults to 'http://localhost:8155'

Returns
reqId - The return value is the call request id.

Example - callIvr

set 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.

Call Status

Synopsis - callStatusResponse

callStatusResponse reqId responses gateway

Description - callStatus

Make a phone call to the specificed number and use the IVR application to interact and control the phone call.
Check the call status and responses of the call with <reqId>. The second parameter is a reference to an array 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 - callStatus

set status = [callStatus "11234035434" responses]

Source Code


package require http


......

proc
callIvr { phoneno appname selfdelete {gateway "http://localhost:8155"} } {
  set url "$gateway/ocall/callreqHandler.jsp"

  set plist [list info "simple text call" \
                  phoneno $phoneno \
                  firstocc 10 \
                  startapp $appname \
                  selfdelete $selfdelete]
  set param [eval ::http::formatQuery $plist]

  set token [::http::geturl $url -query $param]
  set rcstr [::http::data $token]
  ::http::cleanup $token

  return [getReqId $rcstr]
}

proc
callStatus {reqId responses {gateway "http://localhost:8155"}} {
  set url "$gateway/ocall/callstatusHandler.jsp"

  set plist [list reqid $reqId]
  set param [eval ::http::formatQuery $plist]

  set token [::http::geturl $url -query $param]
  set rcstr [::http::data $token]
  ::http::cleanup $token

  // the responses is the 9th field
    // the status is the 3rd field

  return ""
}