Типы динамической регистрации:
В системе ECSS-10 реализован "операторский" тип регистрации. Регистрация выполняется с одним аккаунтом.
Если SIP-транк не зарегистрирован или истек тайм-аут регистрации, входящие и исходящие вызовы не будут совершаться через данный SIP-транк.
Вызовы выполняются под разными номерами. Для аутентификации используется единый логин и пароль.
Настройка SIP-транка состоит из двух этапов:
1. Декларирование и настройка SIP-транка.
Порядок настройки SIP-транка:
2. Создание правила маршрутизации.
Для добавления правила маршрутизации необходимо:
Процесс создания и настройки контекстов маршрутизации описан в разделе Виртуальная АТС. Маршрутизация телефонных вызовов.
Для создания SIP-транка используется команда:
/domain/<DOMAIN>/trunk/sip/declare <ROUTING_CONTEXT> <GROUP> <TRUNK_INTERFACE> <IPSET> [static <DEST_HOST> <DEST_PORT> <MODE> <LISTEN_PORT> | dynamic <LOGIN> <PASSWORD>]
где
<DOMAIN> — имя виртуальной АТС;
<ROUTING_CONTEXT> — название существующего контекста маршрутизации;
<GROUP> — название группы интерфейсов (может быть задана существующая или новая группа);
<TRUNK_INTERFACE> — имя системного интерфейса, описывающего данное направление. Имя интерфейса является внутрисистемным идентификатором, участвующем в маршрутизации, отображении статистики и другое;
<IPSET> — имя группы локальных адресов;
static — декларация статического транка;
dynamic — декларация динамического транка (с регистрацией);
|
<DEST_HOST> — IP-адрес или доменное имя встречного устройства для взаимодействия;
<DEST_PORT> — транспортный порт встречного устройства для взаимодействия с ним по протоколу SIP;
<MODE> — режим работы транка:
<LISTEN_PORT> — транспортный порт, используемый SIP-адаптером для приема сигнализации. SIP-адаптер может использовать несколько портов для приема сигнализации, что позволяет организовать несколько транков с одним и тем же устройством. Как минимум один локальный (слушающий) порт должен быть назначен в обязательном порядке.
<LOGIN> — логин;
<PASSWORD> — пароль.
В режиме sip-proxy осуществляется работа по протоколу SIP, базовая рекомендация RFC 3261.
В режимах sip-t, sip-i в тело сообщений протокола SIP инкапсулируются сообщения ISUP. Работа протокола SIP-I описана в рекомендации Q.1912.5, протокола SIP-T в RFC 3372, а протокола SIP-Q в ECMA-143, ECMA-165.
При создании SIP-транка производится проверка имени интерфейса (в системе запрещено создавать транки с одинаковыми именами в пределах одной виртуальной АТС) и связки <dest_host>:<dest_port>:<ip_set>:<listen_port>. Если имя интерфейса SIP-транка совпадет с существующим именем, системой будет выдано предупреждение "trunk already exists". Декларация интерфейса в этом случае не будет выполнена.
При успешном создании SIP-транка имеется возможность сразу (в рамках одной команды) проверить доступность указанного направления посредством передачи запроса OPTIONS. Для этого используется ключ --check, в отличие от версии 2.14, где попытка такой проверки была безусловной. Результат проверки доступности:
Для удаления SIP-транка или всех транков одной группы используется команда:
/domain/<DOMAIN>/trunk/sip/remove <GROUP> <TRUNK_INTERFACE> [--force]
где
<DOMAIN> — имя виртуальной АТС;
<GROUP> — имя группы транков, логическая группировка транков в определенной виртуальной АТС;
<TRUNK_INTERFACE> — имя SIP-транка;
--force — дополнительный параметр (ключ), предназначен для безусловного удаления группы транков или транка.
Для настройки параметров SIP-транка используется команда:
/domain/<DOMAIN>/trunk/sip/set <GROUP> <TRUNK_INTERFACE> <PARAMETER> <VALUE>
где
<DOMAIN> — имя виртуальной АТС;
<GROUP> — имя группы транков, логическая группировка транков внутри виртуальной АТС;
<TRUNK_INTERFACE> — имя SIP-транка;
<PARAMETER> — настраиваемый параметр, список параметров приведен в Приложении Б. Набор параметров интерфейса SIP.
<VALUE> — значение параметра.
Для просмотра информации о SIP-транке используется команда:
/domain/<DOMAIN>/trunk/sip/info <GROUP> [<TRUNK_INTERFACE>]
где
<DOMAIN> — имя виртуальной АТС;
<GROUP> — название существующей группы интерфейсов, символ "*" используется для указания всех групп транков;
<TRUNK_INTERFACE> — логическое имя транка, символ "*" используется для указания всех интерфейсов группы.
Для просмотра свойств группы имя интерфейса транка (символ "*") не указывается.
Для настройки дополнительных параметров SIP-транка используется команда:
/domain/<DOMAIN>/trunk/set <GROUP> <TRUNK> <PARAMETER> <VALUE>
где
<DOMAIN> — имя виртуальной АТС;
<GROUP> — имя группы транков, логическая группировка транков внутри виртуальной АТС;
<TRUNK> — имя SIP-транка;
<PARAMETER> — настраиваемый параметр,
В таблице 1 приведено описание параметров.
|
<VALUE> — значение параметра.
Для просмотра информации о SIP-транке используется команда:
/domain/<DOMAIN>/trunk/info <GROUP> [<TRUNK>]
где
<DOMAIN> — имя виртуальной АТС;
<GROUP> — название существующей группы интерфейсов, символ "*" используется для указания всех групп транков;
<TRUNK> — логическое имя транка, символ "*" используется для указания всех интерфейсов группы.
Для просмотра свойств группы имя интерфейса транка (символ "*") не указывается.
Проверка доступности транка выполняется передачей запроса OPTIONS. Тест может выполняться для определенного транка или для всех транков группы.
Для проверки состояния SIP-транка используется команда:
/domain/<DOMAIN>/trunk/sip/check <GROUP> [<TRUNK_INTERFACE>] [timerF = <TIMERF>]
где
<DOMAIN> — имя виртуальной АТС;
<GROUP> — название существующей группы интерфейсов. Символ "*" используется для указания всех групп транков;
<TRUNK_INTERFACE> — логическое имя транка. Символ "*" используется для указания всех интерфейсов группы.
Если ответ не получен (направление на данный транк не доступно), то выводится результат "timeout".
|
<TIMERF> — тайм-аут ожидания ответа, в пределах которого отправляются повторные запросы, если удаленная сторона не отвечает. Задается в миллисекундах. Для выключения контроля установите значение тайм-аута — 0.
Если встречное оборудование доступно, то результатом выполнения команды будет значение "Accessible"=true, если недоступно — "Accessible"=false.
Для направлений, на которых необходима регистрация встречных SIP-транков в системе ECSS-10, создаются динамические SIP-транки.
Для создания динамического SIP-транка используется команда:
/domain/<DOMAIN>/trunk/sip/declare <ROUTING_CONTEXT> <GROUP> <TRUNK_NAME> <IPSET> [dynamic LOGIN PASSWORD]
где
<DOMAIN> — имя виртуальной АТС;
<ROUTING_CONTEXT> — контекст маршрутизации для данного транка;
<GROUP> — имя группы транков (параметр идентичен <TRUNK_GROUP> для обычных SIP-транков);
<TRUNK_NAME> — имя для регистрации динамического SIP-транка;
<IPSET> — имя группы локальных адресов;
<LOGIN> — логин;
<PASSWORD> — пароль.
При создании динамического SIP-транка в системе создается виртуальный абонент-транк с URI <TRUNK_INTERFACE>@<GROUP>.
| В командах работы с SIP-абонентами данный виртуальный абонент-транк не доступен. |
Для удаления динамического SIP-транка используется команда:
/domain/<DOMAIN>/trunk/sip/remove <GROUP> <TRUNK_NAME> [--force]
где
<DOMAIN> — имя виртуальной АТС;
<GROUP> — имя группы транков (параметр идентичен <TRUNK_GROUP> для обычных SIP-транков);
<TRUNK_NAME> — имя для регистрации динамического SIP-транка (параметр идентичен <TRUNK_NAME> для обычных SIP-транков);
--force — дополнительный параметр (ключ), предназначен для безусловного удаления группы транков или транка;
Для настройки параметров динамического SIP-транка используется команда:
/domain/<DOMAIN>/trunk/sip/set <GROUP> <TRUNK_NAME> <PARAMETER> <VALUE>
где
<DOMAIN> — имя виртуальной АТС;
<GROUP> — имя группы транков, логическая группировка транков в определенной виртуальной АТС;
<TRUNK_NAME> — имя динамического SIP-транка;
<PARAMETER> — настраиваемый параметр;
<VALUE> — значение параметра.
Основной перечень параметров динамического SIP-транка соответствует параметрам стандартного SIP-транка и описан выше.
Дополнительные параметры для динамического SIP-транка:
| Параметры "inc_authentication_login" и "inc_authentication_password" необходимы при использовании авторизации входящих вызовов. |
Для просмотра информации о динамическом SIP-транке используется команда:
/domain/<DOMAIN>/trunk/sip/info <GROUP> <TRUNK_NAME>
где
<DOMAIN> — имя виртуальной АТС;
<GROUP> — имя группы транков, символ "*" используется для просмотра информации о всех транках кластера;
<TRUNK_NAME> — имя динамического SIP-транка.
Регистрация транка выполняется на вышестоящем сервере. Запрос регистрации отправляется только с одной из нод кластера.
Количество контактов, передаваемое в запросе регистрации, равно количеству нод в кластере. IP-адреса в контактах устанавливаются из параметра "ip-set", назначенного транку.
Параметр "ip-set" настраивается командой domain/<DOMAIN>/sip/network/set node_ip.
Настройка параметров SIP-транка для исходящей регистрации выполняется командами:
/domain/<DOMAIN>/trunk/sip/set <GROUP> <TRUNK_INTERFACE> out_registration <EXPIRE>/domain/<DOMAIN>/trunk/sip/set <GROUP> <TRUNK_INTERFACE> user-name <NAME>/domain/<DOMAIN>/trunk/sip/set <GROUP> <TRUNK_INTERFACE> sipdomain <SipDomain>/domain/<DOMAIN>/trunk/sip/info <GROUP> [<TRUNK_INTERFACE>]/domain/<DOMAIN>/trunk/sip/set <GROUP> <TRUNK_INTERFACE> out_authentication_login <ENTRY_LOGIN_TO_OUTGOING_PROXY_AUTHENTICA>
где
<ENTRY_LOGIN_TO_OUTGOING_PROXY_AUTHENTICA> — имя SIP-транка, используемое при аутентификации, опциональный параметр.
Установка пароля
/domain/<DOMAIN>/trunk/sip/set <GROUP> <TRUNK_INTERFACE> out_authentication_password <ENTRY_PASSWORD_TO_OUTGOING_PROXY_AUTHENT>
где
<ENTRY_PASSWORD_TO_OUTGOING_PROXY_AUTHENT> — пароль SIP-транка, используемый при аутентификации, опциональный параметр.
Примеры:
Создание нового SIP-транка "new_test_trunk" в группу "sip_trunks", режим sip-proxy, транк направлен на 192.168.123.123:5060, транк использует контекст маршрутизации default_context
admin@[mycelium1@ecss1]:/$ domain/test.domain/trunk/sip/declare default_context sip_trunks new_test_trunk ipset 192.168.123.123 5060 sip-proxy 5070 Executed on the sip1@ecss1 declared |
Просмотр информации о SIP-транке "test"
admin@[mycelium1@ecss1]:/$ domain/test.domain/trunk/sip/info test_group test Executed on the sip1@ecss1 ┌───────┬──────┬───────────┬────────────┬────────────┬────────────────────────────────────────────────────────────────────────┐ │ Group │ Uri │ Is active │ Is blocked │ Is dynamic │ Parameters │ ├───────┼──────┼───────────┼────────────┼────────────┼────────────────────────────────────────────────────────────────────────┤ │ test │ test │ false │ false │ true │ declared by admin at 02.11.2015 09:20:28 │ │ │ │ │ │ │ │ │ │ │ │ │ │ listen-port = 50000 │ │ │ │ │ │ │ ip-set = ipset1 │ │ │ │ │ │ │ mode = 'sip-proxy' │ │ │ │ │ │ │ current number of calls = 0 │ │ │ │ │ │ │ disconnect time = 29.12.2015 10:19:49 │ │ │ │ │ │ │ disconnections number = 0 │ ... │ │ │ │ │ │ try-contact-for-anonymous = true │ │ │ │ │ │ │ unreliable-early-media = false │ │ │ │ │ │ │ user-name = test │ └───────┴──────┴───────────┴────────────┴────────────┴────────────────────────────────────────────────────────────────────────┘ |
Создание динамического транка "new_test_trunk_reg" в группе "sip_trunks", транк использует контекст маршрутизации default_context
admin@[mycelium1@ecss1]:/$ domain/test.domain/trunk/sip/declare default_context sip_trunks new_test_trunk_reg ipset --registration
Executed on the sip1@ecss1
{declared,["test.domain",default_context,"sip_trunks",<<"new_test_trunk_reg">>,
"dynamic",0,sipproxy]} |
Удаление SIP-транка "new_test_trunk"
admin@[mycelium1@ecss1]:/$ domain/test.domain/trunk/sip/remove sip_trunks new_test_trunk
[remove] This command removes trunks interfaces. Undo will be impossible.
Continue: yes/no ?> yes
Executed on the sip1@ecss1
[{"new_test_trunk",removed}] |
Для установки/изменения медиапрофиля для транка используются следующие команды:
/domain/<DOMAIN>/alias/set-for-iface <IFACE_GROUP> <IFACE_RANGE> media-profile <MEDIA_PROFILE_NAME>
где
<DOMAIN> — имя виртуальной АТС;
<IFACE_GROUP> — имя группы транков (интерфейсов),
<IFACE_RANGE> — имя одного транка (интерфейса) или список транков, для которых будет устанавливаться медиапрофиль,
<MEDIA_PROFILE_NAME> — имя медиа-профиля
Установка медиапрофиля по исходящей связи для транка или нескольких транков. Если параметр не задан, то для исходящей связи используется тот же медиапрофиль, что и для входящей связи — заданный параметр media-profile.
/domain/<DOMAIN>/alias/set-for-iface <IFACE_GROUP> <IFACE_RANGE> media-profile-outgoing <MEDIA_PROFILE_NAME>
где
<DOMAIN> — имя виртуальной АТС;
<IFACE_GROUP> — имя группы транков (интерфейсов),
<IFACE_RANGE> — имя одного транка (интерфейса) или список транков, для которых будет устанавливаться медиапрофиль,
<MEDIA_PROFILE_NAME> — имя медиа-профиля
Просмотр текущего медиапрофиля на транке.
/domain/<DOMAIN>/alias/iface-info <IFACE_GROUP> <IFACE_RANGE>
где
<DOMAIN> — имя виртуальной АТС;
<IFACE_GROUP> — имя группы транков (интерфейсов),
<IFACE_RANGE> — имя одного транка (интерфейса) или список транков для которых будут отображаться параметры.
Команда выдаст таблицу со всеми параметрами установленными для транка. В таблице необходимо найти параметры media-profile и media-profile-outgoing.
Если параметров не установлено, то используется медиапрофиль по умолчанию (default).
Сброс медиапрофиля на транке в значение по умолчанию
/domain/<DOMAIN>/alias/iface-clean <IFACE_GROUP> <IFACE_RANGE> media-profile
где
<DOMAIN> — имя виртуальной АТС;
<IFACE_GROUP> — имя группы транков (интерфейсов),
<IFACE_RANGE> — имя одного транка (интерфейса) или список транков, для которых будет сбрасываться параметр.
Сброс медиапрофиля для исходящей связи в значение по умолчанию
/domain/<DOMAIN>/alias/iface-clean <IFACE_GROUP> <IFACE_RANGE> media-profile-outgoing
где
<DOMAIN> — имя виртуальной АТС;
<IFACE_GROUP> — имя группы транков (интерфейсов),
<IFACE_RANGE> — имя одного транка (интерфейса) или список транков, для которых будет сбрасываться параметр.
Порядок создания SIP-транков через web-конфигуратор.
Настройка транков с помощью стандартного режима web-конфигуратора описана в разделе Транки (Trunks).
Для обеспечения контроля над принятыми из транка вызовами и предоставления услуг абонентам, подключенным к ECSS-10 по этому транку, может использоваться RADIUS-сервер. В этом случае авторизация и аутентификация вызовов, принятых из транка осуществляется на RADIUS-сервере.
| ECSS-10 поддерживает и другой механизм предоставления услуг абонентам подключенным через транк — механизм фиксированных контактов, описание приведено в разделе Аутентификация абонентов. |
Настройка авторизации вызовов, принятых из транка на RADIUS-сервере, выполняется следующей командой:
/domain/<DOMAIN>/trunk/sip/set <GROUP> <TRUNK> <PARAMETER> <VALUE>
где
<DOMAIN> — имя виртуальной АТС;
<GROUP> — имя группы транков, логическая группировка транков в определенной виртуальной АТС;
<TRUNK_INTERFACE> — имя SIP-транка;
<PARAMETER> — настраиваемый параметр, принимает значения:
<VALUE> — значение параметра.
Для просмотра информации используется команда:
/domain/<DOMAIN>/trunk/sip/info <GROUP> [<TRUNK_INTERFACE>] [--profile <PROFILE>]
где
<DOMAIN> — имя виртуальной АТС;
<GROUP> — имя группы транков, символ "*" используется для просмотра информации о всех транках виртуальной АТС;
<TRUNK_INTERFACE> — имя SIP-транка;
--profile — флаг используется для просмотра информации о конфигурации профилей транка;
<PROFILE> — имя профиля, символ "*" используется для указания всех профилей транков.
Пример:
domain/d.408/sip/pa_sip1/trunk/info smg.test SMG.2 Executed on the pa_sip@alex --------------------------------------------------------------------------------------------------------- | Group | Uri | Is active | Is blocked | Parameters | |----------+-------+-----------+------------+-----------------------------------------------------------| | smg.test | SMG.2 | true | false | amqp_exchange = ecss.call.control.ex | ... | | | | | inc_authentication = true | ... | | | | | "radius area" = radius.direction | ... |
При отсутствии корректного ответа от RADIUS-сервера вызов помечается, и на уровне системы принимается решение о продолжении обслуживания.
Настройка области аутентификации (area) и RADIUS-серверов выполняется командами:
/domain/<DOMAIN>/sip/user/dynamic-area/info|new|remove|set .../domain/<DOMAIN>/sip/user/dynamic-radius-server/info|new|remove|set ...
Подробное описание данных команд приведено в разделе 1.
Транковая запись разговоров осуществляет запись всех вызовов (входящих и исходящих) которые проходят через транк.
Транковая запись разговоров существует независимо от активности абонентской запись разговоров.
Управление транковой записью разговоров осуществляется следующими командами:
/domain/<DOMAIN>/iface/user-set <OWNER> <GROUP> <IFACE-RANGE> call_record true
где
<DOMAIN> — имя виртуальной АТС;
<OWNER> — имя кластера адаптера владельца интерфейсов, для sip-адаптера обычно sip1;
<GROUP> — имя группы интерфейсов, в данном случае транков;
<IFACE-RANGE> — диапазон/список интерфейсов, в данном случае тарнков.
Деактивация транковой записи разговоров
/domain/<DOMAIN>/iface/user-set <OWNER> <GROUP> <IFACE-RANGE> call_record false
где
<DOMAIN> — имя виртуальной АТС;
<OWNER> — имя кластера адаптера владельца интерфейсов, для sip-адаптера обычно sip1;
<GROUP> — имя группы интерфейсов, в данном случае транков;
<IFACE-RANGE> — диапазон/список интерфейсов, в данном случае тарнков.
Просмотр статуса транковой записи разговоров
/domain/<DOMAIN>/iface/info <OWNER> <GROUP> <IFACE-RANGE> call_record
где
<DOMAIN> — имя виртуальной АТС;
<OWNER> — имя кластера адаптера владельца интерфейсов, для sip-адаптера обычно sip1;
<GROUP> — имя группы интерфейсов, в данном случае транков;
<IFACE-RANGE> — диапазон/список интерфейсов, в данном случае тарнков.
В результате выполнения команды будет выдана информация о том включена или нет (true/false) транковая запись разговоров.
В разделе описаны методы привязки транковых каналов к виртуальным абонентам. Опишем ситуацию, в рамках которой данный функционал реализован.
Существует SIP-транк, за которым находятся несколько FXO портов для выхода в городскую ТфОП. Некоторые абоненты должны иметь возможность выхода в городскую сеть через любой свободный порт, остальные абоненты должна выходить строго через конкретно заданные (один или несколько) порты. В обратном порядке, когда вызов получен со стороны городской сети с конкретного FXO порта, SSW должен иметь возможность обрабатывать данный вызов с использованием различных стратегий. Более того, необходимо посредством BLF наблюдать состояние FXO, какие порты в транке сейчас заняты.
Поэтому, было решено к транкам, для которых явно заданы каналы, добавить возможность сопоставлять внутренние виртуальные номера домена и каждый из каналов в транке. Тогда вызовы будут обрабатываться следующим образом:
domain/<DOMAIN>/alias/virtual/declare <NUMBER> <ROUTING_CONTEXT> <GROUP>
<DOMAIN> — имя виртуальной АТС (домен);
<NUMBER> — номер абонента;
<ROUTING_CONTEXT> — план маршрутизации, используемый абонентом;
<GROUP> — группа, к которой будет причислен абонент.
domain/<DOMAIN>/ss/enable <NUMBER> cggАктивируем на виртуальном абонента услугу распределения вызова
domain/<DOMAIN>/ss/activate <NUMBER> cgg numbers = <NUM1>, <NUM2>, ...
<DOMAIN> — название виртуальной АТС (домена), для которой выполняются настройки;
<NUMBER> — номер виртуального абонента, для которого выполняются настройки;<NUM1>, <NUM2> — номера на FXO порте, привязываемые к виртуальному номеру.domain/<DOMAIN>/trunk/sip/declare <ROUTINGCONTEXT> <GROUP> <TRUNKNAME> <IPSET> static <DSTADDR> <DSTPORT> <MODE> <SRCPORT>
<DOMAIN> — имя виртуальной АТС (домен);
<ROUTING_CONTEXT> — план маршрутизации, используемый транком;
<GROUP> — группа, к которой будет причислен транк;
<TRUNK_NAME> — имя создаваемого транка;
<IP_SET> — набор IP-адресов;
<DST_ADDR> — адрес назначения для создаваемого транка;
<DST_PORT> — порт назначения, для создаваемого транка;
<MODE> — режим инкапсуляции ISUP:
<SRC_PORT> — порт приема, для создаваемого транка.
domain/<DOMAIN>/trunk/sip/set <TRUNK_GROUP> <TRUNK> remote-client <CLIENT><DOMAIN> — имя виртуальной АТС (домен);
<TRUNK_GROUP> — группа, к которой причислен транк;
domain/<DOMAIN>/trunk/sip/set <TRUNK_GROUP> <TRUNK> channel-contact-map add <CHANNEL_RANGE> <NUMBER_RANGE> <CONTACT_RANGE>
domain/<DOMAIN>/trunk/services/activate <TRUNK_GROUP> <TRUNK> fxo_trunkПравила маршрутизации, которые позволяют выйти на FXO порт
Рассмотрим пример, в котором виртуальные абоненты будут иметь маску номера 99x. Городские номера иметь маску xxxxxxx Тогда выход на FXO порт закрепленный за данным номером будет выглядеть так:
<rule name="to_fxo_port_with_empty_b_number">
<conditions>
<cdpn digits="99?"/>
</conditions>
<actions>
<cdpn digits=""/>
</actions>
<result>
<local vdn="{1,2,3}"/>
</result>
</rule>
<rule name="to_fxo_port_with_complete_b_number">
<conditions>
<cdpn digits="99?%"/>
<final value="true"/>
</conditions>
<actions>
<cdpn digits="{%}"/>
</actions>
<result>
<local vdn="{1,2,3}"/>
</result>
</rule>
<rule name="to_fxo_trunk">
<conditions>
<cdpn digits="???????"/>
<final value="true"/>
</conditions>
<result>
<external>
<trunk value="FXO_TRUNK"/>
</external>
</result>
</rule> |
Таким образом, если абонент наберет номер виртуального абонента, то он совершит вызов на FXO порт без номера вызываемого абонента за портом FXO, и встречная станция будет коллектить номер. Если же абонента наберет номер виртуального абонента и вместе с ним номер, на которых он хочет позвонить — то вызов уйдет на определенный FXO порт с уже заполненным номером вызываемого абонента. Если же абонент не хочет выбирать определенный FXO порт, а хочет выйти через любой свободный порт — ему достаточно просто набрать 7-мизначный городской номер. В этом случае вызов по маршрутизации уйдет на FXO_TRUNK, там выберется свободный канал (FXO порт), и уже через него отправится вызов.
Пример команд:
domain/test.domain/alias/virtual/declare 99900{1-2} default_routing fxo.users
domain/test.domain/ss/enable 99900{1-2} cgg
domain/test.domain/ss/activate 99900{1-2} cgg numbers = [364000, 364001]
domain/test.domain/trunk/sip/declare default_routing cspg.trunks FXO_1 ipset1 static 192.168.23.173 5060 sip-proxy 5060
domain/test.domain/trunk/sip/set cspg.trunks FXO_1 remote-client coral
domain/test.domain/trunk/sip/set cspg.trunks FXO_1 channel-contact-map add {1-2} 99900{1-2} u00s15p{0-1}
domain/<DOMAIN>/trunk/services/activate cspg.trunks FXO_1 fxo_trunk |
BLF подписки
За счет того, что описанный выше механизм позволяет выполнять привязку внутренних номеров к каналам транка, появляется возможность выполнить BLF подписку на данный номер (внутренний номер), после чего при звонке через определенный канал транка будут идти BLF оповещения по связанному с ним номеру.
Conflicted Name
В станций Coral транки Coral имеют специального вида имена uUUsSSpPP, где uUU - номер юнита, sSS - номер полки, pPP - номер порта (0 для потоков). Таким образом, u00s04p00 - это адрес платы E1, которая отражена на ECSS как SIP-транк. В то же время на второй станции Coral, подключенной к CSS есть абонент, который находится на плате аналоговых ТА и его адрес u00s04p00. в этом случае в логах будут сообщение вида WARN <0.3370.0> [loc_iface_store:is_contact_known/4:1474]: {"test_domain",<<"test">>}: conflicted name: [coral,"u00s04p00"] В случае подключения двух станций с одинаковыми индексами абонентских портов их SIP учетными записями можно развести через указание опции sip-domain на разных станциях, система будет их корректно различать. (для примера ) в случае если мы имеем конфигурацию подключения двух станций на одной станции абонент имеет URI u00s04p00 а второй транк c аналогичным URI u00s04p00 (или два разных транка с одинаковым URI u00s04p00 ) нужно помнить
|
Команды управления SIP-транками включают в себя: