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...

KeyField Type _{fname=probe}_ _driver-name_ _{fname=zzeor}_ EOR

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.

Topic revision: r6 - 02 Nov 2007 - 19:31:37 - TWikiGuest
 
    

This site is powered by the TWiki collaboration platformSARK SARKPBX and POLYGATE are registered trademarks of Aelintra Telecom Limited.
Ideas, requests, problems regarding SARK UCS/MVP? Send feedback