Настройка H323 trunk между Asterisk и Avaya. (первоисточник)

Был успешно установлен Asterisk и H323 (предыдущий пост), а следуя нижеприводимым конфигурационным файлам ip trunk был поднят и заработал в следующей конфигурации:

Настройка h323.conf, sip.conf и extensions.conf в качестве примера приводится ниже по тексту:

Файл h323.conf определяет связь между Avaya и сервером Asterisk.

/etc/asterisk/h323.conf
; The NuFone Network's
; Open H.323 driver configuration
[general]
port = 1720
bindaddr = 192.168.58.227
disallow=all
allow=alaw
dtmfmode=inband
gatekeeper = DISABLE
context=default
progress_setup = 8
progress_alert = 8
h245tunneling=yes

[Avaya]
type=friend
context=default
host=192.168.58.216
port=1720
disallow=all
allow=alaw,g729,gsm,slinear

В файле sip.conf я настроил два демонстрационных абонента 89301 и 89300. Эти номера соответствуют моему диапазону абонентов Avaya и они также совпадают с диапазоном номеров сети ТФОП (DDI).

/etc/asterisk/sip.conf
[general]
context=default
allowoverlap=no
bindport=5060
bindaddr=0.0.0.0
srvlookup=yes

[89300]
type=friend
regexten=89300
context=default
secret=89300
username=89300
callerid="User1" <89300>
host=dynamic
nat=yes
canreinvite=no
disallow=all
allow=alaw
allow=ulaw
dtmfmode=inband

[89301]
type=friend
regexten=89301
context=default
secret=89301
username=89301
callerid="User2" <89301>
host=dynamic
nat=yes
canreinvite=no
disallow=all
allow=alaw
allow=ulaw
dtmfmode=inband

В файле extensions.conf я настроил упрощенный номерной план для посылки SIP вызовов на каждый SIP телефон и вызовов с SIP телефонов в систему Avaya.

/etc/asterisk/extensions.conf
; extensions.conf - the Asterisk dial plan
[general]
static=yes
writeprotect=no
autofallthrough=yes
clearglobalvars=no

[globals]
TRUNKMSD=1

[default]
;Simple direct to sip extensions
exten => 89300,1,Dial(SIP/89300)
exten => 89301,1,Dial(SIP/89301)

;Простое правило для перенаправления всех звонков
;от SIP абонентов на абонентов Avaya и внешние номера ТФОП.

exten => _8XXXX,1,Dial(H323/${EXTEN}@Avaya); абоненты Avaya
exten => _90ZXXXXXXXXX,1,Dial(H323/${EXTEN}@Avaya); внешние
;национальные номера Объединенного Королевства.

Настройка на стороне Avaya:

Первым делом нужно убедиться в наличии следующего:
а. В разделе system-parameters customer-options на второй странице у вас должно быть достаточное для использования количество Maximum Administered H.323 Trunks.
б. возможность использования CLAN (модуль управления локальной сетью).
в. наличие MEDPRO (плата IP медиа процессора).

Упомяну, что мой Avaya Communication Manager (CM) версии 3.1.2, и могут быть иные требования, которые я мог не рассмотреть.

1) Настроим имена Avaya CLAN и сервер Asterisk на IP имена узлов
(ниже изображен lmntel01 , который был IP адресом моего Asterisk и 192.168.58.216 - мой clan адрес)




2) Ниже подробная информация моего CLAN, обратите внимание на задание network region. В данном случае ставим 6.




3) Конфигурация моего CLAN показана ниже:




4) Конфигурация network region 6 следующая:








5) Network region 6 определяет ip-codec 6, как последовательность кодеков.
(Напоминаю: использование этого кодека связано с системными и аппаратными конфигурационными ограничениями. Вы должны стараться использовать кодеки, отличные от G729)




6) Сейчас вы можете задать IP Trunk и IP Signaling group. Сделайте настройки в полном соответствии с приводимыми ниже.






Обратите внимание, что Supplementary Service Protocol должен быть установлен в состояние "a", чтобы пропускать служебную информацию вызова (номер абонента, имя и т.п.) из одной связываемой системы в другую. Это будет показано в конце данной статьи при тестовом звонке из Avaya в Asterisk.








7) На этом этапе вам понадобится поднять H323 IP trunk и настроить для работы между двумя системами. Вам может потребоваться транслирование сигналов busyout ("отказ в обслуживании") для группы/trunk-а.






8) Следующим шагом определим маршрутизацию исходящих вызовов с Avaya на Asterisk, используя только что созданный trunk. Первым делом я настраиваю uniform dial plan, в котором все мои абоненты начинаются с 893xx и состоят из 5 цифр, которые используются таблицей ARS (Agent Routing Service - служба маршрутизации вызовов). Номерной план моей Avaya состоит из 5 цифр, и я выполняю inc-call-handling-trmt (incoming call handling treatment - обработка входящих вызовов) для смены внешнего DDI на внутреннего абонента. Например 02070189301 преобразуется во внутренний номер 89301. Напомню, что номер 89301 НЕ является собственным абонентом системы Avaya.




Когда используется ARS Digits Analysis Table я определяю, что диапазон 893xx будет использоваться в route-pattern 66 (шаблоне маршрутизации). (Я не совсем уверен, какие типы вызовов я использовал в своих последних тестах и благодаря каким все заработало).




В конечном счете route-pattern 66 определяется ранее созданным trunk 66 и возможно исчерпывает список того, что необходимо настроить.




Одним из моих последних шагов, было заполнение таблицы public-unknown-numbering. В процессе тестирования я обнаружил, что при отправке имени абонента на сервер Asterisk имя абонента не показывалось. Внешние вызовы с назначенным DDI обрабатывались корректно и вызов проходил, но когда звонил внутрений абонент - возникала проблема.

В результате поисков в Интернет и исследований первопричины я обнаружил, что установка цифровых префиксов для абонентов моей Avaya и всех транков принуждает абонентов Avaya посылать номер на сервер Asterisk, который и отображается программным IP телефоном, использованным для тестирования.




Ниже приводится пример звонка с использованием программного телефона X-Lite. С абонента 84562 моей АТС Avaya я совершил вызов на сервер Asterisk, абоненту 89300. Это настройка абонента 84562:




Как видите, на принимающем абоненте демонстрируется имя и номер абонента, отправленные в Asterisk. Это происходит благодаря использованию протокола Supplementary Service Protocol, заданного на второй странице настройки, в ранее уже упоминавшемся, trunk 66.