<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
<title></title>
</head>
<body text="#000000" bgcolor="#ffffff">
Ta ai amigo.<br>
<br>
Bom, pelo que eu fiz de testes, o serviço da telein da uma
facilidade enorme pra gente, (e bem menas linhas no extensions.conf
rsrs), me parece ser muito bom,<br>
mas ainda estou no inicio do uso.<br>
<br>
No meu caso, para um ramal discar pelo algoritmo de escolha da
telein ele digita 1+numero (para local) e 1+DDD+numero para
interurbano.<br>
<br>
qualquer duvida estou a disposição !<br>
<br>
[]'s<br>
<br>
<br>
<br>
#!/usr/bin/php -q<br>
<?php<br>
<br>
//Agi feito para integração com a Telein <br>
//Inserir em /var/lib/asterisk/agi-bin<br>
<br>
require_once ('phpagi.php');<br>
<br>
$agi = new AGI();<br>
<br>
$agi->verbose("CALLER ID: " . $agi->request[agi_callerid]);<br>
<br>
$callerid = $agi->request["agi_callerid"];<br>
<br>
$agi->verbose("EXTENSION: " . $agi->request[agi_extension]);<br>
<br>
$extension = $agi->request["agi_extension"];<br>
<br>
//Identificar se extenção está sem o DDD caso esteja insira e remove
o digito de tom de linha (0)<br>
//Plano de discagem (1)<br>
<br>
$ChecarNUM = substr($extension, 1);<br>
<br>
if (strlen($ChecarNUM) == 8 ) {<br>
//Trocar pelo ddd local onde é 33<br>
$Number = "33$ChecarNUM";<br>
<br>
} else {<br>
<br>
if ("$DDD[0]" == "0") {<br>
<br>
$Number = substr($ChecarNUM, 1);<br>
<br>
} else {<br>
$Number = $ChecarNUM ;<br>
};<br>
<br>
<br>
};<br>
<br>
<br>
$consulta = exec("php /var/lib/asterisk/agi-bin/consulta.php
$Number");<br>
<br>
<br>
<br>
$NUM = explode('#', $consulta);<br>
<br>
//Exemplos de funcionamento<br>
// $agi->exec("NoOp", "Teste variavel $consulta");<br>
// $agi->exec("NoOp", "testando variavel num $NUM[1]");<br>
// $agi->exec("NoOp", "testando variavel num $NUM[0]");<br>
//$agi->exec("Dial", "SIP/faleok/$consulta");<br>
//Plano de discagem via AGI consultas direto na Telein<br>
/*<br>
$VIVO = "20";<br>
$TELEMIG = "23";<br>
$TIM = "41";<br>
$CLARO = "21";<br>
$FIXO = "98";<br>
$NAOENCONTRADO = "99";<br>
*/<br>
<br>
switch ($NUM[0]) {<br>
case '20':<br>
$agi->verbose("Numero TELEMIG/VIVO: " . $NUM[1]);<br>
$agi->exec("Dial", "IAX2/trunk-iax/0$NUM[1],300,Tt");<br>
break;<br>
<br>
case '23':<br>
$agi->verbose("Numero VIVO: " . $NUM[1]);<br>
$agi->exec("Dial", "IAX2/trunk-iax/0$NUM[1],300,Tt");<br>
break;<br>
<br>
case '41':<br>
$agi->verbose("Numero TIM: " . $NUM[1]);<br>
$agi->exec("Dial", "IAX2/trunk-iax/0$NUM[1],300,Tt");<br>
break;<br>
<br>
case '21':<br>
$agi->verbose("Numero CLARO: " . $NUM[1]);<br>
$agi->exec("Dial", "IAX2/trunk-iax/0$NUM[1],300,Tt");<br>
$agi->exec("Dial", "SIP/tronco/029$NUM[1],300,Tt");<br>
<br>
break;<br>
<br>
case '98':<br>
$agi->verbose("Numero FIXO: " . $NUM[1]);<br>
$agi->exec("Dial", "SIP/tronco/029$NUM[1],300,Tt");<br>
break;<br>
//default:<br>
// $agi->verbose("Numero Disconhecido: " . $NUM[1]);<br>
// $agi->exec("Dial", "SIP/tronco/$NUM[1]","Tt");<br>
//Codico caso não se encaixe em nehum acima <br>
// break;<br>
}<br>
<br>
<br>
<br>
$agi->verbose("Numero digitado: " . $consulta);<br>
<br>
//$agi->hangup();<br>
<br>
exit();<br>
<br>
<br>
<br>
Em 29-05-2012 23:08, Alberto Andrade escreveu:
<blockquote cite="mid:3542788898E848898F99006383674084@gmail.com"
type="cite">
<div> Posta aí Deivison!</div>
<div>Aliás, o que você diz do serviço da Telein?</div>
<div><br>
</div>
<div>
<div><br>
</div>
<div>-- </div>
<div>Alberto Andrade</div>
<div>Sent with <a moz-do-not-send="true"
href="http://www.sparrowmailapp.com/?sig">Sparrow</a></div>
<div><br>
</div>
</div>
<p style="color: rgb(160, 160, 168);">On Tuesday, 29 de May de
2012 at 22:48, Deivison Moraes wrote:</p>
<blockquote type="cite" style="border-left-style: solid;
border-width: 1px; margin-left: 0px; padding-left: 10px;"> <span>
<div>
<div>
<div>Boa noite !</div>
<div><br>
</div>
<div>Eu tenho um AGI parecido com o que você necessita
porem em PHP, alguma </div>
<div>preferência por usar shell script ?</div>
<div><br>
</div>
<div>Mandei há um tempo atrás um tópico relacionado a AGI
+ PHP, tomei uns </div>
<div>"tocos" mas consegui aprender mais ou menos. O meu eu
uso para consulta </div>
<div>de portabilidade, junto ao serviço da telein, está
funcionando muito </div>
<div>bem. Se quiser posso postar aqui.</div>
<div><br>
</div>
<div>Em 29-05-2012 22:13, Carlos Eduardo B. Rovaris
escreveu:</div>
<blockquote type="cite">
<div>
<div>Boa noite,</div>
<div><br>
</div>
<div><br>
</div>
<div>Gostaria de saber se alguém tem AGI em
desenvolvida em Shell Script que</div>
<div>poderia me auxiliar em alguns pontos que estou
com dificuldades de resolver.</div>
<div><br>
</div>
<div><br>
</div>
<div>Segue minha configuração:</div>
<div><br>
</div>
<div>->>>> Extensions.conf</div>
<div><br>
</div>
<div>exten => 500,1,agi(<a moz-do-not-send="true"
href="http://2test.sh">2test.sh</a>)</div>
<div>exten => 500,n,NoOP(${consulta})</div>
<div><br>
</div>
<div>############################################################</div>
<div><br>
</div>
<div>->>>> Script Shell:</div>
<div><br>
</div>
<div>#!/bin/bash</div>
<div><br>
</div>
<div>numero=48xxxxxxxx</div>
<div><br>
</div>
<div>consulta= ## procedimento de consulta do valor
armazenado na variavel</div>
<div>numero ##</div>
<div><br>
</div>
<div>echo "SET VARIABLE consulta $consulta "</div>
<div><br>
</div>
<div>############################################################</div>
<div><br>
</div>
<div>->>>> Debug Asterisk console:</div>
<div><br>
</div>
<div>Verbosity is at least 20</div>
<div> == Using SIP RTP CoS mark 5</div>
<div> -- Executing [500@external:1]
AGI("SIP/1600-00000038", "<a moz-do-not-send="true"
href="http://2test.sh">2test.sh</a>")</div>
<div>in new stack</div>
<div> -- Launched AGI Script
/var/lib/asterisk/agi-bin/<a moz-do-not-send="true"
href="http://2test.sh">2test.sh</a></div>
<div><SIP/1600-00000038>AGI Tx>>
agi_request: <a moz-do-not-send="true"
href="http://2test.sh">2test.sh</a></div>
<div><SIP/1600-00000038>AGI Tx>>
agi_channel: SIP/1600-00000038</div>
<div><SIP/1600-00000038>AGI Tx>>
agi_language: en</div>
<div><SIP/1600-00000038>AGI Tx>> agi_type:
SIP</div>
<div><SIP/1600-00000038>AGI Tx>>
agi_uniqueid: 1338338846.56</div>
<div><SIP/1600-00000038>AGI Tx>>
agi_version: 1.8.12.0</div>
<div><SIP/1600-00000038>AGI Tx>>
agi_callerid: 1600</div>
<div><SIP/1600-00000038>AGI Tx>>
agi_calleridname: CEBR2</div>
<div><SIP/1600-00000038>AGI Tx>>
agi_callingpres: 0</div>
<div><SIP/1600-00000038>AGI Tx>>
agi_callingani2: 0</div>
<div><SIP/1600-00000038>AGI Tx>>
agi_callington: 0</div>
<div><SIP/1600-00000038>AGI Tx>>
agi_callingtns: 0</div>
<div><SIP/1600-00000038>AGI Tx>> agi_dnid:
500</div>
<div><SIP/1600-00000038>AGI Tx>>
agi_rdnis: unknown</div>
<div><SIP/1600-00000038>AGI Tx>>
agi_context: external</div>
<div><SIP/1600-00000038>AGI Tx>>
agi_extension: 500</div>
<div><SIP/1600-00000038>AGI Tx>>
agi_priority: 1</div>
<div><SIP/1600-00000038>AGI Tx>>
agi_enhanced: 0.0</div>
<div><SIP/1600-00000038>AGI Tx>>
agi_accountcode:</div>
<div><SIP/1600-00000038>AGI Tx>>
agi_threadid: 1095186752</div>
<div><SIP/1600-00000038>AGI Tx>></div>
<div><SIP/1600-00000038>AGI Rx<< SET
VARIABLE consulta 5</div>
<div><SIP/1600-00000038>AGI Tx>> 200
result=1</div>
<div>[May 30 04:47:28] ERROR[14217]: utils.c:1164
ast_carefulwrite: write()</div>
<div>returned error: Broken pipe</div>
<div> --<SIP/1600-00000038>AGI Script <a
moz-do-not-send="true" href="http://2test.sh">2test.sh</a>
completed, returning 0</div>
<div> -- Executing [500@external:2]
NoOp("SIP/1600-00000038", "5") in new</div>
<div>stack</div>
<div> -- Auto fallthrough, channel 'SIP/1600-00000038'
status is 'UNKNOWN'</div>
<div>server*CLI></div>
<div><br>
</div>
<div>############################################################</div>
<div><br>
</div>
<div>Basicamente o que estou precisando resolver:</div>
<div>- como armazenar o valor da "agi_extension" na
variavel "numero" do</div>
<div>Shell Script ?</div>
<div><br>
</div>
<div>- Como faço para encaminhar a chamada de acordo
com o valor de retorno</div>
<div>da AGI ?</div>
<div><br>
</div>
<div>ex: No exemplo do log, disquei 500, e através da
AGI retornou o valor "5".</div>
<div><br>
</div>
<div>Assim gostaria de fazer:</div>
<div><br>
</div>
<div>Caso o valor seja "4", encaminha para Trunk1</div>
<div>Caso o valor seja "5", encaminha para Trunk2</div>
<div>Caso o valor seja "6", encaminha para Trunk3</div>
<div><br>
</div>
<div><br>
</div>
<div>Agradeço toda e qualquer ajuda.</div>
<div><br>
</div>
<div>_______________________________________________</div>
<div>KHOMP Inovação: External Board Series</div>
<div>Módulos de 1/2 rack e 1U para todas as interfaces
e soluções Asterisk e FreeSWITCH.</div>
<div>Tenha a External Series Experience na sua
aplicação. Visite <a moz-do-not-send="true"
href="http://www.khomp.com">www.khomp.com</a></div>
<div>_______________________________________________</div>
<div>DIGIVOICE Fabricante de Placas de Voz e Channel
Bank</div>
<div>20 anos de experiência com E1(R2/ISDN), FXS, FXO
e GSM</div>
<div>Centro Treinamento - Curso de PABX IP - Asterisk
- Site <a moz-do-not-send="true"
href="http://www.digivoice.com.br">www.digivoice.com.br</a></div>
<div>________</div>
<div>YEALINK: Telefones IP e VídeoPhones IP com o
melhor custo/benefício do mercado.</div>
<div>email: <a class="moz-txt-link-abbreviated" href="mailto:yealink@commlogik.com.br">yealink@commlogik.com.br</a> | <a
moz-do-not-send="true"
href="http://www.commlogik.com.br">www.commlogik.com.br</a>
| (11) 5503-1011</div>
<div>______________________________________________</div>
<div>Para remover seu email desta lista, basta enviar
um email em branco para <a moz-do-not-send="true"
href="mailto:asteriskbrasil-unsubscribe@listas.asteriskbrasil.org">asteriskbrasil-unsubscribe@listas.asteriskbrasil.org</a></div>
</div>
</blockquote>
<div><br>
</div>
<div>_______________________________________________</div>
<div>KHOMP Inovação: External Board Series</div>
<div>Módulos de 1/2 rack e 1U para todas as interfaces e
soluções Asterisk e FreeSWITCH.</div>
<div>Tenha a External Series Experience na sua aplicação.
Visite <a moz-do-not-send="true"
href="http://www.khomp.com">www.khomp.com</a></div>
<div>_______________________________________________</div>
<div>DIGIVOICE Fabricante de Placas de Voz e Channel Bank</div>
<div>20 anos de experiência com E1(R2/ISDN), FXS, FXO e
GSM</div>
<div>Centro Treinamento - Curso de PABX IP - Asterisk -
Site <a moz-do-not-send="true"
href="http://www.digivoice.com.br">www.digivoice.com.br</a></div>
<div>________</div>
<div>YEALINK: Telefones IP e VídeoPhones IP com o melhor
custo/benefício do mercado.</div>
<div>email: <a class="moz-txt-link-abbreviated" href="mailto:yealink@commlogik.com.br">yealink@commlogik.com.br</a> | <a
moz-do-not-send="true"
href="http://www.commlogik.com.br">www.commlogik.com.br</a>
| (11) 5503-1011</div>
<div>______________________________________________</div>
<div>Para remover seu email desta lista, basta enviar um
email em branco para <a moz-do-not-send="true"
href="mailto:asteriskbrasil-unsubscribe@listas.asteriskbrasil.org">asteriskbrasil-unsubscribe@listas.asteriskbrasil.org</a></div>
</div>
</div>
</span> </blockquote>
<div> <br>
</div>
<pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
_______________________________________________
KHOMP Inovação: External Board Series
Módulos de 1/2 rack e 1U para todas as interfaces e soluções Asterisk e FreeSWITCH.
Tenha a External Series Experience na sua aplicação. Visite <a class="moz-txt-link-abbreviated" href="http://www.khomp.com">www.khomp.com</a>
_______________________________________________
DIGIVOICE Fabricante de Placas de Voz e Channel Bank
20 anos de experiência com E1(R2/ISDN), FXS, FXO e GSM
Centro Treinamento - Curso de PABX IP - Asterisk - Site <a class="moz-txt-link-abbreviated" href="http://www.digivoice.com.br">www.digivoice.com.br</a>
________
YEALINK: Telefones IP e VídeoPhones IP com o melhor custo/benefício do mercado.
email: <a class="moz-txt-link-abbreviated" href="mailto:yealink@commlogik.com.br">yealink@commlogik.com.br</a> | <a class="moz-txt-link-abbreviated" href="http://www.commlogik.com.br">www.commlogik.com.br</a> | (11) 5503-1011
______________________________________________
Para remover seu email desta lista, basta enviar um email em branco para <a class="moz-txt-link-abbreviated" href="mailto:asteriskbrasil-unsubscribe@listas.asteriskbrasil.org">asteriskbrasil-unsubscribe@listas.asteriskbrasil.org</a></pre>
</blockquote>
<br>
</body>
</html>