- Created by Vitalii Kovalyshyn, last modified by Daniil Lohvinov on Sept 30, 2021
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 6 Next »
Операторы
if
Оператор if управляет условным ветвлением.
{ "if": { "expression": "${myVar} == '1'", "then": [], "else": [] } }
switch
Операторы switch и case помогают управлять сложными условными операциями и операциями ветвления.
{ "switch": { "variable": "${getIvrDigit}", "case": { "1": [], "2": [], "3": [], "default": [] } } }
Триггеры
disconnected
Выполняет набор приложений после завершение основного скрипта. Объявляется единожды вначале скрипта.
{ "trigger": { "disconnected": [] } }
Функции
function
Объединить набор приложений в именную функцию. Объявляется вначале скрипта.
{ "function": { "name": "myFunction", "actions": [] } }
execute
Выполнение предварительно объявленной функции по имени.
{ "execute": { "name": "myFunction" } }
Переменные
set
Назначение переменных на канал.
{ "set": { "hangup_after_bridge": "true", "ivrLang": "en" } }
export
Экспорт переменных на сторону оператора, а так же, в статистику.
{ "export": [ "reverted_caller_id_number" ] },
unSet
Разустанавливает переменную.
{ "unSet": [ "reverted_caller_id_number" ] }
Служебные приложения
calendar
Приложение позволяет проверить текущее время с рабочем календарем. Значение сохраняется в переменную.
{ "calendar": { "extended": false, "name": "WorkDay", "setVar": "isWorkDay" } }
httpRequest
Выполнение HTTP REST запроса и обработка результата (get JSON)
{ "httpRequest": { "url": "https://sales.bpmonline.com/${id}/dataservice/json/reply/SelectQuery", "method": "POST", "timeout": 1000, "insecureSkipVerify": false, "parser": "application/json", "responseCode": "http_response_code", "headers": { "Content-Type":"application/json", "Cookie": "${my_cookie}" }, "path": { "id": 0 }, "data": { "Name": "Supervisor", "UserID": "Supervisor" }, "exportVariables": { "effective_caller_id_name": "callerIdName", "owner_caller_id_number": "callerIdOwner" } } }
js
Выполнение произвольного JavaScript кода с возвращением результата в переменную
{ "js": { "data": "var time = LocalDate(); time.setDate(time.getDate() + (+${dpd}*-1)); return time.getMonth() + '-' + time.getDate() + '-' + time.getFullYear()", "setVar": "myVar" } }
math
Приложение для работы с математическими функциями
{ "math": { "data": "${caller_id_array}", "setVar": "new_random_caller_id", "fn": "random" } }
fn
random
: returns a random number from arraymin
andmax
: can be used to find the lowest or highest value in a list of argumentsround
: rounds a number to the nearest integerceil
: rounds a number up to the nearest integerfloor
: rounds a number down to the nearest integer
string
Приложение для работы со строкой.
{ "string": { "data": "${caller_id_number}", "fn": "replace", "setVar": "reverted_caller_id_number", "args": [ "/^0/", "+84" ], } }
fn
length
: returns the length of a stringindexOf
andlastIndexOf
: returns the index of (the position of) the first or last occurrence of a specified text in a stringsearch
: searches a string for a specified value and returns the position of the matchslice
: extracts a part of a string and returns the extracted part in a new stringsubstring
: is similar to slice. The difference is thatsubstring
cannot accept negative indexes.substr
: is similar to slice. The difference is that the second parameter specifies the length of the extracted part.replace
: replaces a specified value with another value in a stringtoUpperCase
ortoLowerCase
: A string is converted to upper case or to lower casecharAt
: returns the character at a specified index (position) in a stringcharCodeAt
: returns the unicode of the character at a specified index in a stringsplit
: A string can be converted to an array with thesplit
functionreverse
: Reverse the provided stringbase64
: base64 encoder / decoderMD5
: Computes a digest from a string usingMD5
algorithmSHA-256
: Computes a digest from a string usingSHA-256
algorithmSHA-512
: Computes a digest from a string usingSHA-512
algorithm
markIVR
Позволяет сохранить массив значений в переменную, которая будет доступна в истории
{ "markIVR": { "name": "Log", "value": "Входящий звонок" } }
userInfo
Приложение позволяет получить значение из объекта пользователя по номеру телефона
{ "userInfo": { "set": { "usrId": "id", "mob": "variables.fwd_mob", "out": "variables.out_cid" }, "user": { "extension": "${ext}" } } }
setGrantee
Передать права на канал пользователю с идентификатором указанным в id
{ "setGrantee": { "id": 10 } }
schema
Выполнить внешнюю схему по идентификатору
{ "schema": { "id": 1 } }
softSleep
Пауза выполнения скрипта в миллисекундах
{ "softSleep": 1000 }
sql
Приложение доступно исключительно для выделенных либо собственных серверов Webitel, позволяет выполнить запрос в базу данных и вернуть результат в переменную
[ { "sql": { "dns": "admin:123Webitel4@tcp(database-1.cluster-cnvuzqnsxvyv.eu-central-1.rds.amazonaws.com:3306)/mysql", "driver": "mysql", "params": [ "db" ], "query": "select 1 as tst_number, true as tst_bool, table_name, last_update from mysql.innodb_index_stats where table_name = ? order by rand() limit 1" } }, { "sql": { "dns": "user=webitel password=webitel host=10.9.8.111 dbname=webitel sslmode=disable", "driver": "postgres", "params": [ 12 ], "query": "select user_id from call_center.cc_agent where id = $1", "timeout": 5000 } } ]
log
Вывод дополнительной информации в лог файл приложений
{ "log": " >> ${Hold} <<<" }
goto
Перейти к именной метке
{ "goto": "tagName" }
Параметры приложений
Данные приложения могут вызываться как самостоятельно, так и как параметр другого приложения.
tag
Установить именную метку в скрипте
{ "tag": "tagName" }
async
Выполнение приложения без блокировки
{ "async": true }
break
Прерывает выполнение скрипта
{ "break": true }
limit
Позволяет прерывать цикл после прохождения количества указанного в атрибуте max. Выход осуществляется в именную метку указанною в атрибуте failover.
{ "limit": { "max": 5, "failover": "anotherTag" } }
Общие приложения
- No labels