Виртуальная АТС. Подключение и настройка SIP-абонентов
Понятия, определения
- Алиас (абонент) — совокупность, описывающая в пределах системы телефонный номер, связанный с интерфейсом в рамках определенной виртуальной АТС и различные дополнительные атрибуты (категория, абонентская группа, услуги). Фактически описывает абонента виртуальной АТС, подключенного к определенному порту и обладающего определенным набором специфичных для него параметров.
- Форкинг (forking) — привязка нескольких частных контактов к одному публичному контакту.
Порядок конфигурирования SIP-абонентов
Перед созданием SIP-абонента необходимо:
- Создать виртуальную АТС, создать контексты маршрутизации;
- Выделить абонентскую емкость для использования системой;
- При необходимости настроить LDAP-сервер, если для хранения данных аутентификации пользователя выбран данный режим. По умолчанию в системе выбран другой вариант хранения параметров аутентификации - база DS.
Порядок конфигурирования:
- Создать SIP-абонента;
- Выполнить настройку параметров.
Описание общих параметров абонента приведено в Приложении А. Набор параметров алиасов.
Настройка параметров SIP-абонента может быть выполнена индивидуально или через назначение определенного профиля настроек.
Иерархия профилей настроек имеет вид:
- Domain profile – профиль на уровне виртуальной АТС;
- Named profiles – абонентские профили;
- Subscriber settings - индивидуальные настройки абонента.
Для каждой виртуальной АТС может быть настроен только один профиль на уровне виртуальной АТС. Настройка профилей доступна администратору виртуальной АТС и администратору системы ECSS-10.
Значения параметров с меньшей областью действия переопределяют значения параметров профилей с большей областью действия. В приведенной выше иерархии параметры уровня 3 переопределяют параметры уровня 2 и меньших.
На практике рекомендуется задавать значения параметров в наиболее общих профилях, то есть на больших уровнях иерархии. Это позволяет хранить меньше данных, вносить групповые изменения в одном месте.
Настройка абонентов через CLI
Описание команд, используемых при настройке SIP-абонентов, приведено в справочнике команд CLI, раздел Команды управления конфигурацией абонентов SIP.
Добавление абонента
Для создания SIP-абонента используется команда:
/domain/<DOMAIN>/sip/user/declare
<ROUTING_CONTEXT> <GROUP> <INTERFACE> [<ALIAS>
[<QOP_AUTH> [<LOGIN> [<PASSWORD>]]]]
где
<DOMAIN> - имя виртуальной АТС;<ROUTING_CONTEXT> - имя контекста маршрутизации для данного абонента;
<GROUP> - название группы пользователей, логическое объединение интерфейсов в определенной виртуальной АТС. Может быть задана существующая или новая группа пользователей;
<INTERFACE> - название декларируемого интерфейса, задается в виде: username@host, где username – номер абонента; host – название SIP-домена регистрации. Список может быть задан диапазоном {a-b} или перечислением {a,b}, где a,b – натуральные числа.
Например, интерфейсы 1111@eltex.local, 1112@eltex.local, 1113@eltex.local можно задать в виде 111{1-3}@eltex.local или 111{1,2,3}@eltex.local или {1111,1112,1113}@eltex.local.Может быть задан существующий домен SIP-регистрации или указан новый;
<ALIAS> - альтернативный номер абонента, при указании значения "none" альтернативный номер не используется. Параметр нужен для возможности использовать тестовые имена на уровне SIP. Например, нужно прописать в качестве интерфейса SIP-абонента "text.users.name@some.sip.area", но так как в системе ECSS-10 используется телефонная маршрутизация, текстовое имя в маршрутизации использовать запрещено. В этом случае SIP-абоненту назначается параметр <ALIAS> - цифровой (телефонный) номер;
<QOP_AUTH> - поддержка QOP-аутентификации (повышенный уровень защиты). Опциональный параметр:
- no_qop_authentication - использовать QOP-аутентификацию;
- qop_authentication - не использовать QOP-аутентификацию;
<LOGIN> - имя декларируемого пользователя. Опциональный параметр. Имя пользователя может быть впоследствии добавлено/изменено как терминальными командами, так и на LDAP-сервере:
- login_as_number - в качестве имен пользователей использовать декларируемые номера;
- none - не назначать параметры авторизации при декларации;
- common_login <LOGIN> - общее имя <LOGIN> для всех декларируемых абонентов.
<PASSWORD> - пароль декларируемых пользователей. Не указывается, если в качестве <LOGIN> выбрано "none".
- auto_generation - каждому декларируемому абоненту генерируется персональный пароль. Полученные пароли можно будет посмотреть командами "user info" или "user authentication";
- публичный пароль (символьная строка) - всем декларируемым абонентам будет назначен единый заданный пароль.
Пример
Декларация одного абонента без указания параметров аутентификации, например, планируется указание доверенных IP-адресов (параметр "trusted-ip"):
domain/test.domain/sip/user/declare local smg 401@test.domain none no_qop_authentication
Настройка параметров абонента
Команды уровня администратора виртуальной АТС
Для изменения индивидуальных значений параметров абонента используются следующие команды:
- Команда для изменения параметров определенного абонентского номера и интерфейса заданной виртуальной АТС:
/domain/<DOMAIN>/alias/set <NUMBER> <GROUP> <INTERFACE> <PROPERTY> <VALUE>
- Команда для изменения параметров всех абонентов с определенным интерфейсом заданной виртуальной АТС:
/domain/<DOMAIN>/alias/set-for-iface <GROUP> <INTERFACE> <PROPERTY> <VALUE>
- Команда для изменения параметров всех абонентов с определенным абонентским номером заданной виртуальной АТС:
/domain/<DOMAIN>/alias/set-for-address <NUMBER> <PROPERTY> <VALUE>
где
<DOMAIN> - имя виртуальной АТС;
<NUMBER> - абонентский номер;
<GROUP> - имя группы интерфейсов, логическая привязка интерфейсов в определенной виртуальной АТС;
<INTERFACE> - имя интерфейса;
<PROPERTY> - имя изменяемого параметра, список приведен Приложении А. Набор параметров алиасов;
<VALUE> - значение изменяемого параметра, список приведен Приложении А. Набор параметров алиасов.
Для изменения значений параметров профиля виртуальной АТС абонента необходимо выполнить следующую команду:
/domain/<DOMAIN>/alias/set-for-domain <PROPERTY> <VALUE>
где
<DOMAIN> - имя виртуальной АТС;
<PROPERTY> - имя изменяемого параметра, список приведен Приложении А. Набор параметров алиасов;
<VALUE> - значение изменяемого параметра, список приведен Приложении А. Набор параметров алиасов.
Указанные выше команды используются для настройки общих параметров для всех абонентов системы: SIP-абонентов, абонентов H.248/megaco, виртуальных абонентов.
Для настройки параметров, специфичных только для SIP-абонентов, используется команда:
/domain/<DOMAIN>/sip/user/set <GROUP> <SIP_URI> <PROPERTY> <VALUE>
где
<DOMAIN> - имя виртуальной АТС;
<GROUP> - имя группы интерфейсов, логическая привязка интерфейсов в определенной виртуальной АТС;
<SIP_URI> - SIP URI абонента, задается в виде: username@host, где username – номер абонента; host – название SIP-домена;
Пример. Интерфейсы 1111@eltex.local, 1112@eltex.local, 1113@eltex.local можно задать в виде 111{1-3}@eltex.local или 111{1,2,3}@eltex.local или {1111,1112,1113}@eltex.local.
<PARAMETER> - имя изменяемого параметра, список приведен Приложении Б. Набор параметров интерфейса SIP;
<VALUE> - значение изменяемого параметра, список приведен Приложении Б. Набор параметров интерфейса SIP.
Команды уровня администратора системы
Для изменения значений индивидуальных параметров абонента необходимо выполнить следующую команду:
/cluster/storage/<CLUSTER>/alias/set-for-address <DOMAIN> <NUMBER> <PROPERTY> <VALUE>
Для изменения значений параметров профиля на уровне виртуальной АТС необходимо выполнить следующую команду:
/cluster/storage/<CLUSTER>/alias/set <DOMAIN> <PROPERTY> <VALUE>
где
<CLUSTER> - имя кластера хранения долговременных данных (DS). По умолчанию в системе присутствует кластера хранения долговременных данных с именем "ds1";
<NUMBER> - абонентский номер;
<DOMAIN> - имя виртуальной АТС (домена);
<PROPERTY> - имя изменяемого параметра, список приведен в Приложении А. Набор параметров алиасов;
<VALUE> - значение изменяемого параметра, список приведен в Приложении А. Набор параметров алиасов.
Удаление SIP-абонента
Для удаления SIP-абонента используется команда:
/domain/<DOMAIN>/sip/user/remove <GROUP> <SIP_URI> [--force]
где
<DOMAIN> - имя виртуальной АТС;
<GROUP> - имя группы интерфейсов, логическая привязка интерфейсов в определенной виртуальной АТС;
<SIP_URI> - SIP URI абонента, задается в виде: username@host, где username – номер абонента; host – название SIP-домена;
Пример. Интерфейсы 1111@eltex.local, 1112@eltex.local, 1113@eltex.local можно задать в виде 111{1-3}@eltex.local или 111{1,2,3}@eltex.local или {1111,1112,1113}@eltex.local.
[--force] - удаление без дополнительного подтверждения, опциональный параметр.
Настройка SIP-абонентов через Web-конфигуратор
Для создания SIP-абонентов используется приложение "Карточка абонента" ("Subsciber card").
Описание приложения приведено в разделе Карточка абонента (Subscriber card).
Для управление профилями абонентов используется приложение "Профили алиасов" ("Alias profiles").
Описание приложения приведено в разделе Профили абонентов (Alias profiles).
Создание SIP-абонента
Настройка параметров SIP-абонента
Для настройки параметров, приведенных ниже, необходимо выделить нужного абонента, после чего приступать к настройке.
Настройка основных параметров для абонента
Настройка дополнительных параметров для SIP-абонентов
Удаление абонента
Аутентификация абонентов
В системе ECSS-10 всегда требуется аутентификация абонентов.
Избежать требования аутентификации абонентов можно настройкой следующих параметров:
- trusted-IP - список доверенных IP-адресов, с которых разрешено получение запросов. Существует два режима запросов: strict (жесткий) - запросы разрешены только с этого адреса (адресов), nostrict - запросы разрешены с разных адресов. В случае strict-запроса аутентификация будет требоваться при включенном параметре digest. В случае nostrict-запросов вне зависимости от параметра digest аутентификация требуется с IP-адресов, не являющихся доверенными, с доверенных пускаем сразу.
Настройка выполняется командой domain/<DOMAIN>/sip/user/set <GROUP> <INTERFACE> trusted-ip <IP-addr>
Случаи, когда можно отказаться от требования аутентификации:
- Офисные абоненты подключены к абонентскому шлюзу (например, TAU-32M.IP, TAU-72.IP), но при этом абонентам разрешена регистрация из внешней сети (например, форкинг с мобильным терминалом, с домашним телефоном). Если указать "доверенный IP" (параметр "trusted-IP"), то при регистрации и звонках с офисных шлюзов не будет требоваться аутентификация. Звонки из внешней сети будут требовать аутентификацию.
- Офисные абоненты подключены к абонентскому шлюзу (например, TAU-32M.IP, TAU-72.IP). При этом все абоненты считаются стационарными без возможности форкинга контактов. Если указать «фиксированный IP» (параметр "trusted-ip"), то при регистрации и звонках с офисных шлюзов не будет требоваться аутентификация. При этом на шлюзах можно отключить регистрацию на сервере.
Если пользователи регистрируются из внешней сети, всегда должна требоваться аутентификация.
Регистрация нескольких контактов SIP-абонента (forking)
Общее описание
Если у абонента есть несколько терминалов, например, стационарный телефон и мобильный телефон, то он может все свои терминалы (разные SIP-контакты) зарегистрировать под одним публичным номером. Публичный номер будет известен другим абонентам, и по публичному номеру будут поступать входящие вызовы. Привязка нескольких частных контактов к одному публичному называется форкингом (forking).
На уровне SIP-адаптера форкинг работает в рамках одного абонентского интерфейса. Один абонент может под одним аккаунтом зарегистрировать несколько контактов (одной регистрацией или несколькими).
Принцип работы
Если есть несколько зарегистрированных контактов, то входящий вызов в зависимости от выбранного режима поступает одновременно или последовательно на все контакты.
Переход на следующий контакт/контакты выполняется по получению неуспешного ответа или истечении тайм-аута (таймер "find-me").
Исходящие звонки разрешены с любого контакта в любом режиме.
Абонент считается занятым, если по какому-либо контакту есть соединение или идет установка соединения, то есть работа интерфейса с несколькими зарегистрированными контактами в системе ничем не отличается от работы интерфейса с одним контактом.
Пример зарегистрированного абонента с несколькими контактами:
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.local, 1112@eltex.local, 1113@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 | ...
SIP-профили
Общее описание
Многие сип клиенты имеют особенности реализации.
Основная масса касается поддержки того или иного стандарта или спецификации. Также оператор сам может контролировать включение/выключение некоей функции (например, контроль сессии по RFC 4028).
Есть еще ограничения встречной стороны, которые противоречат или жестко ограничивают текущую реализацию взаимодействия адаптер-клиент:
- нотификации BLF о ходе параллельных соединений на наблюдаемом клиенте;
- осуществление исходящих звонков только через ноду адаптера, принявшую запрос регистрации
- реализация авто ответа, которая поддержана в рамках трех спецификаций, которые в свою очередь могут иметь разные опции.
Для преодоления данных ограничений реализованы профили SIP-клиентов, которые включают в себя особенности производителя.
Назначение профилей может осуществляться следующим образом:
- непосредственное назначение в свойствах SIP-абонента. Данный режим актуален когда нет полноценной детекции клиента;
- автоматическое определение при регистрации (по User-Agent).
Настройка профиля
При создании профиля задается его имя и набор параметров (один и более из имеющихся).
Сейчас поддерживаются три рабочих параметра и шаблон авто-определения:
- auto-answer_version - реализация авто ответа;
- concurency_blf - нотификации о параллельных диалогах. Значения true|false (по умолчанию - false).
Под параллельными нотификациями имеются ввиду нотификации о параллельных звонках с одного абонента.
Реализована очередь нотификаций. Работает следующим образом - пока есть события по одному диалогу, другие события слаться не будут, они будут откладываться в очередь. Когда же текущий диалог завершится, то они будут разосланы в текущем состоянии.
Начиная с версии 3.11.0 этот режим может быть выбран профилем SIP-клиента. Абоненту назначается соответствующий профиль, либо он определяется автоматически (настройка client_profile = auto). Параметры профиля:
- concurency_blf = true - разрешены параллельные нотификации, очередь не работает.
concurency_blf = false - запрещены параллельные нотификации, очередь работает. Этот режим используется "по умолчанию"
- node_control - ограничение исходящих вызовов нодой-регистратором, то есть привязка к ноде адаптера, на который пришла регистрация. Значения true|false (по умолчанию - false);
- templates - шаблон имени, содержащийся в заголовке User-Agent запроса регистрации;
- extended_blf - поддержка события Endpoint States для BLF. Значение true|false(по умолчанию - false);
- direct_early_update - Разрешить отправлять UPDATE до установления диалога;
- remote_party_id_enable - Включение/выключение передачи заголовка Remote-Party-ID;
- force_fork_release - Включение/выключение режима форкинга, при которотом абонент может отбить вызов с любого аппарат, при том на другие устройства вызов прекратится.
Команды управления профилями
Ниже приведены команды CoCon для управления SIP-профилями
Настройки профиля для SIP-абонента
Как уже было указано выше профиль может назначаться как в автоматическом режиме так и непосредственно присвоением нужного.
Назначение режима
Текущее значение режима
При назначении автоматического режима, кроме самого значения режима будет указан профиль, который был определен.
Если регистрации не было или авто определение было не успешно, будет указано: auto(none)