ZapTel

Two versions of the Zaptel package are available:

  • Zaptel 1.2.x
  • Zaptel 1.4.0

Since I'm using the 1.4.0 version of Asterisk I also chose to go with the 1.4.0 version of Zaptel and I'm building on a 2.6 kernel (SuSE 10.0)

Steps:

  1. Download and extract the zaptel 1.4.0 tarball from the asterisk.org website.
  2. Install and configure your linux kernel sources - for my SuSE distro this requires me to:
    • cd /usr/src/linux
    • make cloneconfig
    • make modules_prepare
  3. Per zaptel instructions create a symlink
    • cd /usr/src/linux
    • ln -s /lib/modules/uname -r/build/ linux-2.6

  4. In the zaptel source directory
    • ./configure
    • make linux26
    • NOTES:
      1. I had to install the newt and newt-devel packages to build some of the tools
      2. I encountered a compile error while building the ztdummy driver. The compiler complained about implicit declarations for several functions such as "tasklet_init", "tasklet_disable", and "tasklet_kill". I was unable to determine how to get these functions to compile, but it is possible to build ztdummy in such a fashion as to avoid those function calls. Near the top of the source file ztdummy.c is a line "#define USE_RTC" which enables functionality using an on-board realtime clock. When I commented out these defines the ztdummy driver was able to compile without error.
  5. As root
    • make install
    • modprobe ztdummy
  6. I then received an error while loading the ztdummy driver that instructed me to check dmesg for more information. I found the following errors:

ztdummy: disagrees about version of symbol zt_receive
ztdummy: Unknown symbol zt_receive
ztdummy: disagrees about version of symbol zt_transmit
ztdummy: Unknown symbol zt_transmit
ztdummy: disagrees about version of symbol zt_unregister
ztdummy: Unknown symbol zt_unregister
ztdummy: disagrees about version of symbol zt_register
ztdummy: Unknown symbol zt_register

If this problem occurs you need to rmmod the zaptel driver and reload the new version you just compiled. These errors essentially indicate that the ztdummy driver doesn't match the version of the zaptel driver that has been loaded. If you have any asterisk/digium drivers installed from an RPM or from your distro maintaner you may need to remove these.

  1. I then got a FATAL error loading the driver which complained about a missing /dev/zap/ctl "Master" device, and I was pointed to check the /etc/zaptel.conf file. This is the file that would normally be used to configure your digium card to connect to the phone company analog or PRI interface and to set up your inbound/outbound channels. However I don't have any digium hardware.

I took a stab at configuring a "dynamic span definition" since the comments in the config file indicated this could be done using just an ethernet interface (i.e. not requiring digium PCI cards). I set up the folllowing entry:

dynamic=eth,eth0/INSERT_MAC_ADDRESS_HERE,1,1

As best I can tell this indicates that ethernet 0 supports one channel and is to be used as the primary timing source.

I really doubt this is the best way to set up zaptel.conf for my usage scenario with the ztdummy driver, but it does allow ztdummy to properly load and the MeetMe conferencing works at least for small numbers of users over a short timeframe. If anyone has advice regarding the zaptel config for use with ztdummy on a system that does not contain any digium cards i would appreciate it.

HowTo/Asterisk/ZapTel (last edited 2007-03-13 05:42:34 by DanielHallmark)