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"><<a href="mailto:dlpazinatto@gmail.com">dlpazinatto@gmail.com</a>></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>
&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 = '${ORIGEM}');<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} > 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 => {<br>
&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("DGV/3",<br>
"externas|DGV/g2|8023") in new stack<br>
-- Executing [s@macro-externas:1] Set("DGV/3", "TERMINACAO=DGV/g2")<br>
in new stack<br>
-- Executing [s@macro-externas:2] Set("DGV/3", "DESTINO=8023") in<br>
new stack<br>
-- Executing [s@macro-externas:3] Set("DGV/3", "ORIGEM=4988178028")<br>
in new stack<br>
-- Executing [s@macro-externas:4] Macro("DGV/3",<br>
"proibidos|4988178028") in new stack<br>
-- Executing [s@macro-proibidos:1] Set("DGV/3", "ORIGEM=4988178028")<br>
in new stack<br>
-- Executing [s@macro-proibidos:2] MYSQL("DGV/3", "Connect connid<br>
localhost USUARIO SENHA proibidos") in new stack<br>
-- Executing [s@macro-proibidos:3] MYSQL("DGV/3", "Query resultid 1<br>
SELECT count(callerid) FROM telefones where callerid = '4988178028'") in<br>
new stack<br>
-- Executing [s@macro-proibidos:4] MYSQL("DGV/3", "Fetch fetchid 2<br>
ACHOU") in new stack<br>
-- Executing [s@macro-proibidos:5] MYSQL("DGV/3", "Clear 1") 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("DGV/3", "Clear 2") in new<br>
stack<br>
-- Executing [s@macro-proibidos:7] MYSQL("DGV/3", "Disconnect 1") in<br>
new stack<br>
-- Executing [s@macro-proibidos:8] MYSQL("DGV/3", "Clear 1") 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("DGV/3", "0?10:12") in new<br>
stack<br>
-- Goto (macro-proibidos,s,12)<br>
-- Executing [s@macro-proibidos:12] NoOp("DGV/3", "Finish<br>
if-proibidos-17") in new stack<br>
-- Executing [s@macro-proibidos:13] Return("DGV/3", "") 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 'DGV/3'<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><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 = '4988178028'<br>
38 Quit<br>
<br>
Resultado do mysql digitando o comando na linha:<br>
<br>
mysql> SELECT count(callerid) FROM telefones where callerid = '4988178028';<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("DGV/4",<br>
"externas|DGV/g2|8023") in new stack<br>
-- Executing [s@macro-externas:1] Set("DGV/4", "TERMINACAO=DGV/g2")<br>
in new stack<br>
-- Executing [s@macro-externas:2] Set("DGV/4", "DESTINO=8023") in<br>
new stack<br>
-- Executing [s@macro-externas:3] Set("DGV/4", "ORIGEM=4935223153")<br>
in new stack<br>
-- Executing [s@macro-externas:4] Macro("DGV/4",<br>
"proibidos|4935223153") in new stack<br>
-- Executing [s@macro-proibidos:1] Set("DGV/4", "ORIGEM=4935223153")<br>
in new stack<br>
-- Executing [s@macro-proibidos:2] MYSQL("DGV/4", "Connect connid<br>
localhost USUARIO SENHA proibidos") in new stack<br>
-- Executing [s@macro-proibidos:3] MYSQL("DGV/4", "Query resultid 1<br>
SELECT count(callerid) FROM telefones where callerid = '4935223153'") in<br>
new stack<br>
-- Executing [s@macro-proibidos:4] MYSQL("DGV/4", "Fetch fetchid 2<br>
ACHOU") in new stack<br>
-- Executing [s@macro-proibidos:5] MYSQL("DGV/4", "Clear 1") 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("DGV/4", "Clear 2") in new<br>
stack<br>
-- Executing [s@macro-proibidos:7] MYSQL("DGV/4", "Disconnect 1") in<br>
new stack<br>
-- Executing [s@macro-proibidos:8] MYSQL("DGV/4", "Clear 1") 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("DGV/4", "1?10:12") in new<br>
stack<br>
-- Goto (macro-proibidos,s,10)<br>
-- Executing [s@macro-proibidos:10] Playback("DGV/4", "invalid") in<br>
new stack<br>
-- <DGV/4> Playing 'invalid' (language 'pt_BR')<br>
Really destroying SIP dialog<br>
'<a href="mailto:77507726007f5dfd0c56def543dbafb9@192.168.1.254">77507726007f5dfd0c56def543dbafb9@192.168.1.254</a>' 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 'DGV/4'<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>
'<a href="mailto:00942c961a047f620d296f3311814433@192.168.1.254">00942c961a047f620d296f3311814433@192.168.1.254</a>' Method: OPTIONS<br>
gw-voz-coperio*CLI><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 = '4935223153'<br>
39 Quit<br>
<br>
<br>
Resultado do mysql digitando o comando na linha:<br>
<br>
mysql> SELECT count(callerid) FROM telefones where callerid = '4935223153';<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> 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> show tables;<br>
+---------------------+<br>
| Tables_in_proibidos |<br>
+---------------------+<br>
| telefones |<br>
+---------------------+<br>
1 row in set (0.00 sec)<br>
<br>
mysql> 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 &lt;-> 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>