README.VTCore ============= Last updated: 15 Jan 2007 Introduction ------------ With the introduction of our new OpenPCI card we have started a new kernel driver design. It is a modular design where the user space programs speak to the cards via the "vtcore" module. The hardware specific modules then plug into the vtcore module. This provides a unified interface to the vpb-library as well as offering better board interoperability (eg voice bridging). We plan of having a number of helper modules including: host echo canceller dtmf/tone detector dtmf/tone generator Host DSP and configuration -------------------------- With the new kernel modules there is now a new "host dsp", based along the lines as the original hostdsp.cpp for the vpbhp (OpenSwitch) driver. The new host dsp will actually support all of vtcore based cards. The new host dsp will only be using the one config file for all the cards. This means that you will still have the "vpb.conf" config file, and the new "vtcore.conf" config file. The new file is very similar to the old "openswitch.conf" type config files. Here is an example of a vtcore.conf file using an OpenPci and an OpenSwitch: [general] name = vtcore cards = 2 [card0] type = openswitch bal1 = 0xf0 bal2 = 0x5d bal3 = 0x78 chan = 8 chan = 9 chan = 10 chan = 11 [card1] type = openpci hwplaygain = 12 hwrecordgain = 12 chan = 0 hwplaygain = -12 hwrecordgain = -12 chan = 1 The [general] section is basically the same as other config files. The [cardN] sections can be broken down to two parts, the first part telling the library what the card is, and the second part telling it extra configuration options. The first part needs the "type" parameter and any options that apply to all ports on the card, such as: dtmfms => set the duration for generated dtmf cutthrough => gain reduction while recording The rest is a "fall through" configuration section. This means the options that are set will apply to all chan's that follow them. They may be specified multiple times if different settings are desired for individual ports or for groups of ports. Currently these options include: OpenSwitch ---------- bal1, bal2, bal3 => Codec Hybrid balance registers hwplaygain, hwrecordgain => Codec gain values playgain, recordgain => software gain values country => override the global setting for individual ports logging => port is used for logging, not two-way comms. OpenPCI ------- hwplaygain, hwrecordgain => Codec gain values playgain, recordgain => software gain values country => override the global setting for individual ports logging => port is used for logging, not two-way comms. fxs_impedance => override the country default impedance for fxs ports. fxo_impedance => override the country default impedance for fxo ports. The "vpb.conf" file for this would look like this: [general] name = general country = 61 verbosity = 0 [configs] vtcore = /etc/vpb/vtcore.conf [cards] 0 = openswitch:0 1 = openpci:1