[asterisk-dev] chan_zap questions

Armin Schindler armin at melware.de
Wed Jul 12 06:28:33 MST 2006


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.

Armin
 
> regards
> klaus
> 
> > 
> > > during processing of case PRI_EVENT_FACNAME:
> > > struct ast_channel *otherchan;
> > > otherchan = ast_bridged_channel(pri->pvts[chanpos]->owner);
> > > if (otherchan && (!strcmp(otherchan->tech->type, "Zap"))) {
> > > /* Only for Zap channels */
> > > ast_indicate_data(otherchan, AST_CONTROL_AOCD, &aocd,
> > > sizeof(struct aocd_data));
> > 
> > Yes, that's the direct way, but you don't need that. See above.
> > 
> > Armin
> > 
> > _______________________________________________
> > --Bandwidth and Colocation provided by Easynews.com --
> > 
> > asterisk-dev mailing list
> > To UNSUBSCRIBE or update options visit:
> > http://lists.digium.com/mailman/listinfo/asterisk-dev
> 
> _______________________________________________
> --Bandwidth and Colocation provided by Easynews.com --
> 
> asterisk-dev mailing list
> To UNSUBSCRIBE or update options visit:
> http://lists.digium.com/mailman/listinfo/asterisk-dev
> 



More information about the asterisk-dev mailing list