[Asterisk-Dev] More Zaptel/BRI questions
janvb at caselaboratories.com
janvb at caselaboratories.com
Fri Jan 6 20:26:03 MST 2006
James Harper wrote:
>Continuing on from my barrage of questions yesterday...
>
>The netjet BRI card appears to contain the Tiget320 PCI interface
>controller, which is in turn connected to a Siemens ISAC-S chip, which
>does the frame encoding and decoding.
>
>My understanding of ISDN is that data is transmitted in frames of 16
>data bits (B1) + 16 data bits (B2) + 4 data bits (D) + some
>synchronisation. 4000 of these frames are received per second, which
>gives us the 16 * 4000 = 64kbps rate for the B channels and 4 * 4000 =
>16kbps rate for the D channel. To get the zaptel timing of 1000
>interrupts/second, the card needs to be able to generate an interrupt
>off (at least) every 4th frame. If the best it could do was to generate
>an interrupt per frame, how much would that kill the system in interrupt
>servicing?
>
>
We (europeans) use the term 2B+D for BRI and 30B+D for PRI but be aware
that there are a difference between European and American versions here
as well. I don't know the US version but tend to remember that they use
56kbps B channels etc.
The D channels is the same D channel as on PRI with the exception of the
difference in speed(16 versus 64kbps), Q.921 are not that much different
from BRI to PRI, but you will find that there are differences in Q.931.
The current libpri will support some, but not all BRI signalling
operation's.
Just be aware of variances in the protocols.
As for interrupt's on a Pentium, the less the better. The actual penalty
depends very much on which Pentium you use, but I would avoid a need for
an interrupt 8000 times a second etc.
>Can anyone tell me what sort of pre-processing needs to be done to the
>raw data from a [BP]RI card into the zaptel driver? I assume that the D
>channel needs to be decoded from the raw bits on the line (or does
>it...?), but does the zaptel logic need anything more than raw bits from
>the B channels?
>
Only for the D channels, but you should get the D channel from the FIFO
on the ISAC.
>I'm not really familiar with PRI cards, but in the BRI
>space there are 'passive' cards, 'semi-active' card, and 'active'
>cards... can zaptel cope with different levels of processing being done
>on the card, or does it like to do it all itself? Or none of it itself?
>
>
The D channel should be supported with a HDLC framer in the ISAC and I
assume there is a special FIFO for the HDLC you need to service. Beware
that you need to run the LAPD variant, but there are samples on how to
config the chip for this on Infeneon's site.
You probably need to make a special zaotel based driver for each card in
the same way as there is a driver for TE110P etc. It is only your
interface that need's to be zaptel (I think) for this driver to go
straight into Asterisk.
>I've had a look around for this sort of documentation, and it doesn't
>appear to exist except in the code, which is fine, it will just take me
>a bit longer :)
>
>
Actually, it is not that complicated.
You will probably find that the ISAC ship is available on the PCI with
all it's registers through the Tiger320 etc, so you can write a few
wrapper functions to set/read registers and it's the standard ISAC doc
from there. Have a look into the source of TE110P, this uses the
Tiger320 with a Falc56 so it's not that much different from what you
need to do to have an ISAC w/Tiger320 etc. I have no glue about the
netjet card's thought.
Jan
More information about the asterisk-dev
mailing list