Drop through B-ACD issue when no agents logged in

Answered Question
Mar 25th, 2008

Hi,

I have a B-ACD queue running in drop through mode.

When there are no agents logged into the hunt-group the caller is given about 1 second of the "no agents available" message and then pushed directly to voicemail.

I want to have the callers given that message and then put into the queue.

relevant config below

application

service gilroy flash:app-b-acd-2.1.2.2.tcl

param queue-manager-debugs 1

param number-of-hunt-grps 2

param queue-len 30

param aa-hunt1 901

param aa-hunt10 603

!

service gilroy-aa flash:app-b-acd-aa-2.1.2.2-pl2.tcl

param max-time-vm-retry 2

paramspace english index 1

param max-time-call-retry 60

param voice-mail 999

param aa-pilot 988

param number-of-hunt-grps 1

paramspace english language en

param handoff-string gilroy-aa

paramspace english location flash:

param service-name gilroy

param drop-through-option 1

param menu-timeout 1

param drop-through-prompt _dropthrough_prompt.au

param second-greeting-time 30

!

dial-peer voice 988 voip

description Dial Peer for Queue Applications

service gilroy-aa

destination-pattern 988

session target ipv4:172.20.2.2

incoming called-number 988

dtmf-relay h245-alphanumeric

codec g711ulaw

no vad

!

dial-peer voice 988 voip

description Dial Peer for Queue Applications

service gilroy-aa

destination-pattern 988

session target ipv4:172.20.2.2

incoming called-number 988

dtmf-relay h245-alphanumeric

codec g711ulaw

no vad

!

any help would be appreciated.

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

Hi, the standard approach is to play prompt, then catch the ev_media_done event and contine execution from there. But if you've never programmed TCL/IVR, have to warn you, it is not the easiest task around.

  • 1
  • 2
  • 3
  • 4
  • 5
Overall Rating: 5 (1 ratings)
Loading.
Paolo Bevilacqua Wed, 03/26/2008 - 01:31

hmm .. looks like you're missing a space in param drop-through-prompt ?

EDIT:

Anyway, it is the intended behavior that when no agents are logged is, call is forwarded to other destination. Calls are never put in queue waiting for some agents to log in.

This functionality is useful to dynamically "open and close" the office based on actual human presence and not fixed hours.

Darren Lynn Wed, 03/26/2008 - 15:49

Thanks for your response.

Ill check out the typo and let you know.

as for open close, i'll leaving that to a script written within CUE to check business hours based on a schedule set.

Paolo Bevilacqua Wed, 03/26/2008 - 16:27

Hi, you are using my pl2 script, that has embedded schedule support, based on the time and day of the week.

What it can't is to set a date in advance, so for example if you need to be close all day on X-mass that falls s on tuesday, you have to configure the closure within one week before and reconfigure it within one week after.

A little inconvenient, still useful when you have no cue or don;t want to use it.

Darren Lynn Wed, 03/26/2008 - 21:55

Ive made the change to the script to fix the typoe, but the caller still hears the first second of the "all agents are busy" message before being shunted to voicemail.

I can live with it going to VM if no agents are logged in, but can i remove that all agents are busy message?

if so, what is the best way?

Darren Lynn Thu, 03/27/2008 - 00:04

ok, ive been trying to reverse engineer the TCL script to work out whats going on (i have no C++ knowledge) but i found where the call is transferred to VM when no agents are available, and where it playes the _bacd_allagentsbusy.au file.

Ive removed that file, and no i dont hear it for that brief second before the VM message kicks in.

What im trying to do now is work out how to extend that 1 second of time while the _bacd_allagentsbusy.au file is playing to approx 10 seconds and play another file stating no agents available (second part easy enough).

Where / How would i introduce that 10 second delay before transferring to VM?

below is the script exert (from the original) from where i have been changing the files

CALL_NAGT {

if {$isnInvokedFlag == 1} {

set AATIMER(nagtTime) [clock seconds]

set handOffTime [expr $AATIMER(nagtTime) - $AATIMER(curTime)]

if {$handOffTime > $isnTimeout} {

set callAbandon 1

puts -nonewline "TCL AA: >>> ISN Timeout, Handing off to ISN Application <<<"

timer stop named_timer SECOND_GREETING_TIMER

timer stop named_timer CALL_RETRY_TIMER

if {$isnName == "NONE"} {

puts -nonewline "TCL AA: -- ERROR: No ISN Application configured, Disconnecting the call --"

act_Cleanup

} else {

handoff appl leg_incoming $isnName

act_Cleanup

}

} else {

timer start named_timer $CLI(call-retry-timer) CALL_RETRY_TIMER

fsm setstate CALLHOLD

}

} elseif {$maxVMRetry < $CLI(max-time-vm-retry)} {

puts -nonewline "TCL AA: >>> No Agents are available; Forwarding to Voice Mail <<<"

set callInfo(redirectNum) $msgArray(optionIDX)

set dropThroFlag 0

if { $dropAgtFlag == 0} {

set retryMenuFlag 0

media play leg_incoming _bacd_allagentsbusy.au

timer start named_timer $CLI(second-greeting-time) SECOND_GREEETING_TIMER

set dropAgtFlag 1

}

leg setup $voiceMailDN callInfo -l leg_incoming

set vmSetupFlag 1

if {$vmStatFlag == 0} {

set queueMessage(vmStat) $vmStatFlag

set vmStatFlag 1

}

set queueMessage(optionIDX) $optionSelected

set queueMessage(callState) CALL_VM

set queueMessage(keepTime) $KATIMER(keepTime)

set rval [sendmsg $queueID -p queueMessage]

if { $rval == "unavailable" } {

media play leg_incoming _bacd_disconnect.au

set callCloseFlag 1

set svcUnavlbl 1

} else {

incr maxVMRetry

puts -nonewline "TCL AA: >>> No of attempts to voice mail = $maxVMRetry <<<"

fsm setstate PLACECALL

}

} else {

puts -nonewline "TCL AA: >> Voice mail timeout, Disconnecting the call <<"

timer stop named_timer SECOND_GREETING_TIMER

timer stop named_timer CALL_RETRY_TIMER

#media play leg_incoming _bacd_disconnect.au

set callCloseFlag 1

}

}

Correct Answer
Paolo Bevilacqua Thu, 03/27/2008 - 07:01

Hi, the standard approach is to play prompt, then catch the ev_media_done event and contine execution from there. But if you've never programmed TCL/IVR, have to warn you, it is not the easiest task around.

Darren Lynn Thu, 03/27/2008 - 16:46

I think i will jsut leave it without the prompts and have 1 second of silence as its transfered to VM and have the VM message state whats happened.

Thanks for your assistance on this one.

Actions

This Discussion