On Monday 26 June 2017 at 18:01:22, J Montoya or A J Stiles wrote: > On Monday 26 Jun 2017, Harel wrote: > > Hello List, > > I'm working on an autodialer project. > > At the moment I use the Originate application then I "throw" it to an > > extension where I Dial() the other party and then both legs are bridged. > > The problem is that the Dial() will only run after the Originate finish > > its bit and I have lots of wasted time or even worse, the remote party > > hanging the call because instead of a human speaking to him the call > > setup to the 2nd leg only starts when remote answers. Is there a way to > > start calling both parties at the same time and bridge them when one > > answers (which will then hear the ringback tone until 2nd party > > answers)? Thank you > > Our auto-dialler works as follows; > > * Agent clicks number on screen in their web browser > * Agent's phone rings > * Agent picks up phone > * Far end party's phone rings > * Far end party answers > * Agent and far end party are bridged. > > and is implemented using the truly ancient technology of callfiles.
These work well and are implementable using any language capable of producing a text file. It's also extremely simple (so long as you can write a network client application) to achieve the same thing using an AMI Originate request. > All you need then is a Perl or PHP script, which accepts the destination > number as a query parameter. Your script then needs to identify the > workstation by means of its IP address and determine the number of the > nearest phone (this does require proper configuration of DHCP server, but > is worth it), then write out a callfile. > > > Note: There exists a race condition in Asterisk (at least, when using the > common Linux file systems, which update a folder's directory as soon as the > *first* block of a file is written) which means that if a callfile exceeds > one block, Asterisk could end up reading only the first block and ignoring > the rest. If there is any danger that a callfile could exceed one block > on your filesystem, you must write the callfile to a different folder, and > then use the `mv` command to move it to /var/spool/asterisk/outgoing/ . > This sidesteps the race condition due to the behaviour of the mv command. > When moving *within* a filesystem, the whole file was already on the disk > anyway when the directory is updated; when moving from one filesystem to > another, it does not update the directory of the destination folder until > the *last* block is written. Yes, that is a very important point. Always use mv with callfiles :) However, to get back to the original poster's question, I believe it's the logic of which way round the calls are being made that's the problem (I agree toally with your 6-step summary above), rather than the mechanism for being able to make calls. Antony. -- BASIC is to computer languages what Roman numerals are to arithmetic. Please reply to the list; please *don't* CC me. -- _____________________________________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- Check out the new Asterisk community forum at: https://community.asterisk.org/ New to Asterisk? Start here: https://wiki.asterisk.org/wiki/display/AST/Getting+Started asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users