| Версия 5.2
Введение
Установка
Администрирование
Сеть
Объекты
Почта
Сигналы
Доступ
Услуги
Справочник
Кластеры
Программы
Разное
Лицензирование
Веб Почта
Pronto!
PBX
Обзор | Правила | SIP | XMPP | ТФОП | NAT | Media | Parlay
# ТФОП Маршрутизация Звонков Исходящие звонки через B2BUA Местные Звонки Междугородние Звонки Экстренные Вызовы Входящие Звонки ТфОП Установки Пользователя Сервер CommuniGate Pro может использовать разнообразные Шлюзы в ТфОП для соединения современных VoIP с традиционной Телефонной Сетью Общего Пользования. Хотя большинство Шлюзов выполнены как стандартные SIP устройства, в случаях, когда конечные пользователи соединяются с такими Шлюзами напрямую, могут возникать различные проблемы. Чаще всего возникают следующие проблемы: Схема адресации ТфОП отличается от применяемой в VoIP сетях: в ТфОП используются традиционные цифровые адреса (E.164), а не VoIP адреса электронной почты типа account@domain. ТфОП не является бесплатной сетью, и Шлюз может потребовать проведения аутентификации для выполнения звонка. Эта информация используется для выставления счетов. ТфОП не является бесплатной сетью, и поэтому логика перевода звонков там существенно отличается. В результате, большинство Шлюзов не поддерживают операции перевода звонков. Для решения всех этих проблем, в поставке с CommuniGate Pro содержится ряд Приложений Реального Времени. В этом разделе объясняется как работают эти приложения и как они могут быть настроены. Хотя эти приложения достаточно гибки для того, что бы обслуживать совершенно разные конфигурации, Администраторы Сервера или Домена могут загрузить на сервер свои собственные, подстроенные под свои нужды версии этих приложений.

## Маршрутизация Звонков

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

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

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

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

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

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

`PSTNGatewayName` (Имя Шлюза)
  Имя Домена Шлюза. Используется как адрес, на который отправляются запросы на совершение звонков.
  Если эта настройка имеет пустое значение, то Пользователю не разрешается производить ТфОП звонки и звонок отвергается.
`PSTNGatewayVia` (Адрес Шлюза)
  Эта настройка является непустой строкой если запросы не должны отправляться в этот Шлюз напрямую (на адреса, разрешаемые с помощью DNS), а должны отправляться через другой прокси. В этой настройке должно содержаться имя домена или адрес такого прокси.
`PSTNFromName` (Номер Звонящего)
  Эта настройка указывает адрес (обычно, номер ТфОП), который будет использоваться как Номер Звонящего (адрес `From:`) в запросе на звонок, отправляемом в Шлюз. Если эта настройка имеет пустое значение, то используется адрес From: из оригинальное запроса.
`PSTNGatewayAuthName` (Имя на Шлюзе)
`PSTNGatewayPassword` (Пароль для Шлюза)
  Если Шлюз требует аутентификации, эти настройки задают данные для аутентификации, используемые в запросах, отправляемых в Шлюз.
`PSTNBillingPlan` (Тарифный План)
  Входящее в поставку приложение gatewaycaller не использует эту настройку.

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

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

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

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

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

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

Когда вызывающий абонент хочет Перевести звонок, запрос на Перевод отправляется оригинальной задаче. Эта Задача сама реализует запрашиваемый перевод звонка, переключаясь на другого участника/устройство VoIP. Вторая Задача не посылает никаких запросов на Перевод в Шлюз, а отправляет Шлюзу запрос на изменение звонка (запрос 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 расположены в Германии (код страны `49`, префикс для выхода на межгород `0`), то может быть использована следующая запись в Маршрутизаторе (обратите внимание на порядок этих записей):

<0(7-20d)@*> = +49*@telnum
<00(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 ответа должно содержать строку или массив с адресами назначения.

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

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

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

Если входящие звонки направляются на приложение PBX CommuniGate Pro, то это приложение функционирует как B2BUA и разрешает эти проблемы.

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

Для разрешения проблем в работе Шлюзов при направлении звонков на адреса, на которых необязательно отвечают Приложения Реального Времени CommuniGate Pro, вы можете перенаправлять все эти звонки на специальное приложение `gatewayincoming`. Это приложение, действуя как B2BUA, создаст отдельную Задачу ("плечо звонка") для вызова адреса назначения и создаст между ними мост, аналогично тому, как приложение `gatewaycaller` обрабатывает исходящие звонки.

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

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

Если Шлюз считает, что у всех ваших локальных Пользователей есть национальные номера (номера без кода страны), то вы можете исправить это при помощи записи в Маршрутизаторе. Например: если Шлюз использует 10-значные номера Северной Америки без кода страны `1`, то вы можете использовать следующую запись в Маршрутизаторе:
<*@incoming.company.dom> = gatewayincoming{1*}#pbx@localhost

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

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

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

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

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

Руководство CommuniGate® Pro. Copyright © 1998-2009, Stalker Software, Inc.