Changes

Jump to navigation Jump to search
no edit summary
Line 37: Line 37:     
<p>We now have functional DSP code and channel interface code to allow USB devices to interface with App_Rpt and Asterisk, allowing high-quality, yet inexpensive interconnection with radio devices.</p>
 
<p>We now have functional DSP code and channel interface code to allow USB devices to interface with App_Rpt and Asterisk, allowing high-quality, yet inexpensive interconnection with radio devices.</p>
 +
 +
==Zapata Telephony and how it relates to Asterisk PBX==
 +
<p>By Jim Dixon, WB6NIL</p>
 +
<p>About 20-25 or so years ago, AT&amp;T started offering an API
 +
(well, one to an extent, at least) allowing users
 +
customize functionality of their Audix voicemail/attendant
 +
system which ran on an AT&amp;T 3BX usually 3B10) Unix platform.
 +
This system cost thousands of dollars a port, and had very
 +
limited functionality.</p>
 +
<p>In an attempt to make things more possible and attractive
 +
(especially to those who didnt have an AT&amp;T PBX or Central
 +
Office switch to hook Audix up to) a couple of manufacturers
 +
came out with a card that you could put in your PC, which ran
 +
under MS-DOS, and answered one single POTS line (loopstart
 +
FXO only). These were rather low quality, compared with
 +
today's standards (not to mention the horrendously pessimal
 +
environment in which they had to run), and still cost upwards
 +
of $1000 each. Most of these cards ended up being really bad
 +
sounding and flaky personal answering machines.</p>
 +
<p>In 1985 or so, a couple of companies came out with
 +
pretty-much decent 4 port cards, that cost about $1000 each
 +
(wow, brought the cost down to $250 per port!). They worked
 +
MUCH more reliably then their single port predecessors, and
 +
actually sounded pretty decent, and you could actually put 6
 +
or 8 of them in a fast 286 machine, so a 32 port system was
 +
easy to attain. As a result the age of practical Computer
 +
Telephony had begun.</p>
 +
<p>As a consultant, I have been working heavily in the area of
 +
Computer Telephony ever since it existed. I very quickly
 +
became extremely well- versed in the hardware, software and
 +
system design aspects of it. This was not difficult, since I
 +
already had years of experience in non-computer based telephony.</p>
 +
<p>After seeing my customers (who deployed the systems that I
 +
designed, in VERY big ways) spending literally millions of
 +
dollars every year (just one of my customers alone would
 +
spend over $1M/year alone, not to mention several others that
 +
came close) on high density Computer Telecom hardware.</p>
 +
<p>It really tore me apart to see these people spending $5000 or
 +
$10000 for a board that cost some manufacturer a few hundred
 +
dollars to make. And furthermore, the software and drivers
 +
would never work 100% properly. I think one of the many
 +
reasons that I got a lot of work in this area, was that I
 +
knew all the ways in which the stuff was broken, and knew how
 +
to work around it (or not).</p>
 +
<p>In any case, the cards had to be at least somewhat expensive,
 +
because they had to contain a reasonable amount of processing
 +
power (and not just conventional processing, DSP
 +
functionality was necessary), because the PC's to which they
 +
were attached just didnt have much processing power at that time.</p>
 +
<p>Very early on, I knew that someday in some "perfect" future
 +
out there over the horizon, it would be commonplace for
 +
computers to handle all of the necessary processing
 +
functionality internally, making the necessary external
 +
hardware to connect up to telecom interfaces VERY inexpensive
 +
and in some cases trivial.</p>
 +
<p>Accordingly, I always sort of kept a corner of an eye out for
 +
what the "Put on your seatbelts, youve never seen one this
 +
fast before" processor throughput was becoming over time, and
 +
in about the 486-66DX2 era, it looked like things were pretty
 +
much progressing at a sort of fixed exponential rate. I knew,
 +
especially after the Pentium processors came out, that the
 +
time for internalization of Computer Telephony was going to
 +
be soon, so I kept a much more watchful eye out.</p>
 +
