Данный ресурс служит для задания правил обработки входящих вызовов, например, установления переадресации. Правила можно добавлять для внутренних номеров любых типов.
На входящий вызов можно создавать несколько правил (максимальное количество определяется ресурсом “Лимиты (/limit/)”.
Если переадресация была на внешний номер (не внутренний номер внутри сети), то данный параметр указывает, можно ли с него будет делать трансфер звонка
call_status
string
нет
'any'
Правило отработает только в случае, если статус предыдущего вызова (самого внутреннего номера либо предыдущего правила переадресации) соответствует значению, переданному в этом параметре:
'no_answer' – не было ответа (по тайм-ауту или какая-либо ошибка, кроме "SIP/2.0 486 Busy Here");
'busy' – номер занят (получен SIP/2.0 486 Busy Here);
'any' – любой результат
caller_id
string
нет
null
Правило будет работать только для вызовов, источник которых определяется этим полем. Поле заполняется в виде регулярного выражения PCRE. Например: "^(\+|)7812" будет соответствовать всем источникам, начинающимся на "+7812" или "7812"
caller_id_action
string
нет
'any'
Параметр определяет метод анализа источника вызова caller_id:
'matches' – должен совпадать (caller_id должен быть задан);
'not_matches' – должен не совпадать (caller_id должен быть задан);
'anonymous' – источник скрыт;
'any' – любой источник
cascade_numbers
Array[cascade_number]
при type cascade
[ ]
Обязателен для "type": "cascade". Задает последовательность подключаемых к вызову номеров и время подключения каждого нового номера в виде массива cascade_number элементов:
delay (integer) – определяет момент подключения номера к вызову. Отсчитывается от начала вызова в секундах;
number (string) – номер, подключаемый к вызову.
Например: "cascade_numbers": [ { "delay": 0, "number": "097" }, { "delay": 5, "number": "00018966" } ] Сначала будет вызываться номер "097", а через 5 секунд будут одновременно вызываться номера "097" и "00018966"
Примечание: при каскадном вызове сразу начинает звонить номер с минимальным delay, независимо от его фактического значения. Например, "cascade_numbers": [ { "delay": 3, "number": "097" }, { "delay": 5, "number": "00018966" } ] идентично последовательности "cascade_numbers": [ { "delay": 0, "number": "097" }, { "delay": 5, "number": "00018966" } ]
enable_call_screening
boolean
нет
true
Включение функции call_screening для данного правила переадресации. Параметр применим только к правилами типа transfer и cascade
enabled
boolean
нет
true
Опция позволяет включать/выключать существующие правила
extension_call_status
string
нет
'any'
Правило отработает только в случае, если статус вызова внутреннего номера (если он вызывался) соответствует значению, переданному в этом параметре:
'no_answer' – не было ответа (по тайм-ауту или какая-либо ошибка, кроме "SIP/2.0 486 Busy Here");
'busy' – номер занят (получен SIP/2.0 486 Busy Here);
'any' – любой результат
extension_status
string
нет
'any'
Правило отработает лишь при таком статусе внутреннего номера. Принимает одно из значений:
'registered' – внутренний номер зарегистрирован;
'unreachable' – внутренний номер недоступен (например, потеряна регистрация или внутренний номер не отвечает из-за проблем с сетью);
'any' – статус не имеет значения
final
boolean
нет
true
Это правило является последним, и последующие обрабатывать не нужно
id
long
нет
Уникальный идентификатор правила (в пределах внутреннего номера). Поле только для чтения
ignore_early_media
boolean
нет
true
Не транслировать вызывающему абоненту "early media". Может быть полезно, если происходит серия последовательных переадресаций на разные номера и вызывающий абонент может слышать автоответчик вида "номер не доступен"
Обязателен для "type": "transfer". Переадресация на указанный номер. Если нужна переадресация на несколько номеров одновременно (одновременный вызов), то эти номера перечисляются через пробел
transfer_timeout
long
нет
0
Обязателен для "type": "transfer" и "type": "cascade". Время в секундах, в течение которого будет пытаться осуществиться перевод. Если время истекло, а перевода не произошло, то происходит переход к обработке следующего правила
type
string
нет
Определяет тип действия со входящим вызовом. Реализованы следующие типы:
transfer – выполнить перевод вызова (сделать переадресацию) на номер(а) из transfer_dst;
simple_transfer – выполнить перевод вызова (сделать переадресацию) на номер(а) из transfer_dst. При данном типе переадресации правила входящего вызова добавочных, перечисленных в transfer_dst, не выполняются для телефонных терминалов;
voicemail – сделать перевод вызова на голосовую почту. Актуально для внутренних номеров типа "phone" (настраивается в ресурсе “Телефонный терминал (/phone/)”);
cascade – переадресация с последовательным добавлением вызываемых номеров. Например, для внутреннего номера 100 можно указать 20 секунд вызывать сам внутренний номер, потом подключить к вызову мобильный, чтобы они вызывались одновременно и т.д. Последовательность каскада задается параметром cascade_numbers;
simple_cascade – работает так же, как и cascade, но правила входящего вызова внутренних номеров, указанных в cascade_numbers, не выполняются
Вызов спец.добавочных(отличных от “phone”) собственными правилами переадресации невозможен. В ряде случаев это может привести к зацикливанию вызова и как следствие его потере.
control_code
string
нет
null
Код управления - это цифра от 1 до 2х символов, например 11 или 6
Задается на правиле. Необходимо для управления включением и выключением правила (или нескольких правил) через набор с клавиатуры. см *74Горячие клавиши
Последовательность правил (IncomingRuleOrder)
Имя
Тип
Обязательное
Значение по умолчанию
Описание
Имя
Тип
Обязательное
Значение по умолчанию
Описание
rules_ids
array [integer]
да
Полный список правил в нужном порядке
Примеры
Настроим правила для внутреннего номера типа "phone"с идентификатором 54. Для начала убедимся, что на данный момент нет никаких настроек:
Ответ системы: []
Переадресация
Настроим отправку всех неотвеченных вызовов на номер 00018966 ("type:" "transfer"). Правило должно будет действовать только с 10:00 до 20:00 и распространяться на вызовы с номеров, начинающихся на "+7812" или "000". Номер 00018966 должен звонить 15 секунд.
Время, после которого вызов на внутренний номер считается неотвеченным (hangup-timeout), является свойством самого внутреннего номера типа 'phone' и настраивается ресурсом “Телефонный терминал (/phone/)”.
Для начала нужно создать (или выбрать из имеющихся) временной интервал. Пусть это будет интервал с идентификатором 32. Создание правила:
Теперь нужно, чтобы после выполнения правил в предыдущем разделе, если ответа так и не последовало, вызов перешел на внутренний номер 000*099, через 5 секунд к нему подключился 00026821 и все правило отрабатывало не более 20 секунд: