RSS

Arquivo da tag: atendimento automático no callmanager express

CME FEATURES – Cisco B-ACD

Esse post sobre features de IP Telephony Express, será divididos em duas partes: JOGO RÁPIDO e VISÃO DETALHADA. Abaixo segue uma explicação de cada parte:

EXPLICAÇÃO DAS PARTES DESSE TÓPICO

JOGO RÁPIDO: Para quem já sabe do assunto e/ou está apenas interessado em ver um exemplo de configuração sobre uma determinada feature, essa parte será a indicada, pois basicamente conterá um breve resumo do que é a feature e um exemplo (ou mais de um) de como configurar essa determinada Feature.

VISÃO DETALHADA: Para quem não conhece a feature ou quer aprender um pouco mais sobre ela, pode ir direto para essa parte (sem precisar ler nada do Jogo rápido) pois esta conterá o máximo de informações que eu puder concatenar sobre o assunto, além dos mesmos exemplos da parte anterior.

JOGO RÁPIDO

Esse é um recurso que, ao receber uma chamada em um número pré-determinado, direciona o usuário chamador para um auto-atendimento onde uma saudação é tocada para o usuário. Após essa saudação inicial, o usuário é redirecionado para um menu de opções. Além disso, esse recurso também gerencia uma fila de usuários, para o caso de os atendentes estarem ocupados. É um excelente recurso para o Cisco CME.

COMO CONFIGURAR O CISCO B-ACD:

Passo 1: Transferir um arquivo de Music on Hold para a flash: do CUCME e configurar esse serviço de MoH (lembrando que o arquivo tem que estar no formato .au):

!
telephony-service
moh “flash:music-on-hold.au”
multicast moh 239.10.16.4 port 16384
no create cnf-files
create cnf-files
!
!

Passo 2: Criar um dial-peer para ser usado como entrada e saída para o MoH (Obs: Poderiam ser 2 dial-peers mas, para otimizar será configurado apenas 1 com os comandos para entrada e saída).

!
dial-peer voice 5000 voip
service aa   !! O nome “aa” deve ser o idêntico ao nome do serviço.
destination-pattern 5000   !! Esse deverá ser o ramal do auto-atendimento.
session target ipv4:172.22.10.1   !! Esse deverá ser o IP do próprio CUCME
incoming called-number 5000   !! Esse comando é para indicar que esse dial-peer é de entrada quando a chamada for para o 5000.
dtmf-relay h245-alphanumeric
codec g711ulaw
no vad
!

Passo 3: Baixar os scripts no site da Cisco e transferir para a flash do CUCME. Os arquivos são: app-b-acd-3.0.0.2.tcl (que contém o script gestor de filas) e o app-b-acd-aa-3.0.0.2.tcl (que contém o script de auto atendimento).

Passo 4: Transferir os arquivos de áudio que farão parte do auto-atendimento. Existem alguns arquivos padrões no próprio site da Cisco (dentro da pasta complete file set que foi usado para pegar os arquivos de firmware dos telefones). Para alterar o idioma do AA (Auto-Attendant), o administrador precisará obter os arquivos de audio, convertê-los para o formato .au e renomeá-los para os nomes abaixo:

Obs: Os únicos nomes que podem ser alterados para outro qualquer (lembrando que devem ser referenciados corretamente no scritpt) são os nomes do arquivo de saudação inicial e o nome do script de filas.

  1. Saudação inicial: Quando o script receber a chamada, tocará para o usuário uma saudação inicial. Seria algo do tipo: Olá, obrigado por ligar para nossa empresa. O nome do arquivo é: en_bacd_welcome.au.
  2. Menu de opções: Após a saudação o sistema “dará” aos usuários algumas opções como: Para Suporte técnico, pressione 1 (E desvia para um número que tocará nos telefones desse grupo). Para Financeiro, pressione 2 (e ocorre o mesmo). Para entrar com um ramal desejado pressione 9 (e o usuário poderá discar diretamente um número de ramal). O nome do arquivo é en_bacd_options_menu.au.
  3. Mensagem solicitando o ramal: Quando o usuário selecionar essa opção, o sistema tocará uma mensagem, como por exemplo, “por favor, entre com o ramal desejado”). O nome do arquivo é: en_bacd_enter_dest.au.
  4. Informação de opção incorreta: Se o usuário discar um ramal errado, poderá ouvir uma mensagem de “opção inválida”. O nome do arquivo é: en_bacd_invalidoption.au.
  5. Informação de atendentes ocupados: Se os atendentes estiverem ocupados, o usuário será direcionado para uma fila onde irá ouvir uma música em espera e uma mensagem informando que todos os atendentes estão ocupados. Quando o atendente (ou o primeiro atendente do grupo) desocupar, o sistema tocará no telefone desse atendente automaticamente e encaminhará a chamada quando o mesmo for atendido. O nome do arquivo é: en_bacd_allagentsbusy.au.
  6. Mensagem de desconexão: Por fim, se depois de um período de tempo na fila, o usuário não for atendido ou não pressionar nenhuma opção quando ligar para o número, o sistema tocará outra mensagem informando que não pode atender a solicitação, pede para ligar novamente mais tarde e agradece a ligação. O nome do arquivo é: en_bacd_disconnect.au.

Abaixo, segue a saída do comando dir flash: aqui no CUCME que foi usado para testar essa funcionalidade (destacando em negrito os arquivos que mencionei acima):

CME-PRINCIPAL#dir flash:
Directory of flash0:/

1 -rw- 99098648 Sep 16 2013 08:39:48 +00:00 c2900-universalk9-mz.SPA.152-4.M5.bin
2 -rw- 1930 Nov 1 2013 19:40:06 +00:00 GK1
3 -rw- 4096 Nov 1 2013 16:56:52 +00:00 ._.Trashes
4 drw- 0 Nov 1 2013 16:56:52 +00:00 .Trashes
5 drw- 0 Nov 1 2013 16:56:52 +00:00 .Spotlight-V100
108 -rw- 4096 Nov 1 2013 16:58:44 +00:00 ._c2900-universalk9-mz.SPA.152-4.M5.bin
109 -rw- 130552 Jul 6 2011 21:56:34 +00:00 P0030801SR02.bin
110 -rw- 30421 Apr 2 2014 16:13:16 +00:00 app-b-acd-3.0.0.2.tcl
111 -rw- 458 Jul 6 2011 22:18:14 +00:00 P0030801SR02.loads
112 -rw- 55599 Apr 2 2014 16:13:16 +00:00 app-b-acd-aa-3.0.0.2.tcl
113 -rw- 708460 Jul 6 2011 22:02:24 +00:00 P0030801SR02.sb2
114 -rw- 75650 Apr 2 2014 16:13:18 +00:00 en_bacd_allagentsbusy.au
115 -rw- 130956 Jul 6 2011 21:56:38 +00:00 P0030801SR02.sbn
116 -rw- 83291 Apr 2 2014 16:13:18 +00:00 en_bacd_disconnect.au
117 -rw- 174 Jul 7 2011 14:03:00 +00:00 P0030801SR02.txt
118 -rw- 63055 Apr 2 2014 16:13:20 +00:00 en_bacd_enter_dest.au
119 -rw- 37952 Apr 2 2014 16:13:20 +00:00 en_bacd_invalidoption.au
120 -rw- 496521 Apr 2 2014 16:13:20 +00:00 en_bacd_music_on_hold.au
121 -rw- 123446 Apr 2 2014 16:13:22 +00:00 en_bacd_options_menu.au
123 -rw- 42978 Apr 2 2014 16:13:22 +00:00 en_bacd_welcome.au
122 -rw- 496521 Apr 2 2014 17:44:32 +00:00 music-on-hold.au

Passo 5: Configurar os hunt-groups que irão receber as chamadas, quando o usuário discar uma determinada opção. Como eu utilizei os arquivos padrões da Cisco, no menu de opções eu tenho: Sales (opção 1), Customer Service (opção 2), Dial by extension (opção 3) e falar com um operador (opção 0).
Com base nisso, eu criei no meu CUCME dois hunt-groups, com os ramais 7098 e 7099:

OBS: O ephone-hunt group deve ser configurado sem o comando final, pois esse destino final é determinado pelas configurações do B-ACD, que pode ser um voice-mail, outro ramal ou mesmo a própria desconexão da chamada.

!
ephone-hunt 10 sequential
description Sales
pilot 7098
list 7000, 7001
timeout 10
!
ephone-hunt 11 sequential
description Customer Service
pilot 7099
list 7002, 7003
timeout 10
!

 Passo 6: Configurar a fila onde os usuários ficarão aguardando atendimento, caso os operadores estejam ocupados:

!
application
service queue flash:app-b-acd-3.0.0.2.tcl   !! Comando para “chamar” o script de fila.
param queue-len 15   !! Indica a quantidade de usuários que poderá ficar ao mesmo tempo nessa fila.
param aa-hunt1 7098   !! Comando para indicar a fila do grupo 7098.
param aa-hunt2 7099   !! Comando para indicar a fila do grupo 7099.
param number-of-hunt-grps 2
!
!

 Passo 7: Configurar a auto-atendimento,  onde os usuários receberão a gravação de saudação e as opções do menu.

!
application
service aa flash:app-b-acd-aa-3.0.0.2.tcl   !! Comando para “chamar” o script de auto-atendimento.
paramspace english index 1
param number-of-hunt-grps 2
param menu-timeout 5
param handoff-string aa
param dial-by-extension-option 3   !! Aqui você define o dígito que o usuário vai pressionar para discar direto para uma extensão.
paramspace english language en
param max-time-vm-retry 2
param aa-pilot 5000   !! Define o número usado para auto-atendimento. Deve ser o mesmo do dial-peer criado no passo 2.
param max-extension-length 4
param queue-overflow-extension 3999   !! Número alternativo, caso a quantidade de usuário ultrapasse o máximo para a fila.
paramspace english location flash:
param second-greeting-time 45
param welcome-prompt _bacd_welcome.au
param send-account true
param call-retry-timer 10
param max-time-call-retry 90
param voice-mail 3999   !! Ramal de voice-mail que será usado caso o usuário fique muito tempo na fila de espera.
param service-name queue
!

OBS: Se não existir um voice-mail na rede, você precisa determinar qualquer valor, senão o script não funcionará.

 Passo 8: Testar a URA e correr pro abraço!!!!

VISÃO DETALHADA

Cisco Basic Automatic Call Distribution, carinhosamente chamado de Cisco B-ACD atua em conjunto com o Auto-Attendant (AA). Esses dois serviços são usados para atendimento automático de chamadas (incluindo saudações, menu de opções e a nossas boas e velhas músicas de espera), estatísticas de chamadas e gerenciamento de chamadas em filas baseadas nos grupos de atendimentos que foram configurados. É composto basicamente de 2 scripts TCL (Tool Command Language), um para gerenciamento de saudações e opções e outro para gerenciamento de filas.

Esse serviço é muito útil e pode ser completamente personalizado, independente de qual o ramo empresarial do cliente em questão. Abaixo, coloco dois exemplos de utilização desse serviço:

Exemplo 1: O usuário liga para o número 3131-3649 de uma empresa de TI (fictícia) chamada TI.Com. Quando o CME dessa empresa receber a chamada, desviará para o número piloto de auto-atendimento, onde o cliente ouvirá: “Obrigado por ligar para a TI.Com. Para falar um consultor de vendas, tecle 1; para falar com suporte técnico, tecle 2; para entrar com um ramal específico tecle 3 ou pressione 0 para ser direcionado para um atendente”.

Exemplo 2: O usuário liga para o número 3232-3214 de uma empresa do ramo de doces e salgados (fictícia) chamada Bom Gosto. Quando o CME dessa empresa receber a chamada, desviará para o número piloto de auto-atendimento, onde o cliente ouvirá: “Seja bem vindo ao Bom Gosto. Desde já agradecemos sua ligação. Se deseja fazer uma encomenda, pressione 1; se deseja falar sobre alguma encomenda já feita, pressione 2; para reclamações, dúvidas ou sugestões, pressione 3”.

A quantidade de opções são 10 ao todo seguindo as regras:

  • 10 opções para grupos de atendimentos.
  • 9 opções para grupos de atendimentos com 1 opção para entrar com um ramal desejado.

CARACTERÍSTICAS E LIMITES

As principais características e limites são:

  • Pode ter o máximo de 10 opções.
  • O dígito zero “0” que é a décima opção é reservado para o operator hunt-group, que será explicado na próxima seção.
  • Pode atuar em conjunto com um serviço de correio de voz, onde o usuário poderá ser direcionado para esse correio de voz, caso fique muito tempo na fila de espera.
  • Quando o usuário seleciona uma opção, é direcionado para o grupo referente à opção que ele escolheu. Se algum ramal estiver disponível, passará a tocar automaticamente. Se não houver ramais desocupados, o usuário é direcionado para uma fila, onde ouvirá uma música em espera e, quando um ramal desocupar a chamada, receberá automaticamente a primeira chamada da fila.
  • Se o usuário passar muito tempo na chamada sem escolher nenhuma opção (4 minutos por padrão), ouvirá uma mensagem de desconexão e a chamada cairá.
  • Não há como colocar alguma opção diferente dos tipos disponíveis (por exemplo, não há como pedir para o usuário digitar um código e o sistema buscar esse código em uma base de dados).
  • Enquanto o usuário está na fila de espera, fica ouvindo a música em espera (MoH) e fica ouvindo uma mensagem de áudio informando que todos os usuários estão ocupados durante intervalos de tempo pre-determinados.
  • Esse serviço usa o mesmo codec em dial-peers de entrada e saída, pois o IOS não ativa transconders para chamadas que estão usando aplicações TCL. Não há como utilizar codecs diferentes (por isso que é interessante usar o mesmo dial-peer como dial-peer de entrada e de saída, pois o codec já está definido).
  • Música em espera, através de uma fonte ao vivo não é suportado pelo CME 3.3.
  • Somente pode haver um script de fila por CME com o máximo de 10 filas. Cada fila comporta no máximo 30 chamadas em espera.

ITENS DE INTERESSE

