IPCC Express, option for callers to break out of queue and leave a message.

Answered Question
Mar 30th, 2007

We are currently running IPCC Express Enhanced 4.0(5). I need to configure our current ICD script so that when callers are held in queue, they have an option to press 0, break out of the queue, and leave a voice mail. The ICD script we are using is an exact copy of the default icd.aef script on the system, it has just been copied and renamed. My question is, what are the steps I will need to use in the script to enable this feature?

I have this problem too.
0 votes
Correct Answer by jsailers about 9 years 8 months ago

Two options. Option 1: Completely use IPCC to record the messages and handle the messages as you seem fit. Option 2: Send the caller to your voicemail pilot number and use your voicemail system to record the message.

Steps for Option 1:

1. Early in the script, use the Get Call Contact Info step to capture the called number and save it as a variable.

2. Use the Get Digit String step to allow the caller to press 0 to leave a message. On the filter tab, only allow the 0 button to be pressed.

3. In the Successful leg of the Get Digit String step, add the following steps.

a. Dequeue contact step.

b. Play Prompt step that contains a prompt that asks the caller to record a message after the tone.

c. Recording step that saves the recorded message in a Variable with type "Prompt".

d. Use the Terminate step to end the call with the caller (you can add a Play prompt step before this if you want to tell the caller that the message has been saved).

e. at this point, you can either use the Write document step to save the voicemail in a folder on the IPCC server, or you can use a series of other steps to place a call back into the queue and play the message to the next agent who answers, or you can attach it to an email and send it do the Email address of your choice (or a combination).

Let me make this HUGE disclaimer. I've had several issues with this which I've been able to overcome, but it requires a bit of diligence.

