Если вы “счастливый” обладатель 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
Теперь перегружаем астериск и пробуем звонить.
Для ещё одного транка просто добавляем описание пира.
12 коментарів “Elastix и H323”
Добрый день, попытался соединить elastix и panasonik TDA200 через Н323 с такой настройкой. С panasonika звонки проходят, а с elastix нет. В логах такая ошибка: ERROR:No open LogicalChannels – Failed FindLogicalChannelByChannelNo (incoming, ooh323c_1
на elastix’e есть поддержка h323?
А как быть если module load ooh323.so не проходит. Выдается сообщение о том что модуль не найден.
Как это решить?
Значит либо модуль действительно находится не в папке модулей asterisk’a, либо просто не подходит к вашей версии ОС, астериска.
Создайте файл ooh323.conf в Elastix. PBX->Tool->Asterisk File Editor
Потом перезагрузите и сделайте команду module load ooh323.so. Должен загрузиться после перезагрузки.
Настроил ooh323 между avaya и asterisk. Звонки между абонентами ast. и ava. ходят
и абоненты aster. через avaya выходят на ТфОП.
Но к aster. подключен ещё транк sip,
и вот абоненты avaya через asterisk в sip проходят, но звук не проключается.
Хотя от абонентов asterisk звонки через sip – проходят нормально.
Если нет голоса, значит блочатся voice-порты в файерволе. Где именно – смотрите дамп трафика.
Спасибо за ответ, но какой файервол?
avaya–>ooh323–>elastix–> NAT–>sip mtt
абонент elastix – звонит через sip. все нормально;
абонент avaya – звонит через sip, звонок идет , ответ на снятую трубку есть,
но звук не проключается.
Любой файервол. В первую очередь нужно именно его смотреть + дамп трафика сделать. Дальше уже разбираться. Ваша схема всё равно ничего не говорит, и проблема может быть где угодно.
В догонку
абонент avaya без прблем звонит абоненту elastix;
при наборе сотового или межгорода Wireshark показывает
отсутствие RTP после connect между avaya и elastix
(которые находятся в локальной сети и между ними файервол не работает).
Спасибо
Такая же беда как и у oleg. Только вместо avaya LG CS100. Когда звонишь с elastix и вызов и голос в обе стороны работает, когда звонишь с CS1000 вызов идёт но голоса нет нигде. Фаерволов и прочих натов между ними нет. В логах астериска всё красиво и никаких ошибок.
Возможно неправильно настроен диапазон rtp port range на CS1000 или он отличается от того, какой прописан в elastix