Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 21 Next »

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

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

Ресурсы

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

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

поля *Правила входящего вызова (/incom_rule/), за исключением 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 

обновленные поля *Правила входящего вызова (/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/PUTextension_id (integer) уникальный идентификатор добавочного, может принимать значение @me в случае пользователя типа "экстеншен" *Правила входящего вызова (/incom_rule/)Изменить порядок правил входящего вызова
extension/{extension_id}/incom_rule/order/GETextension_id (integer) уникальный идентификатор добавочного, может принимать значение @me в случае пользователя типа "экстеншен"  Получить порядок правил входящего вызова

 

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

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

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

Значение По

Умолчанию

Описание

id

integer

да

 

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

typestringда 

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

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

transfer_timeout

integer

нет

60

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

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 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_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.

Последовательность правил (IncomingRuleOrder

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

Значение По

Умолчанию

Описание

rules_ids

array [integer]

да

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

 

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

Настроим правила для добавочного типа "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/

{
"caller_id": "^(\\+7812|000)",
"caller_id_action": "matches",
"interval": 32,
"transfer_dst": "00018966",
"transfer_timeout": 15,
"type": "transfer",
"call_status": "no_answer",
"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": 1,
"transfer_dst": "00018966",
"transfer_timeout": 15,
"playfile_sound": null,
"caller_id_action": "matches",
"cascade_numbers": null,
"type": "transfer",
"final": false
}

Каскадный вызов

Теперь нужно, чтобы после выполнения правил в предыдущем разделе, если ответа так и не последовало, вызов перешел на добавочный 000*099 и через 5 секунд к нему  подключился 00026821 и все правило отрабатывало не более 20 секунд

метод
ресурс
данные
ответ
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
}

 

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

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

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

{
"rules_ids": [
2,1
]
}

{
"rules_ids": [
2,
1
]
}

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

There are no related labels.

  • No labels