[asterisk-users] asterisk ivr

Cosmin Prund cosmin.prund at adicomsoft.ro
Mon Jul 7 08:15:57 CDT 2008


Your best option is to use queues. If for some raison you can't use queues you'll need to do some serious programming (agi, manager api) to get things working. You can probably do the basic stuff using dialplan logic and a few shell scripts, but you'll need to get a lot more involved when you'll need to deal with "errors".

Easy sample: You can send the originating caller to a auto-created MeetMe room where he/she will listen to music. You can somehow start an "ORIGINATE" command and have your side of the call (the "agent") go into the same MeetMe room. You can program the MeetMe room to automatically tear down when your agent hangs up (you make your agent an "marked user" and you make the MeetMe room for the originating caller to automatically exit when the marked user exists). You can train your agent to hang up when he starts hearing MOH (the calling user hang up). But after all this simple stuff you'll need to start dealing with errors: What happens if your agent doesn't answer the call placed by Asterisk? Your calling user would stay in the MeetMe room listening to music for ever!

If you do want to go the hard way (agi+manager api) it can be done, and I've done it. I'm using a Delphi application that handles both the agi stuff (using FastAGI) and the "manager" stuff. This allows me to interact with Asterisk in more ways then one way (I've got permanent access to the CLI so I can send "originate" commands, I can kick people from conference rooms to make sure they don't stay there forever). I've basically re-implemented the queue stuff in my own code, but I've done it because the basic queue stuff in Asterisk can't readily apply to my scenario: My Agents do other things beside talking on phone so I can't force them to always answer the phone and I wanted to give them a lot of information about the calling clients before they actually take the call! 

P.S: I'm not an Asterisk guru. I'm not in the business of selling Asterisk. My experience comes from implementing Asterisk for my own organization - so it's limited experience. 

--
Cosmin Prund

> -----Mesaj original-----
> De la: asterisk-users-bounces at lists.digium.com [mailto:asterisk-users-
> bounces at lists.digium.com] În numele Philipp Ott
> Trimis: Monday, July 07, 2008 3:10 PM
> Către: Asterisk Users Mailing List - Non-Commercial Discussion
> Subiect: [asterisk-users] asterisk ivr
> 
> Hello!
> 
> We would like to receive a SIP call and keep the caller waiting
> listening to some music other sound. A secondary intelligence decides
> whom to connect to and creates an outbound SIP call and when it is
> ringing there, or after the recipient answered the call, and maybe
> after
> listening to some small IVR joins the waiting caller, thus cancelling
> the music.
> 
> Although the DIAL command offers many many options and we can put all
> the intelligence of whom to connect to whom there (or in scripts) we
> have the problem that the music always starts from the beginning when a
> new DIAL is started. This isnt an elegant solution. So the idea we got
> was to keep the caller in a meetme conference of 2 people. But how then
> can we force asterisk to dial out (most likely a secondary asterisk
> invocation with a rx command), make it go through some minimal
> context/dialplan upon answering, and eventually connect the called
> person to the meetme conference of the incoming call? Naturally, all
> this without any pin-codes or such.
> 
> Did anybody have this problem already and maybe even found a solution
> for it?
> 
> Thank you
> Regards
> Philipp
> 
> _______________________________________________
> -- Bandwidth and Colocation Provided by http://www.api-digital.com --
> 
> AstriCon 2008 - September 22 - 25 Phoenix, Arizona
> Register Now: http://www.astricon.net
> 
> asterisk-users mailing list
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-users



More information about the asterisk-users mailing list