[AsteriskBrasil] Exibir protocolo de ligação para o atendente

Alex Sander sanderdabio em globo.com
Segunda Janeiro 13 13:44:01 BRST 2014


Você pode usar o AstDB para associar uma variável de protocolo ao CallerID.

exten => s,n,Set(DB(protocolo/${CALLERID(num)})=${protocolo})

Dessa forma, quando o agente atender a chamada, você pode usar um comando
AMI para capturar as informações. Supondo que estamos usando o phpAMI...
ficaria assim:

    $agentLogado = "Agent/".$agent; // Defini o canal do agente logado
    $rec = $ami->status($agentLogado); // retorna um array com as
informações do canal
    $callerid = $rec["List"][$agentLogado]["ConnectedLineNum"]; //Recupera
o callerid
    $valor = $ami->command("database get protocolo $callerid"); // recupera
o valor gravado no astDB para o callerid
    $ami->dbDel("protocolo", $callerid); //Apagar a referencia no astDB

O restante é logica e apresentação dos dados. Você pode também ao invés de
usar o astDB, recuperar a variável do canal já que está definida, aí
ficaria da seguinte forma:

    $agentLogado = "Agent/".$agent; // Defini o canal do agente logado
    $protocolo = $ami->getVar('CDR(protocolo)', $agentLogado); // Recupera
o array com as informações do protocolo.
    $protocolo = $protocolo['Info']['Value']; //recupera o vaçlor exato do
protocolo

Qualquer uma delas vai funcionar.

Att,



Em 13 de janeiro de 2014 12:49, Wilson Ritt Iglesias <
wilson.ritt em hotmail.com> escreveu:

> Boa tarde!
>
> Meus caros, estou tentando implementar em nosso sistema a função para
> gerar protocolos para as ligações. Consegui montar as macros para gerar e
> ouvir o protocolo, mas queria que o meu atendente também soubesse o número,
> para caso o cliente peça para confirmar. Por enquanto, estou usando este
> cenário:
>
> [GeraProtocolo]
>       exten => s,1,NoOP(Gerando o numero do protocolo)
>       exten => s,n,Set(Var1=${RAND(0,9)})
>       exten => s,n,Set(Var2=${RAND(0,9)})
>       exten => s,n,Set(Var3=${RAND(0,9)})
>       exten =>
> s,n,Set(Protocolo=${STRFTIME(${EPOCH},,%Y%m%d_%H%M%S)}${Var1}${Var2}${Var3})
>       exten => s,n,Set(CDR(protocolo)=${Protocolo})
>       exten => s,n,Return
>
> [FalaProtocolo]
>       exten => s,1,SayDigits(${Protocolo})
>       exten => s,n,NoOp(O numero do protocolo e: ${Protocolo})
>       exten => s,n,Hangup
>
>  [from-external]
>
>       exten => _X.,1,Gosub(GeraProtocolo,s,1)
>       exten => _X.,2,Macro(Recordcall,${MACRO_EXTEN})
>       include => internal_users
>       exten => _X.,3,GotoIfTime(08:00-18:00,mon-fri,*,*? URA_Entrada,s,1)
>       exten => _X.,4,GotoIfTime(08:00-12:00,sat,*,*? URA_Entrada,s,1 :
> Anuncio_Noite,s,1)
>
> [internal_users]
>
>       exten => 5220,1,Answer
>       exten => 5220,n,Goto(FalaProtocolo,s,1)
>       exten => 5220,n,Queue(Suporte,tT)
>       exten => 5220,n,Hangup
>
> Após a ligação o atendente pode facilmente olhar no histórico de chamadas
> do sistema, que na busca do CDR ele encontra o protocolo do banco de dados,
> porém, o asterisk só grava a variável Protocolo (Set(CDR(protocolo)=${Protocolo}))
> após o Hangup. Seria possível alterar isso, ou alguém pode me dar uma outra
> sugestão?
>
> Att.;
>
> Wilson Ritt Iglesias
>
> _______________________________________________
> KHOMP: completa linha de placas externas FXO, FXS, GSM e E1
> Media Gateways de 1 a 64 E1s para SIP com R2, ISDN e SS7
> Intercomunicadores para acesso remoto via rede IP e telefones IP
> Conheça todo o portfólio em www.Khomp.com
> _______________________________________________
> Para remover seu email desta lista, basta enviar um email em branco para
> asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20140113/c5cd8c98/attachment.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil