[asterisk-dev] AST_FRAME_DIGITAL

Klaus Darilion klaus.mailinglists at pernau.at
Thu Sep 13 09:34:02 CDT 2007



critch schrieb:
> On Thu, 2007-09-13 at 14:55 +0200, Klaus Darilion wrote:
>> Tilghman Lesher schrieb:
>>> On Thursday 13 September 2007 05:14:40 Klaus Darilion wrote:
>>>> Do you transcode IP packets from ulaw to alaw when sent from US to
>>>> Europe? No - because it is digital.
>>> Yes, you do, because it is a different codec.
>> Is this IPv7?
> 
> Someone must transcode ulaw to alaw or you don't get any usable audio
> out the otherside. 


I know - but in the previous example I was talking about IP (Internet 
Protocol) - not ISDN
> 
> <joke>Could this be the communications problem we are having right
> now</joke>

It is good that you can still laugh about it :-)

> Any of the VoIP protocols would have told one side or the other what
> codec they are using, and the otherside will have decided they can deal
> with the incoming or not. That descision is based on knowing what it is
> that they are to be getting on the wire.
> 
> Asterisk needs to treat the data it receives in a standard way because
> we need to hand this information off to many differing technologies. So
> having the base data converted into something that asterisk can then
> pass around and know what it is, is important. 

Yes. Currently we have g729 pass through - no need for Asterisk to 
transcode - Asterisk only knows this is something I do not understand 
thus I pass it through. The same applies for T.38.

I think one problem is that Asterisk is still focused very much on 
voice. For example if we have 2 channels drivers which only support 
AST_FRAME_TEXT asterisk still tries to find the best voice codec when 
bridging.

Thus, my idea, to just introduce the voice format AST_FORMAT_DIGITAL. 
This can be used by any channel_driver which supports raw data delivery 
(I think Cisco calls it "clear channel" for VoIP). I will add it to core 
and chan_zap and later it can be added to other channel drivers too.

> How much effort is truly involved in splitting the original data stream
> into the 3 constituent streams, and then remerging them? Is this really

I do not know it exactly - it is H.223 decoding (which depends on the 
used mobility level. Level 0 is just HDLC whereas higher levels are very 
robust to bit errors but are complex to decode).

> too much load to handle? Yes it may seem unnecessary to you, but for the
> same reasoning we shouldn't packetize the audio coming off of a
> streaming channel driver then. Asterisk tries to handle everything as
> generically as possible. Hand it packets of audio, and it will pass
> those on to whatever channel driver needs it and then those drivers can
> start from a simple known starting point and provide the proper output.
> Get your data to simple known spec, and most channel drivers will be
> able to get it out to the otherside.

One more reason to have the 3G video decoding in an application is the 
current state of the application. I guess we need to fix lots of things 
to make it stable and more robust and applying the fixes to each ISDN 
channel drivers is very time consuming.

regards
klaus



More information about the asterisk-dev mailing list