----- Andrew Kohlsmith <[EMAIL PROTECTED]> wrote:
> On Tuesday 22 August 2006 09:50, Kevin P. Fleming wrote:
> > This should be handled by ast_do_masquerade(). However, if nothing
> is
> > reading from that channel, then the pending hangup will never get
> > processed. It's not clear exactly why this isn't working in your
> > application, though.
> 
> I've always wondered when/how to use ast_do_masquerade() -- what
> exactly is 
> channel masquerading, when is it to be used, when is it not to be
> used?  It 
> seems to be black magic.

Voodoo. Heavy voodoo.

> I understand that do_masquerade "sucks" the info about one channel
> into 
> another, but why is this necessary?

It's used for things like attended transfers. Basically you have two channels 
in a bridge talking to eachother, but you want to replace one. Currently we 
don't have a way of interacting with the bridge itself to do this (it is 
something that myself and others would like to see). This is where masquerading 
comes into play. Without touching the bridge, you masquerade the new channel 
into the channel you want to replace. The old channel dies off, and the two 
other ones then talk to each other. It's more complicated internally naturally, 
but you get the drift. It's also used for things like optimizations of channels 
in chan_local (this is what happens when you don't have /n on the end). Once 
both Local channels are bridged to other channels (like SIP ones) then they can 
masquerade themselves out of existence and the other channels can talk directly.

> -A.

Joshua Colp
Software Developer
Digium, Inc.
_______________________________________________
--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

Reply via email to