X100P clone

The X100P is a single port fxo (foreign exchange office) card whose job it is to interface an analog line from the phone company to your linux box. There are two variations of this card. The first consists of a Motorola chip and two small chips from Silicon Laboratories. The second card, also known as the x101p, consists of a Tiger Jet 320 chip and an updated Silicon Labs chip or chipset.

The Motorola and Tiger Jet chips serve the same purpose on both variations of the fxo card - they govern the PCI bus interface and provide a bi-directional serial interface to the Silicon Labs chips. The Silicon Labs chips are DAA's (Direct Access Arrangements). They govern the analog interface to the phone company and perform bi-directional analog to digital conversion.

The Digium X100P FXO card, and the DigitNetworks X100P OEM clone card, are actually Intel V92 Data/Fax/Voice modem cards. From looking at the published pictures of the cards, it is obvious that the cards are identical to the standard Intel V92 Winmodem PCI card. These cards are also known as controllerless or software modem cards.

A modem with the following chipsets should work:

Intel 537PG and 537PU
Ambient MD3200
Motorola 62802 - Sometimes incorporated onto cards known as SM56 PCI modems.

Note: 537EP is based on si3052 chip, not compatible with tj320 chip (and wcfxo module).

Many users have reported echo or delay problems using a clone. The x100p does not have a programable chipset for impedance matching. wcfxo with option opermode=1 parameter was intended for the TDM card. There seems to be different DAA's used in the clones. Si3012 for the US market and Si3014 for the global market.
There is also the Si3017 and Si3018 (Global) which are the newer versions of these chips as seen on the Intel modem chipsets linecard. Make sure the card you buy is for your region.

There are many comments about echo problems with clone X100P cards. These problems can be rectified by following the Echo cancellation steps in The Hitchhiker's guide to Asterisk or see Asterisk x100p echotraining.

One important point when you use an Intel V92 modem card that has not been purchased as the X100P card from Digium, but otherwise look identical to it, is that the electronic vendorID read from the card will be different. Current zaptel versions support both genuine X100P and clones.

Problems encountered
There are various reports where users have encountered problems of IRQ sharing with the card. Here is one example of a user that has failed to make an Intel card work. Buying a card with a 'recognised' chipset is no guarantee it will work.
There are inconsistent reports about Motorola SM56's capability to transmit CallerID.

The problem with X100p cards not being recognized by the system is also present when you have 2 or more of these cards on the same computer. The symptoms you will experience are usually these:
1- The first card is recognized, you may see entries in dmesg like:
wcfxo: DAA mode is 'FCC'
Found a Wildcard FXO: Wildcard X100P
2- However the second,third,etc X100P cards display the following
NOTICE-wcfxo: WCFXO/1: Unknown DAA chip revision: REVB=0
Failed to initialize DAA, giving up...
wcfxo: probe of 0000:01:02.0 failed with error -5

  1. 0000:01:02.0 this is the PCI address of the device. it will be different for you.
  2. WCFXO/1 is the second card, WCFXO/2 will be the third and so on.

Many people have complained about an IRQ sharing problem which usually manifests itself as, "Failed to initialize DAA, giving up..." This is actually the driver failing to reset the DAA so sometimes the card will work fine sometimes it will not- it actually depends on your power supply your DAA may power up and work okay consistently. After spending about a week analyzing this in a lab I found the bug. The patch against zaptel- follows...

+++ wcfxo.c 2009-01-10 20:41:58.000000000 -0500<br>@@ -696,6 +696,12 @@
/* Hardware stuff */
/* Reset PCI Interface chip and registers */
outb(0x0e, wc->ioaddr + WC_CNTL);
+ /* Reset the DAA */
+ outb(0x00, wc->ioaddr + WC_AUXD);
+ set_current_state(TASK_INTERRUPTIBLE);
+ schedule_timeout(1 + HZ / 800);
+ /* un-reset the DAA */
if (wc->flags & FLAG_RESET_ON_AUX5) {
/* Set hook state to on hook for when we switch.
Make sure reset is high */
@@ -704,6 +710,7 @@
/* Set hook state to on hook for when we switch */
outb(0x24, wc->ioaddr + WC_AUXD);

/* Set all to outputs except AUX 4, which is an input */
outb(0xef, wc->ioaddr + WC_AUXC);

...just add those six lines.

The hanging 'Off hook' issue
I experienced an issue with my two X100P's which are literally installed 5 metres (cable-wise, 2 metres otherwise) from a telephone exchange whereby they would, after a long period of use, stay 'off hook'. I guess this is an electrical issue, perhaps due to insufficient grounding (here in China electrical ground is like free lunch... it doesn't exist). Anyway it was particularly strange because after it stayed 'off hook' for awhile, dialling the corresponding telephone number gave a network-generated error rather than simply ringing out or busy. I developed a workaround whereby the asterisk service is restarted every morning at 3am. Though probably it would be enough to load/unload the zap modules or somehow otherwise force a firmware reset in the cards, this works for me and is perfectly acceptable.

