Raspberry Pi FXO and FXS using the PiTDM from SwitchPi

I recently purchased a 2x FXO and 2x FXS adapter board that fits onto a Raspberry Pi.

It is called the PiTDM and is made in China by SwitchPi.com
Here is a photo of the board with 4 RJ11 ports, all configured as FXO ports using dual-port modules.

The PiTDM from SwitchPi uses standard FXO and FXS modules like the PCI or PCI-Express cards used on desktop PCs and there is a modified DAHDI driver so it works with Asterisk and with FreePBX

The FXO port works well. The dahdi driver accepts the pulsedial=yes command and the FXO port can be heard pulsing out phone number when I make the FXO dial out.
(For testing I connected the Pi’s FXO port to a Grandstream HT802 which was acting as the FXS interface of a Central Office PBX)
The Grandstream recognised the PiTDM’s Pulse Dial (Loop Disconnect dial) properly.
The FXO port also recognised incoming calls and the Pi detected the alarm state if the FXO port cable was disconnected.

Next step is to try this on the Strowger Exchange and have the Pi connected to a Strowger extension and make the Pi go off-hook and pulse dial Strowger extensions.

The PiTDM board also supports FXS ports which also work via their dahdi driver with Asterisk (and FreePBX)
The FXS port accepts DTMF dial tones properly and can also be configured to accept Loop Disconnect dialling (Pulse Dial).
To work with UK rotary dial phones, the file /etc/modprobe.d/dahdi.conf needs to be edited and the following line added

options wctdm dialdebounce=32

I believe the driver defaults to a 64 milliseconds debounce filter and does not work with UK phones. This changes the driver 32ms.

So the Good Points for the PiTDM (4xRJ11 port model)
– really compact FXS and FXO board supporting 4 x RJ11 ports and a mix of FXO and FXS modules. It is slightly larger than a Pi.
– One 9V 1Amp power supply powers the SwitchPi PiTDM board, the FXO and FXS modules and the Raspberry Pi too (that’s just 9 Watts)
– Works with DAHDI and Asterisk and FreePBX (or the Digium GUI)
– FXO supports Pulse Dial when dialling out with a config file setting (pulsedial=yes)
– FXS supports Pulse dialling from telephones with a config file setting (dialdebounce=32)
– They have been really helpful via email. Thank you Xin for all your help.

Bad Points
– No idea what the warranty is (I never asked)
– No certification documentation (like CE or approvals for connection to a PSTN) (but that’s OK for now as I’m using this on a private exchange)
– Closed source driver so slight worry about keeping it running if the linux kernel API changes. (although SwitchPi tell me they are planning to make the driver open source)
– Would be nice if they sold a case too (and SwitchPi tell me they are looking into it)

Next steps it to take it over to the Strowger exchange and test the FXO module dialling Strowger extensions and to continue working with SwitchPi on the FXS Pulse Dial speed issue.

*updated with latest Pulse dial information – all working now.
*updated again to add that it was the PiTDM 4 Port model I was testing