[asterisk-dev] AST_FRAME_DIGITAL

Klaus Darilion klaus.mailinglists at pernau.at
Mon Sep 10 03:53:02 CDT 2007



Olle E Johansson schrieb:
> 9 sep 2007 kl. 18.15 skrev Russell Bryant:
> 
>> Sergio Garcia Murillo wrote:
>>> Let me try to explain myself again, because it seems that you have  
>>> not
>>> undestood
>>> the issue yet.
>>> The data is NOT video, is h223 data, which is a multiplexed stream  
>>> that
>>> carries
>>> simultaniously audio,video and h245 control data. Once it's  
>>> processed by the
>>> application then you can extract video frames and audio frames  
>>> which can be
>>> correctly handled by asterisk.
>>> So if you don't want to create an opaque data type, then it will  
>>> be great if
>>> you
>>> create it's correct type that would be AST_FRAME_DIGITAL and it's  
>>> correct
>>> format AST_FORMAT_H223.
>>> Also if you want you could also include other digital formats, as for
>>> example
>>> AST_FORMAT_H320 (for isdn conferencing) that would be great.
>> I would prefer that this stream be decoded inside of the channel  
>> driver.  Then,
>> the audio and video should be sent into the core as AST_FRAME_VOICE  
>> and
>> AST_FRAME_VIDEO.  The control data should also be handled inside of  
>> the channel
>> driver, with some of the information passed into Asterisk using
>> AST_FRAME_CONTROL as appropriate.  This is how every channel driver  
>> works.
>>
> Yes, that has been my recommendation to Sergio and Ramtin, who both
> work with this topic in two different ways. Sergio in application space
> and Ramtin in the channel driver.
> 
> Adding channel logic in applications is not following Asterisk  
> architecture.
> We need to solve this either in chan_zap or libpri or both.

I strong disagree an that. Adding H223+H245 demultiplexing into chan_zap 
is the wrong place. The channel driver is used to establish the digitail 
call with channel technology (=ISDN). Then, inside this ISDN digital 
call there may be any application. In our case this is an 3G video call.

A 3G video call my be received with any ISDN technology. Thus, to stay 
with one of Asterisk main features (supports various of different 
hardware and technologies) we have to add this functionality to:
1. chan_zap
2. bristuff
3. chan_msidn
4. chan_visdn
5. chan_capi
(sorry if I have forgotten some ISDN channel drivers)

Further, IMO Asterisk should support data calls as well. E.g. in several 
scenarios a native transfer is not possible (e.g. an call from chan_zap 
to chan_capi) and data calls are used for several scenarios: 3G video, 
proprietary data applications, I think also G4 fax uses digital calls. 
This might be also interesting for chan_sip (e.g. Cisco and Patton 
supports "clear-channel" codecs too)

Thus, IMO the correct design is:
1. add AST_FRAME_DIGITAL to Asterisk core (very very simple)
2. add AST_FRAME_DIGITAL to channel drivers (this can be done step by 
step and expense depends on the channel driver design (chan_zap is PITA))

Now, Asterisk supports DATA calls forwarding.

Further, Asterisk applications can be written which handle this data 
calls. E.g. h324m_gw may handle AST_FRAME_DIGITAL and decodes into 
AST_FRAME_VOICE and AST_FRAME_VIDEO to interact with all standard 
Asterisk applications. You could for example also write a app_g4fax 
application.

As Sergio also said, there can be license issues which prevents adding 
3G video decoding to chan_zap. As application, the 3G application can be 
in asterisk-addons.

regards
klaus



More information about the asterisk-dev mailing list