Долгое время существует существенная претензия к Asterisk — необходимость наличия подключенных карт телефонии для работы программного таймера. Как альтернативу можно использовать модуль ztdummy, который использует другие возможности ядра для реализации таймера. С аппаратной генерацией событий таймера всё работает великолепно, с ztdummy — чуть хуже. Но существует множество ситуаций, когда невозможно воспользоваться обоими способами (привет пользователям FreeBSD).
Жёсткая привязка Asterisk к железу от Digium была одной из причин отделения Callweaver, где данный переписан без привязывания к Zaptel. Уже в 1.6.1 можно будет использовать функции, использующие таймеры, без установленного DAHDI. На данный момент имеются 2 реализации таймера: через DAHDI и через pthtread.
Краткий обзор для чего используется таймер:
- Проигрывание MusicOnHold
- IAX2 транки
- Асинхронная отправка RTP
- Конференции MeetMe
Не все из приведённых частей кода уже переведены на использование нового API, но работа ведётся. В MeetMe невозможно полностью отказаться от испльзования zaptel. Выходом из данной ситуации может стать скорый выход нового приложения для создания конференций, код почти готов, обещается много вкусного.
Ссылки:
- Оригинал: блог Russell Bryant
- Новые конференции: на SVN