Versions Compared

Key

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

...

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

На входящий вызов можно создавать несколько правил (максимальное количество определяется ресурсом limits).

...

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

Значение По

Умолчанию

Описание

id

Anchor
IncomingRule.id
IncomingRule.id

integer

да

 

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

typestringда 

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

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

transfer_timeout

integer

нет

60

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

cascade_numbers
Anchor
cascade_numbers
cascade_numbers
arrayнет[ ]

Актуален для "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'

Правило отработает лишь при таком статусе добавочного. Принимает одно из значений:

  •  '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.

...

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

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

...

Время, после которого вызов на добавочный считается не отвеченным (hangup-timeout) является свойством самого добавочного типа 'phone' и настраивается ресурсом phone.

Для начала нужно создать (или выбрать из имеющихся) временной интервал.  Пусть это будет интервал с идентификатором 32. Создание правила:

...

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

{
"rules_ids": [
2,1
]
}

{
"rules_ids": [
2,
1
]
}

Ресурсы раздела "Добавочный"

POST /extension/{extension_id}/incom_rule/

Добавить правило входящего вызова добавочного

Параметры URL

Имя

Тип

extension_id

string

Параметры JSON

Имя

Тип

Обязательный

allow_public_transfer

boolean

нет

extension_call_status

string

нет

call_status

string

нет

transfer_dst

string

нет

enable_call_screening

boolean

нет

enabled

boolean

нет

interval

integer

нет

caller_id_action

string

да

ignore_early_media

boolean

нет

caller_id

string

нет

extension_status

string

нет

transfer_timeout

integer

нет

playfile_sound

integer

нет

cascade_numbers

array [cascade_number]

нет

type

string

да

final

boolean

нет

name

string

нет

Поля ответа

Имя

Тип

allow_public_transfer

boolean

extension_call_status

string

call_status

string

transfer_dst

string

enable_call_screening

boolean

enabled

boolean

interval

integer

caller_id_action

string

ignore_early_media

boolean

caller_id

string

id

integer

extension_status

string

transfer_timeout

integer

playfile_sound

integer

cascade_numbers

array [cascade_number]

type

string

final

boolean

name

string

GET /extension/{extension_id}/incom_rule/

Получить список правил входящего вызова добавочного

Параметры URL

Имя

Тип

extension_id

string

Поля ответа

Имя

Тип

allow_public_transfer

boolean

extension_call_status

string

call_status

string

transfer_dst

string

enable_call_screening

boolean

enabled

boolean

interval

integer

caller_id_action

string

ignore_early_media

boolean

caller_id

string

id

integer

extension_status

string

transfer_timeout

integer

playfile_sound

integer

cascade_numbers

array [cascade_number]

type

string

final

boolean

name

string

...

PUT /extension/{extension_id}/incom_rule/order/

Обновить порядок правил входящего вызова добавочного

Параметры URL

Имя

Тип

extension_id

string

Параметры JSON

Имя

Тип

Обязательный

rules_ids

array [integer]

да

Поля ответа

Имя

Тип

rules_ids

array [integer]

GET /extension/{extension_id}/incom_rule/order/

Получить порядок правил входящего вызова добавочного

Параметры URL

Имя

Тип

extension_id

string

Поля ответа

Имя

Тип

rules_ids

array [integer]

...

PUT /extension/{extension_id}/incom_rule/{rule_id}

Обновить правило входящего вызова добавочного

Параметры URL

Имя

Тип

extension_id

string

rule_id

integer

Параметры JSON

Имя

Тип

Обязательный

allow_public_transfer

boolean

нет

extension_call_status

string

нет

call_status

string

нет

transfer_dst

string

нет

enable_call_screening

boolean

нет

enabled

boolean

нет

interval

integer

нет

caller_id_action

string

нет

ignore_early_media

boolean

нет

caller_id

string

нет

extension_status

string

нет

transfer_timeout

integer

нет

playfile_sound

integer

нет

cascade_numbers

array [cascade_number]

нет

type

string

нет

final

boolean

нет

name

string

нет

Поля ответа

Имя

Тип

allow_public_transfer

boolean

extension_call_status

string

call_status

string

transfer_dst

string

enable_call_screening

boolean

enabled

boolean

interval

integer

caller_id_action

string

ignore_early_media

boolean

caller_id

string

id

integer

extension_status

string

transfer_timeout

integer

playfile_sound

integer

cascade_numbers

array [cascade_number]

type

string

final

boolean

name

string

GET /extension/{extension_id}/incom_rule/{rule_id}

Получить правило входящего вызова добавочного

Параметры URL

Имя

Тип

extension_id

string

rule_id

integer

Поля ответа

Имя

Тип

Имя

Тип

allow_public_transfer

boolean

extension_call_status

string

call_status

string

transfer_dst

string

enable_call_screening

boolean

enabled

boolean

interval

integer

caller_id_action

string

ignore_early_media

boolean

caller_id

string

id

integer

extension_status

string

transfer_timeout

integer

playfile_sound

integer

cascade_numbers

array [cascade_number]

type

string

final

boolean

name

string

DELETE /extension/{extension_id}/incom_rule/{rule_id}

Удалить правило входящего вызова добавочного

Параметры URL

Имя

Тип

extension_id

string

rule_id

integer

...

Похожие разделы

Related Labels