Встроенные функции сценариев
Обзор
Функции используются в виде аргументов компонентами сценариев. Позволяют вычислять специфические значения и даже проводить операции над системой.
Функции делятся на:
-
чистые
– возвращаемое значение зависит только от параметров. -
с сайт-эффектами
– возвращаемое значение может изменяться в зависимости от состояния системы. -
модификаторы
– производит изменения в системе.
Категории функций
Категория | Описание |
---|---|
Чистые математические функции. |
|
Чистые функции по работе со строками. |
|
Чистые функции по работе с датами и временем и сайд-эффектные функции доступа к текущему времени. |
|
Чистые функции преобразования значений, кодирования, упаковки, представления. |
|
Чистые хеш-функции. |
|
Чистые функции по работе с файловыми путями и категориями каталогов. |
|
Различные функции для двунаправленного доступа к контексту и состоянию. |
|
Сайд-эффектные функции специального доступа к переменным. |
|
Сайд-эффектные функции получения данных из конфигурации системы. |
|
Чистые функции подстановки констант. |
|
Чистые функции подстановки символов. |
|
Сайд-эффектные функции доступа к данным о звонке и модификаторы состояний очереди. |
Каталог функций
Функция | Параметры | Описание |
---|---|---|
|
|
Синус числа |
|
|
Косинус числа |
|
|
Тангенс числа |
|
|
Арксинус числа |
|
|
Арккосинус числа |
|
|
Арктангенс числа |
|
|
Арктангенс частного двух чисел |
|
|
Гиперболический синус числа |
|
|
Гиперболический косинус числа |
|
|
Гиперболический тангенс числа |
|
|
Экспонента числа |
|
|
Натуральный логарифм числа |
|
|
Двоичный логарифм числа |
|
|
Десятичный логарифм числа |
|
|
Результат возведения одного числа в степень другого |
|
|
Квадратный корень числа |
|
|
Функция ошибки: Не доступно на Windows |
|
|
Не доступно на Windows |
|
|
Максимальное из двух чисел |
|
|
Минимальное из двух чисел |
|
|
Результат отбрасывания дробной части числа |
|
|
Результат округления числа до целого |
|
|
Абсолютное значение числа |
|
|
Ближайшее снизу целое число |
|
|
Ближайшее сверху целое число |
|
|
Десятичный логарифм числа |
|
|
Натуральный логарифм числа |
|
|
Логарифм одного числа по основанию другого |
|
|
Квадрат числа |
|
Случайное десятичное число от |
|
|
|
Случайное целое число от 0 до указанного целого числа |
|
|
Cлучайное целое число в диапазоне между двумя целыми числами |
Функция | Параметры | Описание |
---|---|---|
|
Возвращает сгенерированный UUID-идентификатор. |
|
|
|
Возвращает длину строки в символах. |
|
|
Возвращает результат сцепления двух строк. |
|
|
Результат сравнения двух строк: |
|
|
Возвращает индекс позиции первого вхождения подстроки (п2) в строку (п1). Возвращает |
|
|
Возвращает индекс позиции последнего вхождения подстроки (п2) в строку (п1). Возвращает |
|
|
Возвращает подстроку с указанной позиции (п2) до конца. |
|
|
Возвращает подстроку с указанной позиции (п2) не более чем указанной длины (п3). |
|
|
Возвращает результат замены в строке (п1) вхождения (п2) на значение (п3). |
|
|
Возвращает строку в нижнем регистре. |
|
|
Возвращает строку в верхнем регистре. |
|
|
Возвращает строку после удаления из нее подстроки с указанной позиции (п2) до конца. |
|
|
Возвращает строку после удаления из нее подстроки с указанной позиции (п2) указанной длины (п3). |
|
|
Возвращает индекс позиции первого вхождения подстроки (п2) в строку (п1). Возвращает |
|
|
Возвращает индекс позиции первого вхождения подстроки (п2) в строку (п1), начиная с указанной позиции (п3). Возвращает |
|
|
Возвращает строку, избавленную от пустых символов в начале и в конце (пробел, табуляция и т.д.). |
|
|
Возвращает строку, избавленную от пустых символов в начале (пробел, табуляция и т.д.). |
|
|
Возвращает строку, избавленную от пустых символов в конце (пробел, табуляция и т.д.). |
|
|
Возвращает строку, избавленную от пустых символов в начале (пробел, табуляция и т.д.). |
|
|
Возвращает строку, избавленную от пустых символов в конце (пробел, табуляция и т.д.). |
|
|
Возвращает левую часть строки не более чем указанной длины. |
|
|
Возвращает правую часть строки не более чем указанной длины. |
|
|
Возвращает перевернутую строку. |
|
|
Возвращает результат замены с помощью регулярного выражения. п1 - значение, п2 - паттерн, п3 - замена. |
|
|
Возвращает результат замены с помощью регулярного выражения с опцией |
|
|
Возвращает измененную json-структуру. Применяет поисковый запрос (п1) к значению (п2), обнаруженный элемент подвергает модификации согласно опциям (п3) и возвращает общий результат. Пример:
modify_json( "chat/0/msgs", '{"chat":[{"msgs":[{"txt":"abc"}]}]}', '{"action":"append","value":{"txt":"zcv"}}' ) Опции представлены в виде json-объекта с обязательным ключом
|
Функция | Параметры | Описание |
---|---|---|
|
Возвращает число, представляющее абсолютное значение в миллисекундах с 1970 года. |
|
|
Возвращает текущую дату и время в локальном часовом поясе сервера в формате RFC3339. Например, |
|
|
Возвращает текущую дату и время в UTC в формате RFC3339. |
|
|
Возвращает количество секунд по грегорианскому календарю, с 0 года н.э. |
|
|
|
Возвращает дату в локальном часовом поясе сервера по абсолютному значению tick. |
|
|
Возвращает дату в UTC по абсолютному значению tick. |
|
|
Преобразует дату в unix timestamp |
|
|
Возвращает строку с представление даты (п2) по указанному формату (п1). Например: Возможные плейсхолдеры форматирующей строки: |
|
Возвращает текущую дату в локальном часовом поясе сервера без указания часового пояса. Формат |
|
|
|
Возвращает дату из указанной даты/времени. |
|
Возвращает текущее время в локальном часовом поясе сервера без указания часового пояса. Формат |
|
|
|
Возвращает время из указанной даты/времени. |
|
|
Возвращает дату/время, сформированную по строке. Строка может содержать различные представления даты/времени, в том числе и RFC3339. |
|
|
Возвращает дату/время на основе переданных п1 - года, п2 - месяца, п3 - дня. |
|
|
Возвращает дату/время на основе переданных п1 - года, п2 - месяца, п3 - дня, п4 - часа, п5 - минуты. |
|
|
Возвращает дату/время на основе переданных п1 - года, п2 - месяца, п3 - дня, п4 - часа, п5 - минуты, п6 - секунды. |
|
|
Возвращает дату/время на основе переданных п1 - года, п2 - месяца, п3 - дня, п4 - часа, п5 - минуты, п6 - секунды, п7 - миллисекунды. |
|
|
Возвращает число указанных единиц времени между двумя датами. Параметр указывается в виде атома (не строки), например Возможные виды единиц по убыванию: |
|
|
Возвращает дату после добавления указанного количества (п2) указанных единиц времени (п1) к указанной дате/времени (п3). Параметр указывается в виде атома (не строки), например Возможные виды единиц по убыванию: |
|
|
Возвращает текущий год указанной даты/времени. |
|
|
Возвращает текущий месяц ( |
|
|
Возвращает текущий день ( |
|
|
Возвращает текущий час ( |
|
|
Возвращает текущую минуту ( |
|
|
Возвращает текущую секунду ( |
|
|
Возвращает текущую миллисекунду ( |
|
|
Возвращает номер дня в году для указанной даты/времени. |
|
|
Возвращает номер дня недели ( |
|
|
Возвращает номер недели в году для указанной даты/времени. |
|
|
Возвращает |
|
|
Возвращает дату/время приведенную к локальному часовому поясу сервера. Числовые значения даты/времени не изменяются, однако абсолютная точка времени может быть сдвинута после изменения тайм-зоны на локальную. |
|
|
Возвращает дату/время приведенную к UTC. Числовые значения даты/времени не изменяются, однако абсолютная точка времени может быть сдвинута после изменения тайм-зоны на нулевую. |
|
|
Возвращает UTC дату/время для указанной даты/времени, рассматриваемой в локальном часовом поясе сервера. |
|
|
Возвращает локальную дату/время для указанной даты/времени, рассматриваемой как UTC. |
|
|
Возвращает |
Функция | Параметры | Описание |
---|---|---|
|
|
Возвращает строку с одним символом по его числовому коду. |
|
|
Преобразует числовое значение к строке. |
|
|
Преобразует строку к числу. При неудаче завершается с ошибкой. |
|
|
Преобразует строку к числу, отрезая с конца неподходящие символы. В пределе возвращает |
|
|
Возвращает строку с HEX-представлением числа. |
|
|
Возвращает число на основе его HEX-представления. |
|
|
Возвращает строку, полученную в результате упаковки в Base64 представление. |
|
|
Возвращает строку, полученную в результате распаковки из Base-64 представления. |
|
|
Возвращает строку, закодированную с помощью UrlEncode. |
|
|
Возвращает строку, раскодированную с помощью UrlEncode. |
|
|
Возвращает строку, закодированную c помощью Unicode Hex Character Code. |
|
|
Возвращает строку, раскодированную c помощью Unicode Hex Character Code |
|
|
Возвращает строку, полученную в результате преобразования к escape-последовательности. Применяется для вставки в JSON. |
|
|
Возвращает строку, полученную в результате распаковки из escape-последовательности. Применяется для очистки после JSON. |
|
|
Возвращает результат транслитерации строки. |
|
|
Если значение первого параметра |
Функция | Параметры | Описание |
---|---|---|
|
|
Возвращает хеш от строки по алгоритму MD5. |
|
|
Возвращает хеш от любого значения по алгоритму CRC32 (IEEE 802.3). |
|
|
Возвращает новое значение хеша от предыдущего значения, скомбинированного с новой порцией. п1 - предыдущее значение хеша, п2 - новая порция данных. По алгоритму CRC32 (IEEE 802.3). |
|
|
Возвращает хеш от любого значения по алгоритму Adler-32. |
|
|
Возвращает новое значение хеша от предыдущего значения, скомбинированного с новой порцией. п1 - предыдущее значение хеша, п2 - новая порция данных. По алгоритму Adler-32. |
|
|
Возвращает хеш-сумму от любого значения по внутреннему алгоритму. |
Функция | Параметры | Описание |
---|---|---|
|
|
Возвращает тип пути (префикс категории из указанного пути). |
|
|
Возвращает относительный путь (указанный путь без префикса категории). |
|
|
Возвращает имя файла, выделенное из указанного пути. |
|
|
Возвращает расширение файла, выделенное из указанного пути. |
|
|
Возвращает название каталога. Для пути к файлу - это имя каталога, для пути к каталогу - это название родительского каталога. |
|
|
Возвращает путь, сформированный в результате сцепки двух частей. |
|
|
Возвращает путь, сформированный в результате сцепки трех частей: пути, имени файла и расширения файла. |
|
Возвращает |
|
|
Возвращает |
|
|
||
|
Возвращает |
|
|
Возвращает |
|
|
Возвращает |
|
|
Возвращает |
|
|
Возвращает |
|
|
Возвращает |
|
|
Возвращает |
|
|
Возвращает |
|
|
Возвращает |
Функция | Параметры | Описание |
---|---|---|
|
|
Возвращает значение входного параметра с указанным индексом. Сценарии могут принимать до 20 входных парамтеров. |
|
Возвращает строку с идентификатором текущего обработчика сценариев. По этому идентификатору обработчику могут отправлять сообщения другие обработчики сценариев, например с помощью компонента Взаимодействие сценариев. |
|
|
Возвращает строку с идентификатором проекта текущего выполняемого сценария. |
|
|
|
|
|
|
|
|
|
Выполняет компонент указанного типа из группы компонентов служебных сценариев. Первый параметр - тип компонента (числовой номер или ключ из названия модуля, например 103 или pause), второй параметр - свойства компонента из документации за исключением веток перехода и переменных для выходных значений (может быть erlang:map() или erlang:proplist() или binary() с JSON). Возвращает объект с ключами полей выходных переменных и дополнительно "transferKey", формат возвращаемого значения совпадает с форматом второго параметра. |
|
|
Выполняет компонент указанного типа из группы компонентов служебных сценариев. Первый параметр - тип компонента (числовой номер или ключ из названия модуля, например 103 или pause). Второй параметр - свойства компонента из документации за исключением веток перехода и переменных для выходных значений (может быть erlang:map() или erlang:proplist() или binary() с JSON). Третий параметр устанавливает формат возвращаемого значения (map, proplist, json). Еще третий параметр может заказать выдачу значения по конкретному ключу из результата (например, чтобы вернуть значение, обычно сохраняемое в выходную переменную компонента). Также третий параметр может установить режим возврата строки, склееной из значений transferKey и varValue (формат "TransferKeyValue;OtherKeyValue"), для этого необходимо в качестве третьего параметра задать без кавычек: "{transfer,Key}". Возвращает объект с ключами полей выходных переменных и дополнительно "transferKey", либо значение по конкретному ключу из этого объекта. Примеры: ---- component(notify, #{mode ⇒ 0, text ⇒ [a1], user ⇒ <<"admin">>}, map) component(111, #{<<"mode">> ⇒ 0, <<"text">> ⇒ <<"Something">>, <<"user">> ⇒ <<"admin">>}, json) component(111, <<"\"mode\": 0, \"text\": \"Something\", \"user\": \"admin\"">>, <<"transferKey">>) component(parser, #{algoritm ⇒ 0, functionJSON ⇒ 0, data ⇒ <<"{\\\"a\\\":\\\"value\\\"}">>, query ⇒ <<"a">>}, {transfer,<<"resultVariable">>}) ---- Коды и поля компонентов доступны в документации на страницах соответствующих компонентов. Один из возможных путей - настраивать новый сценарий с компонентом, имеющим интересующие настройки, и копировать его содержимое из JSON сценария. |
|
|
Ожидает и блокирует критическую секцию (аналог компонента Мьютекс). Первый параметр - уникальное имя критической секции. Второй параметр - время ожидания в миллисекундах до таймаута. Возвращает "ok", "timeout", "error". |
|
|
Ожидает и блокирует критическую секцию (аналог компонента Мьютекс). Первый параметр - уникальное имя критической секции. Второй параметр - время ожидания в миллисекундах до таймаута. Третий параметр - тип операции под блокировкой (1 или read - чтение, 2 или write - запись). Четвертый параметр - время в миллисекундах, после которого критическая секция автоматически освободится. Возвращает "ok", "timeout", "error". |
|
|
Освобождает критическую секцию (аналог компонента Мьютекс). Возвращает "ok" или "error". |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Функция | Параметры | Описание |
---|---|---|
|
|
Возвращает |
|
|
Возвращает значение переменной по её имени. |
|
|
Возвращает значение переменной по её имени, а если значение не установлено, то дефолтное значение из второго параметра. |
|
|
Возвращает строку с идентификатором переменной по её имени. |
|
|
Возвращает значение переменной по её имени, причем, если значение строковое, то оно возвращается в исходной кодировке без преобразования. |
|
|
Устанавливает знчение переменной по ее имени, если ее значение не задано. Возвращает значение переменной в результате операции. |
|
|
Возвращает значение переменной по её имени. |
|
|
Продляет или размещает в хранилище данных на сайте значение (2 параметр) по ключу (1 параметр) на 2 суток. Возвращает "ok". При недоступности хранилища возвращает "error". |
|
|
Продляет или размещает в хранилище данных на сайте значение (2 параметр) по ключу (1 параметр) на указанное количество секунд (3 параметр). Возвращает "ok". При недоступности хранилища возвращает "error". |
|
|
Возвращает из хранилища данных на сайте значение по ключу, либо значение по умолчанию, если таковое отсутствует. При недоступности хранилища возвращает "error". |
|
|
Удаляет из хранилища данных на сайте значение по указанному ключу. При недоступности хранилища возвращает "error". |
Чтение и модификацию имеющегося значения в хранилище при работе в параллельном режиме следует проводить в критической секции, например, построенной компонентом "Мьютекс" или функциями выражений lock/unlock. |
Функция | Параметры | Описание |
---|---|---|
|
Возвращает URL ближайшего доступного сервера с логической ролью ws. |
|
|
Возвращает сайт, на котором исполняется сценарий. |
|
|
Возвращает домен, в котором исполняется сценарий. |
|
|
Возвращает родительский домен относительно того, в котором выполняется сценарий. |
|
|
Возвращает |
|
|
|
Возвращает В формате |
Функция | Параметры | Описание |
---|---|---|
|
Возвращает число |
|
|
Возвращает число |
|
|
Возвращает число |
Функция | Параметры | Описание |
---|---|---|
|
Возвращает строку с символом табуляции. |
|
|
Возвращает строку с символом конца строки. |
|
|
Возвращает строку с символом кавычки. |
|
|
Возвращает строку с символом двойной кавычки. |
Функция | Параметры | Описание |
---|---|---|
|
|
Возвращает значение указанного параметра из заголовка Доступно только для вызовов, поступивших в IVR. |
|
Возвращает строку с набранным абонентом номером из INVITE, попавшего на маршрутизацию. ВНИМАНИЕ! Для входящих снаружи (из подключений к провайдерам) вызовов, этот номер в общем случае не совпадает с тем, на который поступил внешний вызов. Для последнего используйте функцию calledid(). Доступно только для вызовов, поступивших в IVR. Для получения номера абонента при совершении исходящих вызовов с помощью ivr (компонент 'Исходящий вызов', API 'invite_byivr') необходимо использовать параметры сценария IVR (startparam(N)) и передавать необходимую информацию через них. |
|
|
Возвращает строку с расширением (extension) КАФ, по которому звонок поступил в IVR. Содержит весь постфикс после удаления номера фичакода. Доступно только для вызовов, поступивших в IVR. Для получения номера абонента при совершении исходящих вызовов с помощью ivr (компонент 'Исходящий вызов', API 'invite_byivr') необходимо использовать параметры сценария IVR (startparam(N)) и передавать необходимую информацию через них. |
|
|
Возвращает строку с номером абонента, сформированным в результате применения правил представления, либо внутреннего номера абонента текущего домена, либо username из заголовка From поступившего на маршрутизацию запроса INVITE. ВНИМАНИЕ! Для входящих снаружи (из подключений к провайдерам) вызовов, этот номер в общем случае не совпадает с тем, с которого поступил внешний вызов, поскольку может быть преобразован правилами нормализации. Для последнего используйте функцию callerid(). Доступно только для вызовов, поступивших в IVR. Для получения номера абонента при совершении исходящих вызовов с помощью ivr (компонент 'Исходящий вызов', API 'invite_byivr') необходимо использовать параметры сценария IVR (startparam(N)) и передавать необходимую информацию через них. |
|
|
Возвращает строку с набранным абонентом номером. Для вызовов, поступивших снаружи от провайдера, содержит username заголовка To исходного полученного запроса INVITE до применения правил нормализации и маршрутизации. Доступно только для вызовов, поступивших в IVR. |
|
|
Возвращает строку с набранным абонентом номером. Для вызовов, поступивших снаружи от провайдера, содержит username заголовка From исходного полученного запроса INVITE до применения правил нормализации, маршрутизации и представления. Доступно только для вызовов, поступивших в IVR. |
|
|
Возвращает строку со значением заголовка |
|
|
Возвращает строку с нативным идентификатором текущего сеанса (КЦ), доставая его из меток текущего вызова. Если выполнять функцию в самом начале первого вызова, может задержать исполнение до 500 мс, ожидая назначения сеанса. |
|
|
Возвращает строку с идентификатором текущего сеанса (КЦ), определяя его в хранилище сеансов по нативному сеансу метки. Если выполнять функцию в самом начале первого вызова, может задержать исполнение до 500 мс, ожидая назначения сеанса. |
|
|
Возвращает строку со значением указанного в параметре заголовка плеча Доступно только для вызовов, поступивших в IVR. |
|
|
Возвращает строку с идентификатором сущности hunt-группы, на которую направлен вызов. Доступно только для вызовов, поступивших в IVR через featurecode с типом |
|
|
Возвращает строку с идентификатором runtime-объекта очереди hunt-группы. Доступно только для вызовов, поступивших в IVR через featurecode с типом |
|
|
Возвращает текущее числовое значение приоритета в очереди. Доступно только для вызовов, поступивших в IVR через featurecode с типом |
|
|
|
Устанавливает новое числовое значение приоритета в очереди, автоматически производится перемещение. Доступно только для вызовов, поступивших в IVR через featurecode с типом |
|
Возвращает текущую позицию в очереди. Доступно только для вызовов, поступивших в IVR через featurecode с типом |
|
|
Доступно только для вызовов, поступивших в IVR через featurecode с типом |
|
|
Возвращает количество операторов в хант-группе. Доступно только для вызовов, поступивших в IVR через featurecode с типом |
|
|
|
Возвращает количество операторов в хант-группе, находящихся в состоянии ( Доступно только для вызовов, поступивших в IVR через featurecode с типом |
|
Возвращает строку с названием состояния ожидания в очереди. Доступно только для вызовов, поступивших в IVR через featurecode с типом |
|
|
Возвращает displayname из URI заголовка Доступно только для сценариев |
|
|
Возвращает username из URI заголовка Доступно только для сценариев |
|
|
Возвращает domain из URI заголовка Доступно только для сценариев |
|
|
Возвращает строку с номером вызова оператора (username из URI заголовка Доступно только для сценариев |