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 &quot;dst&quot;:<br>
            $filter_field = &quot;dst&quot;;<br>            $nameFilterField = _tr(&quot;Destination&quot;);<br>            break;<br><span style="color:rgb(255,0,0)">        case &quot;dstcall&quot;:<br>            $filter_field = &quot;dstcall&quot;;<br>
            $nameFilterField = _tr(&quot;CallCenter-Dst&quot;);<br>            break;<br>        case &quot;agent&quot;:<br>            $filter_field = &quot;agent&quot;;<br>            $nameFilterField = _tr(&quot;CallCenter-Agent&quot;);<br>
            break;</span><br>        case &quot;userfield&quot;:<br>            $filter_field = &quot;userfield&quot;;<br>            $nameFilterField = _tr(&quot;Type&quot;);<br>            break;<br>        default:<br>
            $filter_field = &quot;src&quot;;<br>            $nameFilterField = _tr(&quot;Source&quot;);<br>            break;<br>    }</font><br><br> // Aprox linha 570<br><font size="1"> $arrFilter = array(<br>            &quot;src&quot;       =&gt; _tr(&quot;Source&quot;),<br>
            &quot;dst&quot;       =&gt; _tr(&quot;Destination&quot;), // Filtra destino tanto do callcenter quanto das chamadas de ramal<br>            &quot;agent&quot;     =&gt; _tr(&quot;Agente&quot;), // Adicionei filtro por Agente. <br>
            &quot;userfield&quot; =&gt; _tr(&quot;Type&quot;),<br>             );</font><br><br><br>No arquivo paloSantoMonitoring.class.php, altere as duas funções &quot;getMonitoring&quot; e &quot;getNumMonitoring&quot;, 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 = &quot;&quot;;<br>        $arrParam = array();<br>        if(isset($filter_field) &amp; $filter_field !=&quot;&quot;){<br>
            if($filter_field == &quot;userfield&quot;){<br>                $in_val = strtolower($filter_value);<br>                switch($in_val){<br>                    case &quot;outgoing&quot;:<br>                        $where = &quot; AND (userfield like &#39;audio:O%&#39; OR userfield like &#39;audio:/var/spool/asterisk/monitor/O%&#39;) &quot;;<br>
                        break;<br>                    case &quot;group&quot;:<br>                        $where = &quot; AND (userfield like &#39;audio:g%&#39; OR userfield like &#39;audio:/var/spool/asterisk/monitor/g%&#39;) &quot;;<br>
                        break;<br>                    case &quot;queue&quot;:<br>                        $where = &quot; AND (userfield like &#39;audio:q%&#39; OR userfield like &#39;audio:/var/spool/asterisk/monitor/q%&#39;) &quot;;<br>
                        break;<br>                    default :<br>                        $where = &quot; AND userfield REGEXP &#39;[[:&lt;:]]audio:[0-9]&#39; &quot;;<br>                        break;<br>                }<br>
            }else{<br><br>                $arrParam[] = &quot;$filter_value%&quot;;<br><br><span style="color:rgb(255,0,0)">                if( $filter_field == &#39;agent&#39; ){<br>                        $where = &quot; AND a.number like ? AND userfield LIKE &#39;audio:%&#39; &quot;;<br>
                }else if( $filter_field == &#39;dstcall&#39; ){<br>                        $where = &quot; AND cc.phone like ? AND userfield LIKE &#39;audio:%&#39; &quot;;<br>                }else{<br>                        $where = &quot; AND $filter_field like ? AND userfield LIKE &#39;audio:%&#39; &quot;;<br>
                }</span><br><br>            }<br>         }<br><br><br>        if((isset($date_initial) &amp; $date_initial !=&quot;&quot;) &amp;&amp; (isset($date_final) &amp; $date_final !=&quot;&quot;)){<br>            $arrParam[] = $date_initial;<br>
            $arrParam[] = $date_final;<br>            $where .= &quot; AND (calldate &gt;= ? AND calldate &lt;= ?) &quot;;<br>        }else{<br>            $date_initial = date(&#39;Y-m-d&#39;).&quot; 00:00:00&quot;;<br>            $date_final   = date(&#39;Y-m-d&#39;).&quot; 23:59:59&quot;;<br>
            $arrParam[] = $date_initial;<br>            $arrParam[] = $date_final;<br>            $where .= &quot; AND (calldate &gt;= ? AND calldate &lt;= ?) &quot;;<br>        }<br><br>        if(isset($extension) &amp; $extension !=&quot;&quot;){<br>
            $arrParam[] = $extension;<br>            $arrParam[] = $extension;<br>            $where .= &quot; AND (src=? OR dst=? ) &quot;;<br>        }<br><br>        $arrParam[] = $limit;<br>        $arrParam[] = $offset;<br>
        $query   = &quot;<span style="color:rgb(255,0,0)">SELECT c.calldate,<br>                        c.clid,<br>                        IF( cc.phone IS NULL,c.src,CONCAT(&#39;Agent/&#39;,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 &lt;&gt; &#39;&#39; $where ORDER BY c.uniqueid DESC LIMIT ? OFFSET ?&quot;;<br><br><br>        $result=$this-&gt;_DB-&gt;fetchTable($query, true, $arrParam);<br><br>        if($result==FALSE){<br>
            $this-&gt;errMsg = $this-&gt;_DB-&gt;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 = &quot;&quot;;<br>        $arrParam = array();<br>        if(isset($filter_field) &amp;&amp; $filter_field !=&quot;&quot; &amp;&amp; isset($filter_value) &amp;&amp; $filter_value !=&quot;&quot;){<br>
            if($filter_field == &quot;userfield&quot;){<br>                $in_val = strtolower($filter_value);<br>                switch($in_val){<br>                    case &quot;outgoing&quot;:<br>                        $where = &quot; AND (userfield like &#39;audio:O%&#39; OR userfield like &#39;audio:/var/spool/asterisk/monitor/O%&#39;) &quot;;<br>
                        break;<br>                    case &quot;group&quot;:<br>                        $where = &quot; AND (userfield like &#39;audio:g%&#39; OR userfield like &#39;audio:/var/spool/asterisk/monitor/g%&#39;) &quot;;<br>
                        break;<br>                    case &quot;queue&quot;:<br>                        $where = &quot; AND (userfield like &#39;audio:q%&#39; OR userfield like &#39;audio:/var/spool/asterisk/monitor/q%&#39;) &quot;;<br>
                        break;<br>                    default :<br>                        $where = &quot; AND userfield REGEXP &#39;[[:&lt;:]]audio:[0-9]&#39; &quot;;<br>                        break;<br>                }<br>
            }else{<br>                $arrParam[] = &quot;$filter_value%&quot;;<br><br><span style="color:rgb(255,0,0)"><br>                if( $filter_field == &#39;agent&#39; ){<br>                        $where = &quot; AND a.number like ? AND userfield LIKE &#39;audio:%&#39; &quot;;<br>
                }else if( $filter_field == &#39;dstcall&#39; ){<br>                        $where = &quot; AND cc.phone like ? AND userfield LIKE &#39;audio:%&#39; &quot;;<br>                }else{<br>                        $where = &quot; AND $filter_field like ? AND userfield LIKE &#39;audio:%&#39; &quot;;<br>
                }<br></span><br>            }<br>         }<br><br>        if((isset($date_initial) &amp; $date_initial !=&quot;&quot;) &amp;&amp; (isset($date_final) &amp; $date_final !=&quot;&quot;)){<br>            $arrParam[] = $date_initial;<br>
            $arrParam[] = $date_final;<br>            $where .= &quot; AND (c.calldate &gt;= ? AND c.calldate &lt;= ?) &quot;;<br><br>        }else{<br>            $date_initial = date(&#39;Y-m-d&#39;).&quot; 00:00:00&quot;;<br>
            $date_final   = date(&#39;Y-m-d&#39;).&quot; 23:59:59&quot;;<br>            $arrParam[] = $date_initial;<br>            $arrParam[] = $date_final;<br>            $where .= &quot; AND (c.calldate &gt;= ? AND c.calldate &lt;= ?) &quot;;<br>
        }<br><br>        if(isset($extension) &amp; $extension !=&quot;&quot;){<br>            $arrParam[] = $extension;<br>            $arrParam[] = $extension;<br>            $where .= &quot; AND (c.src=? OR c.dst=?)&quot;;<br>
        }<br><br>        $query   = &quot;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 &lt;&gt; &#39;&#39; $where&quot;;<br><br>        $result=$this-&gt;_DB-&gt;getFirstRowQuery($query,false,$arrParam);<br><br>        if($result==FALSE){<br>            $this-&gt;errMsg = $this-&gt;_DB-&gt;errMsg;<br>
            return 0;<br>        }<br>        return $result[0];<br>    }<br></font><br><br>** É bom criar indices no campo &quot;uniqueid&quot; 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">&lt;<a href="mailto:danilo.almeida@g1telecom.com.br" target="_blank">danilo.almeida@g1telecom.com.br</a>&gt;</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 &quot;discador&quot;.<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>