{"id":705,"date":"2014-08-19T17:57:14","date_gmt":"2014-08-19T20:57:14","guid":{"rendered":"http:\/\/blog.abratel.com.br\/?p=705"},"modified":"2014-09-03T12:56:48","modified_gmt":"2014-09-03T15:56:48","slug":"como-criar-uma-pesquisa-de-satisfacao-asterisk","status":"publish","type":"post","link":"https:\/\/blog.abratel.com.br\/?p=705","title":{"rendered":"Como criar uma pesquisa de satisfa\u00e7\u00e3o &#8211; Asterisk"},"content":{"rendered":"<p>Uma pesquisa simples de ser feita com asterisk.<\/p>\n<p>Vamos utilizar odbc, mysql, asterisk, queues.<\/p>\n<p>N\u00e3o irei abordar detalhes de como criar contextos, queues, etc. Somente resumidamente as configura\u00e7\u00f5es.<\/p>\n<p>Seguem abaixo minhas confs:<\/p>\n<p><strong>\/etc\/asterisk\/func_odbc.conf<\/strong><br \/>\n[pesq_satisfacao]<br \/>\ndsn=asterisk<br \/>\nwritesql=INSERT INTO asterisk.pesq_satisfacao (ID,Calldate,Origem,Destino,Nota1,Nota2,Nota3) VALUES (NULL , CURRENT_TIMESTAMP ,&#8217;${VAL1}&#8217; ,&#8217;${VAL2}&#8217;,${VAL3},${VAL4},${VAL5});<\/p>\n<p><strong>\/etc\/asterisk\/res_odbc.conf<\/strong><br \/>\n[asterisk]<br \/>\nenabled => yes<br \/>\ndsn => asterisk-connector<br \/>\npre-connect => yes<br \/>\nusername => root<br \/>\npassword => senha<\/p>\n<p><strong>\/etc\/odbc.ini<\/strong><br \/>\n[asterisk-connector]<br \/>\nDescription = MySQL connection to asterisk database<br \/>\nDriver = MySQL<br \/>\nDatabase = asterisk<br \/>\nServername = localhost<br \/>\nUserName = root<br \/>\nPassword = senha<br \/>\nPort = 3306<br \/>\nOption = 3<\/p>\n<p><strong>\/etc\/asterisk\/extensions.conf<\/strong><br \/>\n[pesquisa_satisfacao2]<br \/>\nexten => s,1,Queue(fila,cft,,,600)<br \/>\n        same => n,Read(sol_atendida,pesquisa\/primeirapergunta,1)<br \/>\n        same => n,waitexten(1)<br \/>\n        same => n,Read(nota,pesquisa\/segundapergunta,1)<br \/>\n        same => n,waitexten(1)<br \/>\n        same => n,Read(atendida,pesquisa\/ultimapergunta,1)<br \/>\n        same => n,noop(${CDR(dstchannel)})<br \/>\n        same => n,Set(ODBC_pesq_satisfacao()=${CALLERID(num)},${CDR(dstchannel)},${sol_atendida},${nota},${atendida})<br \/>\n        same => n,System(echo &#8221; &#8212;&#8212;&#8212;&#8211; Pesquisa de Satisfacao &#8212;&#8212;&#8212;&#8211; \\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 &#8211; Nao | 1 &#8211; Sim) \\n Nota do atendimento: ${nota}         :: (0 &#8211; Pessimo ate 5 &#8211; Excelente) \\n Precisou mais de um contato? ${atendida} :: (0 &#8211; Nao | 1 &#8211; Sim) \\n\\n by IPBX  \\n\\n  &#8212;&#8212;&#8212;&#8211; Pesquisa de Satisfacao &#8212;&#8212;&#8212;&#8211;&#8221; | \/bin\/mail -s &#8220;Pesquisa de Satisfacao HelpDesk&#8221;   -r origem@i-hunter.net  destino@provedor.net)<br \/>\n        same => n,playback(pesquisa\/obrigado)<br \/>\n        same => n,hangup()<\/p>\n<p>Obs: O par\u00e2metro cf envia automaticamente o cliente para a pesquisa quando o helpdesk realiza o hangup da chamada.<br \/>\n     Alem de disponibilizar no banco de dados para criar uma aplica\u00e7\u00e3o posteriormente, nada impede enviarmos os resultados por email (como feito na linha system).<\/p>\n<p><strong>No mysql:<\/strong><br \/>\n1 &#8211; Criar o database.<br \/>\n2 &#8211; Criar a tabela:<\/p>\n<p>CREATE TABLE IF NOT EXISTS `pesq_satisfacao` (<br \/>\n  `ID` int(11) NOT NULL AUTO_INCREMENT,<br \/>\n  `Calldate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,<br \/>\n  `Origem` varchar(20) NOT NULL,<br \/>\n  `Destino` varchar(20) NOT NULL,<br \/>\n  `Nota1` int(11) NOT NULL,<br \/>\n  `Nota2` int(11) DEFAULT NULL,<br \/>\n  `Nota3` int(11) DEFAULT NULL,<br \/>\n  PRIMARY KEY (`ID`)<br \/>\n) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=14 ;<\/p>\n<p>Vejamos a imagem abaixo na qual ilustra as conex\u00f5es para funcionamento da inser\u00e7\u00e3o de dados do dialplan no mysql.<\/p>\n<p>Observamos que no asterisk precisamos configurar o func_odbc.conf e res_odbc.conf e no linux \/etc\/odbc.ini<\/p>\n<p> <a href=\"http:\/\/blog.abratel.com.br\/wp-content\/uploads\/2014\/08\/ast2_1201.png\"><img loading=\"lazy\" src=\"http:\/\/blog.abratel.com.br\/wp-content\/uploads\/2014\/08\/ast2_1201-300x138.png\" alt=\"ast2_1201\" width=\"300\" height=\"138\" class=\"alignnone size-medium wp-image-706\" srcset=\"https:\/\/blog.abratel.com.br\/wp-content\/uploads\/2014\/08\/ast2_1201-300x138.png 300w, https:\/\/blog.abratel.com.br\/wp-content\/uploads\/2014\/08\/ast2_1201-600x277.png 600w, https:\/\/blog.abratel.com.br\/wp-content\/uploads\/2014\/08\/ast2_1201.png 725w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><strong>Dados inseridos no banco:<\/strong><br \/>\nmysql> select * from pesq_satisfacao;<br \/>\n+&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;-+&#8212;&#8212;-+&#8212;&#8212;-+<br \/>\n| ID | Calldate            | Origem     | Destino   | Nota1 | Nota2 | Nota3 |<br \/>\n+&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;-+&#8212;&#8212;-+&#8212;&#8212;-+<br \/>\n| 1 | 2014-08-19 17:12:47  | 3232893328 | 2198683214|     1 |     5 |     0 |<br \/>\n+&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;-+&#8212;&#8212;-+&#8212;&#8212;-+<br \/>\n rows in set (0.00 sec)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Uma pesquisa simples de ser feita com asterisk. Vamos utilizar odbc, mysql, asterisk, queues. N\u00e3o irei abordar detalhes de como criar contextos, queues, etc. Somente resumidamente as configura\u00e7\u00f5es. 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 ,&#8217;${VAL1}&#8217; ,&#8217;${VAL2}&#8217;,${VAL3},${VAL4},${VAL5});&#8230;<\/p>\n","protected":false},"author":1,"featured_media":710,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/posts\/705"}],"collection":[{"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=705"}],"version-history":[{"count":9,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/posts\/705\/revisions"}],"predecessor-version":[{"id":718,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/posts\/705\/revisions\/718"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/media\/710"}],"wp:attachment":[{"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=705"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=705"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=705"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}