Функции сценариев
Каталог функций
| Не все функции доступны в каждом Продукте. | 
| Ниже приведен полный список функций системы по всем Продуктам. | 
Математические функции
| Функция | Параметры | Описание | 
|---|---|---|
| abs | num | Абсолютное значение числа | 
| acos | num | Арккосинус числа | 
| asin | num | Арксинус числа | 
| atan | num | Арктангенс числа | 
| atan2 | num, num | Арктангенс частного двух чисел | 
| ceil | num | Ближайшее сверху целое число | 
| cos | num | Косинус числа | 
| cosh | num | Гиперболический косинус числа | 
| erf | num | Функция ошибки (интеграл вероятности) | 
| erfc | num | Дополнительная функция ошибок | 
| exp | num | Экспонента числа | 
| floor | num | Ближайшее снизу целое число | 
| lg | num | Десятичный логарифм числа | 
| ln | num | Натуральный логарифм числа | 
| log | num, num | Логарифм одного числа по основанию другого | 
| log10 | num | Десятичный логарифм числа | 
| log2 | num | Двоичный логарифм числа | 
| max | num, num | Максимальное из двух чисел | 
| min | num, num | Минимальное из двух чисел | 
| pow | num, num | Результат возведения одного числа в степень другого | 
| random | Случайное десятичное число от 0 до 1 | |
| random | int | Случайное целое число от 0 до указанного целого числа | 
| random | int, int | Случайное целое число в диапазоне между двумя целыми числами | 
| round | num | Результат округления числа до целого | 
| sin | num | Синус числа | 
| sinh | num | Гиперболический синус числа | 
| sqr | num | Квадрат числа | 
| sqrt | num | Квадратный корень числа | 
| tan | num | Тангенс числа | 
| tanh | num | Гиперболический тангенс числа | 
| trunc | num | Результат отбрасывания дробной части числа | 
Строковые функции
| Функция | Параметры | Описание | 
|---|---|---|
| concat | str,str | Возвращает результат сцепления двух строк. | 
| equal | str,str | Результат сравнения двух строк: 0 или 1 | 
| indexof | str,str,int | Возвращает индекс позиции первого вхождения подстроки (п2) в строку (п1), начиная с указанной позиции (п3). Возвращает 0, если вхождений не обнаружено. | 
| left | str,int | Возвращает левую часть строки не более чем указанной длины. | 
| len | str | Возвращает длину строки в символах. | 
| lower | str | Возвращает строку в нижнем регистре. | 
| modify_json | str,json,json | Возвращает измененную json-структуру. Подробнее в Функция modify json | 
| newid | Возвращает сгенерированный UUID-идентификатор. | |
| regexreplace | str,str,str | Возвращает результат замены с помощью регулярного выражения. п1 - значение, п2 - паттерн, п3 - замена. | 
| regexreplaceg | str,str,str | Возвращает результат замены с помощью регулярного выражения с опцией global. п1 - значение, п2 - паттерн, п3 - замена. | 
| remove | str,int | Возвращает строку после удаления из нее подстроки с указанной позиции (п2) до конца. | 
| remove | str,int,int | Возвращает строку после удаления из нее подстроки с указанной позиции (п2) указанной длины (п3). | 
| replace | str,str,str | Возвращает результат замены в строке (п1) вхождения (п2) на значение (п3). | 
| reverse | str | Возвращает перевернутую строку. | 
| right | str,int | Возвращает правую часть строки не более чем указанной длины. | 
| rstr | str,str | Возвращает индекс позиции последнего вхождения подстроки (п2) в строку (п1). Возвращает 0, если вхождений не обнаружено. | 
| str | str,str | Возвращает индекс позиции первого вхождения подстроки (п2) в строку (п1). Возвращает 0, если вхождений не обнаружено. | 
| substr | str,int | Возвращает подстроку с указанной позиции (п2) до конца. | 
| substr | str,int,int | Возвращает подстроку с указанной позиции (п2) не более чем указанной длины (п3). | 
| trim | str | Возвращает строку, избавленную от пустых символов в начале и в конце (пробел, табуляция и т.д.). | 
| trimend | str | Возвращает строку, избавленную от пустых символов в конце (пробел, табуляция и т.д.). | 
| trimstart | str | Возвращает строку, избавленную от пустых символов в начале (пробел, табуляция и т.д.). | 
| upper | str | Возвращает строку в верхнем регистре. | 
Функции по работе с датами/временем
| Функция | Параметры | Описание | 
|---|---|---|
| date | Возвращает текущую дату в локальном часовом поясе сервера без указания часового пояса. Формат YYYY-MM-DD. | |
| date | dt | Возвращает дату из указанной даты/времени. | 
| dateadd | atom,int,dt | Возвращает дату после добавления указанного количества (п2) указанных единиц времени (п1) к указанной дате/времени (п3). Параметр указывается в виде атома (не строки), например,  Возможные виды единиц по убыванию: yy, yyyy, q, qq, m, mm, ww, wk, d, dd, h, hh, mi, n, s, ss, ms | 
| datediff | atom,dt,dt | Возвращает число указанных единиц времени между двумя датами. Параметр указывается в виде атома (не строки), например,  Возможные виды единиц по убыванию: yy, yyyy, q, qq, m, mm, ww, wk, d, dd, h, hh, mi, n, s, ss, ms | 
| dateformat | str, dt | Возвращает строку с представление даты (п2) по указанному формату (п1). Например, yyyy-MM-dd. Возможные значения форматирующей строки: yyyy, yy, MM, d, dd, h, HH, MMM, mm, ss, ffff, fff, ff, f, zzz. | 
| datetime | int,int,int | Возвращает дату/время на основе переданных п1 - года, п2 - месяца, п3 - дня. | 
| datetime | int,int,int,int,int | Возвращает дату/время на основе переданных п1 - года, п2 - месяца, п3 - дня, п4 - часа, п5 - минуты. | 
| datetime | int,int,int,int,int,int | Возвращает дату/время на основе переданных п1 - года, п2 - месяца, п3 - дня, п4 - часа, п5 - минуты, п6 - секунды. | 
| datetime | int,int,int,int,int,int,int | Возвращает дату/время на основе переданных п1 - года, п2 - месяца, п3 - дня, п4 - часа, п5 - минуты, п6 - секунды, п7 - миллисекунды. | 
| datetime | str | Возвращает дату/время, сформированную по строке. Строка может содержать различные представления даты/времени, в том числе и RFC3339. | 
| datetimelocal | dt | Возвращает дату/время приведенную к локальному часовому поясу сервера. Числовые значения даты/времени не изменяются, однако абсолютная точка времени может быть сдвинута после изменения тайм-зоны на локальную. | 
| datetimeutc | dt | Возвращает дату/время приведенную к UTC. Числовые значения даты/времени не изменяются, однако абсолютная точка времени может быть сдвинута после изменения тайм-зоны на нулевую. | 
| day | dt | Возвращает текущий день (1-31) указанной даты/времени. | 
| dayofweek | dt | Возвращает номер дня недели (1-7) для указанной даты/времени. | 
| dayofyear | dt | Возвращает номер дня в году для указанной даты/времени. | 
| hour | dt | Возвращает текущий час (0-23) указанной даты/времени. | 
| isleapyear | int | Возвращает true, если указанная дата/время представляет високосный год. | 
| localtoutc | dt | Возвращает UTC дату/время для указанной даты/времени, рассматриваемой в локальном часовом поясе сервера. | 
| millisecond | dt | Возвращает текущую миллисекунду (0-999) указанной даты/времени. | 
| minute | dt | Возвращает текущую минуту (0-59) указанной даты/времени. | 
| month | dt | Возвращает текущий месяц (1-12) указанной даты/времени. | 
| now | Возвращает текущую дату и время в локальном часовом поясе сервера в формате RFC3339. Например, 2019-10-06T16:43:30.46+03:00. | |
| nowgregsecond | Возвращает количество секунд по грегорианскому календарю, с 0 года н.э. | |
| nowtick | Возвращает число, представляющее абсолютное значение в миллисекундах с 01.01.1970 года до текущего времени сервера. | |
| nowutc | Возвращает текущую дату и время в UTC в формате RFC3339. | |
| second | dt | Возвращает текущую секунду (0-59) указанной даты/времени. | 
| ticktolocal | int | Возвращает дату в локальном часовом поясе сервера по абсолютному значению tick. | 
| ticktoutc | int | Возвращает дату в UTC по абсолютному значению tick. | 
| time | Возвращает текущее время в локальном часовом поясе сервера без указания часового пояса. Формат HH:mm:ss.fff. | |
| time | dt | Возвращает время из указанной даты/времени. | 
| utctolocal | dt | Возвращает локальную дату/время для указанной даты/времени, рассматриваемой как UTC. | 
| valid_date | dt | Возвращает true, если указанная строка содержит корректную дату/время, иначе false. | 
| weekofyear | dt | Возвращает номер недели в году для указанной даты/времени. | 
| year | dt | Возвращает текущий год указанной даты/времени. | 
Функции преобразования
| Функция | Параметры | Описание | 
|---|---|---|
| base64decode | str | Возвращает строку, полученную в результате распаковки из Base-64 представления. | 
| base64encode | str | Возвращает строку, полученную в результате упаковки в Base64 представление. | 
| char | str | Возвращает строку с одним символом по его числовому коду. | 
| dechex | int | Возвращает строку с HEX-представлением числа. | 
| escape | str | Возвращает строку, полученную в результате преобразования к escape-последовательности. Применяется для вставки в JSON. | 
| hexdec | str | Возвращает число на основе его HEX-представления. | 
| htmldecode | str | Возвращает строку, раскодированную c помощью Unicode Hex Character Code | 
| htmlencode | str | Возвращает строку, закодированную c помощью Unicode Hex Character Code. | 
| ifelse | bool,any,any | Если значение первого параметра true, то возвращает п2, иначе возвращает п3. | 
| num | str | Преобразует строку к числу. При неудаче завершается с ошибкой. | 
| numval | str | Преобразует строку к числу, отрезая с конца неподходящие символы. В пределе возвращает 0. | 
| str | int | Преобразует числовое значение к строке. | 
| translit | str | Возвращает результат транслитерации строки. | 
| unescape | str | Возвращает строку, полученную в результате распаковки из escape-последовательности. Применяется для очистки после JSON. | 
| urldecode | str | Возвращает строку, раскодированную с помощью UrlEncode. | 
| urlencode | str | Возвращает строку, закодированную с помощью UrlEncode. | 
Хеш-суммы
| Функция | Параметры | Описание | 
|---|---|---|
| adler32 | any | Хеш от любого значения по алгоритму Adler-32. | 
| adler32 | num,any | Новое значение хеша от предыдущего значения, скомбинированного с новой порцией. п1 - предыдущее значение хеша, п2 - новая порция данных. По алгоритму Adler-32. | 
| crc32 | any | Хеш от любого значения по алгоритму CRC32 (IEEE 802.3). | 
| crc32 | num,any | Новое значение хеша от предыдущего значения, скомбинированного с новой порцией. п1 - предыдущее значение хеша, п2 - новая порция данных. По алгоритму CRC32 (IEEE 802.3). | 
| md5 | str | Хеш от строки по алгоритму MD5. | 
| phash2 | any | Хеш-сумму от любого значения по внутреннему алгоритму. | 
Функции по работе с файловыми путями
| Функция | Параметры | Описание | 
|---|---|---|
| filedir | str | Возвращает название каталога. Для пути к файлу - это имя каталога, для пути к каталогу - это название родительского каталога. | 
| fileext | str | Возвращает расширение файла, выделенное из указанного пути. | 
| filename | str | Возвращает имя файла, выделенное из указанного пути. | 
| gs_domain | Возвращает :GLOBALSHARE_DOMAIN_DATA - префикс категории сетевого межсайтового каталога текущего домена. | |
| gs_public | Возвращает :GLOBALSHARE_PUBLIC - префикс категории сетевого межсайтового каталога общего назначения. | |
| gs_script | Возвращает :GLOBALSHARE_SCRIPT_DATA - префикс категории сетевого межсайтового каталога текущего сценария (по коду). | |
| makepath | str,str | Возвращает путь, сформированный в результате сцепки двух частей. | 
| makepath | str,str,str | Возвращает путь, сформированный в результате сцепки трех частей. | 
| pathtype | str | Возвращает тип пути (префикс категории из указанного пути). | 
| relpath | str | Возвращает относительный путь (указанный путь без префикса категории). | 
| ss_domain | Возвращает :SITESHARE_DOMAIN_DATA - префикс категории сетевого внутрисайтового каталога текущего домена. | |
| ss_public | Возвращает :SITESHARE_PUBLIC - префикс категории сетевого внутрисайтового каталога общего назначения. | |
| ss_script | Возвращает :SITESHARE_SCRIPT_DATA - префикс категории сетевого внутрисайтового каталога текущего сценария (по коду). | |
| syn_domain | Возвращает :SYNC_DOMAIN_DATA префикс категории синхронизирующегося каталога данных домена. | |
| syn_media | Возвращает :SYNC_COMMON - префикс категории синхронизирующегося каталога общего назначения. | |
| syn_script | Возвращает :SYNC_SCRIPT_DATA префикс категории синхронизирующегося каталога данных текущего сценария (по коду). | |
| syn_script_media | Возвращает :SYNC_SCRIPT_STATIC префикс категории синхронизирующегося каталога статических файлов сценария (по коду). | |
| temp | Возвращает :TEMP - префикс временного локального каталога сценария. | 
Служебные функции
| Функция | Параметры | Описание | 
|---|---|---|
| getscriptref | Возвращает строку с идентификатором текущего обработчика сценариев. По этому идентификатору обработчику могут отправлять сообщения другие обработчики сценариев, например, с помощью компонента Взаимодействие сценариев. | |
| startparam | int | Возвращает значение входного параметра с указанным индексом. Сценарии могут принимать до 20 входных параметров. | 
Функции Доступа
| Функция | Параметры | Описание | 
|---|---|---|
| check_variable | str | Возвращает true, если переменная c указанным именем существует и содержит значение. | 
| get_variable_id | str | Возвращает строку с идентификатором переменной по её имени. | 
| get_variable_orig | str | Возвращает значение переменной по её имени, причем, если значение строковое, то оно возвращается в исходной кодировке без преобразования. | 
| get_variable_value | str | Возвращает значение переменной по её имени. | 
| var | str | Возвращает значение переменной по её имени. | 
Функции конфигурации
| Функция | Параметры | Описание | 
|---|---|---|
| wsurl | Возвращает URL ближайшего доступного сервера с логической ролью ws. В формате proto://ip-address:port. | 
Константы
| Функция | Параметры | Описание | 
|---|---|---|
| e | Возвращает число e (2.718281828459045). | |
| phi | Возвращает число phi (1.618033988749895). | |
| pi | Возвращает число pi (3.141592653589793). | 
Символы
| Функция | Параметры | Описание | 
|---|---|---|
| dblquot | Возвращает строку с символом двойной кавычки. | |
| endline | Возвращает строку с символом конца строки. | |
| quot | Возвращает строку с символом кавычки. | |
| tab | Возвращает строку с символом табуляции. | 
Функции сценариев IVR
| Функция | Примечание | Описание | 
|---|---|---|
| calledext | только для вызовов, поступивших в IVR | Возвращает строку с расширением КАФ, по которому звонок поступил в IVR. | 
| callednum | только для вызовов, поступивших в IVR | Возвращает строку с набранным абонентом номером. | 
| callid | Возвращает строку со значением заголовка CallId плеча b2b - ivr текущего разговора | |
| huntid | только для сценариев  | Возвращает строку с идентификатором сущности hunt-группы, на которую направлен вызов. | 
| huntobjid | только для сценариев  | Возвращает текущий статус блокировки объекта в очереди (0 - не заблокирован, 1 - заблокирован). | 
| queueblocked | только для сценария  | Возвращает строку с идентификатором текущего абонента очереди hunt-группы. | 
| queueblocked(int) | только для сценария  | Выставляет текущий статус блокировки объекта в очереди (0 - снять блокировку, 1 - установить). Возвращает успешность блокировки ("success" - успешно, "error" - неудача). Объект не может быть заблокирован, если уже находится в обработке. | 
| queuepositionreal | только для сценария  | Возвращает текущую позицию в очереди с учётом queueblocked (считая их). | 
| ivrparam(str) | только для вызовов, поступивших в IVR. | Возвращает значение указанного параметра из заголовка X-R-Ivr, который формируется ролью b2b. Например,  | 
| q_displayname | только для сценария  | Возвращает displayname абонента, ожидающего коммутации с вызываемым оператором | 
| q_domain | только для сценария  | Возвращает domain абонента, ожидающего коммутации с вызываемым оператором | 
| q_username | только для сценария  | Возвращает username абонента, ожидающего коммутации с вызываемым оператором | 
| queueestimatedsec | только для сценария  | Предполагаемое время ожидания в очереди | 
| queueestimatedsecreal | только для сценария  | Фактическое время ожидания в очереди | 
| queueposition | только для сценария  | Возвращает текущую позицию в очереди. | 
| queuepriority | только для сценария  | Возвращает текущее числовое значение приоритета в очереди. | 
| queuepriority(int) | только для сценария  | Устанавливает новое числовое значение приоритета в очереди, автоматически производится перемещение. | 
| queuerescount | только для сценария  | Возвращает количество операторов в hunt-группе. | 
| queuerescount(str) | только для сценария  | Возвращает количество операторов в hunt-группе, находящихся в указанном в переменной str состоянии. Возможные варианты: 
 | 
| queuestate | только для сценария  | Возвращает строку с названием состояния ожидания в очереди. | 
| r_number | только для сценария  | Возвращает строку с номером оператора | 
| remotenum | Возвращает строку с номером абонента, сформированным в результате применения правил представления. | 
Переменные
В этом блоке находятся все объявленные в сценарии переменные.
В Выражения сценариев они добавляется в [ и ]
Например, переменная ABC в Выражение (и шаблоны) будет добавлена как [ABC]
Дополнительная информация
Функция modify json
modify_json(п1 str,п2 json,п3json)
Применяет поисковый запрос (п1) к значению (п2), обнаруженный элемент подвергает модификации согласно опциям (п3) и возвращает общий результат.
Пример:
modify_json(
  "\"chat\"/0/\"msgs\"",
  "{\"chat\":[{\"msgs\":[{\"txt\":\"abc\"}]}]}",
  "{\"action\":\"append\",\"value\":{\"txt\":\"zcv\"}}"
)
Опции представлены в виде json-объекта с обязательным ключом action. Возможные варианты:
- 
append - для массива. Добавляет новый элемент в конец. В опциях значение элемента по ключу value. 
- 
prepend - для массива. Добавляет новый элемент в начало. В опциях значение элемента по ключу value 
- 
insert - для массива. Добавляет новый элемент в указанную позицию. В опциях значение элемента по ключу value, позиция по ключу index. 
- 
replace - для массива. Заменяет элемент в указанной позиции на новый. В опциях значение нового элемента по ключу value, позиция по ключу index. 
- 
replace_auto - для массива. Заменяет все элементы массива на указанное значение. В опциях значение по ключу value. 
- 
delete - для массива. Удаляет элемент из указанной позиции. В опциях значение позиции по ключу index. 
- 
keystore - для объекта. Сохраняет элемент по указанному ключу, в зависимости от наличия ключа добавляет или изменяет значение. В опциях значение элемента по ключу value, значение ключа по ключу key. 
- 
keyreplace - для объекта. Заменяет элемент по указанному ключу, а если ключ отсутствует, то оставляет без изменений. В опциях значение элемента по ключу value, значение ключа по ключу key. 
- 
keyinsert - для объекта. Сохраняет элемент по указанному ключу, если он отсутствует, а иначе завершается с ошибкой. В опциях значение элемента по ключу value, значение ключа по ключу key. 
- 
keydelete - для объекта. Удаляет элемент по указанному ключу. В опциях значение ключа по ключу key. 
Примеры.
Исходная переменная x
{
"name": "Андрей Васильев",
"id": "1377340472378151"
}
Пример 1. Keyinsert
Добавлено в json ключа "channel" со значением "test".
modify_json(
    "",
    [x],
    "{\"action\":\"keyinsert\", \"key\":\"channel\", \"value\":\"\\\"test\\\"\"}"
)
Результат
{
"channel":"test",
"name":"Андрей Васильев",
"id":"1377340472378151"
}| Если Key channel существует до выполнения modify_json, то результат будет Ошибка | 
Пример 2. Keyreplace
Заменена значения у поля name.
modify_json(
    "",
    [x],
    "{\"action\":\"keyreplace\", \"key\":\"name\", \"value\":\"\\\"test\\\"\"}"
)
Результат
{
"name":"test",
"id":"1377340472378151"
}