Linux Call Router

Linux Call Router

В мире OpenSource всегда есть альтернатива, за это я и люблю его. После обновления сервера на OpenSuse 11.1 отказался устанавливаться драйвер mISDN, необходимый для работы chan_misdn. Быстрое обследование показало, что в ядро 2.6.27 были включены драйверы mISDN, но версии v2, которые не поддерживаются в chan_misdn, уже давно застывшем в развитии.

Несмотря на сложность ситуации работа ISDN линии была восстановлена в течении часа. Выхода было три:

  1. Установить ядро 2.6.26. Был отброшен, потому как проблемы нужно решать, а не убегать от них
  2. Дождаться пока в chan_dahdi добавят поддержку бюджетных однопортовых ISDN BRI карт. Не было столько времени, случится это, по моим прогнозам, не в этом году.
  3. Найти замену, работающую с mISDN v2

Такая замена была найдена в лице проекта Linux Call Router, ранее носившем название ISDN4Linux. Стоит сказать, что этот проект встречался мне 3-4 года назад, но тогда опыта не хватило чтобы оценить его предназначение.

1) Скачиваем последний исходный код (на момент написания — версия 1.5). Не забываем библиотеку mISDNuser (в ядре только модули, без поддержки NT режима).  Если ядро младше 2.6.27, то и mISDN понадобится юному джедаю. Отсутствие в системе mISDNuser явилось для меня первой проблемой, потребовавшей некоторого времени для выяснения.

2) Устанавливаем по очереди mISDN и mISDNuser. Вполне традиционные make;make install;

3) Выполняем ./configure в папке с lcr. Далее традиционно make;make install; Если Астериск (я собирал с 1.6.1.1) установлен в обычном месте, то будет собран и установлен chan_lcr.so

4) Поздравляю, вы в одном шаге от использования chan_lcr. Далее все по инструкции с сайта проекта.

Генерируем скрипты запуска для mISDN:

Выполняем ряд команд чтобы сделать init-скрипт mISDN пригодным для запуска, запускаем и проверяем что все модули загрузились:

Запрашиваем информацию о настроенных портах и присвоенным им номерам:

Все конфигурационные файлы LCR содержатся после установки в /usr/local/lcr.

Для того чтобы Asterisk запущенный из под непривилегированного пользователя могу работать с сокетом, созданным LCR указываем опцию socketrights 0777 в options.conf. Чтобы направить все вызовы приходящие на ISDN в Астериск (и отказаться от всех функций LCR) в routing.conf записываем:

Вписываем единственный BRI интерфейс в настройки (interface.conf):

Остается запустить LCR и загрузить модуль канала chan_lcr в Астериск:

Теперь все входящие вызовы будут попадать в контекст isdn и экстенжн равный вызываемому MSN. Исходящие вызовы делаются посредством простой строки набора LCR/Ext/84951234567. Никаких дополнительных конфигурационных файлов в /etc/asterisk не требуется.

автор igorg \\ теги: , , , , , , ,