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 <mailto: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 <http://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
    <http://www.aligera.com.br>.
    _______________________________________________
    Para remover seu email desta lista, basta enviar um email em
    branco para asteriskbrasil-unsubscr...@listas.asteriskbrasil.org
    <mailto: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

Responder a