cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
2178
Views
5
Helpful
11
Replies

How to disconnect/release an ICM call (forcefully) after a certain call duration?

How to make it done?

My client is really worried about their one toll free IVR service, some customers are dialing the trigger and keep connecting like 1500/1600 seconds or more!

How to release the ICM calls after a certain period of time like 300seconds as an example?

Thanks,

Mijanur Rahman

2 Accepted Solutions

Accepted Solutions

geoff
Level 10
Level 10

Do you mean that they are just playing around in the IVR application, going back and forth, repeating menus and so on? Control the number of times they loop and throw them out after too many.

Can you describe more about what your customer thinks callers are doing. Is there any evidence?

Sounds bizarre.

Is this ICM with IPIVR or ICM with CVP?

Regards,

Geoff

View solution in original post

Kris Lambrechts
Level 1
Level 1

I believe there is indeed no real-time field that will tell you the amount of time the call is connected to the IVR by default. But have a look at this and see if it will fit your requirements :

  • Create a dummy Skill Group without agents in it
  • As soon as the call enters the system, let it go through a Queue To SG node for that dummy SG
  • You can now start checking the Call.TimeInQueue variable in your script(s) to identify how long the call has been on the IVR
  • From there an 'If CallTimeInQueue > 300 ==> End' is easily added to your menu scripts

Do proper testing of this approach before implementing it though. Functionally it should work fine, but if you're not careful, it may result in drastically different reporting figures. Also, be aware of CSCti54657 , this defect affects the Call.TimeInQueue values on the latest UCCE releases. TAC will be able to help you on getting a fix if you would be affected.

Cheers,

Kris

View solution in original post

11 Replies 11

geoff
Level 10
Level 10

Do you mean that they are just playing around in the IVR application, going back and forth, repeating menus and so on? Control the number of times they loop and throw them out after too many.

Can you describe more about what your customer thinks callers are doing. Is there any evidence?

Sounds bizarre.

Is this ICM with IPIVR or ICM with CVP?

Regards,

Geoff

Additionally, how difficult is your IVR (e.g. how many levels, how long are the prompts, etc)?  The customer might have an unrealistic expectation of what is reasonable time in the IVR just because they build it themselves and know what all the options are ahead of time, but a new caller might take a while to get the hang of it.

david

Hi Geoff,

Yes you are right, they are just spending time for no reason as they don't have any impact on charging for that particular DN and associated IVR script.

I liked the idea to count their travel loop and release them on condition. The client requested for time duration of 300seconds in total and release them after 300s but I didn't find any variable at formula editor to find the total call duration/talktime in runtime. Btw, I shall propose them the loop idea and they are gonna grasp it for sure!

But I want to know is it doable the talktime idea?

Thanks!

Mijanur Rahman

OH, I forgot to specify, it's the CVP at queue and transfer mode only!

Kris Lambrechts
Level 1
Level 1

I believe there is indeed no real-time field that will tell you the amount of time the call is connected to the IVR by default. But have a look at this and see if it will fit your requirements :

  • Create a dummy Skill Group without agents in it
  • As soon as the call enters the system, let it go through a Queue To SG node for that dummy SG
  • You can now start checking the Call.TimeInQueue variable in your script(s) to identify how long the call has been on the IVR
  • From there an 'If CallTimeInQueue > 300 ==> End' is easily added to your menu scripts

Do proper testing of this approach before implementing it though. Functionally it should work fine, but if you're not careful, it may result in drastically different reporting figures. Also, be aware of CSCti54657 , this defect affects the Call.TimeInQueue values on the latest UCCE releases. TAC will be able to help you on getting a fix if you would be affected.

Cheers,

Kris

An alternative suggestion: at the beginning of your script, record the current time in call variable. You can then use this and some of the built-in formula editor functions to determine the time since the call started.

Hi,

@Kris thanks that's a nice idea! I had seen the parameter TimeinQueue but never thought this might be used in this way as you suggested, that's brilliant idea!

@ed_umansky, thanks man, how to take current system time?

Thanks,

Mijanur Rahman

There is a built-in time() function in the formula editor.

Nice! So it really helped! The 'Formula' section in Script Editor Guide already described it briefly, just overlooked it!

I have already implemented the idea from Geoff to release the call after a certain loop, I shall check both the new ideas on lab and then put it on production.

Thanks everyone!

Thanks,

Mijanur Rahman

other way to restrict them to have access to IVR by identifying ANI and then sending these calls to disconnect in CVP script.

qihlu
Cisco Employee
Cisco Employee

You can reduce the "Max step Number " in system parameter on your IVR. The default number is 1000.