Dilceu, são muitos números que você quer bloquear? Se não poderia fazer com o próprio DB do asterisk, acredito que será mais prático...<br><br><div class="gmail_quote">2009/11/26 Dilceu Pazinatto <span dir="ltr">&lt;<a href="mailto:dlpazinatto@gmail.com">dlpazinatto@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Olá Pessoal,<br>
<br>
Peço ajuda novamente para o meu problema com ação por numero de origem<br>
(${CALLERID(num)}). Estou fazendo uma consulta no mysql para ver se o<br>
numero existe ou não, se retornar 0, chamada deve entrar, se voltar<br>
diferente de 0, deve dar um playback e um hangup. Nos meus testes, que<br>
tem o numero na tabela (mysql retorna 1), da o playback e desliga<br>
normal, beleza. porém quando o numero não existe (mysql retorna 0), nao<br>
volta para fazer o dial para o dgv/g2. Abaixo o meu extensions.ael,<br>
saidas do CLI e retorno do mysql nos dois casos.<br>
<br>
Se alguém puder me dar uma dica de onde estou errado....<br>
<br>
Grato<br>
<br>
Dilceu<br>
<br>
<br>
<br>
Chamada de entrada pelo DGV/g1 para DGV/g2 contexto vem-pstn<br>
<br>
extensions.ael<br>
<br>
globals {<br>
        SAIDAE1=DGV;<br>
        GRUPO1=g1;<br>
        GRUPO2=g2;<br>
}<br>
<br>
macro externas (TERMINACAO, DESTINO) {<br>
        Set(ORIGEM=${CALLERID(num)});<br>
        &amp;proibidos (${ORIGEM});<br>
        Dial(${TERMINACAO}${DESTINO},,tT);<br>
        Return;<br>
<br>
}<br>
<br>
macro proibidos (ORIGEM) {<br>
<br>
        MYSQL (Connect connid localhost USUARIO SENHA proibidos);<br>
        MYSQL (Query resultid ${connid} SELECT count(callerid) FROM<br>
telefones where callerid = &#39;${ORIGEM}&#39;);<br>
        MYSQL (Fetch fetchid ${resultid} ACHOU);<br>
        MYSQL (Clear ${fetchid});<br>
        MYSQL (Clear ${resultid});<br>
        MYSQL (Disconnect ${connid});<br>
        MYSQL (Clear ${connid});<br>
                if (${ACHOU} &gt; 0) {<br>
                        PlayBack (invalid);<br>
                        HangUp;<br>
                }<br>
              Return;<br>
}<br>
<br>
<br>
<br>
context vem-pstn {<br>
        includes {<br>
                parkedcalls;<br>
        }<br>
<br>
        _80XX =&gt; {<br>
                &amp;externas(${SAIDAE1}/${GRUPO2},${EXTEN});<br>
                HangUp;<br>
        }<br>
}<br>
<br>
<br>
SAIDAS DE CONSOLE<br>
<br>
<br>
CHAMADA COM ORIGEM DE UM NUMERO QUE DEVE SER PERMITIDO. (4988178028)<br>
<br>
<br>
    -- Ringing on port 3 - callstate=0<br>
    -- Answering port 3<br>
    -- Executing [8023@vem-pstn:1] Macro(&quot;DGV/3&quot;,<br>
&quot;externas|DGV/g2|8023&quot;) in new stack<br>
    -- Executing [s@macro-externas:1] Set(&quot;DGV/3&quot;, &quot;TERMINACAO=DGV/g2&quot;)<br>
in new stack<br>
    -- Executing [s@macro-externas:2] Set(&quot;DGV/3&quot;, &quot;DESTINO=8023&quot;) in<br>
new stack<br>
    -- Executing [s@macro-externas:3] Set(&quot;DGV/3&quot;, &quot;ORIGEM=4988178028&quot;)<br>
in new stack<br>
    -- Executing [s@macro-externas:4] Macro(&quot;DGV/3&quot;,<br>
&quot;proibidos|4988178028&quot;) in new stack<br>
    -- Executing [s@macro-proibidos:1] Set(&quot;DGV/3&quot;, &quot;ORIGEM=4988178028&quot;)<br>
in new stack<br>
    -- Executing [s@macro-proibidos:2] MYSQL(&quot;DGV/3&quot;, &quot;Connect connid<br>
localhost USUARIO SENHA proibidos&quot;) in new stack<br>
    -- Executing [s@macro-proibidos:3] MYSQL(&quot;DGV/3&quot;, &quot;Query resultid 1<br>
SELECT count(callerid) FROM telefones where callerid = &#39;4988178028&#39;&quot;) in<br>
new stack<br>
    -- Executing [s@macro-proibidos:4] MYSQL(&quot;DGV/3&quot;, &quot;Fetch fetchid 2<br>
ACHOU&quot;) in new stack<br>
    -- Executing [s@macro-proibidos:5] MYSQL(&quot;DGV/3&quot;, &quot;Clear 1&quot;) in new<br>
stack<br>
[Nov 26 00:08:43] WARNING[19579]: app_addon_sql_mysql.c:180<br>
find_identifier: Identifier 1, identifier_type 2 not found in identifier<br>
list<br>
[Nov 26 00:08:43] WARNING[19579]: app_addon_sql_mysql.c:420<br>
aMYSQL_clear: Invalid result identifier 1 passed in aMYSQL_clear<br>
    -- Executing [s@macro-proibidos:6] MYSQL(&quot;DGV/3&quot;, &quot;Clear 2&quot;) in new<br>
stack<br>
    -- Executing [s@macro-proibidos:7] MYSQL(&quot;DGV/3&quot;, &quot;Disconnect 1&quot;) in<br>
new stack<br>
    -- Executing [s@macro-proibidos:8] MYSQL(&quot;DGV/3&quot;, &quot;Clear 1&quot;) in new<br>
stack<br>
[Nov 26 00:08:43] WARNING[19579]: app_addon_sql_mysql.c:180<br>
find_identifier: Identifier 1, identifier_type 2 not found in identifier<br>
list<br>
[Nov 26 00:08:43] WARNING[19579]: app_addon_sql_mysql.c:420<br>
aMYSQL_clear: Invalid result identifier 1 passed in aMYSQL_clear<br>
    -- Executing [s@macro-proibidos:9] GotoIf(&quot;DGV/3&quot;, &quot;0?10:12&quot;) in new<br>
stack<br>
    -- Goto (macro-proibidos,s,12)<br>
    -- Executing [s@macro-proibidos:12] NoOp(&quot;DGV/3&quot;, &quot;Finish<br>
if-proibidos-17&quot;) in new stack<br>
    -- Executing [s@macro-proibidos:13] Return(&quot;DGV/3&quot;, &quot;&quot;) in new stack<br>
[Nov 26 00:08:43] ERROR[19579]: app_stack.c:86 return_exec: Return<br>
without Gosub: stack is empty<br>
  == Spawn extension (vem-pstn, 8023, 1) exited non-zero on &#39;DGV/3&#39;<br>
[Nov 26 00:08:43] NOTICE[19579]: chan_dgv.c:14951 dgv_hangup: Calling<br>
dg_HangUp on port 3<br>
gw-voz-coperio*CLI&gt;<br>
<br>
SAIDA CONSOLE MYSQL<br>
091126 00:08:42      38 Connect     root@localhost on proibidos<br>
                     38 Query       SELECT count(callerid) FROM<br>
telefones where callerid = &#39;4988178028&#39;<br>
                     38 Quit<br>
<br>
Resultado do mysql digitando o comando na linha:<br>
<br>
mysql&gt;  SELECT count(callerid) FROM telefones where callerid = &#39;4988178028&#39;;<br>
+-----------------+<br>
| count(callerid) |<br>
+-----------------+<br>
|               0 |<br>
+-----------------+<br>
1 row in set (0.00 sec)<br>
<br>
<br>
<br>
<br>
<br>
CHAMADA DE UM NUMERO QUE DEVE SER NEGADO<br>
<br>
 -- Ringing on port 4 - callstate=0<br>
    -- Answering port 4<br>
    -- Executing [8023@vem-pstn:1] Macro(&quot;DGV/4&quot;,<br>
&quot;externas|DGV/g2|8023&quot;) in new stack<br>
    -- Executing [s@macro-externas:1] Set(&quot;DGV/4&quot;, &quot;TERMINACAO=DGV/g2&quot;)<br>
in new stack<br>
    -- Executing [s@macro-externas:2] Set(&quot;DGV/4&quot;, &quot;DESTINO=8023&quot;) in<br>
new stack<br>
    -- Executing [s@macro-externas:3] Set(&quot;DGV/4&quot;, &quot;ORIGEM=4935223153&quot;)<br>
in new stack<br>
    -- Executing [s@macro-externas:4] Macro(&quot;DGV/4&quot;,<br>
&quot;proibidos|4935223153&quot;) in new stack<br>
    -- Executing [s@macro-proibidos:1] Set(&quot;DGV/4&quot;, &quot;ORIGEM=4935223153&quot;)<br>
in new stack<br>
    -- Executing [s@macro-proibidos:2] MYSQL(&quot;DGV/4&quot;, &quot;Connect connid<br>
localhost USUARIO SENHA proibidos&quot;) in new stack<br>
    -- Executing [s@macro-proibidos:3] MYSQL(&quot;DGV/4&quot;, &quot;Query resultid 1<br>
SELECT count(callerid) FROM telefones where callerid = &#39;4935223153&#39;&quot;) in<br>
new stack<br>
    -- Executing [s@macro-proibidos:4] MYSQL(&quot;DGV/4&quot;, &quot;Fetch fetchid 2<br>
ACHOU&quot;) in new stack<br>
    -- Executing [s@macro-proibidos:5] MYSQL(&quot;DGV/4&quot;, &quot;Clear 1&quot;) in new<br>
stack<br>
[Nov 26 00:10:11] WARNING[19595]: app_addon_sql_mysql.c:180<br>
find_identifier: Identifier 1, identifier_type 2 not found in identifier<br>
list<br>
[Nov 26 00:10:11] WARNING[19595]: app_addon_sql_mysql.c:420<br>
aMYSQL_clear: Invalid result identifier 1 passed in aMYSQL_clear<br>
    -- Executing [s@macro-proibidos:6] MYSQL(&quot;DGV/4&quot;, &quot;Clear 2&quot;) in new<br>
stack<br>
    -- Executing [s@macro-proibidos:7] MYSQL(&quot;DGV/4&quot;, &quot;Disconnect 1&quot;) in<br>
new stack<br>
    -- Executing [s@macro-proibidos:8] MYSQL(&quot;DGV/4&quot;, &quot;Clear 1&quot;) in new<br>
stack<br>
[Nov 26 00:10:11] WARNING[19595]: app_addon_sql_mysql.c:180<br>
find_identifier: Identifier 1, identifier_type 2 not found in identifier<br>
list<br>
[Nov 26 00:10:11] WARNING[19595]: app_addon_sql_mysql.c:420<br>
aMYSQL_clear: Invalid result identifier 1 passed in aMYSQL_clear<br>
    -- Executing [s@macro-proibidos:9] GotoIf(&quot;DGV/4&quot;, &quot;1?10:12&quot;) in new<br>
stack<br>
    -- Goto (macro-proibidos,s,10)<br>
    -- Executing [s@macro-proibidos:10] Playback(&quot;DGV/4&quot;, &quot;invalid&quot;) in<br>
new stack<br>
    -- &lt;DGV/4&gt; Playing &#39;invalid&#39; (language &#39;pt_BR&#39;)<br>
Really destroying SIP dialog<br>
&#39;<a href="mailto:77507726007f5dfd0c56def543dbafb9@192.168.1.254">77507726007f5dfd0c56def543dbafb9@192.168.1.254</a>&#39; Method: OPTIONS<br>
[Nov 26 00:10:12] NOTICE[2768]: chan_dgv.c:11956 event_handler:<br>
dialplan_echo_thread Created(3) - port 4<br>
  == Spawn extension (vem-pstn, 8023, 1) exited non-zero on &#39;DGV/4&#39;<br>
[Nov 26 00:10:14] NOTICE[19595]: chan_dgv.c:14951 dgv_hangup: Calling<br>
dg_HangUp on port 4<br>
Really destroying SIP dialog<br>
&#39;<a href="mailto:00942c961a047f620d296f3311814433@192.168.1.254">00942c961a047f620d296f3311814433@192.168.1.254</a>&#39; Method: OPTIONS<br>
gw-voz-coperio*CLI&gt;<br>
<br>
SAIDA CONSOLE MYSQL<br>
091126 00:10:14      39 Connect     root@localhost on proibidos<br>
                     39 Query       SELECT count(callerid) FROM<br>
telefones where callerid = &#39;4935223153&#39;<br>
             39 Quit<br>
<br>
<br>
Resultado do mysql digitando o comando na linha:<br>
<br>
mysql&gt;  SELECT count(callerid) FROM telefones where callerid = &#39;4935223153&#39;;<br>
+-----------------+<br>
| count(callerid) |<br>
+-----------------+<br>
|               1 |<br>
+-----------------+<br>
1 row in set (0.00 sec)<br>
<br>
Estrutura da  tabela proibidos:<br>
<br>
mysql&gt; use proibidos;<br>
Reading table information for completion of table and column names<br>
You can turn off this feature to get a quicker startup with -A<br>
<br>
Database changed<br>
mysql&gt; show tables;<br>
+---------------------+<br>
| Tables_in_proibidos |<br>
+---------------------+<br>
| telefones           |<br>
+---------------------+<br>
1 row in set (0.00 sec)<br>
<br>
mysql&gt; desc telefones;<br>
+----------+-------------+------+-----+---------+----------------+<br>
| Field    | Type        | Null | Key | Default | Extra          |<br>
+----------+-------------+------+-----+---------+----------------+<br>
| id       | int(11)     | NO   | PRI | NULL    | auto_increment |<br>
| callerid | varchar(20) | NO   |     | NULL    |                |<br>
+----------+-------------+------+-----+---------+----------------+<br>
2 rows in set (0.00 sec)<br>
<br>
<br>
<br>
_______________________________________________<br>
A Redfone é líder no fornecimento de bridges TDMoE &amp;lt;-&gt; E1<br>
- Valor similar ao de placas E1 PCI;<br>
- Não há problemas de compatibilidade com barramento PCI;<br>
- Possibilitam a construção de soluções de alta disponibilidade(dois<br>
servidores compartilham o mesmo E1)<br>
Conheça mais sobre este produto em <a href="http://www.red-fone.com" target="_blank">www.red-fone.com</a><br>
_______________________________________________<br>
Lista de discussões AsteriskBrasil.org<br>
<a href="mailto:AsteriskBrasil@listas.asteriskbrasil.org">AsteriskBrasil@listas.asteriskbrasil.org</a><br>
<a href="http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil" target="_blank">http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil</a><br>
</blockquote></div><br><br clear="all"><br>-- <br>Rodrigo F. Lang<br>Amd. de Redes em Telecom<br>