Zaptel timers for Asterisk
There are at least two Asterisk applications that need support of a timer to work properly:
- Asterisk cmd MeetMe: The conferencing application
- Asterisk IAX channels: IAX trunking
It may also be required with Music on Hold, i.e. to improve sound quality.
For Linux, several solutions exist to provide a timer, for other operating systems there is nothing, yet.
How to get a working timer
- Zaptel hardware device will provide timing to Asterisk.
- ztdummy is a dummy Zaptel device that provides no channels and only timing. It can use various sources for the timing
- Linux kernels with HZ set to 1000. This was the default of kernel 2.6.0 – 2.6.12, and normally requires a kernel rebuild on newer kernels.
- RTC support – works in i386 and amd64 as of 2.6.15.
- HPET timers – for even newer kernels (right now requires an external patch, see http://bugs.digium.com/view.php?id=10314 ).
- UHCI USB controller – abuses a timer in those USB controllers (controllers made by Intel or Via). Should work on any kernel.
The above should work with minimal tweaking in a default installation of Zaptel.
Some alternatives that have been suggested to ztdummy over the years:
- If you don’t have Digium hardware, there are three replacements
- zaprtc uses the real time clock in the PC instead. Look for Zaprtc on the lower left hand of the web page. The version 0.0.1 is for kernel 2.4. For 2.6 use zaprtc from bristuff package. Zaprtc will not work on SMP systems (Multiprocessor), where the RTC clock is used for SMP support. Is it still true? See http://lists.digium.com/pipermail/asterisk-dev/2004-September/006022.html.
Zaprtc works fine on SMP wth kernel 2.6.
Note: Zaprtc is actually a replacement for the standard RTC module. It provides the same facilities, but includes extra parts for Zaptel use. You will need to unload standard RTC module (rmmod rtc) or re-compile the kernel without RTC support (in your kernel source dir: “make menuconfig” –> Character Devices –> uncheck Enhanced Real Time Clock; now re-compile the kernel) in order to be able to use zaprtc.
For FreeBSD
- See Asterisk FreeBSD: Zaptel driver development for FreeBSD
For Openwrt
- See the OpenWRT forum on the dummy zaptel driver for Asterisk on OpenWRT running the Linux 2.4 kernels in the stable (WhiteRussian) releases.