Astlinux discovers the Zaptel card automatically very nicely thanks.  But getting it to  be persistent is a little tricky.

Firstly you will notice that the file/etc/zaptel.conf does not exist. Just a pointer to /tmp/etc/zaptel.conf which doesn’t exist. So create it.


pbx# touch /tmp/etc/zaptel.conf

Now edit it and add the following:




Save it


Probe for the card:

pbx# modprobe wcfxo

pbx# ztcfg –vv

Zaptel Configuration


Channel map:

Channel 01: FXS Kewlstart (Default) (Slaves: 01)

1 channels configured.

Changing signalling on channel 1 from Unused to FXS Kewlstart

Now restart Asterisk – not easy to do

pbx*CLI> restart now

And wait. And wait a bit more. When you’ve given up waiting, type a few commands and notice that there is no output. When the screen finally freezes up, hit ^c and find out the process number with ps

pbx# ps

<output ommitted>

1415 root 5392 S asterisk -p

1416 root 5392 S asterisk -p

1430 root 5392 S asterisk -p

1436 root 5392 S asterisk –p

<output ommitted>

Now kill the 1st Asterisk process and restart asterisk

pbx# kill 1415

pbx# asterisk (or perhaps that should be asterisk –p)

Then check

pbx asterisk # asterisk -r

Asterisk, Copyright (C) 1999 - 2006 Digium, Inc. and others.

Created by Mark Spencer < This e-mail address is being protected from spambots. You need JavaScript enabled to view it >

Asterisk comes with ABSOLUTELY NO WARRANTY; type 'show warranty' for details.

This is free software, with components licensed under the GNU General Public

License version 2 and other licenses; you are welcome to redistribute it under

certain conditions. Type 'show license' for details.


Connected to Asterisk currently running on pbx (pid = 1938)

pbx*CLI> zap show channels

Chan Extension Context Language MusicOnHold

pseudo incoming

1 incoming

pbx*CLI> zap show channel 1

Channel: 1

File Descriptor: 14

Span: 2>


Dialing: no

Context: incoming

Caller ID:

Calling TON: 0

Caller ID name:

Destroy: 0

InAlarm: 1

Signalling Type: FXS Kewlstart

Radio: 0

Owner: <None>

Real: <None>

Callwait: <None>

Threeway: <None>

Confno: -1

Propagated Conference: -1

Real in conference: 0

DSP: no

Relax DTMF: yes

Dialing/CallwaitCAS: 0/0

Default law: ulaw

Fax Handled: no

Pulse phone: no

Echo Cancellation: 128 taps, currently OFF

Actual Confinfo: Num/0, Mode/0x0000

Actual Confmute: No

Hookstate (FXS only): Onhook


Now to make it persistent using the USB key

Great. Now when we reboot, not even asterisk starts, and the file /tmp/etc/zaptel.conf doesn’t exist anymore either.

Copying a new /tmp/etc/zaptel.conf to /mnt/kd/zaptel.conf fixes that, and is now persistent on reboots.

However, to make the system recognise the X100P card each time, you have to edit /mnt/kd/rc.conf. Find the line that starts ZAPMODS.

#ZAPMODS="wctdm" and

a) uncomment it and

b) change the wctdm to wcfxo

Save the file and when you reboot all will be sweet ;)

Note: This should not be necessary – wcfxo has been officially replaced by wctdm but that’s how I got it to work.