Zaptel Таймер для сервера Asterisk


Существует, как минимум, два приложения Asterisk, которым необходим правильно работающий источник сигналов таймера:

Он так же может потребоваться для проигрывания музыки ожидания (Music on Hold), например, в тех случаях, когда страдает качество звука или она проигрывается с перерывами.

Для Linux, существует насколько решений для включения поддержки таймера, для других же операционных систем пока ничего подобного, к сожалению, нет. (Исключение - FreeBSD)

Как нам получить рабочий таймер в системе

  • Интерфейсные карты от Digium с ZAPTEL INTERFACE уже содержат в себе рабочий таймер.
  • Если же у Вас не имеется аппаратного обеспечения от Digium, существует два возможных решения проблемы:

    • ztdummy (содержится в стандартной поставка драйвера zaptel в SVN репрозитории Asterisk) для Linux ядер ветки 2.4, использует USB-UHCI таймеры из USB драйвера на платформах с поддержкой UHCI USB. Для ядер версии 2.6, используется внутренний таймер ядра с высоким разрешением и не требуется использования какого-либо дополнительного аппаратного обеспечения. Ztdummy - это модуль ядра, который Вы должны загружать Linux командой: modprobe. Прочитайте документацию на Ваш дистрибутив Linux, на предмет, как загружать и выгружать модули ядра. Если у Вас используется версия ядра 2.4, пожалуйста, обратите внимание, что модуль драйвера для usb-uhci должен быть загружен как модуль, а не скомпилирован статически в ядро, для обеспечения работы таймера ztdummy.

    • zaprtc: Можно найти на: http://www.junghanns.net/downloads/, для сигналов таймера он использует часы реального времени, вашего компьютера. Найти Zaprtc можно в нижнем левом углу страницы. Версия 0.0.1 предназначена для ядра версии 2.4. Для версии ядра 2.6, используйте zaprtc из пакета от bristuff. Zaprtc может не работать на SMP (Многопроцессорных) системах, где RTC сигналы используются для поддержки режима SMP. Интересно, это до сих пор так и есть? Смотри: http://lists.digium.com/pipermail/asterisk-dev/2004-September/006022.html.
Zaprtc прекрасно работает на SMP системах с ядром версии 2.6.

Замечание: Zaprtc на данный момент является заменой стандартного модуля RTC. Он предоставляет те-же возможности, но еще и включает некоторые дополнительные функции, используемые драйвером Zaptel. Вам необходимо выгрузить стандартный модуль RTC (rmmod rtc) или перекомпилировать ядро системы без поддержки RTC (В директории с исходниками ядра: "make menuconfig" --> Character Devices --> uncheck Enhanced Real Time Clock; потом перекомпилируйте Ваше ядро системы), для обеспечения возможности использования модуля zaprtc.

    • realzap: Это тривиальный драйвер zap, который может генерировать сигналы таймера zaptel, используя все что угодно, что подходит для этих целей. Однако, Вам необходимо иметь запущенный RTAI, который совсем не тривиальный! realzap поставляется вместе с пакетом от bristuff: http://www.junghanns.net/downloads/.

Замечание

  • Если у Вас используется версия ядра - 2.6, не забудьте прочитать содержимое файла: /usr/src/zaptel/README.udev

Таймер для FreeBSD: