Você consulta o protocolo diretamente na tabela CDR pesquisando no campo userfield.
É muito mais prático, o próprio Asterisk grava para você o dado e não é necessário criar um DB separado (e nem realizar uma nova conexão no mesmo para gravar dados). Além disso tu usará um select simples (select * from cdr where userfield=PROTOCOLO) pois o registro da tabela conterá todas as informações da chamada. Simples assim. []s Marcelo H. Terres mhter...@gmail.com http://mundoopensource.blogspot.com http://biertasters.blogspot.com http://twitter.com/mhterres 2013/8/2 Eduardo Souza <edusouza...@gmail.com>: > OK tb cheguei perto de um com googletts, e futuramente o cliente liga e eu > peço o protocolo de atendimento e consultaria como seria feito? > Em 02/08/2013, às 17:20, Marcelo Terres <mhter...@gmail.com> escreveu: > >> Mais simples, e sem criação de novo DB: >> >> exten => _XXX,1,Answer >> same => n,Set(PROTOCOLO=${RAND(1,10000000)}) >> same => n,Set(CDR(userfield)=${PROTOCOLO}) >> same => n,agi(googletts.agi,"Bem vindo a empresa X.",pt-BR) >> same => n,agi(googletts.agi,"Seu protocolo de atendimento é",pt-BR) >> same => n,SayDigits(${PROTOCOLO}) >> same => n,agi(googletts.agi,"Aguarde que sua ligação está sendo >> transferida.",pt-BR) >> same => n,Dial(SIP/${EXTEN},60,twx) ; no caso ${EXTEN}=404 >> same => n,Hangup >> >> Usei o googletts.agi só para facilitar e entregar um exemplo >> facilmente implementável. O uso da função RAND também teve este >> objetivo. No caso sugiro a criação de um agi para gerar o número do >> protocolo. >> >> Após o término da chamada, na tabela CDR temos então o seguinte registro: >> >> id | calldate | src | dst | userfield | uniqueid >> -------+------------------------+-----+-----+-----------+---------------- >> 37855 | 2013-08-02 17:10:55-03 | 407 | 404 | 5970968 | 1375474255.692 >> >> >> Onde 5970968 foi o número do protocolo. >> >> []s >> Marcelo H. Terres >> mhter...@gmail.com >> http://mundoopensource.blogspot.com >> http://biertasters.blogspot.com >> http://twitter.com/mhterres >> >> >> 2013/8/2 Wagner <wag...@sincronismotelecom.com>: >>> Vou compartilhar aqui uma solução que criei para este caso. >>> Vai ficar meio grande o e-mail. >>> >>> ================================================================= >>> --Funcionamento: >>> >>> 1. Atender. >>> 2. Áudio de atendimento. >>> 3. Gerar protocolo por AGI. >>> 4. Áudio de protocolo. >>> 5. Falar o protocolo gerado. >>> 6. Opção de repetir protocolo. >>> 7. Se digitar 1 ou qualquer coisa repete o Protocolo. >>> 8. Colocar o valor do protocolo no userfild. >>> 9. Se esperar vai para a fila. >>> 10. Desliga >>> ================================================================= >>> --Criar tabela. >>> >>> 1. Criar o database e a tabela: >>> CREATE DATABASE registros; >>> USE registros; >>> CREATE TABLE protocolos (id int(10) not null auto_increment, numero_cli >>> varchar(15), data VARCHAR(20), hora VARCHAR(20), protocolo int(16) not null, >>> primary key (id)); >>> ================================================================= >>> --AGI em Perl >>> >>> 1. Instalar bibliotecas do Perl: >>> apt-get install libdbd-pg-perl >>> apt-get install ghostscript libnewt-dev libsox-fmt-all linux-headers-`uname >>> -r` sox >>> perl -MCPAN -e 'install Asterisk::AGI' >>> >>> 2. Código da AGI: >>> >>> #!/usr/bin/perl -w >>> >>> use DBI(); >>> use Asterisk::AGI; >>> $AGI = new Asterisk::AGI; >>> >>> # ARQUIVO DE LOG >>> if(! open FILE, ">>/home/suahome/logagi.txt") { # APONTE QUAL A SUA HOME E >>> NELA CRIE O ARQUIVO logagi.txt COM PERMISSOES 775 >>> die "Nao abriu o arquivo" . "\n" ; >>> } >>> >>> $NUM = $ARGV[0]; # numero do cliente >>> $DATA = $ARGV[1]; # data da discagem >>> $HORA = $ARGV[2]; # hora da discagem >>> >>> # GERAR PROTOCOLO O NUMERO RANDOM MINIMO SERA 1000 E O MAXIMO 9999 >>> $RANGE = 8999; >>> $MINIMUM = 1000; >>> >>> $RANDOM = int(rand($RANGE)) + $MINIMUM; >>> >>> $PROTOCOLO = $DATA . $HORA . $RANDOM; >>> >>> # REGISTRAR NO BANCO >>> $dbh = DBI->connect("DBI:mysql:registros:localhost", "root", "suasenha*") or >>> die print $DBI::errstr; # INSIRA A SENHA DO ROOT DO SEU DB >>> $dbh->{RaiseError} = 1; >>> $cmd = "insert into protocolos values >>> ('0','$NUM','$DATA','$HORA','$PROTOCOLO')"; >>> $sth = $dbh->prepare($cmd); >>> $sth->execute(); >>> $result = $sth->rows; >>> $sth->finish(); >>> $dbh->disconnect(); >>> >>> #RETORNANDO O NUMERO DO PROTOCOLO PARA SER ESCRITO NO USERFILD >>> $AGI->set_variable('protocolo',$PROTOCOLO); >>> >>> # ESCREVENDO NO LOG O RESULTADO DO PROCESSO >>> print FILE "NUMERO: $NUM DATA: $DATA HORA: $HORA PROTOCOLO: $PROTOCOLO" . >>> "\n"; >>> >>> # RETORNAR AO ASTERISK >>> exit; >>> >>> 3. Coloque a AGI na pasta /var/lib/asterisk/agi-bin com permissão 777. >>> ================================================================= >>> >>> --Dialplan >>> >>> 1. Em AEL: >>> >>> context from-psnt { >>> _[2]XXX => { // COLOQUE A SUA MASCARA >>> //============================================================================ >>> // TESTE GERAR PROTOCOLO >>> //============================================================================ >>> Answer(); >>> Playback(audioAtendimento); >>> >>> AGI(gera_protocolo.pl,${CDR(src)},${STRFTIME(${EPOCH},,%Y%m%d)},${STRFTIME(${EPOCH},,%H%M)}); >>> Inicio: >>> Playback(audioProtocolo); >>> NoOp(------------> ${protocolo}); >>> SayDigits(${protocolo}); >>> BackGround(audioRepetir); >>> WaitExten(5); >>> }; >>> >>> 1 => { // SE O CLIENTE DISCAR 1 O PROTOCOLO SERA REPETIDO >>> goto from-pstn,2000,Inicio; // ALTERA PARA A MASCARA DO INICIO E >>> PARA O SEU CONTEXT DE ENTRADA >>> }; >>> >>> i => { // SE O CLIENTE DISCAR ALGO DIFERENTE DE 1 O PROTOCOLO TAMBEM >>> SERA REPETIDO >>> goto from-pstn,2000,Inicio; // ALTERA PARA A MASCARA DO INICIO E >>> PARA O SEU CONTEXT DE ENTRADA >>> }; >>> >>> t => { >>> Set(CDR(userfild)=${protocolo}); >>> Queue(fila1,tTwW); # COLOQUE A SUA FILA >>> Hangup(); >>> }; >>> }; >>> >>> 2. Áudios: >>> O áudio audioAtendimento deve ter algo como "Olá cliente bem vindo a XXXX". >>> O áudio audioProtocolo deve ter algo como "Seu protocolo é". >>> O áudio audioRepetir deve ter algo como "Se deseja que eu repita o código >>> disque 1 ou aguarde para ser atendido". >>> >>> 3. Saída do logagi.txt: >>> >>> NUMERO: 1133235550 DATA: 20130802 HORA: 1509 PROTOCOLO: 2013080215095657 >>> NUMERO: 11995310802 DATA: 20130802 HORA: 1514 PROTOCOLO: 2013080215146297 >>> >>> 4. Registro no banco: >>> >>> +----+-------------+----------+------+------------------+ >>> | id | numero_cli | data | hora | protocolo | >>> +----+-------------+----------+------+------------------+ >>> | 8 | 1133235550 | 20130802 | 1509 | 2013080215095657 | >>> | 9 | 11995310802 | 20130802 | 1514 | 2013080215146297 | >>> +----+-------------+----------+------+------------------+ >>> ================================================================= >>> >>> Em 01/08/2013 19:41, Marcio - Google escreveu: >>> >>> Já pensou em usar um CRM?!?!? >>> >>> >>> >>> >>> [...]'s >>> >>> Marcio >>> >>> ======================================== >>> ########### Campanha Ajude o Marcio! ########### >>> http://sosmarcio.blogspot.com.br/ >>> http://www.vakinha.com.br/VaquinhaP.aspx?e=195793 >>> ======================================== >>> >>> >>> Em 1 de agosto de 2013 16:37, Eduardo Souza <edusouza...@gmail.com> >>> escreveu: >>>> >>>> Boa tarde >>>> >>>> Consegui realizar a seguinte forma, se alguém puder melhorar isso >>>> agradeço. >>>> >>>> Tipo quando ligo para empresa a Ura joga para uma fila no caso do >>>> callcenter, ai ele vai falar o numero do protocolo usando o UNIQUEID. >>>> >>>> Esse protocolo só será válido caso a ligação seja atendida caso contrário >>>> ele não grava no CDR >>>> >>>> alguém tem sugestões de melhoras? >>>> >>>> [from-internal] >>>> >>>> exten => 900,1,SayDigits(${UNIQUEID}) >>>> exten => 900,6,Dial(SIP/2001/${EXTEN:2}|40|tTrwW) >>>> >>>> >>>> Abaixo é o que ele fala para o cliente, no caso o protocolo usando o >>>> uniqueid >>>> >>>> -- <SIP/2000-0000000a> Playing 'digits/1.gsm' (language 'en') >>>> -- <SIP/2000-0000000a> Playing 'digits/3.gsm' (language 'en') >>>> -- <SIP/2000-0000000a> Playing 'digits/7.gsm' (language 'en') >>>> -- <SIP/2000-0000000a> Playing 'digits/5.gsm' (language 'en') >>>> -- <SIP/2000-0000000a> Playing 'digits/3.gsm' (language 'en') >>>> -- <SIP/2000-0000000a> Playing 'digits/8.gsm' (language 'en') >>>> -- <SIP/2000-0000000a> Playing 'digits/8.gsm' (language 'en') >>>> -- <SIP/2000-0000000a> Playing 'digits/9.gsm' (language 'en') >>>> -- <SIP/2000-0000000a> Playing 'digits/3.gsm' (language 'en') >>>> -- <SIP/2000-0000000a> Playing 'digits/3.gsm' (language 'en') >>>> -- <SIP/2000-0000000a> Playing 'digits/1.gsm' (language 'en') >>>> -- <SIP/2000-0000000a> Playing 'digits/0.gsm' (language 'en') >>>> >>>> _______________________________________________ >>>> 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. Conheça em >>>> www.Khomp.com. >>>> _______________________________________________ >>>> ALIGERA – Fabricante nacional de Gateways SIP-E1 para R2, ISDN e SS7. >>>> Placas de 1E1, 2E1, 4E1 e 8E1 para PCI ou PCI Express. >>>> Channel Bank – Appliance Asterisk - Acesse www.aligera.com.br. >>>> _______________________________________________ >>>> Para remover seu email desta lista, basta enviar um email em branco para >>>> asteriskbrasil-unsubscr...@listas.asteriskbrasil.org >>> >>> >>> >>> >>> _______________________________________________ >>> 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. Conheça em www.Khomp.com. >>> _______________________________________________ >>> ALIGERA – Fabricante nacional de Gateways SIP-E1 para R2, ISDN e SS7. >>> Placas de 1E1, 2E1, 4E1 e 8E1 para PCI ou PCI Express. >>> Channel Bank – Appliance Asterisk - Acesse www.aligera.com.br. >>> _______________________________________________ >>> Para remover seu email desta lista, basta enviar um email em branco para >>> asteriskbrasil-unsubscr...@listas.asteriskbrasil.org >>> >>> >>> -- >>> Wagner Mazuchi de Lima Junior >>> 11 3323-5550 >>> wag...@sincronismotelecom.com >>> www.sincronismo.com.br >>> Rua Tácito de Almeida, nº 196 >>> 01251-010 - Pacaembu - São Paulo - SP >>> >>> >>> _______________________________________________ >>> 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. Conheça em www.Khomp.com. >>> _______________________________________________ >>> ALIGERA – Fabricante nacional de Gateways SIP-E1 para R2, ISDN e SS7. >>> Placas de 1E1, 2E1, 4E1 e 8E1 para PCI ou PCI Express. >>> Channel Bank – Appliance Asterisk - Acesse www.aligera.com.br. >>> _______________________________________________ >>> Para remover seu email desta lista, basta enviar um email em branco para >>> asteriskbrasil-unsubscr...@listas.asteriskbrasil.org >> _______________________________________________ >> 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. Conheça em www.Khomp.com. >> _______________________________________________ >> ALIGERA – Fabricante nacional de Gateways SIP-E1 para R2, ISDN e SS7. >> Placas de 1E1, 2E1, 4E1 e 8E1 para PCI ou PCI Express. >> Channel Bank – Appliance Asterisk - Acesse www.aligera.com.br. >> _______________________________________________ >> Para remover seu email desta lista, basta enviar um email em branco para >> asteriskbrasil-unsubscr...@listas.asteriskbrasil.org > > > _______________________________________________ > 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. Conheça em www.Khomp.com. > _______________________________________________ > ALIGERA – Fabricante nacional de Gateways SIP-E1 para R2, ISDN e SS7. > Placas de 1E1, 2E1, 4E1 e 8E1 para PCI ou PCI Express. > Channel Bank – Appliance Asterisk - Acesse www.aligera.com.br. > _______________________________________________ > Para remover seu email desta lista, basta enviar um email em branco para > asteriskbrasil-unsubscr...@listas.asteriskbrasil.org
_______________________________________________ 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. Conheça em www.Khomp.com. _______________________________________________ ALIGERA Fabricante nacional de Gateways SIP-E1 para R2, ISDN e SS7. Placas de 1E1, 2E1, 4E1 e 8E1 para PCI ou PCI Express. Channel Bank Appliance Asterisk - Acesse www.aligera.com.br. _______________________________________________ Para remover seu email desta lista, basta enviar um email em branco para asteriskbrasil-unsubscr...@listas.asteriskbrasil.org