IVR Webhook User Guide

Introduction

IVR Webhook is a feature designed to notify a system of the call events done on the IVR. This feature supports initiating calls through the IVR webhooks.

IVR Webhook IPPBX Configuration

IVR Webhook Configuration
  • IVR Webhook: Enable IVR Webhook.
  • Target URL: Configure the URL of the server to post the events to. This field is required.
  • Username: Configure the authentication username. This field is optional.
  • Password: Configure the authentication password. This field is optional.
  • Call Event: Select the events to notify about.
  • Call Control: Enable call control.

IVR Webhook Interface

Optional webhook trigger times (3 tentatively planned)

  • When IVR calls in
  • When DTMF is triggered
  • When IVR ends

IVR Process Description

  • Triggered when IVR is enabled, an InComingCall request is pushed when IVR is triggered. If not enabled, the configured IVR process is followed.
  • Enables DTMF triggering. When a button is pressed, a SendDTMF request is pushed. If not enabled, the configured IVR process is followed.
  • When enabled, a CallEnd request is sent when the IVR call ends. If disabled, no action is taken.
  • After sending the corresponding HTTP/HTTPS (POST only) request, wait for the HTTP server to respond (based on the body carried in the 200 OK response).
  • When the status in the received response body is 0, execute the corresponding operation according to the action directive carried in the response. After completion, proceed to the next operation.
  • Received operation instructions will only take effect after call control is enabled. Processing is performed after each HTTP response.

Webhook process

Supported Commands

Notification instructions sent

  • callIncoming: notification indicates an incoming call.
  • callAnswer: notifies you that the call has been answered.
  • callDTMF: to notify DTMF events
  • callEnd: notifies the call has ended.

Received operation instructions

  • play: plays the specified prompt sound
  • playAndRead: plays the specified prompt tone and waits for DTMF.
  • makeCall: calls a specified extension.
  • hangup: disconnects the current call

Corresponding Sending Instruction Description

Description of Request Fields

The main instructions are distinguished by action and event, and the corresponding information is contained in the eventBody.
callInfo contains detailed information about the call. deviceInfo contains information about the current device.

Sending the operation command callIncoming

The following is a reference request:

{
#Request type
"action":"callNotify",
"event":"callIncoming",
#Details of this call
"callInfo": {
#session ID
"session": "1553593780808410-6002",
#Channel identifier
"uniqueid": "1553593780.0",
#Caller Name
"caller_name": "6002",
#Caller's Number
"caller_num":"6002",
#Dial Type
"action_type": "IVR[7000]",
#Original name
"src_trunk_name" : "",
#Target relay name
"dst_trunk_name" : "",
#Dialing Time
"duration": "5",
#Call duration
"billsec" : "5",
#Start Time
"start": "2019-03-26 17:49:40",
#End Time
"end": "2019-03-26 17:49:45",
},
#The current device information allows users to distinguish between devices.
"deviceInfo" : {
"deviceMac" : "C0:74:AD:99:99:00"
}
#Description information of the current request
"description": "incoming IVR call"
}

Sending the operation command callDTMF

{
#Request type
"action":"callNotify",
"event":"callDTMF",
"eventBody":"1",
"clientActionID": "ClientID",
#Details of this call
"callInfo": {
#session ID
"session": "1553593780808410-6002",
#Channel identifier
"uniqueid": "1553593780.0",
#Caller Name
"caller_name": "6002",
#Caller's Number
"caller_num":"6002",
#Dial Type
"action_type": "IVR[7000]",
#Original name
"src_trunk_name" : "",
#Target relay name
"dst_trunk_name" : "",
#Dialing Time
"duration": "5",
#Call duration
"billsec" : "5",
#Start Time
"start": "2019-03-26 17:49:40",
#End Time
"end": "2019-03-26 17:49:45",
},
#The current device information allows users to distinguish between devices.
"deviceInfo" : {
"deviceMac" : "C0:74:AD:99:99:00"
}
#Description information of the current request
"description": "Action request of a call"
}

Send the command callAnswer

{
#Request type
"action":"callNotify",
"event":"callAnswer",
#Details of this call
"callInfo": {
#session ID
"session": "1553593780808410-6002",
#Channel identifier
"uniqueid": "1553593780.0",
#Caller Name
"caller_name": "6002",
#Caller's Number
"caller_num":"6002",
#Dial Type
"action_type": "IVR[7000]",
#Original name
"src_trunk_name" : "",
#Target relay name
"dst_trunk_name" : "",
#Dialing Time
"duration": "5",
#Call duration
"billsec" : "5",
#Start Time
"start": "2019-03-26 17:49:40",
#End Time
"end": "2019-03-26 17:49:45",
},
#The current device information allows users to distinguish between devices.
"deviceInfo" : {
"deviceMac" : "C0:74:AD:99:99:00"
}
#Description information of the current request
"description": "answer a IVR call"
}

