Portanto, o funcionamento dessa aplicação se da através de dois scripts, que você pode baixar através do seu CCO no site da Cisco. Esses dois scripts são:
app-b-acd-aa-2.x.x.x.tcl: Faz a parte do Auto Atendimento (AA)
app-b-acd-2.x.x.x.tcl: Faz o tratamento de filas
Dentro do arquivo zip, tem também alguns audios prontos, no formato .au.
Antes de começar a configurar o B-ACD, que é o foco desse post, vamos primeiro criar a dial-peer que será usada para chegar na aplicação, lembrando que podemos chamar uma aplicação apenas nas dial-peers de entrada. No exemplo, criarei uma voip dial-peer com incoming called-number 3000 (dial-peer de entrada) e ao mesmo tempo um destination-pattern 3000 apontando de volta para o roteador (dial-peer de saída). Logo, essa dial-peer serve tanto para entrada quanto para saída. Poderiamos ter criado 2 dial-peers separadas, mas desse jeito fica mais fácil e rápido. O nome aa em service tem que ser o mesmo que o da aplicação AA que configuraremos mais pra frente.
dial-peer voice 3000 voip
service aa
destination-pattern 3000
session-target ipv4:10.10.10.1 # IP do roteador
incoming called-number 3000
dtmf-relay h245-alphanumeric
codec g711ulaw
no vad
E agora vamos configurar os nossos hunt groups no CME. Lembrando que se for ter telefone SIP dentro do hunt, precisamos configurar o voice hunt-group ao invés do ephone-hunt.
ephone-hunt 1 longest-idle # Vendas
pilot 3331
list 3050, 3051, 3052, 3053
timeout 10
ephone-hunt 2 longest-idle # Marketing
pilot 3332
list 3054, 3055, 3056, 3057
timeout 10
voice hunt-group 3 parallel # Suporte
pilot 3333
list 3058, 3059, 3060
timeout 10
Agora sim vamos configurar as aplicações de AA e Queue:
QUEUE
application
service queue flash:app-b-acd-2.1.2.3.tcl # Apontar o diretório corretamente
param number-of-hunt-grps 3 # Max numero de hunt groups que a aplicação suportará (1 a 10)
param queue-len 15 # Tamanho da fila (1 a 30)
param aa-hunt1 3331 # Opção 1 vai para o Hunt 3331
param aa-hunt2 3332 # Opção 2 vai para o Hunt 3332
param aa-hunt3 3333 # Opção 3 vai para o Hunt 3333
AA
application
service aa flash:app-b-acd-aa-2.1.2.3.tcl # Apontar o diretório corretamente
paramspace english location flash: # Define o pacote de linguas e a localização na flash
paramspace english index 1 # Define a categoria do audio para prompts dinamicos. Não usaremos isso no exemplo
paramspace english language en # Define o codigo (en) para os arquivos de audio.
param service-name queue # Faz a associação com a aplicação de fila criada acima (queue)
param handoff-string aa # Especifica o nome do serviço AA para informar o serviço de fila
param aa-pilot 3000 # Declara o número do piloto (mesmo da dial-peer)
param welcome-prompt _bacd_welcome.au # Prompt de Welcome
param menu-timeout 5 # Em segundos (0 a 10)
param dial-by-extension-option 9 # Habilita o dial-by-extension no menu 9
param max-extension-length 4 # Limita o numero de digitos de um ramal
param number-of-hunt-grps 3
param queue-overflow-extension 3999 # Se a fila estiver cheia, desvia para o 3999
param second-greeting-time 45 # Depois de 45 segundos, toca o prompt _bacd_allagentbusy.au
param call-retry-timer 10 # Quantos segundos a chamada espera para tentar conectar a um hunt ou alternate number
param max-time-call-retry 90 # Quanto tempo vai esperar na fila
param max-time-vm-retry 2 # Quantas vezes a chamada vai tentar chegar no Alternate Number
param voice-mail 3999 # Alternate Number. Pode ser um voice mail ou outro ramal
param send-account true # Gera o CDR das chamadas atendidas pelo B-ACD
Resumo do Exemplo: Se alguém ligar no pilot 3000, ouvirá o audio en_bacd_welcome.au. E logo em seguida o en_bacd_option_menu.au (que podemos regravar para ficar compatível com o exemplo). Esse prompt diria: "Pressione 1 para Vendas, 2 para Marketing e 3 para Suporte. Se souber o número do ramal, pressione 9". Se ele pressionar 1, 2 ou 3 e todas as pessoas do grupo estiverem ocupadas (e caso não tenha mais do que 15 pessoas na fila), ele vai tentar conectar a alguém do grupo a cada 10 segundos. Depois de 45 segundos, um novo prompt en_bacd_allagentbusy.au tocará. Se passados 90 segundos e ninguém do grupo atender, a chamada vai ser desviada para o 3999 (param voice-mail). Se o número estiver ocupado, ele vai tentar conectar novamente por 2 vezes. Se não conectar, ele será desconectado e o prompt en_bacd_disconnect.au tocará.
DROP THROUGH
Outra forma de configurarmos o AA é o drop throgh. Nessa configuração, o script não vai dar as opções de menu, e ao invés disso conectará diretamente em um hunt group.
application
service aa flash:app-b-acd-aa-2.1.2.3.tcl
(...)
param number-of-hunt-grps 1 ! -- Tem que ser 1, afinal, teremos apenas 1 hunt
param drop-through-option 1 ! -- Tem que ser o mesmo configurado no aa-huntX na fila
param drop-through-prompt _dt_prompt.au
Obs: Para o B-ACD funcionar, é necessário que o Music on Hold esteja ativo no CME:
telephony-service
moh music-on-hold.au