É importante saber o que você está configurando, e entender todos os componentes envolvidos. Aqui no Cisco B-ACD temos:

  • Auto-Attendant: É o principal item do B-ACD. É o script que irá responder as chamadas através de um número piloto, tocar os arquivos de áudio necessários e enviar os usuários para as filas de atendimento. Um AA precisa ter um número piloto que seja único na rede e é composto de uma mensagem de saudação, menu de opções (com o máximo de 10 opções), mensagem de erro de digitação e mensagem de desconexão.
  • Múltiplos Auto-Attendants: Existe a possibilidade de configurar múltiplos AAs, cada um com o seu número piloto específico. Porém, como pode-se ter apenas 1 script de fila por CUCME, o máximo de 10 opções no menu vale para todos os AA. Isso significa que podemos configurar 3 AAs, cada um com 3 grupos diferentes neles ou podemos configurar vários AAs e compartilhar os grupos de atendimentos entre eles. Não importa como você queira fazer, sempre pode-se usar no máximo 10 grupos de atendimento diferentes. Detalhe importante: Com múltiplos AAs, deve-se criar um arquivo de welcome diferente para cada um, ou seja, nesse caso, pode-se alterar o nome padrão dos arquivos (apenas o welcome) para diferenciá-los. Por exemplo, pode-se ter um AA atendendo no ramal 5000 com o arquivo en_bacd_welcome5000.au e um no ramal 5999 com o arquivo en_bacd_welcome5999.au. Os demais arquivos de áudio permanecem com os mesmo nomes.
  • Menu de opções: É o arquivo de áudio composto pelas instruções para guiar o usuário dentro do sistema de auto-atendimento. Pode conter no máximo 10 opções. Entre essas opções o dígito zero (0) sempre irá mapear o operador (explicado no próximo item) e a discagem direta para ramal.
  • Operator hunt group: Um tipo diferente de operador, normalmente usado para atender aos clientes que não se “encaixaram” em nenhuma opção ou não souberam qual escolher. O script determina que o hunt-group com maior valor de dígito será o operator hunt-group. Por exemplo, se temos a opção 1 para vendas e a opção 2 para suporte e o usuário selecionar 0 (para falar com o operador) o script mandará a chamada para o grupo da opção 2 (pois tem o dígito de maior valor). É importante saber disso, para organizar suas opções de menu.
  • Discagem direta para ramal: Opção em que o usuário pode discar diretamente para um ramal, sem precisar falar com nenhum operador. O comando param dial-by-extension-option 1 (onde o número é o dígito que o usuário selecionará) é o que define o que o usuário deve pressionar para acionar essa opção.
  • Filas de atendimento: É um script que comanda um hunt-group do CUCME, transformando-o em uma fila com o máximo de 30 chamadas em espera. O número máximo de hunt-groups que o script aceita é 9. Quando o AA recebe uma chamada e o usuário seleciona uma opção para falar com algum grupo de atendimento (como suporte técnico, por exemplo), o script AA desvia a chamada para o Scritp de filas (queue) e esse script irá tentar acionar algum ramal do hunt-group associado à opção que o usuário digitou. Caso tenha algum disponível, o script toca esse telefone e desvia quando a chamada é atendida. Caso não tenha nenhum usuário disponível, o script coloca o usuário em uma fila onde o mesmo ouvirá uma música em espera e uma mensagem informando que todos os atendentes estão ocupados. Paralelo a isso, o script continuará tentando acionar algum ramal do grupo. Caso nenhum ramal fique disponível no tempo configurado ou ninguém atenda, o script de fila utiliza o método de encerramento que pode ser enviando para uma caixa postal compartilhada ou simplesmente toca uma mensagem de desconexão de encerra a chamada. Se a fila de um determinado grupo estiver completamente ocupada (ou seja, o máximo de chamadas em espera foi atingido), o usuário receberá um tom de ocupado. Se todos os atendentes de um grupo não estiverem disponíveis (desligados, por exemplo) o script enviará o usuário diretamente para um destino alternativo configurado. Com o script de fila, você também tem a opção de ativar um debug de chamadas.
  • Forma de saída da fila: Caso todos os atendentes estejam ocupados e o número máximo de usuários estiver sido alcançados, você pode usar a segunda saudação (usada para informar que todos os atendentes estão ocupados) para criar um segundo menu com até 3 opções para o usuário sair da fila. Por exemplo, pode-se dizer: “no momento, todos os nossos operadores estão ocupados. Caso deseje ouvir outras opções, pressione 5, para deixar uma mensagem pressione 6, ou pressione 7 para falar com um operador (e direciona para o operator hunt group). Isso é feito usando a mensagem de atendentes ocupados e deve ser nomeada da forma como será indicada mais a frente.
  • Destino Alternativo: É um ramal que receberá a chamada caso todos os operadores estejam indisponíveis, caso o tempo máximo na fila tenha sido atingido pelo usuário ou o número máximo de chamadas na fila de espera foi atingido. Nesse caso, esse destino alternativo pode ser um correio de voz acessível por todos os usuários do grupo em questão. Quando a chamada é direcionada para esse destino, ela não será mais controlada pelos scripts do B-ACD. Se até mesmo o destino alternativo não estiver disponível, então a chamada é desconectada. Vale lembrar que o número configurado como destino alternativo deve ser especificado como um dial-peer alcançável pelo CME.
  • Pilot Number: Especificado no comando param aa-pilot, esse é o número que ativará o auto atendimento. Para cada auto-atendimento, um número único deverá ser especificado. Lembrando que podemos ter vários auto-atendimentos com opções diferentes, mas obrigatoriamente números diferentes.
  • Arquivos de áudio: Quando a chamada é atendida pelo pilot number o usuário escuta uma saudação que nada mais é do que um arquivo de áudio contendo uma gravação. O mesmo vale para o menu de opções e demais itens que os usuários escutam. Quando você baixa os arquivos, eles vêm com nomes específicos que não devem ser alterados (pois já foram escritos no script que não deve ser alterado a não ser que você queira ter muito trabalho). A exceção para essa mudança é o arquivo _bacd_welcome.au, pois ele é definido em um comando. Ou seja, se quiser gravar arquivos de áudio personalizados, você deve nomeá-los da mesma forma que os arquivos padrões e os substituir na flash do CUCME. Os arquivos de áudio possuem as seguintes características: formato .au (G.711) com 8-bit, mu-law e codificação de 8 khz. Os programas indicados pela Cisco para gravação desses arquivos de áudio são: Adobe Audition for Microsoft Windows e AudioTool for Solaris.
  • Ephone hunt group: É principal item usado como  “destino” dos usuários que selecionam alguma opção do menu. O máximo de 10 hunt-groups pode ser usado com o serviço de filas do B-ACD. Para associar um dígito a um grupo, o comando é param aa-hunt1 XXXX, onde hunt1 indica que o digito 1 será utilizado para o ramal XXXX (que deverá ser um número :D).
  • Modo drop-through: O usuário ouve uma saudação e já cai direto em um hunt-group, sem precisar selecionar nenhuma opção. Pode ser configurado em conjunto com um outro menu de opções, mas precisará ter um AA específico com um pilot number diferente.

COMO CONFIGURAR

Para essa configuração, eu resolvi fazer um menu contendo desvio para 5 grupos diferentes, opção de ligar diretamente para um ramal específico e a opção 0 (padrão) desviando para o operator hunt group (que nada mais é do que o grupo com o maior número de identificação). O número associado ao meu Auto-Attendant é o 8999. Eu organizei essa parte da seguinte forma:

  • TOPOLOGIA DESSA CONFIGURAÇÃO: Onde explico como ficou, logicamente, a disposição dos meus usuários e ramais.
  • ESQUEMA DO MENU: Onde mostro quais as opções que os usuários irão ouvir, bem como quais os seus destinos.
  • PASSO A PASSO: Onde mostro o script e explico os itens de maior importância.

TOPOLOGIA DESSA CONFIGURAÇÃO

TOPOLOGIA

Observe na topologia que foram criados 5 grupos com 2 ramais dentro de cada. Há também um sistema de correio de voz, que irá receber as chamadas que não forem atendidas. O número do voice mail é 7000.

ESQUEMA DO MENU

Abaixo segue o esquema explicativo do Menu. O AA irá atender no ramal 8999. Quando isso ocorrer, tocará a saudação inicial e depois seguirá o esquema abaixo:

ESQUEMA DO MENU

PASSO A PASSO

Para a configuração, estou partindo do pressuposto que os seus ramais já estejam configurados e comunicando entre si normalmente. Afinal, normalmente esse serviço é um adicional a uma rede já existente.

Então, vamos que vamos!!! Estou utilizando aqui, 11 telefones 7940 e 1 SoftPhone.

Passo 1: Primeiro, temos que decidir os principais pontos da configuração:

  1. Nome do serviço de call-queueAqui, resolvi deixar no padrão.
  2. Decidir quantos Auto-Atendimentos serão configurados. Decidi fazer apenas um AA.
  3. Decidir o nome e o número para cada auto-atendimento. Decidi deixar com o nome aa e o número piloto 8999.
  4. Pensar nos parâmetros de call retry. Deixei um callretry de 10 segundos e um maximum call-retry de 90 segundo. Ou seja, o script de fila tentará 9 vezes reenviar a chamada para um atendente até “desisitir” e enviar para um destino alternativo.
  5. Escolher um destino alternativo, caso o grupo esteja indisponível ou o maximum call retry expire. Nesse caso, usarei uma rota para um serviço de correio de voz, cujo ramal é o 7000. Obs: Se não houver nenhum servidor de correio de voz ou mesmo um ramal para essa funcão, você deverá escolher um ramal (mesmo que não exista na sua rede), pois esse é um comando obrigatório e somente é aceito se no final houver um número de ramal.
  6. Escolher quantas chamadas em espera as filas comportarão. Nesse caso deixarei o máximo de 10 chamadas por fila.
  7. Decidir se haverá a opção para discar diretamente para um ramal. SIM!!!
  8. Decidir se haverá um menu de opções ou se apenas tocará um prompt. Nesse exemplo, será com menu.

Passo 2: Garantir que o serviço de música em espera esteja ativo e funcionando. Para isso, caso esse serviço não esteja ativo, basta transferir um arquivo de Music on Hold para a flash: do CUCME (tem um arquivo padrão da cisco dentro do complete file set) e configurar esse serviço de MoH (lembrando que o arquivo tem que estar no formato .au):

!
telephony-service
moh “flash:music-on-hold.au”   !! Habilita o serviço de Moh para as chamadas oriundas da PSTN.
multicast moh 239.10.16.4 port 16384   !! Habilita o serviço para chamadas internas.
no create cnf-files
create cnf-files
!
!

Passo 3: Criar um dial-peer para ser usado como entrada e saída para o MoH (Obs: Poderiam ser 2 dial-peers mas, para otimizar será configurado apenas 1 com os comandos para entrada e saída).

!
dial-peer voice 8999 voip
service aa   !! O nome “aa” deve ser o idêntico ao nome do serviço.
destination-pattern 8999   !! Esse deverá ser o ramal do auto-atendimento.
session target ipv4:172.22.10.1   !! Esse deverá ser o IP do próprio CUCME
incoming called-number 8999   !! Esse comando é para indicar que esse dial-peer é de entrada quando a chamada for para o 5000.
dtmf-relay h245-alphanumeric
codec g711ulaw
no vad
!

Passo 4: Criar um dial-peer apontando para o serviço de correio de voz. Obs: Embora o ramal de rota alternativa seja obrigatório, a rota em si não é. Ou seja, se você não tiver um servidor de correio de voz, precisará indicar um ramal qualquer no comando de rota alternativa, mas NÃO precisará criar um dial-peer para isso.

!
dial-peer voice 7000 voip
destination-pattern 7000
session target ipv4:172.22.10.10   !! Esse deverá ser o IP do servidor de Voice Mail.
dtmf-relay sip-notify   !! Esse servidor usa SIP.
session protocol sipv2 !! Esse servidor usa SIP.
codec g711ulaw
no vad
!

Passo 5: Baixar os scripts no site da Cisco e transferir para a flash do CUCME. Os arquivos são: app-b-acd-3.0.0.2.tcl (que contém o script gestor de filas) e o app-b-acd-aa-3.0.0.2.tcl (que contém o script de auto atendimento).

Passo 6: Transferir os arquivos de áudio que farão parte do auto-atendimento. Existem alguns arquivos padrões no próprio site da Cisco (dentro da pasta complete file set que foi usado para pegar os arquivos de firmware dos telefones). Para alterar o idioma dos arquivos de áudio do AA (Auto-Attendant), o administrador precisará obter os arquivos de audio (gravando-os preferencialmente com os programas que a Cisco indica, que são o Adobe Audition e o Solaris Audio Tool), convertê-los para o formato .au e renomeá-los para os nomes abaixo:

Obs: Os únicos nomes que podem ser alterados para outro qualquer (lembrando que devem ser referenciados corretamente no scritpt) são os nomes do arquivo de saudação inicial e o nome do script de filas.

  1. Saudação inicial: Quando o script receber a chamada, tocará para o usuário uma saudação inicial. Seria algo do tipo: Olá, obrigado por ligar para nossa empresa. O nome que o arquivo que usei foi o en_bacd_welcome.au.
  2. Menu de opções: Após a saudação o sistema “dará” aos usuários algumas opções como: Para Suporte técnico, pressione 1 (E desvia para um número que tocará nos telefones desse grupo). Para Financeiro, pressione 2 (e ocorre o mesmo). Para entrar com um ramal desejado pressione 9 (e o usuário poderá discar diretamente um número de ramal). O nome do arquivo deverá ser en_bacd_options_menu.au.
  3. Mensagem solicitando o ramal: Quando o usuário selecionar essa opção, o sistema tocará uma mensagem, como por exemplo, “por favor, entre com o ramal desejado”). O nome do arquivo é: en_bacd_enter_dest.au.
  4. Informação de opção incorreta: Se o usuário discar um ramal errado, poderá ouvir uma mensagem de “opção inválida”. O nome do arquivo é: en_bacd_invalidoption.au.
  5. Informação de atendentes ocupados: Se os atendentes estiverem ocupados, o usuário será direcionado para uma fila onde irá ouvir uma música em espera e uma mensagem informando que todos os atendentes estão ocupados. Quando o atendente (ou o primeiro atendente do grupo) desocupar, o sistema tocará no telefone desse atendente automaticamente e encaminhará a chamada quando o mesmo for atendido. O nome do arquivo é: en_bacd_allagentsbusy.au.
  6. Mensagem de desconexão: Por fim, se depois de um período de tempo na fila, o usuário não for atendido ou não pressionar nenhuma opção quando ligar para o número, o sistema tocará outra mensagem informando que não pode atender a solicitação, pede para ligar novamente mais tarde e agradece a ligação. O nome do arquivo é: en_bacd_disconnect.au.

Abaixo, segue a saída do comando dir flash: aqui no CUCME que foi usado para testar essa funcionalidade (destacando em negrito os arquivos que mencionei acima):

CME-PRINCIPAL#dir flash:
Directory of flash0:/

1 -rw- 99098648 Sep 16 2013 08:39:48 +00:00 c2900-universalk9-mz.SPA.152-4.M5.bin
2 -rw- 1930 Nov 1 2013 19:40:06 +00:00 GK1
3 -rw- 4096 Nov 1 2013 16:56:52 +00:00 ._.Trashes
4 drw- 0 Nov 1 2013 16:56:52 +00:00 .Trashes
5 drw- 0 Nov 1 2013 16:56:52 +00:00 .Spotlight-V100
108 -rw- 4096 Nov 1 2013 16:58:44 +00:00 ._c2900-universalk9-mz.SPA.152-4.M5.bin
109 -rw- 130552 Jul 6 2011 21:56:34 +00:00 P0030801SR02.bin
110 -rw- 30421 Apr 2 2014 16:13:16 +00:00 app-b-acd-3.0.0.2.tcl
111 -rw- 458 Jul 6 2011 22:18:14 +00:00 P0030801SR02.loads
112 -rw- 55599 Apr 2 2014 16:13:16 +00:00 app-b-acd-aa-3.0.0.2.tcl
113 -rw- 708460 Jul 6 2011 22:02:24 +00:00 P0030801SR02.sb2
114 -rw- 75650 Apr 2 2014 16:13:18 +00:00 en_bacd_allagentsbusy.au
115 -rw- 130956 Jul 6 2011 21:56:38 +00:00 P0030801SR02.sbn
116 -rw- 83291 Apr 2 2014 16:13:18 +00:00 en_bacd_disconnect.au
117 -rw- 174 Jul 7 2011 14:03:00 +00:00 P0030801SR02.txt
118 -rw- 63055 Apr 2 2014 16:13:20 +00:00 en_bacd_enter_dest.au
119 -rw- 37952 Apr 2 2014 16:13:20 +00:00 en_bacd_invalidoption.au
120 -rw- 496521 Apr 2 2014 16:13:20 +00:00 en_bacd_music_on_hold.au
121 -rw- 123446 Apr 2 2014 16:13:22 +00:00 en_bacd_options_menu.au
123 -rw- 42978 Apr 2 2014 16:13:22 +00:00 en_bacd_welcome.au
122 -rw- 496521 Apr 2 2014 17:44:32 +00:00 music-on-hold.au

Passo 7: Configurar os hunt-groups que irão receber as chamadas, quando o usuário discar uma determinada opção. Para esse exemplo eu configurei os seguintes grupos: Como eu utilizei os arquivos padrões da Cisco, no menu de opções eu tenho: Vendas (opção 1), Suporte (opção 2), Recursos Humanos (opção 3), Financeiro (opção 4), Service Desk (opção 5), Discar direto para um ramal (opção 6) e falar com um operador (opção 0).
Com base nisso, eu criei no CUCME cinco hunt-groups, com os ramais 8000, 8010, 8020, 8030 e 8040:

OBS: O ephone-hunt group deve ser configurado sem o comando final, pois esse destino final é determinado pelas configurações do B-ACD, que pode ser um voice-mail, outro ramal ou mesmo a própria desconexão da chamada.

!
ephone-hunt 10 sequential
description Vendas
pilot 8000
list 8001, 8002
timeout 10   !! Tempo que a chamada permanecerá em um número do grupo. Após isso, tentará no próximo número do grupo.
!
ephone-hunt 11 sequential
description Suporte
pilot8010
list 8011, 8012
timeout 10
!
ephone-hunt 12 sequential
description Recursos Humanos
pilot 8020
list 8021, 8022
timeout 10
!
ephone-hunt 13 sequential
description Financeiro
pilot 8030
list 8031, 8032
timeout 10
!
ephone-hunt 14 sequential
description Service Desk
pilot 8040
list 8041, 8042
timeout 10
!

Passo 8: Configurar a fila onde os usuários ficarão aguardando atendimento, caso os operadores estejam ocupados. Esse mesmo script também indica qual a opção de cada grupo de atendimento. Por isso, muita atenção nesse ponto.

Obs: Vale informar que estamos trabalhando com scripts TCL. De acordo com a Cisco (e os meus testes 😀 ) esses comandos não possuem os mesmos comportamentos dos outros comandos de IOS. A Cisco destaca o seguinte:

  • Não suportam tab para completar o comando automáticamente.
  • Você não recebe uma informação de erro com o nosso bom e velho “^” informando o local do erro.
  • Você não tem o recurso de ajuda quando digita interrogação “?”.
  • Se você não colocar o script com as letras (case sensitive!) e os parâmetros corretos, o script simplesmente não funciona sem dar nenhum vestígio do o porque!!! Chatinho né!!! Mas vale a pena o esforço, é simplesmente muito legal esse recurso.

 

