[asterisk-dev] AST_FRAME_DIGITAL
Matthew Fredrickson
creslin at digium.com
Thu Sep 13 13:37:33 CDT 2007
Klaus Darilion wrote:
>
> 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.
I think that this can all be solved using the translator architecture.
See my reply to the original message for more info.
--
Matthew Fredrickson
Software/Firmware Engineer
Digium, Inc.
More information about the asterisk-dev
mailing list