Общее описание
Многие сип клиенты имеют особенности реализации.
Основная масса касается поддержки того или иного стандарта или спецификации. Также оператор сам может контролировать включение/выключение некоей функции (например, контроль сессии по RFC 4028).
Есть еще ограничения встречной стороны, которые противоречат или жестко ограничивают текущую реализацию взаимодействия адаптер-клиент:
- нотификации BLF о ходе параллельных соединений на наблюдаемом клиенте;
- осуществление исходящих звонков только через ноду адаптера, принявшую запрос регистрации
- реализация авто ответа, которая поддержана в рамках трех спецификаций, которые в свою очередь могут иметь разные опции.
Для преодоления данных ограничений реализованы профили SIP-клиентов, которые включают в себя особенности производителя.
Назначение профилей может осуществляться следующим образом:
- непосредственное назначение в свойствах SIP-абонента. Данный режим актуален когда нет полноценной детекции клиента;
- автоматическое определение при регистрации(по User-Agent).
Настройка профиля
При создании профиля задается его имя и набор параметров (один и более из имеющихся).
Сейчас поддерживаются три рабочих параметра и шаблон авто-определения:
- auto_answer_version - реализация авто ответа. Сейчас данный параметр может принимать значение только by_user_set;
- 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 запроса регистрации.
Команды управления профилями
Ниже приведены команды CoCon для управления SIP-профилями
В данном разделе приводится описание команд управления команды настройки профиля абонентов SIP.
Общее описание работы SIP-профилей приведено в разделе "SIP-профили"
<DOMAIN> - имя виртуальной АТС.
clean
Команда предназначена для сброса параметров профиля абонента SIP в значение по умолчанию. При необходимости можно сбросить все параметры профиля. Сам профиль удален при этом не будет.
В команде допустим ключ --force
, при котором предупреждение будет пропущено. Актуально, например, при работе через скрипт. По "tab" не подставляется!
Путь команды:
/domain/<DOMAIN>/sip/user/profile/clean
Синтаксис:
clean PROFILE_ID [--force]
Параметры:
<PROFILE_ID> - существующий или новый ID профиля;
[--force] - удаление без дополнительного подтверждения.
Пример:
admin@[mycelium1@ecss1]:/$ domain/biysk.local/sip/user/profile/clean soft_client [clean] Set parameters to default value continue: yes/no ?> yes Executed on the sip1@ecss2 ┌───────────┬─────────────────────────────────┐ │Profile ID │ Profile set │ ├───────────┼─────────────────────────────────┤ │soft_client│auto_answer_version = by_user_set│ │ │concurency_blf = false │ │ │node_control = false │ │ │templates = - │ └───────────┴─────────────────────────────────┘ [exec at: 24.03.2019 09:52:19, exec time: 5s 301ms, nodes: sip1@ecss2]
del
Команда предназначена для удаления профиля абонента SIP.
В команде допустим ключ --force
, при котором предупреждение будет пропущено. Актуально, например, при работе через скрипт. По "tab" не подставляется!
Путь команды:
/domain/<DOMAIN>/sip/user/profile/del
Синтаксис:
del PROFILE_ID [--force]
Параметры:
<PROFILE_ID> - существующий или новый ID профиля;
[--force] - удаление без дополнительного подтверждения.
Пример:
admin@[mycelium1@ecss1]:/$ domain/biysk.local/sip/user/profile/del vp12 --force Executed on the sip1@ecss1 ok [exec at: 24.03.2019 09:54:16, exec time: 75ms, nodes: sip1@ecss1]
info
Команда предназначена для просмотра информации о профиле абонента SIP.
Путь команды:
/domain/<DOMAIN>/sip/user/profile/info
Синтаксис:
info PROFILE_ID
Параметры:
<PROFILE_ID> - существующий или новый ID профиля.
Пример:
admin@[mycelium1@ecss1]:/$ domain/biysk.local/sip/user/profile/info vp12 Executed on the sip1@ecss1 ┌──────────┬─────────────────────────────────┐ │Profile ID│ Profile set │ ├──────────┼─────────────────────────────────┤ │vp12 │auto_answer_version = by_user_set│ │ │concurency_blf = true │ │ │node_control = false │ │ │templates = vp │ └──────────┴─────────────────────────────────┘ [exec at: 24.03.2019 09:51:05, exec time: 66ms, nodes: sip1@ecss1]
list
Команда предназначена для просмотра списка профилей абонента SIP. Возвращает список имеющихся профилей, включая шаблон авто определения.
Путь команды:
/domain/<DOMAIN>/sip/user/profile/list
Синтаксис:
list
Параметры:
Команда не содержит аргументов.
Пример:
admin@[mycelium1@ecss1]:/$ domain/biysk.local/sip/user/profile/list Executed on the sip1@ecss2 ┌───────────┬───────────────────┐ │Profile ID │User-Agent template│ ├───────────┼───────────────────┤ │soft_client│grandstream │ │vp12 │vp │ └───────────┴───────────────────┘ [exec at: 24.03.2019 09:49:50, exec time: 75ms, nodes: sip1@ecss2]
set
Команда позволяет задать параметры профиля SIP-клиента. Если ID не существует, то команда задает новый профиль.
При первой настройке профиль с указанным именем будет создан автоматически. Указывать одновременно можно один и более параметров через запятую. Шаблон агента вводится в кавычках, если содержит пробелы.
Внимание! Вхождение шаблона проверяется без учета регистра, но с учетом количества указанных пробелов!
Результат команды:
new - создан новый профиль с указанными именем и параметрами (неуказанные параметры принимают значения "по умолчанию");
exists - указаны уже установленные параметры существующему профилю;
change - параметр (параметры) существующего профиля изменены.
Путь команды:
/domain/<DOMAIN>/sip/user/profile/set
Синтаксис:
set PROFILE_ID KEY = VALUE[, ...]
Параметры:
<PROFILE_ID> - существующий или новый ID профиля; <KEY> - название параметра, который разрешен:
- auto_answer_version - реализация авто ответа.;
- concurency_blf - нотификации о параллельных диалогах. Значения true|false (по умолчанию - false);
- node_control - ограничение исходящих вызовов нодой-регистратором. Значения true|false (по умолчанию - false);
- templates - шаблон имени, содержащийся в заголовке User-Agent запроса регистрации;
- extended_blf - поддержка события Endpoint States для BLF. Значение true|false(по умолчанию - false).
Пример:
admin@[mycelium1@ecss1]:/$ domain/biysk.local/sip/user/profile/set vp12 auto_answer_version = by_user_set, concurency_blf = true, templates = VP Executed on the sip1@ecss1 new [exec at: 24.03.2019 09:43:38, exec time: 91ms, nodes: sip1@ecss1]
Настройки профиля для SIP-абонента
Как уже было указано выше профиль может назначаться как в автоматическом режиме так и непосредственно присвоением нужного.
Назначение режима
admin@ds1@ecss1:/$ domain/biysk.local/sip/user/set loc.gr 240244@biysk.local client-profile GrandStream Yealink auto coral none admin@ds1@ecss1:/$ domain/biysk.local/sip/user/set loc.gr 240244@biysk.local client-profile Yealink 1 make users list ... [**********************************************************************] 95mks set for 1 users ... [**********************************************************************] 5ms Executed on the sip1@ecss1 [exec at: 15.05.2019 12:44:10, exec time: 119ms, nodes: sip1@ecss1]
Текущее значение режима
admin@ds1@ecss1:/$ domain/biysk.local/sip/user/info loc.gr 240244@biysk.local 1 make users list ... [**********************************************************************] 39mks 1 users information read ... [**********************************************************************] 7ms Executed on the sip1@ecss2 ┌─────────────────────┬────────────────────────────────────────────────────────────────────────────────┐ │ User │ 240244@biysk.local │ ├─────────────────────┼────────────────────────────────────────────────────────────────────────────────┤ │internal iface name │06147ccfe208631d │ │isActive │true │ │group │loc.gr │ │authentication │240244:ZexeihuP (ds) use qop: true │ │contacts definition │q: 1.0; ip-set: ipset1; on port: 5060; sip │ │ │ registred by node: sip1@ecss1 │ │ │ sip transport: udp │ │ │ user-agent: Yealink SIP-T28P 2.73.14.3 │ │ │ <sip:240244@192.168.2.6:5060;transport=UDP;line=28063>;expires=769 │ │declared by │admin at 29.04.2019 11:13:50 │ │ │ │ │alarm_enable │false │ │aliases activities │240244:true │ │allow │INVITE, INFO, PRACK, ACK, BYE, CANCEL, OPTIONS, NOTIFY, SUBSCRIBE, REFER, UPDATE│ │ │, MESSAGE │ │allow events │refer, talk, hold │ │auto-answer-version │default (Alert-Info: Auto Answer) │ │category_to_sip │default │ │client-profile │Yealink │ │compact-form │default │ │digest │true │ │display-name-encoding│default │ │dtmf-duration │100 │ │dtmf-relay │false │ │fork-mode │all-contacts, allow repeated IP: true │ │last via │SIP/2.0/UDP 192.168.1.201:5066;received=194.150.142.251 │ │ │SIP/2.0/UDP 192.168.2.6:5060;received=192.168.2.6;rport=5060 │ │my_from │biysk.local │ │nat_traversal │false │ │options_control │disable │ │original-cdpn-to │true │ │published presence │none │ │referred-by-as-cgpn │false │ │register-expire-max │3600 │ │register-expire-min │90 │ │host-to-invite │registered-domain │ │registrator │node: sip1@ecss1 port: udp 192.168.2.61:5060 │ │regs_time │29.04.2019 11:13:57 │ │remote-ctr-indication│rpi │ │req100rel │false │ │rfc-4028-control │force │ │routing.context │ctx_from_local │ │sip-domain │biysk.local │ │sip-modifications │[] │ │supported │[req100rel] │ │symbol_hash_as_is │false │ │sip-transit │[] │ │trusted-ip │unassigned │ │user agent │Yealink SIP-T28P 2.73.14.3 │ └─────────────────────┴────────────────────────────────────────────────────────────────────────────────┘ [exec at: 15.05.2019 12:53:05, exec time: 93ms, nodes: sip1@ecss2]
При назначении автоматического режима, кроме самого значения режима будет указан профиль, который был определен.
Если регистрации не было или авто определение было не успешно, будет указано: auto(none)