Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Warning

Мы обновили документацию, актуальная версия страницы доступна по ссылке: Правила входящего вызова (/incom_rule/)

Table of Contents

Ресурс служит для задания правил обработки входящих вызовов, например, установления переадресации. Правила можно добавлять для добавочных любых типов.

...

РесурсМетодПараметры ПутиТело запросаОписание
extension/{extension_id}/incom_rule/POST

extension_id (integer) уникальный идентификатор добавочного, может принимать значение @me в случае пользователя типа "экстеншен"

поля IncomingRule 61870459, за исключением IncomingRule.id(генерируется автоматически)Добавить правило входящего вызова
extension/{extension_id}/incom_rule/GETextension_id (integer) уникальный идентификатор добавочного, может принимать значение @me в случае пользователя типа "экстеншен"   
Получить список входящих правил для добавочного
extension/{extension_id}/incom_rule/{rule_id}PUT

extension_id (integer) уникальный идентификатор добавочного, может принимать значение @me в случае пользователя типа "экстеншен"

rule_id (integer) идентификатор   IncomingRule.id 

обновленные поля IncomingRule61870459 , за исключением IncomingRule.idОбновляет правила входящего вызова
extension/{extension_id}/incom_rule/{rule_id}DELETE 
Удаляет правило входящего вызова
extension/{extension_id}/incom_rule/{rule_id}GET 
Получить правило входящего вызова
extension/{extension_id}/incom_rule/order/PUTextension_id (integer) уникальный идентификатор добавочного, может принимать значение @me в случае пользователя типа "экстеншен" IncomingRuleOrder61870459Изменить порядок правил входящего вызова
extension/{extension_id}/incom_rule/order/GETextension_id (integer) уникальный идентификатор добавочного, может принимать значение @me в случае пользователя типа "экстеншен"  
Получить порядок правил входящего вызова

 


Описание структур данных

Правило входящего вызова (IncomingRule) 
Anchor
IncomingRule
IncomingRule

ИмяТипОбязательное

Значение По

Умолчанию

Описание

id

Anchor
IncomingRule.id
IncomingRule.id

integer

да

 

-


Уникальный идентификатор правила (в пределах добавочного). Поле только для чтения.

typestringда 

Определяет тип действия со входящим вызовом. Реализованы следующие типы:

  • busy - ответить на входящий вызов сигналом "занято" (SIP/2.0 486 Busy Here)
  • transfer - выполнить перевод вызова (сделать переадресацию) на номер(а) из transfer_dst. Максимально возможное количество номеров передаресации – 10, для одновременной переадресации на большее количество номеров следует использовать тип group_callна номер(а) из 61870459.
  • simple_transfer - выполнить перевод вызова (сделать переадресацию) на номер(а) из transfer_dst 61870459. При данном типе переадресации правила входящего вызова для перечисленных в transfer_dst добавочных номеров не выполняются.
  • hangup - сбросить вызов (sip code 480)
  • playfile - проиграть файл (задается параметром playfile_sound 61870459)
  • voicemail - сделать перевод вызова на голосовую почту. Актуально для добавочных типа "phone" (настраивается в ресурсе /phone/)
  • cascade - переадресация с последовательным добавлением вызываемых номеров. Например, для добавочного 100 можно указать 20 секунд вызывать сам добавочный, потом подключить к вызову мобильный, чтобы они вызывались одновременно и т.д. Последовательность каскада задается параметром cascade_numbers 61870459
  • simple_cascade - работает также, как и cascade, но правила входящего вызова добавочных, указанных в cascade_numbers не выполняются
namestringнетnullИмя правила, не обязательно уникальное.
playfile_sound
Anchor
playfile_sound
playfile_sound
integerнетпри type playfilenullИдентификатор звукового файла для правила типа playfile.
transfer_dst
Anchor
transfer_dst
transfer_dst
stringнетпри type transfernullАктуален Обязателен для "type": "transfer". Переадресация на указанный номер. Если нужна переадресация на несколько номеров одновременно (одновременный вызов), то эти номера перечисляются через пробел.

transfer_timeout

integer

нет

60

