Scenario IVR (ivrscript)

Description

The IVR (Interactive Voice Response) script is a subroutine for automatic telephone call handling.

Served by an IVR role that acts as the second party to the dialog.
An existing call is routed to the IVR script using a CAF (featurecode) with the type "ivr", and can be transferred to the IVR script at any stage.
IVR scripts are used to organize voicemail, parking, waiting queue, pre-play, etc. The IVR can also be used for the system to make a new outbound call.

In addition to the general components available to all types of scripts, it has a number of additional components, oriented to the work with the served telephone channel: playback, transfer, etc.

Script editing is performed in the visual script editor (app scripteditor).

Limitations

  • The collection is not available in the master domain.

  • The script handler may be subject to constraints set in the parent domain for the current domain: pause between components, number of components, execution time, etc.

  • Licensed by a quantitative parameter: a license per scenario is consumed IVR.

Fields

Entity structure
{
  "id": uuid,
  "code": str,
  "name": str,
  "scriptdata": object,
  "projectid": uuid,
  "lwt": date,
  "opts": {
    "title": str,
    "comment": str,
    "loglevel": int,
    "variables": object
  },
  "ext": {
    "ct": date,
    "lwt": date
  }
}
Table 1. Fields
Specification Description

Field: id
Mode: inout
Type: uuid
Default: generated

Identifier. Can be specified at creation, otherwise generated by the system.

Field: code
Mode: in
Type: str
Default: required

Code. Used for association with other entities.

Field: name
Mode: in
Type: str
Default: required

Title

Field: scriptdata
Mode: in
Type: object
Default: required

Script content: components, variables, some other properties.
Discussed in detail in Scripts.

Field: projectid
Mode: in
Type: uuid
Default: empty

Identifier of the project to which the script belongs

Field: lwt
Mode: out
Type: date
Default: generated

(duplicate, obsolete) Time of last modification of the object

Field: opts
Mode: in
Type: object
Composite field

Field: opts.title
Mode: in
Type: str
Default: empty

Arbitrary header

Field: opts.comment
Mode: in
Type: str
Default: empty

Arbitrary comment

Field: opts.loglevel
Mode: in
Type: int
Default: 0

Scenario Logging Level (0-2).
0 – disabled, …​, 2 - maximum.
Logging is done in:

  • general log /script/erl_*.log. In any case, it only records the fact that the script handler process was started and transitions between components and scripts;

  • typed subdomain log /script/ivr@<domain>_*.log. It is intended to provide information on request through the diagnostic API to the administrator of the current domain.

    • 0 – errors;

    • 1 – warnings;

    • 2 – component and scenario transitions and some intermediate data.

Field: opts.variables
Mode: in
Type: "object"
Default: empty

Initial values of script variables.
Used by the script handler when loading the script in case the variable was not previously set by it.
In case the script is loaded in a nested way, also applies.

Field: ext
Mode: inout
Type: object
Compound field

Allows you to extend the compound with arbitrary keys and values

Field: ext.ct
Mode: out
Type: date
Default: generated

Object creation time

Field: ext.lwt
Mode: out
Type: date
Default: generated

Time of last modification of the object

See also

Logical roles

  • ivr performs call handling in scripts IVR.

  • b2b performs service on a call, one party to which is a IVR.