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:rgb(255,0,0)">/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><font size="1"> switch($filter_field){<br> case "dst":<br>
$filter_field = "dst";<br> $nameFilterField = _tr("Destination");<br> break;<br><span style="color:rgb(255,0,0)"> 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> }</font><br><br> // Aprox linha 570<br><font size="1"> $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> );</font><br><br><br>No arquivo paloSantoMonitoring.class.php, altere as duas funções "getMonitoring" e "getNumMonitoring", segue como ficam:<br>
<br><br><br><font size="1"> 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:rgb(255,0,0)"> 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:rgb(255,0,0)">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:rgb(255,0,0)"> 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> }</font><br><br>// ------<br><br><font size="1"> 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:rgb(255,0,0)"><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:rgb(255,0,0)"> 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></font><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><br><div class="gmail_quote">Em 29 de novembro de 2012 21:22, <span dir="ltr"><<a href="mailto:danilo.almeida@g1telecom.com.br" target="_blank">danilo.almeida@g1telecom.com.br</a>></span> escreveu:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">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" value="+551155031011">(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><br>
</blockquote></div><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<br>
<br>