Adding off-standard PCI Cards to the database(2.1.13+)
Overview
From Release 2.1.13, SARK UCS PBX has safeguards in it to prevent the use of untested or non-standard PCI telephony cards. However, because we can't cater for all possible clone cards and variations, there may be instances where you wish to have SARK/SAIL recognise a particular card in order to test that it works on your set-up. This can be done by adding a new tuple to the Selintra database as follows...
Database PCI Card tuples and their structure
The PCI Card Tuple has the following layout...
Here is an example of an actual row from the database...
| pci:1397:2bd0:1397:2bd0=sysdev |
probe |
zaphfc |
zzeor |
EOR |
Here is what it looks like as a string...
pci:1397:2bd0:1397:2bd0=sysdev|probe|zaphfc|zzeor|EOR
This is a database row for a standard HFC Cologne based PCI Card.
Database Key Structure
The database key is a concatenation of the following...
| Key element |
Explanation |
| pci |
fixed; this string should always begin any pci card key |
| : |
delimiter |
| nnnn |
Vendor ID (Hex) |
| : |
delimiter |
| nnnn |
Card ID (Hex) |
| : |
delimiter |
| nnnn |
Sub-system ID 1 (Hex) |
| : |
delimiter |
| nnnn |
Sub-system ID 2 (Hex) |
Determining the codes for your card
Use lspci as follows...
lspci -vv
This will list (in verbose mode) all PCI Devices which your computer contains. You will need to physically scan this list to find your card(s). For example, here are the entries for an HFC Cologne card and a Digium TDM card (listed in the PCI database as Tiger Jet Networks)...
lspci -vv...
00:13.0 Communication controller: Tiger Jet Network Inc. Tiger3XX Modem/ISDN interface
Subsystem: Unknown device b1d9:0003
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 32 (250ns min, 32000ns max)
Interrupt: pin A routed to IRQ 12
Region 0: I/O ports at dc00 [size=256]
Region 1: Memory at de003000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [40] Power Management version 2
Flags: PMEClk- DSI+ D1- D2+ AuxCurrent=55mA PME(D0+,D1-,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
00:14.0 Network controller: Cologne Chip Designs GmbH ISDN network controller [HFC-PCI] (rev 02)
Subsystem: Cologne Chip Designs GmbH ISDN Board
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 16 (4000ns max)
Interrupt: pin A routed to IRQ 10
Region 0: I/O ports at e000 [disabled] [size=8]
Region 1: Memory at de004000 (32-bit, non-prefetchable) [size=256]
Capabilities: [40] Power Management version 1
Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Make a note of the slot numbers (in our case 13 and 14) and then issue the machine readable form of lspci...
lspci -vn...
00:13.0 Class 0780: e159:0001
Subsystem: b1d9:0003
Flags: bus master, medium devsel, latency 32, IRQ 12
I/O ports at dc00 [size=256]
Memory at de003000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [40] Power Management version 2
00:14.0 Class 0280: 1397:2bd0 (rev 02)
Subsystem: 1397:2bd0
Flags: bus master, medium devsel, latency 16, IRQ 10
I/O ports at e000 [disabled] [size=8]
Memory at de004000 (32-bit, non-prefetchable) [size=256]
Capabilities: [40] Power Management version 1
Now you can clearly see the Vendor and card ID (after Class) and the Subsystem ID's.
You can cross check these with the PCI ID Repository which you will find in human readable form at -
http://pci-ids.ucw.cz/iii/?p=%2A
Adding the new database tuple
Now you can build your database tuple.
TDM type card
Let's do one for the Digium TDM card (which shows as Tigerjet); it should look like this...
pci:e159:0001:b1d9:0003=sysdev|probe|wctdm|zzeor|EOR|
To add it to the selintra database you must add the tuple to selintra-work as follows..
db selintra-work set pci:e159:0001:b1d9:0003 sysdev probe wctdm zzeor EOR
X100P? type card
Selintra does not recommend the use of X100P? cards since many/most are hardwired for Bellcore network termination. This can lead to mismatched impedance and pronounced echo problems if the card is attached to a network outside of the domestic US.
pci:1057:5608:1055:0000=sysdev|probe|wcfxo|zzeor|EOR|
To add it to the selintra database you must add the tuple to selintra-work as follows..
db selintra-work set pci:1057:5608:1055:0000 sysdev probe wcfxo zzeor EOR
Clean up
Finally, fire-up your browser and open the server-manager. Choose globals in the sail section and issue a commit.
The record has now been added to the selintra database and your card will be recognised.
WARNING - ADDING A NEW TUPLE DOES NOT MEAN THAT YOUR CARD WILL NECESSARILY WORK! SARK/SAIL WILL LOAD THE DRIVER YOU HAVE SPECIFIED BY ISSUING A MODPROBE. HOWEVER, IF YOU HAVE SPECIFIED THE INCORRECT DRIVER OR YOU ARE ATTEMPTING TO RUN WITH A NONE-ASTERISK-COMPATIBLE CARD THEN THE MODPROBE OR ASTERISK ITSELF WILL FAIL.