|
|
|
FAQ: Asteroid, Quasar, Quasar-mini.- Что такое Asterisk, CallWeaver, Yate, FreeSwitch?
- Что такое DAHDI, Zaptel?
- Как работает Asterisk с периферийным оборудованием Asteroid, Quasar, ELF2-AE?
- У меня не компилируется драйвер DAHDI, в чем может быть проблема?
- У меня не запускается драйвер DAHDI, в чем может быть проблема?
- Работает ли ваше оборудование с сигнализацией SS7(ОКС7), PRI?
- При разговоре слышны щелчки, факсы плохо проходят.
- Будет ли работать Asterisk и ваше оборудование в виртуальной машине?
- Как проверить правильность настройки DAHDI и оборудования?
- Как расчитать производительность компьютера для АТС?
- Звук сильно искажен.
- Зачем нужны параметры echocancel, echotraining, echocancelwhenbridged?
Что такое Asterisk, CallWeaver, Yate, FreeSwitch?
Asterisk - открытая программная АТС. Callweaver - клон Asterisk версии 1.2. Yate(Yet Another Telephony Engine) - открытая программная АТС. FreeSwitch - открытая программная АТС.
Любая из этих АТС поддерживает множество VoIP протоколов и предоставляет функции голосовой почты, конференций, интерактивного голосового меню (IVR), центра обработки вызовов (постановка звонков в очередь и распределение их по агентам используя различные алгоритмы), запись CDR и прочие функции.
Asterisk не может обмениваться данными с периферийным оборудованием, эту задачу должен выполнять драйвер. Также, драйвер должен быть "понятным/однотипным" для Asterisk.
В случае карт E1 и линейных окончаний Asterisk, драйвером для работы с Asterisk является DAHDI или Zaptel (предок DAHDI). Именно он предоставляет "понятный" интерфейс для Asterisk. Драйвер для самого устройства, как правило, поставляется производителем.
Как работает Asterisk с периферийным оборудованием Asteroid, Quasar, ELF2-AE?
Asterisk передает и принимает данные и сигнализацию с помощью DAHDI. DAHDI, получив запрос от Asterisk, отправляет его в драйвер устройства, например в Quasar. Драйвер устройства отправляет данные от Asterisk в устройство, а данные от устройства в DAHDI.
У меня не компилируется драйвер DAHDI, в чем может быть проблема?
Возможно, у вас не установлены: - Компилятор (gcc).
Компилятор должен быть той же версии, которой собрано ядро ОС. cat /var/log/dmesg | grep "Linux version" - Должны быть установлены заголовочные файлы ядра.
Обычно это пакет вида linux-headers-xx-x86, он добавит ссылку /lib/modules/xx.yy.zz/build/ на папку с заголовочными файлами. Команда "ls /lib/modules/`uname -r`/build/" должна выполниться без ошибок. - Не установлены вспомогательные пакеты libnewt-dev, ncurses-dev.
Полный список нужно смотреть в файлах README внутри DAHDI.
У меня не запускается драйвер DAHDI, в чем может быть проблема?
- Модуль не установлен.
Установите его согласно руководству - в архиве есть файлы README. - Драйвер DAHDI и ядро ОС собраны разными версиями gcc.
dmesg выдаст список сообщений от ядра ОС. tail -f /var/log/kern.log будет печатать все новые сообщения. Так, загружая драйвер вы увидите, что выводило ядро в этот момент. - Не удовлетворены зависимости модулей.
Выполните depmod -a. Диагностика такая же, как в предыдущей проблеме.
Работает ли ваше оборудование с сигнализацией SS7(ОКС7), PRI?
Все устройства за исключением Asteroid работают с любой сигнализацией, поддержанной в Asterisk. В Asterisk есть поддержка SS7(ОКС7), PRI, и много других.
При разговоре слышны щелчки, факсы плохо проходят.
У вас неправильно настроена синхронизация. Конфигурация интерфейсов DAHDI должна быть описана в /etc/dahdi/system.conf. Далее, по этому вопросу примеры конфигурации приводятся в скобках "{ }".
Драйвер DAHDI работает с синхронным оборудованием, т.е. каждая следующая порция данных в следующий такт должна быть доступна. Если Периферийных устройств несколько - они должны работать синхронно, по одним часам.
В синхронной сети должно выполняться одно простое правило - master должен быть соединен с slave. Если это правило нарушается - будут потерянные(skip) или повторенные (slip) кадры.
Предположим, вы получаете от АТС поток E1, т.е. АТС - master, заводите его в Asterisk/DAHDI, и у вас есть внутренний коммутатор. В такой схеме вы должны настроить порт 1 адаптера Quasar как slave {span = 1,1,0,cas,hdb3,crc4} , он смотрит на АТС. Порт 2 настроить как master {span = 2,0,0,cas,hdb3,crc4}, порт 2 будет получать синхронизацию от порта 1, т.к. это одно устройство. Внутренний коммутатор должен быть в режиме slave. DAHDI будет работать с устройствами по часам АТС.
Другой вариант, к АТС у вас подключен ELF2-AE, а в офис подключен Asteroid. ELF2-AE настроен в режиме slave, в мониторе ELF2-AE режим slave {dynamic=eth,eth1/00:55:55:55:55:00/0,30,1}. Ethernet данные отправляются по часам АТС, то есть ELF2-AE slave на порту E1, master на Ethernet. DAHDI работает как slave, в конечном счете, от часов АТС, Осталось настроить Asteroid. Asteroid должен быть slave{dynamic=eth,eth1/00:55:55:55:55:00/0,30,0}, и в мониторе Asteroid настраиваем как master, VCO=1,2 (именно master, asteroid будет подстраивать свои часы по часам от Ethernet потока DAHDI).
В текущей версии DAHDI (2.2.0) master'ом для DAHDI становится первое зарегистрированное устройство, в нашей сборке эта ошибка исправлена. Подробнее о синхронизации и исправлениях в DAHDI см. в руководстве пользователя Asteroid и ELF2-AE, раздел "синхронизация Zaptel/DAHDI" и "Исправления в Zaptel/DAHDI".
Будет ли работать Asterisk и ваше оборудование в виртуальной машине?
Зависит от типа виртуализации.
DAHDI получает от устройств данные с темпом 1000 кадров в секунду (время - 1мс). Будет работать "Виртуализация уровня ОС", в ней виртуализируется только пользовательское окружение, то есть ядро ОС одно. Примеры: OpenVZ, Virtuozzo, Linux-VServer.
Полноценные виртуализации, виртуализирующие платформу, вероятнее всего не будут работать. Они не обеспечат максимальное время задержки прерываний в 1 мс.
Как проверить правильность настройки DAHDI и оборудования?
Для поиска проблем, ознакомимся с инструментами и терминами: - SPAN - логическое устройство, объединеное единой сигнализацией.
Каждый порт E1/T1 - это SPAN. Банк каналов Asteroid также виден как SPAN. - cat /proc/dahdi/1 - распечатать файл 1 из /proc/dahdi/.
В файлах 1,2,... драйвер DAHDI отображает состояние каналов. - lsmod - вывести список загруженных модулей.
- команда | grep dahdi - выполнить команду и отфильтровать вывод построчно по слову dahdi.
- tail - вывести хвост файла
-f - выводить изменения в файле tail -f /var/log/kern.log - покажет сообщения в реальном времени. Лучше держать открытым все время поиска проблемы. - dahdi_cfg - применение настроек из файла /etc/dahdi/system.conf к драйверам DAHDI и устройств.
-s отмена конфигурации (освобождение устройств) - dahdi_tool - монитор линий (SPAN'ов) DAHDI.
Что надо проверить и в какой очередности: - Проверить что модуль DAHDI и устройства загружен.
lsmod | grep dahdi lsmod | grep quasar quasar - модуль для адаптера Quasar, Quasar-m dahdi_dynamic - модуль TDMoE, необходимый для Asteroid, ELF2-AE. - Проверить сообщения от ядра
dmesg tail -f /var/log/kern.log - Проверить файлы в /dev/
ls /dev/dahdi/ должны выдать список файлов. Должны быть как минимум файлы channel, ctl, pseudo, timer. - Проверить состояние линии.
cat /proc/dahdi/номер_span dahdi_tool Линии должны быть со статусом OK. UNCONFIGURED означает, что драйвер загружен, но не сконфигурирован dahdi_cfg. - Если не сконфигурированы - сконфигурировать.
Отредактировать /etc/dahdi/system.conf любым редактором (editor, mcedit, joe, kedit, gedit), применить настройки командой dahdi_cfg. Ключ -vvv - вывести более полную информацию (больше v - больше информации). - Проверить настройки каналов
cat /proc/dahdi/номер_span dahdi_tool Убедиться что фактические настройки совпадают с тем, что хотели. - Проверить, что от устройства идут прерывания.
watch -n 1 cat /proc/interrupts От Quasar, Quasar-mini прерываний должно быть 1000 в секунду.
Стоит помнить, что в DAHDI/Asterisk инверсная терминология в отношении FXS/FXO. Линия декларированная как FXS - это линия, смотрящая в сторону FXS, эту линию вы подключите к АСТ. Линия декларированная как FXО - это линия, смотрящая в сторону FXO, к этой линии вы подключите телефоны.
Как расчитать производительность компьютера для АТС?
Выясняется только эмпирическим путем, сильно зависит от включеных опций/функций. За оценку можно взять статью http://quasar.sourceforge.net/bench.htm . Так, на P4 2,41 GHz с hyperthreading без эхоподавления работает транзит между E1 и SIP на 240 каналов (8 линий E1).
Прожорливые компоненты: - Эхоподавитель
- Кодеки (G729, g723, iLBC)
- Функции распознавания речи
Так, использование ресурсоемких, но сильно уплотняющих кодеков в пределах локальной сети является лишним, и ухудшающим качество звука. Их можно смело выключать, или ставить последними в списке приоритетов.
Закон кодирования DAHDI и конечного устройства не совпадают. Например, Asteroid настроен на A-law, в то время как DAHDI выдает звук в u-law. Закон меняется параметром {alaw=} или {ulaw=} в файле /etc/dahdi/system.conf.
Зачем нужны параметры echocancel, echotraining, echocancelwhenbridged?
В файле /etc/asterisk/chan_dahdi.conf должна быть описана конфигурация, которую asterisk при загрузке запишет в DAHDI. - echocancel - включить или выключить эхоподавитель.
32,64,...,2^N = Длина эхо-тракта. Задается в taps'ах, 8 taps = 1мс. yes = 128 taps = 16мс. no = выключить эхоподавитель. - echotraining - включить тренировку эхоподавителя.
Не включайте эту опцию, в нормальном эхоподавителе эта опция если не вредна, то как минимум бесполезна. Остатки от никогда нормально неработавших kb, mg2,... Используйте oslec, и НЕ включайте эту опцию. - echocancelwhenbridged - разрежить удалять эхо при соединении 2-х DAHDI каналов (анг. bridge).
При разговоре между 2-мя телефонами, подключеными через DAHDI будет удаляться эхо. Без этой опции, эхо удаляется только на разговоре DAHDI->SIP/IAX/любой_не_DAHDI_канал.
|
|