Sending the instruction callEnd

    {
#Request type
"action":"callNotify",
"event":"callEnd",
"clientActionID": "ClientID",
#Details of this call
"callInfo": {
#session ID
"session": "1553593780808410-6002",
#Channel identifier
"uniqueid": "1553593780.0",
#Caller Name
"caller_name": "6002",
#Caller's Number
"caller_num":"6002",
#Dial Type
"action_type": "IVR[7000]",
#Original name
"src_trunk_name" : "",
#Target relay name
"dst_trunk_name" : "",
#Dialing Time
"duration": "5",
#Call duration
"billsec" : "5",
#Start Time
"start": "2019-03-26 17:49:40",
#End Time
"end": "2019-03-26 17:49:45",
},
#The current device information allows users to distinguish between devices.
"deviceInfo" : {
"deviceMac" : "C0:74:AD:99:99:00"
}
#Description information of the current request
"description": "Action request of a call"
}

Instruction for receiving instructions

Currently, only the responses to startCall and sendDTMF are processed. The combineAction is only processed when the response status is 0.
After the callEnd event, only the play operation command is received.
The combineAction function can support carrying multiple actions simultaneously.

Play the specified prompt sound command play

{
    "action" : "play",
"fileName":"" # You need to upload the notification sound in advance
    "description": "play a voice"
}

Specifying the call command makeCall

{
"action": "makeCall",
#Destination type, defaults to internal extension without a specified destination; the selectable range is consistent with the destination options for basic IVR buttons. Custom Prompt destination suggests users use play request.
"DestType": "extension", #options: Multimedia Meeting/ Voicemail/Voicemail Group/IVR/Ring Group/Queues/ "Paging/Intercom Group" /Fax / Disa / Dial By Name / External Number/ Callback/Announcement
"DestNumber": "1000", # The value corresponding to the destination, consistent with the destination specified in the IVR basic button.
"description": "make a call to 1000"
}

Optional Destination Type (Default: extension)

Description

extension

Extension number

Multimedia Meeting

Multimedia meeting room

Voicemail

Voicemail

Voicemail Group

Voicemail group

IVR

IVR

Ring Group

Ring group

Tails

Queue

Paging/Intercom Group

Paging/Intercom Group

Fax

Fax

DISA

DISA

Dial By Name

Dial by name

External Number

External Number

Callback

Callback

Announcement

Announcement

Play and wait for a new DTMF command: playAndRead

{
"action" : "playAndRead",
"fileName":""#A notification sound needs to be uploaded in advance"
"description": "play a voice and wait a dtmf"
}

Hang up the current call command

{
    "action" : "hangup ",
    "description": "hangup call"
}

Refer to HTTP Response

Single request
{
# If status is non-zero, it is considered an exception, and no further action will be processed.
    "status" : 0,
#The actionID of the current operation. This is not included by default. The platform sends this, and subsequent requests will include it to help the platform distinguish between different operations.
    ”clientActionID“ : “ClientID”,
    {
    "action" : "play",
"fileName":"" #Optional,
    "description": "play a voice"
    }
}
Combined request
{
# If status is non-zero, it is considered an exception, and no further action will be processed.
    "status" : 0,
#The actionID of the current operation. This is not included by default. The platform sends this, and subsequent requests will include it to help the platform distinguish between operations.
    ”clientActionID“ : “ClientID”,
#combineAction is a set of operation commands, which can include multiple operation commands simultaneously.
    "combineAction" : [
        {
            "action" : "play",
"fileName":"" #Optional,
            "description": "play a voice"
        },
        {
            "action" : "makeCall",
#Destination type, without a specified option, defaults to internal extension.
            "DestType" : "extension", // extension, voicemail,ringgroup,queue,external_number
            "DestNumber" : "1000",
            "description": "make a call to 1000"
        },
        {
            "action" : "playAndRead",
"fileName":"" #Optional,
            "description": "play a voice and wait a dtmf"
        },
        {
            "action" : "hangup ",
            "description": "hangup call"
        }
    ]
}

Supported Devices

Product Series

Minimum Firmware Version

UCM6300 Series

1.0.29.11

UCM6300 Audio Series

1.0.29.11

Was this article helpful?

Need Support?
Can’t find the answer you’re looking for? Don’t worry we’re here to help!
Contact Support