[asterisk-users] call forward all except the extension it is forwarded to

Vieri rentorbuy at yahoo.com
Wed Feb 11 07:53:42 CST 2009



--- On Wed, 2/11/09, Vieri <rentorbuy at yahoo.com> wrote:

> > >> I would like to know if I can set Call
> Forwarding
> > on an extension but allow direct calls from the
> extension it
> > is forwarded to.
> > >> 
> > >> Example:
> > >> Extension 100 sets call forwarding (all) to
> > extension 101.
> > >> All calls to 100 are immediately forwarded to
> 101
> > as expected.
> > >> However, if 101 tries to transfer a call to
> 100 or
> > tries to call 100 directly, it sounds "busy"
> > because it obviously goes into a loop where 101 tries
> to
> > call itself.
> > >> How do I set an "exception" so that
> 101
> > can actually call 100 even if the latter is forwarded
> to
> > 101?
> > 
> > > Use the "if" statement.
> > > 
> > > 100 => {
> > > 	if ("${CALLERID(num)}" =
> "101") {
> > > 		// call 100
> > > 		Dial(SIP/100);
> > > 	}
> > > 	else {
> > > 		// forward to 101
> > > 		Dial(Local/101);
> > > 	}
> > > }
> > 
> > Or use Caller ID matching:
> > 
> > 100/101 => {
> > 	// caller is 101
> > 	Dial(SIP/100);
> > }
> > 100 => {
> > 	// for other callers
> > 	Dial(Local/101);
> > }
> 
> I hacked the dialparties.agi script in freepbx and now it
> works for direct calls but fails for blind transfers,
> probably because I need to check another variable such as
> BLINDTRANSFER. Attended transfers seem to work.

What is the "best" way to get the extension number of the user who is making a blind transfer?
I'm using Set(RETURN_EXT=${BLINDTRANSFER:4:4})
but that assumes that I have only 4-digit extensions and all have the same prefix (SIP/).
Is there a more "portable" way?



      



More information about the asterisk-users mailing list