Clone cards

Astercon AX100P Be detected as "X100".

BroadTel Identified by official Asterisk zaptel driver as X100P. Work great!

DigitNetworks Identified by official Asterisk zaptel driver as X101P (as opposed to X100P)

India X100P Identified by official Asterisk zaptel driver as X100P

InfoMatrix X100P Identified by official Asterisk zaptel driver as X101P or X100P depends on which variation you got

voxzone.com Identified by official Asterisk zaptel driver as Wildcard X100P

X100P.com Identified by official Asterisk zaptel driver as X100P (now with a Special Edition)

Sweex CA000022 Confirmed by Sweex as an Intel 537EP chipset - Si3018 DAA.

Dynamode M56PCI-H-AMB Confirmed by Dynamode as an Intel 537EP chipset - Unknown DAA.

iaxTalk.com Ambient MD3200 chip based X100P Clone card. Si3012 + Si3021 act as DAA.

x100p.eu Dedicated FXO with Motorola chipset, reported by Asterisk as a X100P.

x100p.com.ar Clon x100p Digium, Ambient MD3200. Argentina.

Encore WinMODEM identified as ENF656-PCIG-MOPR is an SM56 PCI card, uses Motorola chipset, reported by Asterisk zaptel as an X100P. Long discontinued but works nicely if you find one. (Some reports suggest that this card does not transfer CallerID, even though the original MODEM manual claims this capability.) --- infoMatrix X100P, caller ID transfer guarantied ! ---

Mercury Ambient chipset modems. Some users have reported issues with Mercury cards whilst others have had no problems, e.g. Here is one unhappy user

Notes for country use

Ensure the card is connected with a two wire cable, not a 3-wire connection that is common in the UK. Possible symptoms of an incorrect connection are having a line that is fine with a normal phone connected however if phone is left connected and connect another wire from the socket into the X100P, the ringtone is immediately lost. The line voltage drops from around 50 volts to 1 ish and it appears that the X100P is shorting the line.

To enable X100P CallerID functionality for the UK see this link or the bug details.

David Greaves has ported the patches to 1.6.1-rc1 and dahdi- and they seem to work fine. They have been sent to Marc at lusyn.com for inclusion on his usehist page.

External Links

Troubleshooting Guide

The Troubleshooting Guide located here provides solutions and background information to help overcome the following issues:

  • Card not detected by motherboard/BIOS
  • PCI Bus Interrupt (IRQ) sharing
  • PCI Bus Interrupt (IRQ) misses/latency
  • Acoustic and line/hybrid echo
  • Far end disconnect supervision
  • Kernel panic on reboot

Installation/Setup Guides

Installation/Setup Guides to help make card installation as easy as possible and to minimise the amount of time required are located here that cover the following:

  • Detailed step by step X100P setup instructions applicable to most Zaptel/Asterisk based IP PBX systems including Trixbox and AsteriskNOW
  • Global line standards setup including complex impedance for UK/Europe, Australia and New Zealand
  • UK Caller ID (CID/CLID) setup using the Zaptel/Asterisk patch written by Tony Hoyle to store the CID in a history buffer

Missing channel from 'dahdi show channels'
It took me ages to figure this one out - but despite having the card installed, dahdi configured, the module loaded..
I was able to see the card in dahdi show status but not in dahdi show channels

The fix was to make sure that there was a "channel => 1" line in my chan_dahdi.conf file.
The end of it now looks like
include /etc/asterisk/dahdi-channels.conf

channel => 1

Created by: richard.tomlinson, Last modification: Wed 01 of Jan, 2014 (08:35 UTC) by chris.higgins
Please update this page with new information, just login and click on the "Edit" or "Discussion" tab. Get a free login here: Register Thanks! - Find us on Google+