[Asterisk-Dev] channel driver sample - Coding/Transcoding/Conferences

John Todd jtodd at loligo.com
Sun Jul 4 10:28:32 MST 2004


At 1:42 AM +0800 on 7/4/04, Steve Underwood wrote:
>Jeremy McNamara wrote:
>>Miroslav Nachev wrote:
>>>Dear Jeremy,
>>>
>>>JM> Why?  You are going to have two PCI bus transits adding totally
>>>JM> unecessary latency.
>>>
>>>    Also the latency from Memory Switching combining with DSP coding
>>>Speed is smaller than Host CPU Coding where you need of very power
>>>Host CPU which is expensive variant.
>>
>>Say what?
>>
>>With todays CPU power there is absolutely no need for expensive 
>>DSPs. This is why Digium didn't design hardware with DSPs on board.
>
>I'm all in favour of host DSP code, and put much of the DSP into *.
>
>Say what?
>
>A high end DSP is *far* cheaper than a Pentium, and consumes a tiny 
>fraction of the power. Also, a Pentium doesn't really have the 
>processing grunt needed for serious DSP - say, several E1s worth of 
>echo cancellation + G.729 coding. You need clusters of DSP chips for 
>that. However, most people only use a few channels, or do 
>lightweight processing, and for them host CPU DSP is the effective 
>choice.
>
>The *appearance* of DSPs being expensive is an artifact of the way 
>the industry runs. DSP cards are priced at an extreme multiple of 
>their actual cost, leading to a vicious circle - DSP cards are 
>expensive so they have a small market. Why are they expensive? 
>because they have a small market. E1 cards were like that too, until 
>recently. Apply the Digium pricing strategy to a DSP card and it 
>would not look too bad. Add an H.100 port to Digium's E1/T1 cards 
>and the DSP card and maybe you are starting to build something nice. 
>Sure, it starts to look a little like a Dialogic card. That isn't 
>all bad, though, if its a reasonably priced open platform, instead 
>of a Dialogic high priced straight-jacket.
>
>Regards,
>Steve

I agree with Steve.  I expect that host processors are quickly 
catching up with DSP equipment, but an open-source-ish DSP board 
(with just PCI; I'm unsure about H.100, since it complicates things 
greatly) would help a great deal with larger installations for the 
next several years.  I'll chime in again with my comments about a DS3 
physical interface... I think that a DS3 card, plus a DSP-heavy card 
that could handle 672 channels of G.729 with _good_ echo cancellation 
would rock.  Even if I just had seven really cheap ($800) PC's, each 
with a 4-port T410P handing their traffic off TDMoE to one 
DSP-capable system - that would reduce my costs quite a bit, rather 
than buying seven $2800 dual-processor Xeons to get G.729 and 
questionable echo cancellation.  Let's say that DSP card cost me 
$1500 - I'm still very far ahead.  Heck, I could even buy TWO 
complete DSP systems for redundancy and STILL be saving ~$10000.

As Steve mentions, most users of Asterisk are happy with what it can 
do now, because their needs are lightweight.  Those with heavier 
processing requirements tune their systems very well, or spread the 
load across many host CPUs to get the performance they need.  This 
works if you have all the time in the world, and all the skills you 
need.  However, I would much rather spend a bit more and have 
something that isn't "pure" CPU based if it saves me dozens 
(hundreds?) of hours, headaches, and space as long as it still gives 
me the flexibility of the rest of Asterisk.

This is really a moot point to me for TDM interfaces, since only 
organizations who have existing SS7 infrastructures are really going 
to care about this type of density.  VOIP service providers either 
should be figuring out how to avoid TDM entirely, or should be 
thinking about things deeper inside the feature model to make their 
money.

I would buy a DSP-based system that could handle ~600 channels.  Even 
in the distant future, it will still be the case that I will have to 
do transcoding in the core of all of my Asterisk systems that moves 
GSM to G.729 to G.711 to G.726 to whatever.  This will be a 
non-trivial amount of traffic, either because clients are 
incompatible or because I will be sitting in the middle doing some 
function (voicemail, conferencing, etc.)  Currently, the prospect of 
~$2800 per 100 users (2x2.8ghz rackmount high-quality server box) 
isn't so great - $28 a channel is still much too high, because it's 
not just $28 per channel when you add the overhead costs of space, 
power, management, etc.  If I could get the costs to $8 per channel, 
that would really be interesting, which equates to adding to one of 
those $2800 servers a $1500 DSP board that can handle 600 channels 
(300 simultaneous end-to-ends, or 600 single-end calls.)

JT



More information about the asterisk-dev mailing list