Alistair Cunningham
2003-Nov-25 12:51 UTC
[Asterisk-Users] Options for 3rd party call control
I am working on a project on 3rd party call control for a call center, for which I think Asterisk may be useful. What I would like to do is: - Have a call come in to Asterisk. - Asterisk asks another machine, over a slow IP link, such as a modem, how it should route the call. Asterisk passes the called and calling numbers. - This other machine looks up the destination, based on called and calling numbers, in an SQL database, and responds to Asterisk. - When Asterisk gets a reply, it routes the call. - During the call, this other machine may ask Asterisk to re-route the call. - If this happens, Asterisk hangs up on the party it called, plays a 'please hold' message to the caller, then connects them to the new destination. - All this happens over a mixture of basic rate ISDN, analogue lines, H.323, and SIP. Looking at the Asterisk website, I don't see any options to do this. Has anyone given this any thought? Would such a thing be difficult to write? -- Alistair Cunningham, Email: ac@gnu.org
Steven Critchfield
2003-Nov-25 13:13 UTC
[Asterisk-Users] Options for 3rd party call control
On Tue, 2003-11-25 at 13:51, Alistair Cunningham wrote:> I am working on a project on 3rd party call control for a call center, for > which I think Asterisk may be useful. What I would like to do is: > > - Have a call come in to Asterisk. > > - Asterisk asks another machine, over a slow IP link, such as a modem, how it > should route the call. Asterisk passes the called and calling numbers. > > - This other machine looks up the destination, based on called and calling > numbers, in an SQL database, and responds to Asterisk. > > - When Asterisk gets a reply, it routes the call. > > - During the call, this other machine may ask Asterisk to re-route the call. > > - If this happens, Asterisk hangs up on the party it called, plays a 'please > hold' message to the caller, then connects them to the new destination. > > - All this happens over a mixture of basic rate ISDN, analogue lines, H.323, > and SIP. > > Looking at the Asterisk website, I don't see any options to do this. Has > anyone given this any thought? Would such a thing be difficult to write?Why go out over a slow link to ask how to route when you could do any number of lookups locally on the machine. You could write your lookup logic into the dialplan. You could write your lookup logic into an AGI script. You could do just about any lookups possible without the need to go remote, but if you had to go remote, then thats easy too. -- Steven Critchfield <critch@basesys.com>
Under your situation, Asterisk will play a role with IVR+ACD as well as transfer the calls to your destination you requested, it will not be very difficult to write if you know Asterisk well. Howard Song Alistair Cunningham <ac@gnu.org> wrote: I am working on a project on 3rd party call control for a call center, for which I think Asterisk may be useful. What I would like to do is: - Have a call come in to Asterisk. - Asterisk asks another machine, over a slow IP link, such as a modem, how it should route the call. Asterisk passes the called and calling numbers. - This other machine looks up the destination, based on called and calling numbers, in an SQL database, and responds to Asterisk. - When Asterisk gets a reply, it routes the call. - During the call, this other machine may ask Asterisk to re-route the call. - If this happens, Asterisk hangs up on the party it called, plays a 'please hold' message to the caller, then connects them to the new destination. - All this happens over a mixture of basic rate ISDN, analogue lines, H.323, and SIP. Looking at the Asterisk website, I don't see any options to do this. Has anyone given this any thought? Would such a thing be difficult to write? -- Alistair Cunningham, Email: ac@gnu.org _______________________________________________ Asterisk-Users mailing list Asterisk-Users@lists.digium.com http://lists.digium.com/mailman/listinfo/asterisk-users --------------------------------- Do you Yahoo!? Free Pop-Up Blocker - Get it now -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20031125/807e2a37/attachment.htm
Alistair Cunningham <ac@gnu.org> wrote:> I am working on a project on 3rd party call control for a call center, for > which I think Asterisk may be useful. What I would like to do is:This is something I've given some thought to lately, with the goal of writing a queueing engine to replace the basic Asterisk one. I'll describe how I envision it inline.> - Have a call come in to Asterisk. > > - Asterisk asks another machine, over a slow IP link, such as a modem, how it > should route the call. Asterisk passes the called and calling numbers. > > - This other machine looks up the destination, based on called and calling > numbers, in an SQL database, and responds to Asterisk. > > - When Asterisk gets a reply, it routes the call. >This could be handled in a couple of ways. You can use AGI to do something like this: [ answer, etc. ] exten => s,5,AGI(router|getCallDestination) exten => s,6,Dial(Something/${CallDestination}) which essentially treats your AGI script as a library. Your script communicates with the remote machine and uses SET VARIABLE to set CallDestination to whatever you like, and logic is handled in the dialplan. The other way I was considering is to use the management interface remotely. Your dialplan would just be: exten => s,1,Answer exten => s,2,MusicOnHold The remote server would be notified of the incoming call via the IP management interface, decide where it should be routed, and issue the commands to transfer the call itself. This, it seems to me, is less clear, as it moves a lot of logic into your management script. Also, it could be more bandwidth-intensive and slower, as you use Asterisk's verbose management protocol.> - During the call, this other machine may ask Asterisk to re-route the call. > > - If this happens, Asterisk hangs up on the party it called, plays a 'please > hold' message to the caller, then connects them to the new destination.I would do this through the management interface.> - All this happens over a mixture of basic rate ISDN, analogue lines, H.323, > and SIP.I believe Asterisk makes this fairly transparent.> Looking at the Asterisk website, I don't see any options to do this. Has > anyone given this any thought? Would such a thing be difficult to write?I'm hoping it wouldn't (won't), since I have to write it. :) Please share any brilliant ideas you have, and best of luck with your project. Mark
Alistair Cunningham
2003-Dec-03 11:14 UTC
[Asterisk-Users] Re: Options for 3rd party call control
Mark Johnston wrote:> Alistair Cunningham <ac@gnu.org> wrote: > > I am working on a project on 3rd party call control for a call center, for > > which I think Asterisk may be useful. What I would like to do is: > > This is something I've given some thought to lately, with the goal of > writing a queueing engine to replace the basic Asterisk one. I'll > describe how I envision it inline. > > > - Have a call come in to Asterisk. > > > > - Asterisk asks another machine, over a slow IP link, such as a modem, how > > it > > should route the call. Asterisk passes the called and calling numbers. > > > > - This other machine looks up the destination, based on called and calling > > numbers, in an SQL database, and responds to Asterisk. > > > > - When Asterisk gets a reply, it routes the call. > > > [ answer, etc. ] > exten => s,5,AGI(router|getCallDestination) > exten => s,6,Dial(Something/${CallDestination}) > > which essentially treats your AGI script as a library. Your script > communicates with the remote machine and uses SET VARIABLE to set > CallDestination to whatever you like, and logic is handled in the > dialplan.Mark, This sounds ideal, and will be the approach that I will take. Thank you very much! -- Alistair Cunningham, Email: ac@gnu.org