CommuniGate Pro
Версия 6.4
 

ТфОП

Сервер CommuniGate Pro может использовать разнообразные Шлюзы в ТфОП для соединения современных VoIP с традиционной Телефонной Сетью Общего Пользования. Хотя большинство Шлюзов выполнены как стандартные SIP устройства, в случаях, когда конечные пользователи соединяются с такими Шлюзами напрямую, могут возникать различные проблемы. Чаще всего возникают следующие проблемы:

  • Схема адресации ТфОП отличается от применяемой в VoIP сетях: в ТфОП используются традиционные цифровые адреса (E.164), а не VoIP адреса электронной почты типа account@domain.
  • ТфОП не является бесплатной сетью, и Шлюз может потребовать проведения аутентификации для выполнения звонка. Эта информация используется для выставления счетов.
  • ТфОП не является бесплатной сетью, и поэтому логика перевода звонков там существенно отличается. В результате, большинство Шлюзов не поддерживают операции перевода звонков.
  • некоторые шлюзы в ТфОП спроектированы для поддержки индивидуальных устройств (телефонов SIP) так, что они требуют периодической посылки запросов REGISTER для передачи звонков на эти устройства.

Для решения всех этих проблем, в поставке с CommuniGate Pro содержится ряд Приложений Реального Времени.

В этом разделе объясняется как работают эти приложения, и как они могут быть настроены.
Хотя эти приложения достаточно гибки для того, чтобы обслуживать совершенно разные конфигурации, Администраторы Сервера или Домена могут загрузить на сервер свои собственные, подстроенные под свои нужды версии этих приложений.

Входящие Звонки

Шлюзы ТфОП могут направлять входящие звонки на устройства, поддерживающие протокол SIP, в том числе и Сервер CommuniGate Pro. Входящие Шлюзы обычно имеют те же проблемы, то и исходящие: неспособность перевода звонков, неспособность переключения медиа потоков и т.д.

Для преодоления ограничений Шлюзов ТфОП входящие звонки с них направляются на приложения реального времени CommuniGate Pro, работающие в режиме B2BUA.
Приложение gatewayincoming, входящее в состав пакета, предназначено для этих целей.

Входящее в поставку приложение gatewayincoming должно получать вызываемый адрес в качестве параметра. Если Шлюз отправляет входящие запросы в вашу систему с использованием адресов в специальном домене incoming.company.dom, то следующая запись в Маршрутизаторе перенаправит их в приложение gatewayincoming:

<*@incoming.company.dom> = gatewayincoming{*}#pbx@localhost

Если Шлюз считает, что у всех ваших локальных Пользователей есть национальные номера (номера без кода страны), то вы можете исправить это при помощи записи в Маршрутизаторе. Например: если Шлюз использует 10-значные номера Северной Америки без кода страны 1, то вы можете использовать следующую запись в Маршрутизаторе:

<*@incoming.company.dom> = gatewayincoming{+1*}#pbx@localhost

Входящие из ТфОП звонки часто адресуются не пользователю, а приложению, работающему в качестве "Центра Услуг УПАТС". Такое приложение принимает звонок и позволяет звонящим выбрать пользователя для соединения, затем оно дозванивается до Пользователя и соединяет абонентов. Поскольку такое приложение тоже работает в режиме B2BUA, звонки со Шлюзов ТфОП могут быть направлены на него напрямую, без необходимости их маршрутизации через отдельное приложение B2BUA типа gatewayincoming:

<*@incoming.company.dom> = pbx#pbx@localhost

Регистрация на внешних SIP серверах (RSIP)

Некоторые Шлюзы ТфОП не могут быть настроены для безусловного направления входящих звонков на заданный адрес (как, например, Пользователь CommuniGate Pro). Вместо этого такие Шлюзы ожидают периодические запросы REGISTER по протоколу SIP.
Эти запросы протокола SIP указывают информацию о пользователе Шлюза (обычно - номер в ТфОП), данные аутентификации (имя пользователя и пароль) и адрес SIP, на который надо отправлять входящие из ТфОП звонки.

Для каждого Пользователя CommuniGate Pro можно настроить несколько записей RSIP. Каждая запись RSIP представляет собой информацию о пользователе на внешнем Шлюзе в ТфОП. Сервер CommuniGate Pro периодически посылает запросы REGISTER по протоколу SIP на указанный шлюз, используя информацию из записи, так что, когда Шлюз ТфОП получает входной звонок, он направляет его Пользователю CommuniGate Pro.

Администратор Сервера или Домена с правом Модификация RSIP может управлять записями RSIP Пользователя.
Для управления записями RSIP Пользователя откройте страницу RSIP в разделе Real-Time Установок Пользователя:

Имя Периодичность Имя входа Имя хоста Имя аутентификации Пароль Куда Последний
localVoip 05:32:00
AltVoip 05:32:50 Illegal password

У каждой записи RSIP должно быть своё уникальное (среди других записей Пользователя) имя.

Для создания новой записи RSIP выберите для неё некоторое имя и введите его в поле Имя последней строки таблицы. Заполните остальные поля и нажмите кнопку Модифицировать.

Для модификации существующей записи RSIP просто измените значения в полях записи и нажмите кнопку Модифицировать.

Для удаления записи RSIP измените её периодичность на Никогда и нажмите кнопку Модифицировать.

Периодичность
Используйте эту настройку для указания того, как часто Сервер должен отправлять запросы SIP REGISTER. В запросах будет использоваться период регистрации SIP, на две минуты превышающий выбранное значение.
Используйте значение, рекомендованное провайдером услуг шлюза ТфОП.
Имя входа
Эта настройка задаёт имя Пользователя (адрес) для запросов REGISTER. Если её значение не содержит символ @, то этот символ вместе со значением поля Имя хоста добавляется к этой настройке при формировании запроса REGISTER.
Используйте значение, заданное провайдером услуг шлюза ТфОП (обычно - телефонный номер).
Имя хоста
Эта настройка задаёт имя домена или IP адрес шлюза ТфОП. Запросы SIP REGISTER отправляются на этот адрес.
Используйте значение, рекомендованное провайдером услуг шлюза ТфОП.
Если запросы REGISTER должны быть отправлены через некоторый SIP прокси сервер, укажите адрес или доменное имя этого прокси сервера после символа @ и имени Шлюза ТфОП: имяИлиАдресШлюза@имяИлиАдресПрокси
Имя аутентификации, Пароль
Этими настройками задаются данные аутентификации (имя пользователя и пароль) для запросов SIP REGISTER.
Обратите внимание: при необходимости имя аутентификации может содержать символ @ и некоторое доменное имя.
Если поле Имя аутентификации оставлено пустым, будет использоваться значение настройки Имя пользователя.
Используйте значение, заданное провайдером услуг шлюза ТфОП.
Куда
Эта настройка указывает адрес другого пользователя, на которого будут направлены входящие через Шлюз ТфОП звонки. Обычно это поле оставляется пустым, чтобы звонки приходили на пользователя, у которого создана эта запись.

Последнее поле содержит отметку времени, когда был выполнен последний запрос SIP REGISTER, и возможная ошибка выполнения этого запроса на Шлюзе ТфОП.

Функциональность Регистраций RSIP реализована с использованием компоненты Хронос. Компонента запускает по расписанию Приложение реального времени rsipRegister, которое выполняет транзакцию REGISTER.

Поле Contact в запросе SIP REGISTER формируется так, чтобы входящие со Шлюза ТфОП звонки направлялись в приложение gatewayincoming, работающее в режиме B2BUA, и через него направлялись Пользователю (владельцу записи RSIP или указанному в поле Куда).
Если необходимо направлять входящие звонки напрямую Пользователю, минуя B2BUA, добавьте перед значением настройки Имя хоста символ звёздочки (*).

При установке Сервера CommuniGate Pro, в Главном Домене автоматически создаётся Пользователь pbx. Для этого Пользователя создаётся правило перенаправления всех входящих звонков в приложение Центр услуг УПАТС.
Если для этого пользователя pbx надо создать запись RSIP, чтобы он принимал звонки через Шлюз ТфОП sip.provider.dom, укажите значение для настройки Имя хоста как *sip.provider.dom.

Пользователь может просматривать свои записи RSIP, а, если в настройках разрешена их модификация, то и изменять их в Веб Интерфейсе Пользователя.


Маршрутизация Исходящих Звонков

