Elastix и H323

Если вы «счастливый» обладатель Elastix’a, точнее к вам на голову свалился этот геморой, то данная статья для вас.

1) Настройка Elastix’a

В меню Trunks создаём новый Custom транк. Называем его и устанавливаем Caller-ID. Создаём шаблон набора (вводим точку для любых звонков). В поле Custom Dial String вводим такое

OOH323/$OUTNUM$@XX.XX.XX.XX

именно так и никаких номеров портов в конце (хотя в подсказке именно с указанием порта, что и вводит в заблуждение)! Иначе будет ругать peer not found.

XX.XX.XX.XX — это IP адрес оператора связи, через которого вы будете звонить.

Нажимаем сохранить и применяем конфигурацию.

Теперь выбираем (или создаём) новый Outbound route (исходящий маршрут) и в качестве транка выбираем созданный выше. Так же сохраняемся и применяем конфигурацию.
Для подключения второго транка делаем всё тоже самое.

2) Настройка asterisk’a

Для начала посмотрим, подгружен ли модуль ooh323:

pbx*CLI> core show channeltypes
Type        Description                              Devicestate  Indications  Transfer
----------  -----------                              -----------  -----------  --------
USTM        UNISTIM Channel Driver                   no           yes          no
OOH323      Objective Systems H323 Channel Driver    no           yes          no
Phone       Standard Linux Telephony API Driver      no           yes          no
EXTRA       GSM/CDMA Telephony Driver FOR Asterisk w no           yes          no
Agent       Call Agent Proxy Channel                 yes          yes          no
MGCP        Media Gateway Control Protocol (MGCP)    yes          yes          no
Bridge      Bridge Interaction Channel               no           no           no
SIP         Session Initiation Protocol (SIP)        yes          yes          yes
MulticastR  Multicast RTP Paging Channel Driver      no           no           no
IAX2        Inter Asterisk eXchange Driver (Ver 2)   yes          yes          yes
Gtalk       Gtalk Channel Driver                     no           yes          no
Jingle      Jingle Channel Driver                    no           yes          no
DAHDI       DAHDI Telephony Driver w/PRI & MFC/R2 &  yes          yes          no
Skinny      Skinny Client Control Protocol (Skinny)  yes          yes          no
Local       Local Proxy Channel Driver               yes          yes          no
----------
15 channel drivers registered.

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

module load ooh323.so

Теперь нам потребуется изменить немного файл ooh323.conf (не h323.conf, а именно ooh323.conf)

Достаточно таких настроек:

[general]
port = 1720
bindaddr = 0.0.0.0
e164=100
callerid=PostMet-Asterisk
gateway=no
gatekeeper = DISABLE
h245tunneling=yes
mediawaitforconnect=yes
logfile=/var/log/asterisk/h323_log
context=from-internal
dtmfmode=rfc2833

Теперь добавим описание пира XX.XX.XX.XX:

[XX.XX.XX.XX]
type=friend
context=from-internal
ip=XX.XX.XX.XX
port=1720
rtptimeout=60
dtmfmode=rfc2833
h245tunneling=yes
disallow=all
allow=alaw
allow=ulaw
allow=g723
allow=g729

Теперь перегружаем астериск и пробуем звонить.
Для ещё одного транка просто добавляем описание пира.

Elastix и H323: 12 комментариев

  1. Александр

    Добрый день, попытался соединить elastix и panasonik TDA200 через Н323 с такой настройкой. С panasonika звонки проходят, а с elastix нет. В логах такая ошибка: ERROR:No open LogicalChannels — Failed FindLogicalChannelByChannelNo (incoming, ooh323c_1

  2. mainkind

    А как быть если module load ooh323.so не проходит. Выдается сообщение о том что модуль не найден.
    Как это решить?

    1. skeletor Автор записи

      Значит либо модуль действительно находится не в папке модулей asterisk’a, либо просто не подходит к вашей версии ОС, астериска.

  3. Alex

    Создайте файл ooh323.conf в Elastix. PBX->Tool->Asterisk File Editor
    Потом перезагрузите и сделайте команду module load ooh323.so. Должен загрузиться после перезагрузки.

  4. oleg

    Настроил ooh323 между avaya и asterisk. Звонки между абонентами ast. и ava. ходят
    и абоненты aster. через avaya выходят на ТфОП.
    Но к aster. подключен ещё транк sip,
    и вот абоненты avaya через asterisk в sip проходят, но звук не проключается.
    Хотя от абонентов asterisk звонки через sip — проходят нормально.

    1. skeletor Автор записи

      Если нет голоса, значит блочатся voice-порты в файерволе. Где именно — смотрите дамп трафика.

      1. oleg

        Спасибо за ответ, но какой файервол?
        avaya—>ooh323—>elastix—> NAT—>sip mtt
        абонент elastix — звонит через sip. все нормально;
        абонент avaya — звонит через sip, звонок идет , ответ на снятую трубку есть,
        но звук не проключается.

        1. skeletor Автор записи

          Любой файервол. В первую очередь нужно именно его смотреть + дамп трафика сделать. Дальше уже разбираться. Ваша схема всё равно ничего не говорит, и проблема может быть где угодно.

  5. oleg

    В догонку
    абонент avaya без прблем звонит абоненту elastix;
    при наборе сотового или межгорода Wireshark показывает
    отсутствие RTP после connect между avaya и elastix
    (которые находятся в локальной сети и между ними файервол не работает).
    Спасибо

  6. Артём

    Такая же беда как и у oleg. Только вместо avaya LG CS100. Когда звонишь с elastix и вызов и голос в обе стороны работает, когда звонишь с CS1000 вызов идёт но голоса нет нигде. Фаерволов и прочих натов между ними нет. В логах астериска всё красиво и никаких ошибок.

    1. skeletor Автор записи

      Возможно неправильно настроен диапазон rtp port range на CS1000 или он отличается от того, какой прописан в elastix

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *