X100P clone
Created by: richard.tomlinson,Last modification on Thu 12 of Feb, 2009 [19:25 UTC] by lbt
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
Note:
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-1.4.12.1 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
UK
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-2.1.0.4 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:
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:
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
Note:
- 0000:01:02.0 this is the PCI address of the device. it will be different for you.
- 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-1.4.12.1 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
UK
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-2.1.0.4 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

Comments
333Re: Motorola modem (PCI ID 1057:3052) support
This patch is against wcfxo.c in Zaptel version 1.4.9.2.
Re: Is this modem a X100p clone message from jyothish, my understanding is that if the PCI device ID ends with :3052, it's a Si3052 based modem, which isn't compatible with the wcfxo module in Zaptel. However, it's actually quite similar to the chipset used in the x100p modems, and the patch I've provided above should get it working.
333Any tutorial for novice?
333Is this modem a X100p clone
Modem: PCI device 1543:3052 (SILICON Laboratories) (rev 4)
how can i identify the chipset?
does this modem work as a X100p Clone?
This modem comes with a motorola sm56 driver.
333Worked for me!
Thanks so much!
333Has this been submited to bug tracker
333Motorola modem (PCI ID 1057:3052) support
http://www.fileqube.com/shared/MLnfrhCy86349
I haven't tried it, but I hope this might help to get other modems working (such as the Intel 537EP).
333UK caller ID support improvement
Here is the code form zaptel-base.c, showing the history buffer next the top of the functions:
static inline void __zt_process_putaudio_chunk(struct zt_chan *ss, unsigned char *rxb)
{
/* We transmit data from our master channel */
/* Called with ss->lock held */
struct zt_chan *ms = ss->master;
/* Linear version of received data */
short putlinZT_CHUNKSIZE,kZT_CHUNKSIZE;
int x,r;
if (ms->dialing) ms->afterdialingtimer = 50;
else if (ms->afterdialingtimer) ms->afterdialingtimer--;
if (ms->afterdialingtimer && (!(ms->flags & ZT_FLAG_PSEUDO))) {
/* Be careful since memset is likely a macro */
rxb0 = ZT_LIN2X(0, ms);
memset(&rxb1, rxb0, ZT_CHUNKSIZE - 1); /* receive as silence if dialing */
}
/* Store in the history buffer */
/* — RG: Moved before gain code to allow caller ID to work */
if(ms->history)
{
memcpy(ms->history+ms->historypos,rxb,ZT_CHUNKSIZE);
ms->historypos+=ZT_CHUNKSIZE;
if(ms->historypos >= ZT_HISTORY_BUF_LEN)
ms->historypos=0;
}
/* end of RG inserted code */
333More x100p.com problems
Very disillusioned with both their customer service and their "Quality Control". Would not recommend them.
333x100p.com growing pains?
Buyer beware.
333Motorola X100P clone Portugal
I can receive calls from mine analog line but i'm unable to make calls to outside of the PBX.
Can anyone help me?