<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta name=Generator content="Microsoft Word 12 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EstiloDeEmail17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 3.0cm 70.85pt 3.0cm;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=PT-BR link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Roger<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Não consegui realizar algumas alterações de acordo como te passei no e-mail, porém, quando voltei os 2 arquivos que havia feito backup, não estou conseguindo fazer download das gravações que caem na fila, elas armazenam no banco mais não consigo realizar o download, da que o arquivo não existe.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>url que aparece: <a href="https://IP_SERVIDOR/index.php?menu=monitoring&action=download&id=1354299076.11971&rawmode=yes">https://IP_SERVIDOR/index.php?menu=monitoring&action=download&id=1354299076.11971&rawmode=yes</a><o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>o que será que fiz de errado pra acontecer isso?<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>obrigado<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><b><span style='font-size:11.0pt;font-family:"Tahoma","sans-serif";color:#000066'>att<o:p></o:p></span></b></p><p class=MsoNormal><b><span style='font-size:11.0pt;font-family:"Tahoma","sans-serif";color:#000066'><o:p> </o:p></span></b></p><p class=MsoNormal><b><span style='font-size:11.0pt;font-family:"Tahoma","sans-serif";color:#000066'>Danilo Ricardo de Almeida</span></b><b><span style='font-family:"Tahoma","sans-serif";color:#000066'><o:p></o:p></span></b></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>De:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> asteriskbrasil-bounces@listas.asteriskbrasil.org [mailto:asteriskbrasil-bounces@listas.asteriskbrasil.org] <b>Em nome de </b>Roger Pitigliani<br><b>Enviada em:</b> Thursday, November 29, 2012 11:25 PM<br><b>Para:</b> asteriskbrasil@listas.asteriskbrasil.org<br><b>Cc:</b> elastixbrasil@googlegroups.com<br><b>Assunto:</b> Re: [AsteriskBrasil] monitoring preditivo elastix<o:p></o:p></span></p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='margin-bottom:12.0pt'>Boa Noite Danilo..<br><br>É possível sim.. <br>Não é a melhor forma, mas aí vai ela.. ( Testei aqui em um Elastix 2.3 )<br><br>Você terá que alterar dois arquivos, são eles:<br><span style='color:red'>/var/www/html/modules/monitoring/index.php<br>/var/www/html/modules/monitoring/libs/paloSantoMonitoring.class.php</span><br><br>Fazendo as alterações, você poderá filtrar por Agente e por Numero discado. Note que as alterações<br>são para que funcione com callcenter ativo (discador), o recpetivo não. Teriam que haver mais mudanças para isso.<br><br>Vamos lá...<br>No index.php é para ajustar os campos de filtro, encontre os blocos de codigos e deixe-os da seguinte maneira:<br><br> // Aprox linha 110 <br><span style='font-size:7.5pt'> switch($filter_field){<br> case "dst":<br> $filter_field = "dst";<br> $nameFilterField = _tr("Destination");<br> break;<br><span style='color:red'> case "dstcall":<br> $filter_field = "dstcall";<br> $nameFilterField = _tr("CallCenter-Dst");<br> break;<br> case "agent":<br> $filter_field = "agent";<br> $nameFilterField = _tr("CallCenter-Agent");<br> break;</span><br> case "userfield":<br> $filter_field = "userfield";<br> $nameFilterField = _tr("Type");<br> break;<br> default:<br> $filter_field = "src";<br> $nameFilterField = _tr("Source");<br> break;<br> }</span><br><br> // Aprox linha 570<br><span style='font-size:7.5pt'> $arrFilter = array(<br> "src" => _tr("Source"),<br> "dst" => _tr("Destination"), // Filtra destino tanto do callcenter quanto das chamadas de ramal<br> "agent" => _tr("Agente"), // Adicionei filtro por Agente. <br> "userfield" => _tr("Type"),<br> );</span><br><br><br>No arquivo paloSantoMonitoring.class.php, altere as duas funções "getMonitoring" e "getNumMonitoring", segue como ficam:<br><br><br><br><span style='font-size:7.5pt'> function getMonitoring($limit, $offset, $filter_field, $filter_value, $extension, $date_initial, $date_final)<br> {<br> $where = "";<br> $arrParam = array();<br> if(isset($filter_field) & $filter_field !=""){<br> if($filter_field == "userfield"){<br> $in_val = strtolower($filter_value);<br> switch($in_val){<br> case "outgoing":<br> $where = " AND (userfield like 'audio:O%' OR userfield like 'audio:/var/spool/asterisk/monitor/O%') ";<br> break;<br> case "group":<br> $where = " AND (userfield like 'audio:g%' OR userfield like 'audio:/var/spool/asterisk/monitor/g%') ";<br> break;<br> case "queue":<br> $where = " AND (userfield like 'audio:q%' OR userfield like 'audio:/var/spool/asterisk/monitor/q%') ";<br> break;<br> default :<br> $where = " AND userfield REGEXP '[[:<:]]audio:[0-9]' ";<br> break;<br> }<br> }else{<br><br> $arrParam[] = "$filter_value%";<br><br><span style='color:red'> if( $filter_field == 'agent' ){<br> $where = " AND a.number like ? AND userfield LIKE 'audio:%' ";<br> }else if( $filter_field == 'dstcall' ){<br> $where = " AND cc.phone like ? AND userfield LIKE 'audio:%' ";<br> }else{<br> $where = " AND $filter_field like ? AND userfield LIKE 'audio:%' ";<br> }</span><br><br> }<br> }<br><br><br> if((isset($date_initial) & $date_initial !="") && (isset($date_final) & $date_final !="")){<br> $arrParam[] = $date_initial;<br> $arrParam[] = $date_final;<br> $where .= " AND (calldate >= ? AND calldate <= ?) ";<br> }else{<br> $date_initial = date('Y-m-d')." 00:00:00";<br> $date_final = date('Y-m-d')." 23:59:59";<br> $arrParam[] = $date_initial;<br> $arrParam[] = $date_final;<br> $where .= " AND (calldate >= ? AND calldate <= ?) ";<br> }<br><br> if(isset($extension) & $extension !=""){<br> $arrParam[] = $extension;<br> $arrParam[] = $extension;<br> $where .= " AND (src=? OR dst=? ) ";<br> }<br><br> $arrParam[] = $limit;<br> $arrParam[] = $offset;<br> $query = "<span style='color:red'>SELECT c.calldate,<br> c.clid,<br> IF( cc.phone IS NULL,c.src,CONCAT('Agent/',a.number)) as src,<br> IF( cc.phone IS NULL,c.dst,cc.phone) as dst,<br> c.dcontext,<br> c.channel,<br> c.dstchannel,<br> c.lastapp,<br> c.lastdata,<br> c.duration,<br> c.billsec,<br> c.disposition,<br> c.amaflags,<br> c.accountcode,<br> c.uniqueid,<br> c.userfield<br> FROM asteriskcdrdb.cdr c</span><br><span style='color:red'> LEFT JOIN call_center.calls cc ON ( c.uniqueid = cc.uniqueid )<br> LEFT JOIN call_center.agent a ON ( cc.id_agent = <a href="http://a.id">a.id</a> )</span><br> WHERE c.userfield <> '' $where ORDER BY c.uniqueid DESC LIMIT ? OFFSET ?";<br><br><br> $result=$this->_DB->fetchTable($query, true, $arrParam);<br><br> if($result==FALSE){<br> $this->errMsg = $this->_DB->errMsg;<br> return array();<br> }<br><br> return $result;<br> }</span><br><br>// ------<br><br><span style='font-size:7.5pt'> function getNumMonitoring($filter_field, $filter_value, $extension, $date_initial, $date_final)<br> {<br> $where = "";<br> $arrParam = array();<br> if(isset($filter_field) && $filter_field !="" && isset($filter_value) && $filter_value !=""){<br> if($filter_field == "userfield"){<br> $in_val = strtolower($filter_value);<br> switch($in_val){<br> case "outgoing":<br> $where = " AND (userfield like 'audio:O%' OR userfield like 'audio:/var/spool/asterisk/monitor/O%') ";<br> break;<br> case "group":<br> $where = " AND (userfield like 'audio:g%' OR userfield like 'audio:/var/spool/asterisk/monitor/g%') ";<br> break;<br> case "queue":<br> $where = " AND (userfield like 'audio:q%' OR userfield like 'audio:/var/spool/asterisk/monitor/q%') ";<br> break;<br> default :<br> $where = " AND userfield REGEXP '[[:<:]]audio:[0-9]' ";<br> break;<br> }<br> }else{<br> $arrParam[] = "$filter_value%";<br><br><span style='color:red'><br> if( $filter_field == 'agent' ){<br> $where = " AND a.number like ? AND userfield LIKE 'audio:%' ";<br> }else if( $filter_field == 'dstcall' ){<br> $where = " AND cc.phone like ? AND userfield LIKE 'audio:%' ";<br> }else{<br> $where = " AND $filter_field like ? AND userfield LIKE 'audio:%' ";<br> }<br></span><br> }<br> }<br><br> if((isset($date_initial) & $date_initial !="") && (isset($date_final) & $date_final !="")){<br> $arrParam[] = $date_initial;<br> $arrParam[] = $date_final;<br> $where .= " AND (c.calldate >= ? AND c.calldate <= ?) ";<br><br> }else{<br> $date_initial = date('Y-m-d')." 00:00:00";<br> $date_final = date('Y-m-d')." 23:59:59";<br> $arrParam[] = $date_initial;<br> $arrParam[] = $date_final;<br> $where .= " AND (c.calldate >= ? AND c.calldate <= ?) ";<br> }<br><br> if(isset($extension) & $extension !=""){<br> $arrParam[] = $extension;<br> $arrParam[] = $extension;<br> $where .= " AND (c.src=? OR c.dst=?)";<br> }<br><br> $query = "SELECT COUNT(*) FROM asteriskcdrdb.cdr c<br><span style='color:red'> LEFT JOIN call_center.calls cc ON ( c.uniqueid = cc.uniqueid )<br> LEFT JOIN call_center.agent a ON ( cc.id_agent = <a href="http://a.id">a.id</a> )</span><br> WHERE userfield <> '' $where";<br><br> $result=$this->_DB->getFirstRowQuery($query,false,$arrParam);<br><br> if($result==FALSE){<br> $this->errMsg = $this->_DB->errMsg;<br> return 0;<br> }<br> return $result[0];<br> }<br></span><br><br>** É bom criar indices no campo "uniqueid" das tabelas do mysql.<br>ALTER TABLE `call_center`.`calls` ADD INDEX `idx_uniqueid`(`uniqueid`);<br><br><br>Espero ter ajudado..<br>Abraço.<br><br><br><br><br><br><o:p></o:p></p><div><p class=MsoNormal>Em 29 de novembro de 2012 21:22, <<a href="mailto:danilo.almeida@g1telecom.com.br" target="_blank">danilo.almeida@g1telecom.com.br</a>> escreveu:<o:p></o:p></p><p class=MsoNormal>Bom...<br><br>Havia perguntado essa semana como fazer para que no monitoring do<br>elastix, quando uma chamada saísse pelo discador automático do call<br>Center, em vez de binar o meu numero de saída, queria que binasse o<br>numero que esta sendo discado pelo "discador".<br>Segui um tutorial sugerido por um amigo aqui da lista e escrito pelo<br>Alberto Sato, porém, no monitoring, ele somente duplica a coluna<br>source e não me resolveu o problema.<br><br>Observei diretamente no banco de dados e vi que ele não armazena o<br>numero discado pelo campanha na tabela cdr, mais armazena na tabela<br>calls do banco de dados call_center.<br><br>Será que tem como eu puxar essa coluna no monitoring? Se sim, alguém<br>pode me dar uma luz de quais arquivos da interface devo alterar<br>(principalmente os de conexão com o banco)?<br><br>Desde já agradeço quem puder me ajudar<br><br>Att<br>Danilo Almeida<br><br><br>_______________________________________________<br>KHOMP Inovação: External Board Series<br>Módulos de 1/2 rack e 1U para todas as interfaces e soluções Asterisk e FreeSWITCH.<br>Tenha a External Series Experience na sua aplicação. Visite <a href="http://www.khomp.com" target="_blank">www.khomp.com</a><br>_______________________________________________<br>DIGIVOICE Fabricante de Placas de Voz e Channel Bank<br>20 anos de experiência com E1(R2/ISDN), FXS, FXO e GSM<br>Centro Treinamento - Curso de PABX IP - Asterisk - Site <a href="http://www.digivoice.com.br" target="_blank">www.digivoice.com.br</a><br>________<br>YEALINK: Telefones IP e VídeoPhones IP com o melhor custo/benefício do mercado.<br>email: <a href="mailto:yealink@commlogik.com.br">yealink@commlogik.com.br</a> | <a href="http://www.commlogik.com.br" target="_blank">www.commlogik.com.br</a> | <a href="tel:%2811%29%205503-1011">(11) 5503-1011</a><br>______________________________________________<br>Para remover seu email desta lista, basta enviar um email em branco para <a href="mailto:asteriskbrasil-unsubscribe@listas.asteriskbrasil.org">asteriskbrasil-unsubscribe@listas.asteriskbrasil.org</a><o:p></o:p></p></div><p class=MsoNormal style='margin-bottom:12.0pt'><br><br clear=all><br>-- <br>--<br>Roger Pitigliani<br><a href="mailto:rogerwinter@gmail.com" target="_blank">rogerwinter@gmail.com</a><br>Skype: roger.pitigliani<o:p></o:p></p></div></body></html>