[asterisk-dev] chan_zap questions

Klaus Darilion klaus.mailinglists at pernau.at
Wed Jul 12 06:51:27 MST 2006


Armin Schindler wrote:
> On Wed, 12 Jul 2006, Klaus Darilion wrote:
>> Armin Schindler wrote:
>>> On Wed, 12 Jul 2006, Klaus Darilion wrote:
>>>>> Maybe an additional subclass
>>>>> AST_CONTROL_AOC
>>>>> should be introduced.
>>>> Thats what I did and it works fine. But ast_indicate_data requires a
>>>> ast_channel as first parameter. If FACILITY is received on leg2, I
>>>> have to
>>>> find out the ast_channel of leg 1 to indicate on the proper channel.
>>>> Fur this
>>>> purpose I still use ast_bridged_call. Any other suggestion?
>>> No, don't use ast_indicate*() directly, just use the normal *read
>>> function to give this CONTROL frame to asterisk. The asterisk code
>>> (bridge or dial-before-bridge) will forward this CONTROL frame to the
>>> other leg. 
>> Aha, sounds interesting. Can you give me a pointer to the code where this is
>> already used? Why should I use *read functions? I would rather think of *write
>> functions?
> 
> Actually it is *read. It is the functon called by Asterisk to *read* a frame 
> from the channel driver -> zt_read() in chan_zap.c
> I don't know the structure of chan_zap, but I think zap_queue_frame() is
> used to *give* a frame to Asterisk.
> chan-capi does the same with local_queue_frame() which then provides this 
> frame in the *read function to asterisk.

Ok. But there is still one problem left - If the bridge is not setup 
(leg 1 does not have sent CONNECT yet), the AOC-D must be queued 
somewhere and as soon as leg 1 is connected, a FACILITY message must be 
generated. Do you know such a queue mechanism inside Asterisk?

btw: das chan-capi support AOC?

regards
klaus



More information about the asterisk-dev mailing list