!
application
service queue flash:app-b-acd-3.0.0.2.tcl   !! Comando para “chamar” o script de fila. Esse
queue, é exatamente o local onde indicamos o nome o serviço. Pode ser alterado, mas deve ser referenciado corretamente em outro comando mais abaixo.
param queue-len 10   !! Indica a quantidade de usuários que poderá ficar ao mesmo tempo nessa fila.
param aa-hunt1 8000   !! Comando para indicar a fila do grupo 7098. O range do aa-huntX é 1 a 10.
param aa-hunt2 8010   !! Comando para indicar a fila do grupo 7099.
param aa-hunt3 8020    !! Comando para indicar a fila do grupo 7098.
param aa-hunt4 8030   !! Comando para indicar a fila do grupo 7099.
param aa-hunt5 8040   !! Comando para indicar a fila do grupo 7099.
param number-of-hunt-grps 5   !! Atenção a esse comando pois deve coincidir com a quantidade de filas que estamos criando.
!

COMANDOS OPCIONAIS

param queue-manager-debugs 1   !! Comando que indica se será habilitado ou não a coleta de debugs. “0” desabilita e “1” habilita. Para capturar esses logs, deve-se usar o comando debug voip application script no modo de configuração privilegiado, router#.

Passo 9: Configurar a auto-atendimento,  onde os usuários receberão a gravação de saudação e as opções do menu.

!
application
service aa flash:app-b-acd-aa-3.0.0.2.tcl   !! Comando para “chamar” o script de auto-atendimento. O “aa” deve ser  o mesmo que foi informado no dial-peer do Auto-Atendant, no comando service aa.
paramspace english index 1
param number-of-hunt-grps 5
param menu-timeout 5   !! Quantidade de vezes que o menu será repetido para o usuário, antes de o script “desistir” de aguardar o usuário selecionar uma opção e enviar para o operator group.
param handoff-string aa   !!! O “aa” deve ser  o mesmo que foi informado no dial-peer do Auto-Atendant, no comando service aa.
param dial-by-extension-option 6   !! Aqui você define o dígito que o usuário vai pressionar para discar direto para uma extensão.
paramspace english language en   !! Indica a linguagem dos arquivos. Melhor deixar em inglês mesmo.
param max-time-vm-retry 2
param aa-pilot 8999   !! Define o número usado para auto-atendimento. Deve ser o mesmo do dial-peer criado no passo 2.
param max-extension-length 4   !! Define a quantidade de dígitos que o usuário poderá pressionar quando selecionar a opção para discar direto para um ramal.
param queue-overflow-extension 7000   !! Número alternativo, caso a quantidade de usuário ultrapasse o máximo para a fila.
paramspace english location flash:  !! Indica o local onde os arquivos de áudio estão armazenados.
param second-greeting-time 45   !! Define o intervalo de tempo que a mensagem de que todos os agentes estão ocupados repetirá quando o usuário estiver na fila de espera.
param welcome-prompt _bacd_welcome.au   !! Indica o arquivo de saudação inicial. Embora o arquivo inicie com “en”, nesse comando você deve remover o “en” e deixá-lo iniciando por “_”.
param send-account true   !! Define que o CUCME deverá gerar CDR para chamadas que “caírem” no serviço de B-ACD.
param call-retry-timer 10   !! Define a quantidade de tempo que o script irá esperar para tentar novamente uma chamada para um grupo quando o usuário estiver na fila.
param max-time-call-retry 90  !! Define o tempo total que o usuário permanecerá na fila, antes de ser redirecionado para o voice-mail.
param voice-mail 7000   !! Ramal de voice-mail que será usado caso o usuário fique muito tempo na fila de espera.
param service-name queue   !! Aqui você indica o nome do serviço de fila. No passo anterior indicamos o nome queue. Se tiver sido colocado outro nome, deve-se colocá-lo no lugar desse nome.
!

OBS: Se não existir um voice-mail na rede, você precisa determinar qualquer valor, senão o script não funcionará.

Passo 10: Testar a URA e correr pro abraço!!!!

PARA TESTAR

Para testar, basta ligar para o número piloto (no caso o 8000) e ouvir as mensagens serem tocadas, seguir o menu e testar cada opção para verificar se o script está funcionando corretamente.

POR ENQUANTO É ISSO!!!

Como eu escrevo tanto quanto falo, se eu for continuar por aqui, o artigo vai ficar IMENSO!!! Por esse motivo, estarei encerrando por aqui. Posteriormente colocarei a parte 2 com alguns itens interessantes como, forma de atualizar o script, como trabalhar com estatísticas de chamadas, como realizar a manutenção do script e alguma coisa a mais.

Abraços!!!

!

!

!

!

!

!

!

!

!

!

 

Tags: , , , , , , ,