В Маршрутизаторе сервера CommuniGate Pro обрабатывается каждый адрес, используемой системой для передачи Сигналов.

  • Маршрутизатор использует записи для определения адресов телефонного типа (ТфОП) и преобразования их в стандартную форму E.164 (+код_страны код_города_ местный_номер) в фиктивном домене telnum. Например, когда пользователь SIP телефона набирает 011 44 3335555, то сервер получает этот адрес как URI sip:011443335555@client1.dom, и Маршрутизатор преобразовывает этот адрес в адрес +44333555@telnum.
    Обычно все цифровые адреса определённой длины обрабатываются как номера ТфОП.
    Чтобы узнать, какие записи Маршрутизатора могут использоваться для определения адресов телефонного типа, смотрите раздел Маршрутизатор.
  • Маршрутизатор отображает номера ТфОП в локальные или внешние VoIP адреса.
    Маршрутизатор проверяет, назначен ли адрес (номер) в фиктивном домене telnum какому-либо локальному Пользователю. Если такой Пользователь обнаружен, то Маршрутизатор направляет этот адрес на этого Пользователя.
    Если адреса не назначены никакому локальному Пользователю, то Маршрутизатор может использовать глобальную и локальную службы ENUM, а также Переадресаторы CommuniGate Pro.
  • Маршрутизатор направляет все неотображённые ТфОП номера либо прямо в Шлюз ТфОП, либо в Приложение Реального Времени CommuniGate Pro, предназначенное для работы с внешними Шлюзами ТфОП.

Исходящие звонки через B2BUA

Маршрутизатор может направлять звонки в ТфОП через Приложения Реального Времени.
Сервер CommuniGate Pro поставляется вместе с приложением gatewaycaller, которое может использоваться для ретрансляции всех исходящих в ТфОП звонков на один или несколько Шлюзов ТфОП. В этом разделе описываются функции этого приложения.

Когда приложение gatewaycaller получает входящий звонок, оно требует проведения аутентификации. В результате только Пользователи вашего Сервера или Кластера CommuniGate Pro смогут совершать звонки, используя это приложение.

При получении аутентифицированного запроса на звонок, приложение получает и использует следующие Установки ТфОП Пользователя:

PSTNGatewayName (Имя Шлюза)
Имя Домена Шлюза. Используется как адрес, на который отправляются запросы на совершение звонков.
Если эта настройка имеет пустое значение, то Пользователю не разрешается производить ТфОП звонки и звонок отвергается.
PSTNGatewayVia (Адрес Шлюза)
Эта настройка является непустой строкой если запросы не должны отправляться в этот Шлюз напрямую (на адреса, разрешаемые с помощью DNS), а должны отправляться через другой прокси. В этой настройке должно содержаться имя домена или адрес такого прокси.
PSTNFromName (Номер Звонящего)
Эта настройка указывает адрес (обычно, номер ТфОП), который будет использоваться как Номер Звонящего (адрес From:) в запросе на звонок, отправляемом в Шлюз. Если эта настройка имеет пустое значение, то используется адрес From: из оригинального запроса.
PSTNGatewayAuthName (Имя на Шлюзе)
PSTNGatewayPassword (Пароль для Шлюза)
Если Шлюз требует аутентификации, эти настройки задают данные для аутентификации, используемые в отправляемых в Шлюз запросах.
PSTNBillingPlan (Тарифный План)
Эта настройка содержит название тарифного плана. Входящее в поставку приложение gatewaycaller выполняет попытку чтения данных тарифного плана standard из файла PBX-окружения под названием billingplan-standard.objdata. Файл должен содержать словарь, в котором каждый ключ соответствует префиксу телефонного номера, а значение - либо числу со стоимостью звонков в единицах за минуту, либо строке с описанием причины блокировки звонков на данное направление:
{
  1990 = blocked; // звонки на номера +1-990-XXX-XXXX заблокированы
  7 = #0;         // звонки на номера РФ бесплатны
  "" = #10;       // звонки на остальные направления стоят 10 единиц за минуту
}

Пользователь CommuniGate Pro может использовать значение по умолчанию для каждой из этих настроек (они берутся либо из Общедоменных, либо из Общесерверных или Общекластерных Установок по Умолчанию), или же значения настроек для этого Пользователя могут быть заданы явно. В результате все Пользователи во всех Доменах могут использовать один и тот же Шлюз и иметь одинаковые полномочия, но разные значения в Номере Звонящего, или же каждый Домен и/или каждый Пользователь могут использовать свой собственный Шлюз, с уникальными полномочиями как для Домена, так и для Пользователя.

Приложению необходимо получать эти Настройки от других Пользователей, так что оно должно запускаться от имени Пользователя, обладающего правами доступа Администратора Домена.
Для этой цели могут использоваться автоматически создаваемые при установке пользователи postmaster или pbx.

Приложение должно получить вызываемый номер в качестве параметра.
Следующая запись в Маршрутизаторе перенаправляет все адреса в фиктивном домене pstn на приложение gatewaycaller, запускаемое от имени Пользователя Главного Домена pbx и передаёт этому приложению "пользовательскую часть" адреса в домене pstn в качестве параметра:

<*@pstn> = gatewaycaller{*}#pbx

После обработки всех Установок Пользователя, приложение запускает новую Задачу и инструктирует эту Задачу на отправку запросов на звонок на выбранный, исходя из Установок Пользователя, Шлюз. Если звонок проходит успешно, то оригинальная и новая задачи образуют "мост" для медиа потоков.
Оригинальная задача обрабатывает запросы с Сигналами от Звонящего, а вторая задача обрабатывает запросы от Шлюза. Некоторые из этих запросов обрабатываются непосредственно в самой Задаче, а некоторые передаются на другую Задачу для дальнейшего ретранслирования Звонящему или шлюзу.

Технология, используемая для реализации такого способа настройки звонков (когда звонок устанавливается с помощью двух формально независимых сессий Сигналов) называется "Разводящий Агент Пользователя" (B2BUA).

Когда вызывающий абонент хочет Перевести звонок, запрос на Перевод отправляется оригинальной задаче. Эта Задача сама реализует запрашиваемый перевод звонка, переключаясь на другого участника/устройство VoIP. Вторая Задача не посылает никаких запросов на Перевод в Шлюз, а отправляет Шлюзу запрос на изменение звонка (запрос SIP re-INVITE или UPDATE) для того, чтобы перенаправить его медиа потоки на нового участника звонка.

