I need to create a custom on hold messaging solution and the only way to do it at this point would be to pretty much double the ports on my commercial IVR which isn’t going to happen.
I came up with a solution on how I can accomplish this alternatively and need to know if it is possible via Asterisk to do it.
PBX: Inter-Tel Axxess (Ver 9, no IP capability (yet), PRI) Daily Volume: Approximately 10-15,000 calls. Roughly 5000 are actually inbound to the call center and the rest are handled via redundent IVR’s.
Solution Proposal
Axxess Hunt Group over flow extensions would be set to point to a hunt group.
The extensions in this hunt group would be associated with an IVR application.
The answering application would need to read the original DNIS digits. (If Asterisk can hook into the Inter-Tel OAI then no problem.)
Scrape the db to find the recording to play for that DNIS number.
Start the message and hang up.
So, is this possible with Asterisk and if so, what do I need to make it happen?
So Yes the setup you are talking about should work. In the inter-tel Huntgroup, point the Over flow to a huntgroup with single line ext to the IVR. The IVR will play a greeting and them hangup. The inter-tel will keep the customer in the main Huntgroup que wile the customer is in the IVR. I don’t know of a way to DID or DINS info to pass to the IVR.
But this can be done in side the inter-tel VM. The EVMC, EM, and the VPU can be the overflow destination. In the VM create a CRA. a typical CRA number is 25xx. in the CRA digit translation, you need to have the timeout = Hangup. In the Day and Night greetings you need to delet the system recording prompts, and add a new recording number. you might have to record the MOH msg befor you can add it to the menu.
From my research it seems that the only question left unanswered is related to gathering the call info on the call that overflows to the extension in Asterisk.
I know that in the Inter-Tel OAI I can check for the DE event of the call that is overflowing and parse the message string to retrieve the DID since it follows the call, but I’m having a difficult time finding any information regarding how to get Asterisk hook into their OAI and as such seeking an alternative method.
I’ve considered a number of options and that one piece is going to make or break this project.
I’m racking my brain trying to figure this one out and I’m afraid the sales folks have committed this to our customers… all 1800+ of them.
Just had a thought… I can write C++ applications that hook into the Inter-Tel OAI and as such I’m thinking I could have an application act as my link between Axxess and Asterisk; as in each community ends up having a dedicated extension on Asterisk for their custom on-hold message. Hopefully I can monitor when the hunt group overflows and use that application to parse the message string, get the DID, scrape the DB and point/overwrite the overflow destination to the appropriate Asterisk extension.
no not really. I don’t understand why you need to send the call to asterisk. How are you sending the call to Asterisk? Single line ext? T1 card?
But yes I work like to find a way to link an Inter-tel OAI stream with Asterisk. I have the inter-tel CTI Server software. Oaisys products can somehow like to the CTI Server.
Currently the overflow extension for a hunt group points to an application in DB Studio that plays a VM message and right now it’s playing the same audiotex message for every call in that particular hunt group. Using DNIS as my identifier, I want to play a different audio file for each call that overflows from the hunt group for a specific DNIS.
There are two givens in the scenario:
1. A connection between Axxess and Asterisk must exist.
More than likely I will put in two IP Gateways (I also have an Avaya S8300 at another location) and connect them via T1 or Loop Start Cards; or use IP SLA’s to connect to the gateways via FXO ports.
2. I must find a way to get the call data from Axxess to Asterisk.
What I was thinking is this, on my AppPlat IVR I already capture the CallID and generate a unique ID (CallUID) in a SQL table. I could add the Asterisk extension that is associated with that particular customer (each customer has 5-25 numbers) to my DNIS lookup table and when I insert the CallID to generate the CallUID I would also insert the associated Asterisk Extension in the look up table.
With an OAI application I could create device monitors for the hunt groups and set a timer. Once the timer expires, check the call event mask to see if the call is still queued and If it is, pull the Asterisk ext associated with CallUID from the db and force the overflow (_HM,@invokeID,@huntGroup,@asteriskExt,@callID) to hit the Asterisk extension.
I imagine your wondering how that would work since the call has left the IVR. When a call hits the IVR I generate the CallUID and modify the calls account code field with that value because the PBX CallID is not unique and causes problems cross referencing historical data. I have a number of different systems and applications that use the CallUID/AccountCode value to tie everything together, CRM, trunk side recorder, etc.
yah that cleared it up. you are sending multiple DINS numbers to the same hunt group. Therefor all the call get the same CRA greeting. and you don’t want to create a bunch of hunt groups and CRA.
I started my design notes today, confirming my OAI commands and such and discovered that the command I provided in the previous example is actually “Hunt Group merge out” which would remove the call from the queue which makes that solution a bust.
I’m afraid that I may be relegated to creating an OAI library in C++ and integrating it into something like Asterisk.net; time consuming no doubt, but being able to access the Inter-Tel OAI directly from Asterisk is the optimum solution. My first idea was pretty much tailored solely to custom on hold messages for hunt group overflows. If I port the OAI API then it opens a whole new gambit of possibilities.
It’s going to take me a while to retool the code, but I’m still not 100% convinced that the info I got about the (_HM) OAI command not being able to accomplish the modification of the overflow extension is spot on.
Regardless, at this point I’m trying to clear my plate of a few other projects so I can start on modifying the SysOAI API to hook in to the Asterisk AGI. I have other needs that this will fulfill as well.
Once I get a proof of concept I will post the info.