суббота, 12 февраля 2011 г.

H.323 Panasonic TDE-100 Asterisk

Asterisk удобно собирать из исходных кодов, а не использовать готовые графические сборки, особенно когда требуется понимание процесса.
В моем случае я видел asterisk всего пару дней, panasonic аналогично, но было:
Для поддержки h.323 требуется наличие некоторых библиотек

Описываю состояние поддержки h.323 на момент 1.6.2.13.

Было несколько вариантов модуля h.323
  • модуль ооh323, он ставился в add-on
  • модуль chan_h323, который нужно было собирать.
  • другие варианты не пробовал
С модулем 00h323 тогда не получилось, было одностороннее прохождение вызовов.

Поэтому пришлось собирать chan_h323. Нашел пошаговую инструкцию .
Примечания к инструкции:
  • Инструкция написано своеобразно, поэтому почитайте ее полностью, сделайте все подготовительные этапы.У меня их не потребовалось, так как все необходимое уже было установлено :)
  • Учитываем, что версия ядра поменялась: поэтому для поиска compiler.h быстрее было не скопировать путь к файлу из инструкции и не найти руками, а набрать locate compiler.h
Отладка
  1. включаем запись с помощью команды tcpdump -i eth0 -v -s 0 -w 123
-i интерфейс, который надо слушать, в моем случае eth0
-v показывать если захваченные пакеты вообще
-s 0 не ограничивать размер захватываемых пакетов
-w имя файла куда в текущей папке будет писать (pwd - посмотреть текущую папку)
с помощью
2. Копируем на компьютер с помощью winscp файл
3. Запускаем wireshark для анализа. Здесь подробно с картинками
4. В моем случае мне было проще поменять настройки на asterisk, чем разобраться в меню панасоник. Поэтому смотрел в записи,чего не хватало panasonic, и ставил такие настройки на астериск.

Настройки asterisk в двух файлах:
h323.conf и extension.conf
в файле h323.conf описываем особенности устройства
extension.conf как на него звонить

Мой конфиг h323.conf
[general]; ко всем h323 устройствам, типовые настройки
port=1720; стандартный порт
bindaddr=1.1.1.1; IP_ адрес астериска
disallow=all;  запретить все кодеки
allow=ulaw разрешить g711ulaw (осталось от других устройств можно убрать)
allow=alaw разрешить g711alaw (ну в Европе мы)
dtmfmode=rfc2833; передача донабора стандартно 101 поэтому это писать не надо
gatekeeper=DISABLE; режим точка-точка
context=panas; где в extensions.conf будут описаны правила для звонков с/на panasonic
progress_setup=8; этот параметр описаны в примере h323.conf , у меня с таким работает
progress_alert=8; этот параметр описаны в примере h323.conf , у меня с таким работает
h245Tunneling=no; хотел Panasonic
fastStart=yes; хотел Panasonic


[Panas_TDE] название, к которому будет потом обращаться в extension.conf
type=friend; звоним в обе стороны
context=panas; в каком контексте описаны правила обработки вызова
host=192.168.0.1; в моем случае у panasonic было два IP (с первым устанавливалась сигнализация, сам rtp шел на второй), здесь надо указать IP для сигнализации
port=1720; стандартный порт
disallow=all; запретить все кодеки
allow=alaw; разрешить g711alaw, ну в Европе мы
h245Tunneling=no; хотел Panasonic
fastStart=yes; хотел Panasonic


кусок моего extensions.conf
[panas]
exten => _1XX,1,Dial(H323/Panas_TDE/${EXTEN},60,tTr)  ;
include => localphones

объяснение
  1. название контекста panas (должно совпадать с тем. что использовали в h323.conf)
  2. символ подчеркивания, означает что дальше идет регулярное выражение
  3. 1ХХ (трехзначный номер, начинающийся на единицу)
  4. после запятой 1 - номер шага в правиле
  5. h323 название технологии. после тире имя узла (должно быть описано в h323.conf)
  6. передавать номер без изменений, если надо менять номер, например убрав первую цифру, то ${EXTEN:1}, подробнее в той самой книге :)
  7. 60 секунд ждать подъема трубки тем, кому звонят, потом обрывать
  8. tT - различные формы перевода
  9. r - пришлось затыкать проблему с КПВ.
  10. включение контекста localphones,чтобы абоненты с панасоника могли звонить абонентам астериска, в контексте locaphones тоже должен быть включен контекст panasonic.
  11. Дополнительно на panasonic выключил vad
  12. Перед настройкой panasonic сделайте копию файлов с sd карты. В крайнем случае сможете вернуть все назад, просто скопировав файлы и перегрузив panasonic.
  13. Если удасться, сделаю скриншоты настроек panasonic

2 комментария:

Unknown комментирует...

Вот настроил примерно как у вас Астериск, звонки с Астера до внутренних номеров панасоника ходят, обратно тоже, но вот юзера астера никак не могут позвонить в город. Вот что по этому поводу в extensions.conf:
exten => _9XXXXXX, 1, Dial(OOH323/${EXTEN}@PANAS_TDE200) ;Звонки в город

Евгений Мережко комментирует...

То есть насколько у вас в город подключен Panasonic. Я пытался сначала так настроить, но не получилось, возможно это связано, что на Panasonic с наружных линков по умолчанию нельзя звонить на другие наружные линки. Специалистов по Panasonic под рукой не было, поэтому у меня получилось что о всех маршрутах (в другие города, на другие филиалы в том же городе, на другие типы АТС, Microsoft OCS, Tandberg и прю) были описаны в центральном asterisk. Не потому что Panasonic плох, а потому что asterisk понятнее для меня документирован. Это как ответ на вопрос - какой операционная система лучше, да та, о которой есть у кого спроситью