Ресурс служит для задания правил обработки входящих вызовов, например, установления переадресации. Правила можно добавлять для добавочных любых типов.
На входящий вызов можно создавать несколько правил (максимальное количество определяется ресурсом limits).
Ресурсы
Ресурс | Метод | Параметры Пути | Тело запроса | Описание |
---|---|---|---|---|
extension/{extension_id}/incom_rule/ | POST | extension_id (integer) уникальный идентификатор добавочного, может принимать значение @me в случае пользователя типа "экстеншен" | поля *Правила входящего вызова (/incom_rule/), за исключением IncomingRule.id(генерируется автоматически) | Добавить правило входящего вызова |
extension/{extension_id}/incom_rule/ | GET | extension_id (integer) уникальный идентификатор добавочного, может принимать значение @me в случае пользователя типа "экстеншен" | Получить список входящих правил для добавочного | |
extension/{extension_id}/incom_rule/{rule_id} | PUT | extension_id (integer) уникальный идентификатор добавочного, может принимать значение @me в случае пользователя типа "экстеншен" rule_id (integer) идентификатор IncomingRule.id | обновленные поля *Правила входящего вызова (/incom_rule/) , за исключением IncomingRule.id | Обновляет правила входящего вызова |
extension/{extension_id}/incom_rule/{rule_id} | DELETE | Удаляет правило входящего вызова | ||
extension/{extension_id}/incom_rule/{rule_id} | GET | Получить правило входящего вызова | ||
extension/{extension_id}/incom_rule/order/ | PUT | extension_id (integer) уникальный идентификатор добавочного, может принимать значение @me в случае пользователя типа "экстеншен" | *Правила входящего вызова (/incom_rule/) | Изменить порядок правил входящего вызова |
extension/{extension_id}/incom_rule/order/ | GET | extension_id (integer) уникальный идентификатор добавочного, может принимать значение @me в случае пользователя типа "экстеншен" | Получить порядок правил входящего вызова |
Описание структур данных
Правило входящего вызова (IncomingRule)
Имя | Тип | Обязательное | Значение По Умолчанию | Описание |
---|---|---|---|---|
|
| да | Уникальный идентификатор правила (в пределах добавочного) | |
type | string | да |
| |
name | string | нет | null | Имя правила, не обязательно уникальное. |
playfile_sound | integer | нет | null | Идентификатор звукового файла для правила типа playfile. |
transfer_dst | string | нет | null | Актуален для "type": "transfer". Переадресация на указанный номер. Если нужна переадресация на несколько номеров одновременно (одновременный вызов), то эти номера перечисляются через пробел. |
|
| нет | 60 | Актуален для "type": "transfer" и "type": "cascade". Время в секуднах, в течении которого будет пытаться осуществиться перевод. Если время истекло, а перевода не произошло, то происходит переход к обработке следующего правила |
cascade_numbers | array | нет | [ ] | Актуален для "type": "cascade". Задает последовательность подключаемых к вызову номеров и время подключения каждого нового номера в виде массива cascade_number элементов: cascade_number:
Например: Примечание: при каскадном вызове сразу начинает звонить номер с минимальным delay, независимо от его фактического значения. Например: |
allow_public_transfer | boolean | нет | false | Если переадресация была на внешний номер (не добавочный внутри сети), то указывает, можно ли с него будет делать трансфер звонка. |
caller_id | string | нет | null | Правило будет работать только для вызовов, источник которых определяется этим полем. Поле заполняется в виде регулярного выражения PCRE. Например: "^(\+|)7812" будет соответствовать всем источникам, начинающимся на "+7812" или "7812" |
|
| нет | 'any' | определяет метод анализа источника вызова caller_id:
|
|
| нет | 'any' | Правило отработает только в случае:
|
|
| нет | 'any' | Правило отработает лишь при таком статусе добавочного. Принимает одно из значений:
|
|
| нет | null | Правило отработает при попадании во временной интревал |
|
| нет | true | Опция позволяет включать/выключать существующие правила |
|
| нет | true | Не транслировать вызывающему абоненту "early media". Может быть полезно, если происходит серия последовательных переадресаций на разные номера и вызывающий абонент может слышать автоответчик вида "номер не доступен" |
|
| нет | true | Это правило является последним и последующие обрабатывать не нужно |
enable_call_screening | boolean | нет | false | Включение функции call_screening для данного правила переадресации. Параметр применим только к правилами тип transfer и cascade. |
Последовательность правил (IncomingRuleOrder)
Имя | Тип | Обязательное | Значение По Умолчанию | Описание |
---|---|---|---|---|
|
| да | Полный список правил в нужном порядке |
Примеры использования
Настроим правила для добавочного типа "phone"с идентификатором 54. Для начала убедимся, что на данный момент нет никаких настроек
метод | ресурс | данные | ответ |
---|---|---|---|
GET | /extension/54/incom_rule/ |
| [] |
Переадресация
Настроим отправку всех не отвеченных вызовов на номер 00018966 ("type:" "transfer"). Правило должно будет действовать только с 10:00 до 20:00 и распространяться на вызовы с номеров, начинающихся на "+7812" или "000". Номер 00018966 должен звонить 15 секунд.
Время, после которого вызов на добавочный считается не отвеченным (hangup-timeout) является свойством самого добавочного типа 'phone' и настраивается ресурсом phone.
Для начала нужно создать (или выбрать из имеющихся) временной интервал. Пусть это будет интервал с идентификатором 32. Создание правила:
метод | ресурс | данные | ответ |
---|---|---|---|
POST | /extension/54/incom_rule/ | { } | { |
Каскадный вызов
Теперь нужно, чтобы после выполнения правил в предыдущем разделе, если ответа так и не последовало, вызов перешел на добавочный 000*099 и через 5 секунд к нему подключился 00026821 и все правило отрабатывало не более 20 секунд
метод | ресурс | данные | ответ |
---|---|---|---|
POST | /extension/54/incom_rule/ | { "final": false ] | { |
Реорганизация правил
Чтобы поменять предыдущие правила местами достаточно выполнить:
метод | ресурс | данные | ответ |
---|---|---|---|
PUT | /extension/54/incom_rule/order/ | { | { |
Похожие разделы