This file documents the Zaptel drivers for the Xorcom Astribank8 Channel Bank. The drivers reside in a separate subdirectory, xpp/ . Building and Installation: """"""""""""""""""""""""" Building and installation is basically like the normal procedure of installing Zaptel. Follow the rest of the documentation here. In addition, the file xpp/xpp_modprobe contains modprobe settings. It should be copied verbatim into /etc/modprobe.conf or (better) copied to /etc/modprobe.d/ . If you fail to do so, xpp_usb.ko will fail to load xpd_fxs.ko and as a result will not detect your Astribank. Loading Firmware """""""""""""""" The Astribank needs a firmware loaded into it. Without the firmware, the device will appear in lsusb with vendor ID 04b4 and product ID 8613 The firmware is provided in the Intel hex format. It can be loaded using the program fxload, which is typically part of the package 'fxload' or 'hotplug-utils' . To load the firmware automatically using the standard hotplug script, place xpp/xpp_fxloader and xpp/xpp_fxloader.usermap in /etc/hotplug/usb and place xpp/FPGA_XPD.hex in /etc/xortel (or edit xpp_fxloader accordingly). Alternatively, xpp_fxloader when given the parameter 'xppdetect' will load the firmware from /etc/xortel/FPGA_XPD.hex . You can use it to load the firmware manually. You should then get in lsusb the vendor ID e4e4 and device ID 2121 (those IDs are temporary and likely to change in upcoming versions). Once there is such a device, the xpp_usb driver should load automatically on hot-plugging. In fact, you may find it simpler to disconnect and reconnect the device than running 'modprobe xpp_usb'. The driver has been separated into several modules: xpp.ko, xpd_fxs.ko and xpp_usb.ko . Generally you only need to modprobe xpp_usb, and it should also be loaded by hotplug when you connect the Astribank. However in order for it to load xpd_fks.ko correctly Refer to the instructions for Zaptel. After our small patches were applies, you get xpp.ko which is basically yet another zaptel driver, like wcfxo and wctdm. When loaded, you should get one span, of 8 extensions, 2 output ports and 4 input ports: root@rapid:~# cat /proc/zaptel/2 Span 1: XBUS-0/XPD-0 "Xorcom XPD #0/0: FXS" NOTOPEN 1 XPP_FXS/0-0 FXOKS (In use) 2 XPP_FXS/0-1 FXOKS (In use) 3 XPP_FXS/0-2 FXOKS (In use) 4 XPP_FXS/0-3 FXOKS (In use) 5 XPP_FXS/0-4 FXOKS (In use) 6 XPP_FXS/0-5 FXOKS (In use) 7 XPP_FXS/0-6 FXOKS (In use) 8 XPP_FXS/0-7 FXOKS (In use) 9 XPP_OUT/0-8 FXOKS (In use) 10 XPP_OUT/0-9 FXOKS (In use) 11 XPP_IN/0-10 FXOKS (In use) 12 XPP_IN/0-11 FXOKS (In use) 13 XPP_IN/0-12 FXOKS (In use) 14 XPP_IN/0-13 FXOKS (In use) For such a simple case you could use: /etc/zaptel.conf: fxoks=1-14 loadzone=us tonezone=us /etc/asterisk/zapata.conf: [channels] group=1 signalling=fxo_ks immediate=no context=from-internal channels => 1-8 ; actually they will never generate calls, so the context ; here is irrelevant ;context=outputs channels => 9-10 ; input ports should get an answer: immediate=yes context=inputs channels => 11-14 ;;;;;; end of zapata.conf /proc Interface """"""""""""""" The Astribank drivers provide their own /proc interface under /proc/xpp . (Note that the details of this interface are still potentially subject to changes) /proc/xpp/xbuses lists the connected devices (an xbus is such a device), one per line. A device is normally "connected". "missing" means that it was disconnected, but Asterisk still holds channels from it open. You can also see in the xbuses file to which physical connection the Astribank is connected. /proc/xpp/sync is a read/write file . It prints the current synchronization source. printing to it can change the synchronization source. Host-synchronization is currently the default but for better sound quality you should synchronize from the Astribank. /proc/xpp/XBUS-n gives information about device number n (starting from 0). under it, /proc/XBUS-n/XPD-m gives information regarding span number m in that device. /proc/xpp/XBUS-n/XPD-m/zt_registration is a read-write file for manually registering/unregistering the span with Zaptel. A span will register automatically when generated, though. Span unregistration may fail if some channels from the span are used (e.g: by Asterisk). Registration is by writing 1 and unregistration is by writing 0 to the file. (There are a bunch of other status files under /proc/xpp/ ) BTW: XPP here does not stand for X Printing Panel, XML Pull Parser, X-Windows Phase Plane or XML Professional Publisher. It is simply the Xorcom Peripheral Protocol, which connects a computer to a XPD (Xorcom Peripheral Device).