<p>I figured that if I was looking for this out there, there
 +
*must* be others thinking the same thing, and doing something
 +
about it. I looked, and searched and waited, and along about
 +
the time of the PentiumIII-1000 (100 MHz Bus) I finally said,
 +
"gosh these processors CLEARLY have to be able to handle this".</p>
 +
<p>But to my dismay, no one had done anything about this. What I hadn't
 +
realized was that my vision was 100% right on, I just didnt know
 +
that *I* was going to be one that implemented it.</p>
 +
<p>In order to prove my initial concept I dug out an old Mitel
 +
MB89000C "ISDN Express Development" card (an ISA card that
 +
had more or less one-of-everything telecom on it for the
 +
purpose of designing with their telecom hardware) which
 +
contained a couple of T-1 interfaces and a cross-point matrix
 +
(Timeslot- Interchanger). This would give me physical access
 +
from the PC's ISA bus to the data on the T-1 timeslots
 +
(albeit not efficiently, as it was in 8 bit I/O and the TSI
 +
chip required MUCHO wait states for access).</p>
 +
<p>I wrote a driver for the kludge card (I had to make a couple
 +
of mods to it) for FreeBSD (which was my OS of choice at the
 +
time), and determined that I could actually reliably get 6
 +
channels of I/O from the card. But, more importantly, the 6
 +
channels of user-space processing (buffer movement, DTMF
 +
decoding, etc), barely took any CPU time at all, thoroughly
 +
proving that the 600MHZ PIII I had at the time could probably
 +
process 50-75 ports if the BUS I/O didnt take too much of it.</p>
 +
<p>As a result of the success (the 'mie' driver as I called it)
 +
I went out and got stuff to wire wrap a new ISA card design
 +
that made efficient use of (as it turns out all of) the ISA
 +
bus in 16 bit mode with no wait states. I was successful in
 +
getting 2 entire T-1's (48 channels) of data transferred over
 +
the bus, and the PC was able to handle it without any problems.</p>
 +
<p>So I had ISA cards made, and offered them for sale (I sold
 +
about 50 of them) and put the full design (including board
 +
photo plot files) on the Net for public consumption.</p>
 +
<p>Since this concept was so revolutionary, and was certain to
 +
make a lot of waves in the industry, I decided on the Mexican
 +
revolutionary motif, and named the technology and
 +
organization after the famous Mexican revolutionary Emiliano
 +
Zapata. I decided to call the card the "tormenta" which, in Spanish,
 +
means "storm", but contextually is usually used to imply a
 +
"*BIG* storm", like a hurricane or such.</p>
 +
<p>That's how Zapata Telephony started.</p>
 +
<p>I wrote a complete driver for the Tormenta ISA card for *BSD,
 +
and put it out on the Net. The response I got, with little
 +
exception was "well that's great for BSD, but what do you
 +
have for Linux?"</p>
 +
<p>Personally, Id never even seen Linux run before. But, I can
 +
take a hint, so I went down to the local store (Fry's in
 +
Woodland Hills) and bought a copy of RedHat Linux 6.0 off the
 +
shelf (I think 7.0 had JUST been released but was not
 +
available on shelf yet). I loaded it into a PC, (including
 +
full development stuff including Kernel sources). I poked
 +
around in the driver sources until I found a VERY simple
 +
driver that had all the basics, entry points, interfaces, etc
 +
(I used the Video Spigot driver for the most part), and used
 +
it to show me how to format (well at least to be functional)
 +
a minimal Linux driver. So, I ported the BSD driver over to
 +
Linux (actually wasnt *that* difficult, since most of the
 +
general concepts are roughly the same). It didnt have
 +
support for loadable kernel modules (heck what was that? in
 +
BSD 3.X you have to re-compile the Kernel to change
 +
configurations. The last system I used with loadable drivers
 +
was VAX/VMS.) but it did function (after you re-compiled a
 +
kernel with it included). Since my whole entire experience
 +
with Linux consisted of installation and writing a kernel
 +
module, I *knew* that it *had* to be just wrong, wrong,
 +
wrong, full of bad, obnoxious, things, faux pauses, and
 +
things that would curl even a happy Penguin's nose hairs.</p>
 +
<p>With this in mind, I announced/released it on the Net, with
 +
the full knowledge that some Linux Kernel dude would come
 +
along, laugh, then barf, then laugh again, then take pity on
 +
me and offer to re-format it into "proper Linuxness".</p>
 +
<p>Within 48 hours of its posting I got an email from some dude
 +
in Alabama (Mark Spencer), who offered to do exactly that.
 +
Not only that he said that he had something that would be
 +
perfect for this whole thing (Asterisk).</p>
 +
<p>At the time, Asterisk was a functional concept, but had no
 +
real way of becoming a practical useful thing, since it
 +
didnt, at that time, have a concept of being able to talk
 +
directly (or very well indirectly for that matter, being that
 +
there wasnt much, if any, in the way of practical VOIP
 +
hardware available) to any Telecom hardware (phones, lines,
 +
etc). Its marriage with the Zapata Telephony system concept
 +
and hardware/driver/ library design and interface allowed it
 +
to grow to be a real switch, that could talk to real
 +
telephones, lines, etc.</p>
 +
<p>Additionally Mark has nothing short of brilliant insight into
 +
VOIP, networking, system internals, etc., and at the
 +
beginning of all this had a great interest in Telephones and
 +
Telephony. But he had limited experience in Telephone
 +
systems, and how they work, particularly in the area of
 +
telecom hardware interfaces. From the beginning I was and
 +
always have been there, to help him in these areas, both
 +
providing information, and implementing code in both the
 +
drivers and the switch for various things related to this.
 +
We, and now more recently others have made a good team (heck
 +
I ask him stuff about kernels, VOIP, and other really
 +
esoteric Linux stuff all the time), working for the common
 +
goal of bringing the ultimate in Telecom technology to the
 +
public at a realistic and affordable price.</p>
 +
<p>Since the ISA card, I designed the "Tormenta 2 PCI Quad
 +
T1/E1" card, which Mark marketed as the Digium T400P and
 +
E400P, and now Varion is marketing as the V400P (both T1 and
 +
E1). All of the design files (including photo plot files) are
 +
available on the Zapatatelephony.org website for public consumption.</p>
 +
<p>We have more, higher-density designs on the way.</p>
 +
<p>As anyone can see, with Mark's dedicated work (and a lot of
 +
Mine and other people's) on the Zaptel drivers and the Asterisk
 +
software, the technologies have come a long, long way, and
 +
continue to grow and improve every day.</p>
 +
<p>Footnote:</p>
 +
<p>Has anyone ever taken a moment to sit back and consider the
 +
ENORMOUS responsibility that Mark has taken upon himself by
 +
doing this project? Have you ever thought of how incredibly
 +
many things that he has to concern himself with, and that it
 +
just *NEVER ENDS*! At this point, I believe that I have
 +
worked with him on this project longer that just about
 +
anyone, including some of his employees, and believe me, I
 +
have a good vantage point to see at least some of the stuff
 +
that he has to go through to accomplish this.</p>
 +
<p>Personally, I would have *NEVER* taken on such a task, being
 +
that I am and was quite aware of the level of responsibility required
 +
to do so.</p>
 +
<p>Yes, the task that I took on was and is quite a task, and
 +
quite a responsibility, but I did what I knew I could
 +
accomplish. Mark's part is way larger then mine, and all I
 +
can say that I know what it takes for him to do what he is
 +
doing, and I seriously appreciate the time and dedication
 +
that he has put into all the incredibly wonderful things that
 +
he has done for it and all of us.</p>
 +
<p>Furthermore, Id like to seriously thank all of the project
 +
contributors and everyone else that has done some part to
 +
help with this project. Thank you for demonstrating that you
 +
believe in it, and that you believe in us.</p>
896

edits

Navigation menu