Como criar uma pesquisa de satisfação – Asterisk

Uma pesquisa simples de ser feita com asterisk.

Vamos utilizar odbc, mysql, asterisk, queues.

Não irei abordar detalhes de como criar contextos, queues, etc. Somente resumidamente as configurações.

Seguem abaixo minhas confs:

/etc/asterisk/func_odbc.conf
[pesq_satisfacao]
dsn=asterisk
writesql=INSERT INTO asterisk.pesq_satisfacao (ID,Calldate,Origem,Destino,Nota1,Nota2,Nota3) VALUES (NULL , CURRENT_TIMESTAMP ,’${VAL1}’ ,’${VAL2}’,${VAL3},${VAL4},${VAL5});

/etc/asterisk/res_odbc.conf
[asterisk]
enabled => yes
dsn => asterisk-connector
pre-connect => yes
username => root
password => senha

/etc/odbc.ini
[asterisk-connector]
Description = MySQL connection to asterisk database
Driver = MySQL
Database = asterisk
Servername = localhost
UserName = root
Password = senha
Port = 3306
Option = 3

/etc/asterisk/extensions.conf
[pesquisa_satisfacao2]
exten => s,1,Queue(fila,cft,,,600)
same => n,Read(sol_atendida,pesquisa/primeirapergunta,1)
same => n,waitexten(1)
same => n,Read(nota,pesquisa/segundapergunta,1)
same => n,waitexten(1)
same => n,Read(atendida,pesquisa/ultimapergunta,1)
same => n,noop(${CDR(dstchannel)})
same => n,Set(ODBC_pesq_satisfacao()=${CALLERID(num)},${CDR(dstchannel)},${sol_atendida},${nota},${atendida})
same => n,System(echo ” ———– Pesquisa de Satisfacao ———– \n\n Horario Atendimento: ${STRFTIME(${EPOCH},,%d/%m/%Y as %H:%M:%S)} \n Origem: ${CALLERID(num)} \n Atendente: ${CDR(dstchannel)} :: 2307-Carlos | 2349-Cristiane | 2330-Priscila \n O problema foi solucionado? ${sol_atendida} :: (0 – Nao | 1 – Sim) \n Nota do atendimento: ${nota} :: (0 – Pessimo ate 5 – Excelente) \n Precisou mais de um contato? ${atendida} :: (0 – Nao | 1 – Sim) \n\n by IPBX \n\n ———– Pesquisa de Satisfacao ———–” | /bin/mail -s “Pesquisa de Satisfacao HelpDesk” -r origem@i-hunter.net destino@provedor.net)
same => n,playback(pesquisa/obrigado)
same => n,hangup()

Obs: O parâmetro cf envia automaticamente o cliente para a pesquisa quando o helpdesk realiza o hangup da chamada.
Alem de disponibilizar no banco de dados para criar uma aplicação posteriormente, nada impede enviarmos os resultados por email (como feito na linha system).

No mysql:
1 – Criar o database.
2 – Criar a tabela:

CREATE TABLE IF NOT EXISTS `pesq_satisfacao` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`Calldate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`Origem` varchar(20) NOT NULL,
`Destino` varchar(20) NOT NULL,
`Nota1` int(11) NOT NULL,
`Nota2` int(11) DEFAULT NULL,
`Nota3` int(11) DEFAULT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=14 ;

Vejamos a imagem abaixo na qual ilustra as conexões para funcionamento da inserção de dados do dialplan no mysql.

Observamos que no asterisk precisamos configurar o func_odbc.conf e res_odbc.conf e no linux /etc/odbc.ini

ast2_1201

Dados inseridos no banco:
mysql> select * from pesq_satisfacao;
+—-+———————+————+———–+——-+——-+——-+
| ID | Calldate | Origem | Destino | Nota1 | Nota2 | Nota3 |
+—-+———————+————+———–+——-+——-+——-+
| 1 | 2014-08-19 17:12:47 | 3232893328 | 2198683214| 1 | 5 | 0 |
+—-+———————+————+———–+——-+——-+——-+
rows in set (0.00 sec)

Deixe um comentário