Hi Frank,
come on, what are the deciding factors? Makes me curious

Some reasons to use Aspect + standalone IVR with speech recognition or TTS:
- someone was flashed by "IVR - YOUR future!" and managed to buy the system. Now it's time to do something concerning ROI...
- your standalone IVR is an open system. You can develop your own applications. And within your app you can use all the interfaces and protocols needed to interact with your other business-systems... without buying contact-server or funding big, long lasting projects
OK, some details from real live, probably others can provide more usefull points.
If you make the IVR sitting behind the ACD:
- if you expect callers to be transfered from the IVR back into the ACD, you'll have to keep some channels free. Sitting in the IVR waiting for a channel won't make your customers happy. In the ACD you'll have to remove some channels of your spans from the outbound trunk group and make them member of a (dummy-) group which is not used to transfer calls to the IVR. Thus you'll want the IVR to transfer calls back into the ACD on exactly these channels of the span. Often you'll find some settings concerning trunk usage like within the ACD (ascending/ decending/least used), that's your tool.
- activating anti-trunk-tromboning (Q.SIG, DPNSS) for the connections between ACD and IVR, the IVR sends a request to the ACD, to connect the voice-path of 2 actually used by channels (in + out) within the ACD and free up the 2 channels of the span.
To be able to fullfill this request, the call must not be waiting for a resource of the ACD! For successfull ATT the call must be connected to a ressource (agent, admin. phone, another trunk or the voice-system).
The ACD just polls for these requests every 90s! Even if a call is finally conneted to an ACD-ressource you'll have to wait up to 90s to see the previously used channels going into idle state.
- make shure that ANI/CLI is transferred between ACD/IVR and back. Especially if you use ANI-routing in the ACD...
- Q.SIG spans are reliable. But when down, they sometimes need to be initialized/activated from both ends at the same time.
Concerning reporting:
If you just need some rough numbers, no problem.
But even then you'll have to teach your readers. X calls came into the IVR, Y calls did'nt make it back into the ACD. What happened to the rest? That's in the reports of the IVR. Probably you'll have to merge the numbers...
When the IVR sits behind the ACD (or when you transfer calls from ACD into the IVR) , you get at least 2 records in the ACD for every call. These are independant! If the ACD receives a call from the IVR, it does not know that this is a call which has been transfered _to_ the IVR before. It's a completely new call. You need to know your scheme to group your calls by DDIs and applications within the reports.
I ended up storing reference numbers in a variable (CALLDATA_C or whatever) and the reports do the grouping on that variable.
When ATT (anti trunk tromboning) is active, the situation gets even more interesting concerning CDRs:
- 1st call comes into ACD, gets transfered into IVR.
- 2nd call comes from IVR back into ACD, waits and gets connected to an agent.
20s later ATT takes place!
- 1st call is terminated
- 2nd call is terminated.
- 3rd CDR is created. Origination-info (origination, trunk-group, DDI and application) is the same as for the 1st call. Destination-info (destination, dest_group) is the same as for the 2nd call (answered by agent).
It has the track_id of the 1st call and an incremented track_sequence. It contains the remaining talk_time and the wrapup_time which should count to the 2nd call. But it has no reference to it (different track_id, DDI and applic).
If you want to show the real numbers based per call (customer point of view), you'll have to sum up the talk_time of 2nd and 3rd CDR. To achieve this, you'll need grab the records for CDRs for matching destinations, term_time of 2nd CDR = orig_time of 3rd CDR and some flags. Can give more details if needed...
Seems no problem if you show talk-/wrapup-time per agent or application, but the 3rd CDR increments the number of handled calls in the daily summary tables, too.
The average numbers computed using talk_time/handled calls are far from beeing accurate now.
That's the price of anti trunk tromboning. Without ATT it may be easier, but even then you'll have to think about what the numbers from the different systems say about your business.
- if something gets wrong between ACD and IVR, every vendor will blame the vendor of the other system to be guilty
that's all for today.
bye,
chris
- Time of day in ACD and IVR must be synchronized . Best practice is to use the same time reference as your other systems do.
- Everything you do might have effects on the reports.That's a general rule, even concidering an ACD on its own...
I have to be able to dig in the DBs of ACD and IVR to find all the traces of a single call. We get > 30k calls per day, and most of them produce more then 3 records in the systems.