Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Общее описание

Если у абонента есть несколько терминалов, например, стационарный телефон и мобильный телефон, то он может все свои терминалы (разные SIP-контакты) зарегистрировать под одним публичным номером. Публичный номер будет известен другим абонентам, и по публичному номеру будут поступать входящие вызовы. Привязка нескольких частных контактов к одному публичному называется форкингом (forking).

На уровне SIP-адаптера форкинг работает в рамках одного абонентского интерфейса. Один абонент может под одним аккаунтом зарегистрировать несколько контактов (одной регистрацией или несколькими).

Принцип работы

Если есть несколько зарегистрированных контактов, то входящий вызов в зависимости от выбранного режима поступает одновременно или последовательно на все контакты.
Переход на следующий контакт/контакты выполняется по получению неуспешного ответа или истечении тайм-аута (таймер "find-me").

Ответы 3хх воспринимаются как неуспешные, если в списке есть другие контакты. То есть работа форкинга приоритетней услуг переадресации.

Исходящие звонки разрешены с любого контакта в любом режиме.
Абонент считается занятым, если по какому-либо контакту есть соединение или идет установка соединения, то есть работа интерфейса с несколькими зарегистрированными контактами в системе ничем не отличается от работы интерфейса с одним контактом.

Пример зарегистрированного абонента с несколькими контактами:

ecss-root@[ecss_mycelium@alex]:/# domain/d.408/sip/user/info sip.test 900000@sip.test                          
1 users information read ...
[**********************************************************************] 6ms      
Executed on the pa_sip@alex
----------------------------------------------------------------------------------------------------------------------------------------------
|      User       | Is active |  Group   | Login |                            Registration                            | Extended information |
|-----------------+-----------+----------+-------+--------------------------------------------------------------------+----------------------|
| 900000@sip.test | true      | sip.test |       | q=1.0; <sip:900000@192.168.23.166:5064>;expires=65                 |                      |
|                 |           |          |       | q=0.8; <sip:900000@192.168.23.166:5062;transport=udp>;expires=9003 |                      |
----------------------------------------------------------------------------------------------------------------------------------------------

Режим форкинга

Выбор режима работы форкинга выполняется для абонента или группы абонентов следующей командой:

domain/<DOMAIN>/sip/user/set <GROUP> <SIP_URI> fork-mode <MODE> <ALLOW-REPEAT-IP> <PREVIOUS-CONTINUE>

где

<DOMAIN> - имя виртуальной АТС;
<GROUP> - имя группы интерфейсов, логическая привязка интерфейсов в определенной виртуальной АТС;
<SIP_URI> - SIP URI абонента, задается в виде: username@host, где username – имя/номер абонента; host – домен регистрации;
Список может быть задан диапазоном {a-b} или перечислением {a,b}, где a,b – натуральные числа.
Пример. Интерфейсы 1111@eltex.local1112@eltex.local1113@eltex.local можно задать в виде 111{1-3}@eltex.local или 111{1,2,3}@eltex.local или {1111,1112,1113}@eltex.local.
<MODE> - режим форкинга:

  • all-contacts - запрос на установление соединения (INVITE) отправляется одновременно на все зарегистрированные контакты. С первым ответившим контактом устанавливается диалог, вызовы на остальные контакты завершаются;
  • find-me-one-by-one - последовательный перебор контактов по списку. Если контакт не отвечает по истечении таймера "find-me" (контакту отправляется CANCEL) или приходит неуспешный ответ, запрос перенаправляется на следующий контакт;
  • find-me-with-q - последовательный перебор с учетом приоритета. Сначала выполняется запрос на все контакты самого старшего приоритета, затем на контакты со следующим приоритетом и так далее. Если в списке контакты только одного приоритета, то работа аналогична режиму "all-contacts". Если все имеют разный приоритет, то аналогично режиму "find-me-one-by-one";
  • disable - отключение форкинга. Запрос на установление соединения (INVITE) будет отправляться только на первый контакт в списке, наличие остальных контактов игнорируется. Совершать вызовы разрешено со всех зарегистрированных контактов.

<ALLOW-REPEAT-IP> - будет ли перезаписываться старый контакт новым, если изменился только порт:

  • allow-repeat-ip - существующий контакт будет сохраняться;
  • disallow-repeat-ip - существующий контакт будет перезаписываться;
    Примечание: параметр обязателен для всех режимов, кроме операции отключения (disable)

<PREVIOUS-CONTINUE> - свойство режимов find-me (для all-contacts не применяется):

  • previous-continue - при переходе к следующему контакту (группе контактов с одним приоритетом) вызов предыдущего (предыдущих) продолжается;
  • previous-stop - при переходе к следующему контакту (группе контактов с одним приоритетом) вызов предыдущего (предыдущих) отменяется
    Примечание: параметр обязателен для режимов find-me-one-by-one и find-me-with-q

Список контактов формируется при регистрации в порядке убывания приоритета (параметр контакта "q"), равнозначные - в порядке получения регистраций. Если в регистрации приоритет контакта не указан, то он принимается равным 1.
Значения приоритетов - число от 0 (низкий) до 1 (высокий).
Назначить приоритет контакту на уровне системы нельзя, приоритет контакта указывает пользователь в запросе регистрации.

Таймер "find-me"

Таймер "find-me" определяет интервал времени, в течение которого контакт должен ответить на поступивший вызов, по истечении таймера вызов передается следующему контакту SIP-аккаунта. Значение устанавливается в секундах, по умолчанию 5 секунд.

Команда для изменения значения таймера "find-me":

domain/<DOMAIN>/timers/sip/set find-me <VALUE>

где

<DOMAIN> - имя виртуальной АТС;
<VALUE> - значение таймера "find-me".

Пример:

admin@[mycelium@ecss1]:/# domain/d.408/timers/sip/set find-me 5
Property "find_me" successfully changed from: 
7
   to
5.
...

admin@[mycelium@ecss1]:/# domain/d.408/timers/sip/info
-----------------------------
|   Property   |Domain|Value|
|--------------+------+-----|
|find_me       |d.408 |5    |
...
  • Нет меток