hi there. i'm developing a kind of collaborative phone system in which groups of users need to navigate phone menus together, and run into problems with the '#' character. here's a scenario: 1) person_a dials into my asterisk server. 2) asterisk parks the call, and initiates an outgoing call to person_b 3) after verifying person_b (by requiring a keypress), asterisk bridges persons_a&b. 4) person_b initiates a 3-way call to some_phone, which is an automated menu-driven service developed by someone other than me. currently, i have all this working. however, i encounter difficulty if some_phone asks the users to enter '#' - asterisk interprets this as 'transfer', and things go horribly wrong. i know that the 'Dial' application allows me to disable the transfer function, in which case asterisk ignores '#' (i've tested steps 1,2&4 of the above scenario using 'Dial', and confirmed that it works). however, i can't seem to figure out how to disable transfer for outgoing calls that are initiated through the Manager interface (or through .call files, for that matter). i've checked the manual, wiki, and google, and so far have come up empty. i have also looked at several source files, but am - frankly - a bit overwhelmed by them ;) does anyone know of any easy way to do this, or have a pointer to more detailed documentation of how outgoing calls work than i've been able to find at the above references? also, in case you're wondering, i can't simply use the 'Dial' application because i need to verify callers (step 3 in the scenario)... at least, i don't think this is possible with 'Dial'. thanks much, tad
Philipp von Klitzing
2004-Jan-22 17:03 UTC
[Asterisk-Users] disable transfer on outgoing calls?
Hi!> of the above scenario using 'Dial', and confirmed that it works). however, > i can't seem to figure out how to disable transfer for outgoing calls that > are initiated through the Manager interface (or through .call files, for that matter).Interesting problem. Try to use a "Local" channel and an extension in your call file. That way you can trigger a Dial() statement from your dialplan for both legs, and there you should have full control over transfer rights... check the wiki for local channels (and pay attention to the /n option). Cheers, Philipp
hi philipp (et al). thanks for the suggestion - but i can't seem to get it to work. i am able to use a local channel to pass arguments to a dial application. for example, this successfully enables transfer on one leg of the call: [incoming] exten => s,1, Answer exten => s,2, Dial(Local/s@outgoing/n|15|t) [outgoing] exten => s,1, Dial(Zap/2/95555555|15|r) however, if i create the Local channel from either the manager interface or a .call file, a subsequent Dial() call has transfer enabled on both legs, regardless of what arguments i pass. for example, this successfully parks a call, initializes an outbound call, and bridges the two - but transfer (and ringthrough) is always enabled on both legs: [incoming] exten => s,1, Answer exten => s,2, agi,InitCall.agi ;script creates .call file to Local/s@outboundleg/n and return context localleg,s,1 exten => s,3, ParkAndAnnounce(PARKED|60|Console|incoming,i,1) [outboundleg] exten => s,1, Dial(Zap/2/95555555|15|r) [localleg] exten => s,1, Wait(2) exten => s,2, ParkedCall(701) in the Console, i see: Executing Dial("Local/s@outboundleg-efeb,2","Zap/2/95555555|15|r") in new stack so, either i'm doing something wrong (quite possible) or it looks like there are default permissions that are granted to calls that originate in .call files that cannot be disabled by Dial? does anyone out there know anything about this - either where it might be documented, or which are the relevant source files? btw, i have tried this without '/n' on the local channel, and with transfer=no in my zapata.conf file. neither seemd to have any effect. thanks again for your time, tad> Subject: Re: [Asterisk-Users] disable transfer on outgoing calls? > To: asterisk-users@lists.digium.com > Organization: AEGEE > Reply-To: asterisk-users@lists.digium.com > > Hi! > > > of the above scenario using 'Dial', and confirmed that it works). however, > > i can't seem to figure out how to disable transfer for outgoing calls that > > are initiated through the Manager interface (or through .call files, for that matter). > > Interesting problem. > > Try to use a "Local" channel and an extension in your call file. That way > you can trigger a Dial() statement from your dialplan for both legs, and > there you should have full control over transfer rights... check the wiki > for local channels (and pay attention to the /n option). > > Cheers, Philipp > > >