Некоторые Шлюзы ТфОП не поддерживают даже простые запросы на изменения характеристик звонков. Указывайте первым символом в именах таких Шлюзов символ решётка (#). Приложение удалит этот символ из имени и не будет пытаться строить мост для медиа потоков. Приложение будет использовать канал Медиа Сервера CommuniGate Pro для ретрансляции медиа между вызывающим абонентом и Шлюзом. Если вызывающий абонент переключает свой медиа адрес, отправив запрос UPDATE, то канал Медиа Сервера изменяет внутреннюю информацию, Шлюзу никаких запросов не отправляется, и он продолжает обмениваться медиа данными с каналом Медиа Сервера.

Если вам необходимо использовать различные шлюзы для пользователя или домена (в зависимости от набираемого номера), вы можете задавать настройки PSTNxxxxxx для gatewaycaller как словари. Например:

PSTNGatewayName:{gw1=provider1.com;gw2=provder2.com;}
PSTNFromName:{gw1=fromName1;gw2=fromName2;}

Вы можете Направлять разные номера ТфОП на различные Шлюзы, передавая его имя во втором параметре в приложение gatewaycaller:

<+46(5-12d)@pstn> = gatewaycaller{+46*,gw1}#pbx
<*@pstn>          = gatewaycaller{*,gw2}#pbx

Все звонки на необработанные номера в домене pstn будут перенаправляться в приложение gatewaycaller и это приложение получит в качестве второго параметра "gw1", если вызываемый абонент находится в Швеции (E.164 номер начинается с +46), и "gw2" во всех других случаях.
Приложение gatewaycaller получает все необходимые настройки PSTNxxxxxx. Если значение настройки - словарь, оно берёт из словаря либо элемент "gw1" либо "gw2".


Местные Звонки

Когда пользователь набирает "короткий" номер (номер без кода страны и кода города), то предполагается, что звонок будет доставлен на номер с тем же кодом города, что и у пользователя.

Запись в Маршрутизаторе, создаваемая во время установки Сервера CommuniGate Pro, направляет все звонки на 7-значные цифровые адреса во всех локальных Доменах на приложение localAreaCall.

Входящее в поставку приложение localAreaCall требует аутентификации вызывающего абонента и получает следующие ТфОП Установки Пользователя:

PSTNAreaCode (Местный код Города)
В этой настройке задаётся Код Страны Пользователя и Местный код Города.

Приложению необходимо получать эти Настройки от других Пользователей, так что оно должно запускаться от имени Пользователя, обладающего правами доступа Администратора Домена.
Для этой цели могут использоваться автоматически создаваемые при установке пользователи postmaster или pbx.

Приложение должно получить вызываемый номер в качестве параметра.
Следующая запись в Маршрутизаторе перенаправляет все 7-значные цифровые адреса во всех локальных Доменах на приложение localAreaCall, запускаемое от имени Пользователя Главного Домена pbx и передаёт этому приложению адреса (7-значные номера) в качестве параметра:

<(7d)@*> = localAreaCall{*}#pbx@localhost

Приложение получает Код Страны и Местный код Города вызывающего абонента из соответствующих Настроек Пользователя, удаляет все нецифровые символы из их значений, соединяет "очищенный" набираемый номер с именем домена @telnum и Перенаправляет запрос на совершение звонка на получившийся адрес.

Модуль Signal обрабатывает перенаправленный запрос используя Маршрутизатор, так что он может быть направлен в Шлюз ТфОП или (после успешного проведения маршрутизации) непосредственно на какой-нибудь адрес, поддерживающий VoIP.


Междугородние Звонки

В многих странах для междугородних и междугородних звонков традиционно используются специальные префиксы. Большое количество стран используют номера вида 0код города местный_номер для междугородних звонков, а номера вида 00код_страны код_города местный_номер используются для международных звонков.

Если все пользователи CommuniGate Pro находятся в одной стране, то маршрутизация для всех междугородних звонков может быть выполнена с использованием всего одной Записи в Маршрутизаторе. Например: если все пользователи CommuniGate Pro расположены в России (код страны 7, префикс для выхода на межгород 8), то может быть использована следующая запись в Маршрутизаторе (обратите внимание на порядок этих записей):

<8(7-20d)@*> = +7*@telnum
<810(8-20d)@*> = +*@telnum

Для правильной обработки местных звонков, вы также можете использовать приложение localAreaCall. Направьте все звонки с кодом межгорода на приложение localAreaCall, но укажите второй параметр - строку c:

<0(8-20d)@*> = localAreaCall{*,c}#pbx@localhost

Приложение localAreaCall выполнит такую же обработку звонка, как и для случая Местных Звонков. Но вместо использования полного значения из настройки PSTNAreaCode будет использоваться только:

  • код страны, если значение настройки указано как код_страны-код_города или как код_страны(код_города), или
  • первую цифру, если эта цифра 1 (Серверная Америка) или 7 (Россия), или
  • две первые цифры

Экстренные Вызовы

Звонки в Службы Спасения выполняются по известным номерам, таким как 911 в Северной Америке или 112 в Западной Европе.

Используйте Маршрутизатор для направления звонков на эти номера (в любом Домене) в приложение emergency:

<911@*> = emergency#pbx@localhost

Входящее в поставку приложение emergency требует аутентификации вызывающего абонента и получает следующие ТфОП Настройки Пользователя:

PSTNEmergency (Код Скорой Помощи)
В этой настройке задаётся способ вызова Служб Спасения для этого Пользователя.

Приложению необходимо получать эти Настройки от других Пользователей, так что оно должно запускаться от имени Пользователя, обладающего правами доступа Администратора Домена.
Для этой цели могут использоваться автоматически создаваемые при установке пользователи postmaster или pbx.

Приложение обрабатывает полученные значения настройки PSTNEmergency:

  • Если полученная строка имеет префикс call=, то оставшаяся часть строки используется как адрес, на который следует перенаправить звонок.
  • Если полученная строка имеет префикс http=, то приложение читает значение emergency.settings из Среды Приложений Real-Time. В этом файле должен содержаться словарь.

    Приложение делает HTTP запрос, используя словарь emergency.settings как параметр для CG/PL операции HTTPCall. Тело запроса является словарём, в котором содержатся следующие элементы:

    userName
    имя аутентифицированного пользователя - вызывающего абонента (accountName@domainName).
    fromWhom
    имя вызывающего абонента (URI), как указано в поле From запроса.
    areaCode
    значение настройки PSTNEmergency без префикса http=.

    Когда приложение получает HTTP ответ, тело HTTP ответа должно содержать строку или массив с адресами назначения.

Приложение перенаправляет звонок на указанные адрес(а).


Установки ТфОП Пользователя

Установки ТфОП реализованы как Пользовательские Установки Пользователя. Основная страница Управления Пользователем в Веб Интерфейсе Администратора не показывает Пользовательские Установки, с именами, начинающимися с PSTN. Вместо этого на страницах Установки Пользователя или Умолчания для Пользователя имеется ссылка на специальную страницу с Установками ТфОП.

Нажмите на ссылку ТфОП и откройте станицу с Установками ТфОП:

Местный код Города:
1(495)
Код Скорой Помощи:
call=103@our.local.dom
Домен Шлюза:
provider.com
Адрес Шлюза:
personal.provider.com
Номер Звонящего:
Boston
Имя на Шлюзе:
dmak
Пароль для Шлюза:
********
Тарифный План:

Администратор Домена должен иметь Права Доступа Установки ТфОП, чтобы изменять настройки ТфОП.


Руководство CommuniGate Pro. Copyright © 2020-2023, АО СталкерСофт