- The recording step requires a termination character (# or *). If the caller just hangs up, the script returns an exception and croaks. you can handle the "contactinactiveexception" by using an On Exception step and have it go to a label that you can put as the first step under the successful leg of the recording step. That way, if the user hangs up, the script handles the exception by going directly to the Successful leg. You can clear the exception right after that.

-You will also want to handle this exception before the Terminate step. If the caller hangs up and you try to terminate that contact when it is no longer active, the script will still croak, and the remaining steps will not execute.

We use the option to place a call back into the queue. This in itself requires a lot of thought to ensure that the script doesn't croak when an exception occurs. I ended up putting some exception handling in place where if there is a problem and the recorded message never makes it to an agent, a log file is stored on the server along with the messages stored as a .wav file. Then an email is sent to the Supervisor with those files also attached.

So, it's only as efficient as you make it. Try to keep it simple at first, then build on it to enhance the callers experience.

Steps for Option 2:

1. Use the Get Digit String step to allow the caller to press 0 to leave a message. On the filter tab, only allow the 0 button to be pressed.

2. In the Successful leg of the Get Digit String step, add the following steps.

a. Dequeue contact step.

b. Call Redirect step to the Voicemail pilot number.

I haven't used this option, so I can't say for sure how Callmanager will handle this call. The voicemail system will need to see the call as forwarded from a number that has a voicemail account on the system. If this doesn't work, you can use a dummy CTI Port with a bogus extension that is set to forward to voicemail, then the voicemail box should be associated to that bogus extension. If you are using Cisco Unity, you may also be able to use a routing rule to force calls from IPCC to a particular mailbox. You can use Call Viewer from the Unity Tools Depot to see how the call is presented to Unity.

I hope that helps you and that it's not too verbose.

  • 1
  • 2
  • 3
  • 4
  • 5
Overall Rating: 4.9 (8 ratings)
Loading.
Correct Answer
jsailers Mon, 04/02/2007 - 09:20

Two options. Option 1: Completely use IPCC to record the messages and handle the messages as you seem fit. Option 2: Send the caller to your voicemail pilot number and use your voicemail system to record the message.

Steps for Option 1:

1. Early in the script, use the Get Call Contact Info step to capture the called number and save it as a variable.

2. Use the Get Digit String step to allow the caller to press 0 to leave a message. On the filter tab, only allow the 0 button to be pressed.

3. In the Successful leg of the Get Digit String step, add the following steps.

a. Dequeue contact step.

b. Play Prompt step that contains a prompt that asks the caller to record a message after the tone.

c. Recording step that saves the recorded message in a Variable with type "Prompt".

d. Use the Terminate step to end the call with the caller (you can add a Play prompt step before this if you want to tell the caller that the message has been saved).

e. at this point, you can either use the Write document step to save the voicemail in a folder on the IPCC server, or you can use a series of other steps to place a call back into the queue and play the message to the next agent who answers, or you can attach it to an email and send it do the Email address of your choice (or a combination).

Let me make this HUGE disclaimer. I've had several issues with this which I've been able to overcome, but it requires a bit of diligence.

- The recording step requires a termination character (# or *). If the caller just hangs up, the script returns an exception and croaks. you can handle the "contactinactiveexception" by using an On Exception step and have it go to a label that you can put as the first step under the successful leg of the recording step. That way, if the user hangs up, the script handles the exception by going directly to the Successful leg. You can clear the exception right after that.

-You will also want to handle this exception before the Terminate step. If the caller hangs up and you try to terminate that contact when it is no longer active, the script will still croak, and the remaining steps will not execute.

We use the option to place a call back into the queue. This in itself requires a lot of thought to ensure that the script doesn't croak when an exception occurs. I ended up putting some exception handling in place where if there is a problem and the recorded message never makes it to an agent, a log file is stored on the server along with the messages stored as a .wav file. Then an email is sent to the Supervisor with those files also attached.

So, it's only as efficient as you make it. Try to keep it simple at first, then build on it to enhance the callers experience.

Steps for Option 2:

1. Use the Get Digit String step to allow the caller to press 0 to leave a message. On the filter tab, only allow the 0 button to be pressed.

2. In the Successful leg of the Get Digit String step, add the following steps.

a. Dequeue contact step.

b. Call Redirect step to the Voicemail pilot number.

I haven't used this option, so I can't say for sure how Callmanager will handle this call. The voicemail system will need to see the call as forwarded from a number that has a voicemail account on the system. If this doesn't work, you can use a dummy CTI Port with a bogus extension that is set to forward to voicemail, then the voicemail box should be associated to that bogus extension. If you are using Cisco Unity, you may also be able to use a routing rule to force calls from IPCC to a particular mailbox. You can use Call Viewer from the Unity Tools Depot to see how the call is presented to Unity.

I hope that helps you and that it's not too verbose.

rudyb2000 Tue, 04/03/2007 - 15:05

I went with option 2. It worked perfect. I had to create a dummy CTI port to get it to work correctly. Thank You.

rob.huffman Wed, 04/04/2007 - 06:05

Hi Jeffrey,

Really an excellent answer here. I thought I should take a moment to let you know and to give you my 5 points!

Great work!

Rob

jmbuszta Tue, 03/18/2008 - 10:58

Do you have a sample of recording and sending the recording even if the caller hangs up still?

jsailers Tue, 03/18/2008 - 13:01

You can handle the ContactInactiveException error by using the "On Exception Goto" step from the General Palette. Do the following:

1. Add a label as the first step in the "Successful" leg of the Recording step (we'll call the label RecordingSuccess in this example).

2. Just before the recording step, add the "On Exception Goto" step.

3. Choose com.cisco.contact.ContactInactiveException from the list of exceptions.

4. Choose the label you created in step 1 in the "Choose the label from the list" dropdown list.

5. After the Recording step, you can clear the Exception you created in steps 2-4 by using the "On Exception Clear" step.

These steps will allow the caller to record their message, then hang up and the script will assume the recording was successful and continue on.

One caveat: There was a bug in IPCC Express 4.0.3 that caused this feature to not work. I've been running it on 4.0.5 for some time with no problems.

regi_firnanda Wed, 06/04/2008 - 02:54

Hi Jeffrey,

Great answer about leaving a message (5 stars), especially option 1.

You said that placing a call to play the message back to agent could fail and you need to put some exceptions to handle it. Could you please explain what can cause the failure and what exceptions do you use ?

Thanks,

regi_firnanda Wed, 06/04/2008 - 03:04

Sorry if the words in my previous post are not correct.

What I meant to ask is : What are the exceptions that you have to handle using the "On exception Goto" step?

Actions

This Discussion