Friday, April 22, 2011

The Zaptel Drivers

When running an Asterisk PBX under FreeBSD, certain telephony features such as conferencing (aka the MeetMe feature) require an external timer in order to function properly. This timer is often provided by the Zaptel hardware drivers. However, if you are using a non-Zaptel configuration, such as on a completely SIP-based telephony setup, you probably won't have the drivers for Zaptel hardware installed and configured. To make matters worse, the Zaptel drivers have only recently been ported to FreeBSD in a stable manner, so they seem to be a recent development on the platform.

A few steps are required to get the drivers running. Below are my experiences adding the Zaptel drivers to an existing FreeBSD-based Asterisk PBX in early July 2006. You should also be aware that some reports indicate the Zaptel drivers for FreeBSD only work correctly under FreeBSD v5.x or v6.x, so you may need to upgrade your base installation.

Step 1 : Install the Zaptel Drivers
Ensuring your ports collection is up to date, you can install the Zaptel drivers from /usr/ports/misc/zaptel.

Step 2 : Copy over the Zaptel startup script
Upon installation, the zaptel drivers install a startup script in /usr/local/etc/rc.d. This will likely be alongside your Asterisk startup script, and any others you may already have installed there. The zaptel installation process asks you to rename zaptel.sh.sample to zaptel.sh in order to have the script start properly now that the drivers have been installed.

Step 3 : Edit the Zaptel startup script
For some reason, the zaptel.sh startup script provided doesn't include the necessary lines in order to load and unload the ztdummy.ko kernel module. For our purposes, this is important, since that ztdummy module is the entire reason for installing these drivers. Supposedly ztdummy provides a suitable dummy device which can be used by Asterisk for the objectives we are seeking here. So, we need to add a few lines to this startup script to ensure that ztdummy kernel module gets loaded and unloaded properly.

No comments:

Post a Comment