cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
4902
Views
25
Helpful
8
Replies

CUCCE + IP IVR Increase of priority for repeated call within last 24 hours

BorisRus
Level 1
Level 1

Hi guys.
There is a Contact Center based on CUCCE + IP IVR.

I would like to understand whether it is possible to implement the function of increasing the priority, if the Customer re-enters the call within the last 24 hours to the city number?

Example:

The client called the Contact Centre was in line, did not wait and hung up.
after some time, the same Client calls again and again queue.

It is necessary to raise the priority in the queue for the given Customer at a repeated call.

 

HDS it the table Termination_Call_Detail 

select ANI, count(*) as cnt from Termination_Call_Detail
where 
DateTime >= DATEADD (day,-1, getdate()) 
AND(CallDisposition=6 AND CallDispositionFlag=1) 
AND  LEFT(ANI,2)='98'  
AND LocalQTime>0
group by ANI

How will I access from the ICM script to this table ?

Or there is another way?

 

Sincerely, Boris.

8 Replies 8

I would do this via the IVR. First, create a table where you read the ANI every time a call queues. If no ANI found, then write your ANI. Have the table purge every 24 hours.

 

david


@david.macias wrote:

I would do this via the IVR. First, create a table where you read the ANI every time a call queues. If no ANI found, then write your ANI. Have the table purge every 24 hours.

 

david


Thank you David.
I would like to do this in the existing table.
Because points to enter, very much. And I'll have to edit the all IVR script.

The idea is this: Configure the ICM routing script in this way that it does not participate in the IVR.

For example: Database Lookup Explorer  creates a table and fields.
Is it possible to bring a table to an existing table Termination_Call_Detail ?

 

or

 

David is your decision, but did not want to clean the table every 24 hours.

Historical Reporting it will be necessary for business. 

 

Sincerely, Boris.

Unless you've built your own app gateway or bought one, you will have limited success with using the DB Lookup node in ICM. Read the documentation about it and you'll see it's only good for very simple queries. Now, you might be able to create a view which has the information you need, but Cisco generally doesn't like you making too many changes in their DB, so I would be careful with this approach. If you want the solution which might not be the fastest path forward, but it will give you the most room to grow move this to the IVR.

 

david

I think David has given you some clues on how to do this. You definitely have to work off another database (yes, it can be on the HDS) and database table for DB lookup to work (DB Lookup cannot work on a table with a compound key).

 

The lookup key is going to be the ANI. What returns is whether they called and were queued but abandoned within the last 24 hours - simply by being in the table. You are going to control inserts and deletes on this special table with some intelligent SQL jobs. 

 

You need a process (a SQL job) that is inserting rows into the table. It is doing this by looking at the RCD for queued / abandoned calls (RouterErrorCode 448) on Call Type IDs of your selection. Now you know you are only putting a row (ANI plus time stamp) for a caller that abandoned in queue.

 

You need a second process (another SQL job) that looks at the time stamps in the table and if it's older than 24 hours it deletes the row.

 

Let's say these jobs run every five minutes. One looks back into the RCD for calls that abandoned in queue in the last 5 minutes and inserts them into your special table; the other is running every 5 minutes to prune stale puppies out.

 

Now a call comes in - a simple DB Lookup. Is the ANI in the table? Yes - bump the queue priority. No - leave it alone.

 

All the sophistication is in the SQL jobs that manage this special table. 

 

Regards,

Geoff


@david.macias and @geoff 

Thanks for answers.

 

Is, is to create a table DB lookup
1. SQL Job1 < Insert from Termination_Call_Details to New Table for the last 5 minutes. >
Spoiler
It is doing this by looking at the RCD for queued / abandoned calls (RouterErrorCode 448) on Call Type IDs of your selection
 
how to make the right request ?
 
2. SQL Job2  
Spoiler
that looks at the time stamps in the table and if it's older than 24 hours it deletes the row.
3. ICM Script node DB lookup check Call.CallingLineID.
yes, ANI -  increased priority
no,  - Without change priority
 
@geoff  Did I understand you correctly ?
 
 Sincerely, Boris.

Good answer Geoff. What happens when a caller calls in twice and hangs up in queue? I've not touched the DBLookup node in years, but from what I remember if there are two ANIs in the table, it will return no data, right? This could be solved with more SQL wizardry thought to only keep the last time the ANI called within a 24 hour period.

 

david

David,

 

The ANI would be the primary key, so a subsequent insert using the same ANI would certainly fail. But the lookup will not fail. You simply cannot have two rows with the same ANI.

 

The SQL job would have to be a little more sophisticated - look for the ANI and if found, update the time stamp. Else, insert.

 

Regards,

Geoff

Duh, you're right!

 

Thanks.

Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: