Код абонентской функциии (featurecode)

Описание

Код абонентской функции (сокр. КАФ) - внутренний телефонный номер, определяющий доступ к различным внутренним сервисным функциям: IVR, конференция, перехват звонка, и т.д.
Является частью процесса маршрутизации звонков, применяется на финальном его этапе. Некоторые КАФ могут перезапускать процесс маршрутизации с измененными параметрами и новыми атрибутами.

Ограничения

  • Сущность недоступна в мастер-домене.

Поля

Структура сущности
{
  "id": uuid,
  "prefix": str,
  "type": str,
  "extension": str,
  "priority": int,
  "opts": {
    "title": str,
    "comment": str
  },
  "ext": {
    "ct": date,
    "lwt": date
  }
}
Table 1. Поля
Спецификация Описание

Поле: id
Режим: inout
Тип: uuid
По умолчанию: generated

Идентификатор. Может быть задан при создании, иначе генерируется системой «R».

Поле: prefix
Режим: in
Тип: str
По умолчанию: required

Префикс номера КАФ.
При попадании звонка в КАФ производится поиск всех КАФ, префикс которых соответствует набранному номеру. Если приоритеты этих КАФ совпадают, то применяется КАФ с более длинным префиксом (long-hunting).

Поле: type
Режим: in
Тип: str
По умолчанию: required

Тип кода абонентских функций.
Большинство типов КАФ использует параметры.
Параметр остаток вычисляется как окончание набранного номера после номера КАФ. Например, набран номер 123456, собственный номер КАФ – 123, значит параметр для него - 456.

Поле: extension
Режим: in
Тип: str
По умолчанию: empty

Дополнительный параметр. Для типа ivr – код IVR сценария, для типа hunt – номер hunt применяемый в приоритете перед остатком, для типа replaceнабор дополнительных опций.

Поле: priority
Режим: in
Тип: int
По умолчанию: 1000

Приоритет кода абонентских функций.
Применяется в случае, если номеру соответствуют несколько различных КАФ. Чем меньше значение, тем выше приоритет.

Поле: opts
Режим: in
Тип: object
Составное поле

Поле: opts.title
Режим: in
Тип: str
По умолчанию: empty

Произвольный заголовок

Поле: opts.comment
Режим: in
Тип: str
По умолчанию: empty

Произвольный комментарий

Поле: ext
Режим: inout
Тип: object
Составное поле

Позволяет расширять состав произвольными ключами и значениями

Поле: ext.ct
Режим: out
Тип: date
По умолчанию: generated

Время создания объекта

Поле: ext.lwt
Режим: out
Тип: date
По умолчанию: generated

Время последней модификации объекта

Тип кода абонентских функций

Table 2. Тип кода абонентских функций
Значение Описание

"pickup"

Перехват звонка, поступившего на учетную запись, доступную по указанному номеру. Номер вычисляется как остаток. Поле extension не применяется.

"grouppickup"

Перехват звонка на основании присутствия вызываемой учетной записи SIP-пользователя и перехватывающей учетной записи SIP-пользователя в одном групповом номере.
Перехвату подлежит любой звонок, находящийся в состоянии вызова абонента, даже если поступил не на групповой номер, а индивидуально.
Ни остаток, ни поле extension не применяются.

"conference"

Маршрутизация на сервис конференций.
Номер конференц-комнаты вычисляется как остаток. Поле extension не применяется.

"videoconference"

Маршрутизация на сервис видеоконференций.
Номер конференц-комнаты вычисляется как остаток. Поле extension содержит настройку схемы экрана.

"ivr"

Маршрутизация на сервис IVR.
Код сценария IVR указывается в поле extension КАФ. Остаток не применяется.

"hunt"

Маршрутизация на сервис очередей.
Номер hunt-группы (phonenumber) указывается в поле extension КАФ, если там пусто, то берется как остаток.

"voicemail"

Маршрутизация на сервис голосовой почты с целью прослушивания.
Фактически реализован в IVR и может быть заменен внутри домена.
Номер почтового ящика вычисляется как остаток. Поле extension не применяется.
Номер этого КАФ с остатком может быть указан при настройке MWI в телефоне абонента.

"voicemail_send"

Маршрутизация на сервис голосовой почты с целью записи голосового сообщения.
Фактически реализован в IVR и может быть заменен внутри домена.
Номер почтового ящика вычисляется как остаток. Поле extension не применяется.

"parking"

Постановка вызова на парковку.
Фактически маршрутизация на сервис постановки на парковку, реализованный в IVR, который может быть заменен внутри домена.
Номер парковочного места вычисляется как остаток. Поле extension не применяется.

"parking_get"

Взятие вызова с парковки.
Фактически маршрутизация на сервис взятия на парковки, реализованный в IVR, который может быть заменен внутри домена.
Номер парковочного места вычисляется как остаток. Поле extension не применяется.

"intercom"

Вызов абонента в режиме интерком (задача #127).
Целевой номер берется из поля extension, а если там нет, то вычисляется как остаток. Далее инициируется новая итерация маршрутизации.
В режиме интеркома разрешаются только звонки по правилам с action = inside и insidepbx.
При попадании на переадресацию вызов сразу блокируется, чтобы исключить неожиданности.

"barge"

Вторжение к занятому абоненту (задача #141).
Целевой номер берется из поля extension, а если там нет, то вычисляется как остаток. Далее инициируется новая итерация маршрутизации.
В случае, если целевой абонент находится в состоянии разговора, происходит интерком-вызов (как следствие с автоматической постановкой текущего разговора на удержание), а если целевой абонент свободен, то происходит обычный вызов.

"replace"

Подмена плеча (задача #163).
Инициирует маршрутизацию на указанный номер с добавлением заголовка Replaces в INVITE с целью подмены. Номер вычисляется как остаток.
Поле extension содержит перечисление стратегий обнаружения подменяемого звонка и плеча, например "num, opposite, allsites".

Набор дополнительных опций для КАФ типа 'replace'

Table 3. Набор дополнительных опций для КАФ типа 'replace'
Значение Описание

"num"

Диалог обнаруживается по абоненту, которому принадлежит набранный номер

"callid"

Диалог обнаруживается по CallId, который вычисляется аналогично номеру как остаток после вырезания номера КАФ. Если указанное значение пусто, то анализируется содержимое заголовка X-R-Replaces-Call-Id запроса INVITE.

"opposite"

Признак подмены противоположного плеча относительно найденного по указанному номеру/CallId

"allsites"

Признак поиска звонка на всех сайтах

"base64"

Признак кодировки CallId из username в Base64

См. также

Функциональные роли

  • b2b проводит маршрутизацию и применение КАФ.

  • mdc и sdc производит поиск КАФ.