Актуален Обязателен для "type": "transfer" и "type": "cascade". Время в секуднах, в течении которого будет пытаться осуществиться перевод. Если время истекло, а перевода не произошло, то происходит переход к обработке следующего правила

cascade_numbers
Anchor
cascade_numbers
cascade_numbers
arrayнетпри type cascade[ ]

Актуален Обязателен для "type": "cascade". Задает последовательность подключаемых к вызову номеров и время подключения каждого нового номера в виде массива cascade_number элементов:

 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" } ] 

allow_public_transferbooleanнетfalseЕсли переадресация была на внешний номер (не добавочный внутри сети), то указывает, можно ли с него будет делать трансфер звонка.  
caller_id
Anchor
caller_id
caller_id
stringнетnullПравило будет работать только для вызовов, источник которых определяется этим полем. Поле заполняется в виде регулярного выражения PCRE. Например: "^(\+|)7812" будет соответствовать всем источникам, начинающимся на "+7812" или "7812"

caller_id_action

string

нет

'any'

определяет метод анализа источника вызова caller_id:

  • 'matches' должен совпадать (caller_id должен быть задан)
  • 'not_matches' должен не совпадать (caller_id должен быть задан)
  • 'anonymous' источник скрыт
  • 'any' любой источник

call_status

string

нет

'any'

Правило отработает только в случае, если статус предыдущего вызова (самого добавочного либо предыдущего правила переадресации) соответствует значению, переданному в этом параметре

  • 'no_answer' - не было ответа (по таймауту или какая-либо ошибка, кроме "SIP/2.0 486 Busy Here")
  •  'busy' - номер занят (получен SIP/2.0 486 Busy Here)
  • 'any' - любой результат
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' статус не имеет значения

interval

integer

нет

null

Правило отработает при попадании во временной интревал

enabled

boolean

нет

true

Опция позволяет включать/выключать существующие правила

ignore_early_media

boolean

нет

true

Не транслировать вызывающему абоненту "early media". Может быть полезно, если происходит серия последовательных переадресаций на разные номера и вызывающий абонент может слышать автоответчик вида "номер не доступен"

final

boolean

нет

true

Это правило является последним и последующие обрабатывать не нужно

enable_call_screeningbooleanнетfalseВключение функции call_screening для данного правила переадресации. Параметр применим только к правилами типа transfer и cascade.

...

ИмяТипОбязательное

Значение По

Умолчанию

Описание

rules_ids

array [integer]

да

 
Полный список правил в нужном порядке

...


Примеры использования

Настроим правила для добавочного типа "phone"с идентификатором 54. Для начала убедимся, что на данный момент нет никаких настроек

метод
ресурс
данные
ответ
GET
/extension/54/incom_rule/

 


[]

Переадресация

Настроим отправку всех не отвеченных вызовов   на  номер 00018966 ("type:" "transfer"). Правило должно будет действовать только с 10:00 до 20:00 и распространяться на вызовы с номеров, начинающихся на "+7812" или "000". Номер 00018966 должен звонить 15 секунд.

...

метод
ресурс
данные
ответ
POST
/extension/54/incom_rule/

{
"caller_id": "^(\\+7812|000)",
"caller_id_action": "matches",
"interval": 32,
"transfer_timeout": 20,
"type": "cascade",
"call_status": "no_answer",
"cascade_numbers": [
{
"delay": 0,
"number": "000*099"
},
{
"delay": 5,
"number":"00026821"
}

  "final": false

]
}

{
"allow_public_transfer": false,
"caller_id": "^(\\+7812|000)",
"call_status": "no_answer",
"extension_status": "any",
"interval": 32,
"enabled": true,
"name": null,
"ignore_early_media": true,
"id": 2,
"transfer_dst": null,
"transfer_timeout": 20,
"playfile_sound": null,
"caller_id_action": "matches",
"cascade_numbers": [
{
"delay": 0,
"number": "000*099"
},
{
"delay": 5,
"number": "00026821"
}
],
"type": "cascade",
"final": false
}

...


Реорганизация правил

Чтобы поменять предыдущие правила местами достаточно выполнить:

...