<!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>
    &lt;?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-&gt;verbose("CALLER ID: " . $agi-&gt;request[agi_callerid]);<br>
    <br>
    $callerid = $agi-&gt;request["agi_callerid"];<br>
    <br>
    $agi-&gt;verbose("EXTENSION: " . $agi-&gt;request[agi_extension]);<br>
    <br>
    $extension = $agi-&gt;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-&gt;exec("NoOp", "Teste variavel $consulta");<br>
    //       $agi-&gt;exec("NoOp", "testando variavel num $NUM[1]");<br>
     //      $agi-&gt;exec("NoOp", "testando variavel num $NUM[0]");<br>
            //$agi-&gt;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-&gt;verbose("Numero TELEMIG/VIVO: " . $NUM[1]);<br>
            $agi-&gt;exec("Dial", "IAX2/trunk-iax/0$NUM[1],300,Tt");<br>
            break;<br>
    <br>
        case '23':<br>
            $agi-&gt;verbose("Numero VIVO: " . $NUM[1]);<br>
            $agi-&gt;exec("Dial", "IAX2/trunk-iax/0$NUM[1],300,Tt");<br>
            break;<br>
    <br>
        case '41':<br>
            $agi-&gt;verbose("Numero TIM: " . $NUM[1]);<br>
            $agi-&gt;exec("Dial", "IAX2/trunk-iax/0$NUM[1],300,Tt");<br>
                break;<br>
        <br>
        case '21':<br>
            $agi-&gt;verbose("Numero CLARO: " . $NUM[1]);<br>
            $agi-&gt;exec("Dial", "IAX2/trunk-iax/0$NUM[1],300,Tt");<br>
            $agi-&gt;exec("Dial", "SIP/tronco/029$NUM[1],300,Tt");<br>
    <br>
                break;<br>
    <br>
        case '98':<br>
            $agi-&gt;verbose("Numero FIXO: " . $NUM[1]);<br>
            $agi-&gt;exec("Dial", "SIP/tronco/029$NUM[1],300,Tt");<br>
                break;<br>
        //default:<br>
        //    $agi-&gt;verbose("Numero Disconhecido: " . $NUM[1]);<br>
        //    $agi-&gt;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-&gt;verbose("Numero digitado: " . $consulta);<br>
    <br>
    //$agi-&gt;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>-&gt;&gt;&gt;&gt; Extensions.conf</div>
                  <div><br>
                  </div>
                  <div>exten =&gt; 500,1,agi(<a moz-do-not-send="true"
                      href="http://2test.sh">2test.sh</a>)</div>
                  <div>exten =&gt; 500,n,NoOP(${consulta})</div>
                  <div><br>
                  </div>
                  <div>############################################################</div>
                  <div><br>
                  </div>
                  <div>-&gt;&gt;&gt;&gt; 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>-&gt;&gt;&gt;&gt; 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>&lt;SIP/1600-00000038&gt;AGI Tx&gt;&gt;
                    agi_request: <a moz-do-not-send="true"
                      href="http://2test.sh">2test.sh</a></div>
                  <div>&lt;SIP/1600-00000038&gt;AGI Tx&gt;&gt;
                    agi_channel: SIP/1600-00000038</div>
                  <div>&lt;SIP/1600-00000038&gt;AGI Tx&gt;&gt;
                    agi_language: en</div>
                  <div>&lt;SIP/1600-00000038&gt;AGI Tx&gt;&gt; agi_type:
                    SIP</div>
                  <div>&lt;SIP/1600-00000038&gt;AGI Tx&gt;&gt;
                    agi_uniqueid: 1338338846.56</div>
                  <div>&lt;SIP/1600-00000038&gt;AGI Tx&gt;&gt;
                    agi_version: 1.8.12.0</div>
                  <div>&lt;SIP/1600-00000038&gt;AGI Tx&gt;&gt;
                    agi_callerid: 1600</div>
                  <div>&lt;SIP/1600-00000038&gt;AGI Tx&gt;&gt;
                    agi_calleridname: CEBR2</div>
                  <div>&lt;SIP/1600-00000038&gt;AGI Tx&gt;&gt;
                    agi_callingpres: 0</div>
                  <div>&lt;SIP/1600-00000038&gt;AGI Tx&gt;&gt;
                    agi_callingani2: 0</div>
                  <div>&lt;SIP/1600-00000038&gt;AGI Tx&gt;&gt;
                    agi_callington: 0</div>
                  <div>&lt;SIP/1600-00000038&gt;AGI Tx&gt;&gt;
                    agi_callingtns: 0</div>
                  <div>&lt;SIP/1600-00000038&gt;AGI Tx&gt;&gt; agi_dnid:
                    500</div>
                  <div>&lt;SIP/1600-00000038&gt;AGI Tx&gt;&gt;
                    agi_rdnis: unknown</div>
                  <div>&lt;SIP/1600-00000038&gt;AGI Tx&gt;&gt;
                    agi_context: external</div>
                  <div>&lt;SIP/1600-00000038&gt;AGI Tx&gt;&gt;
                    agi_extension: 500</div>
                  <div>&lt;SIP/1600-00000038&gt;AGI Tx&gt;&gt;
                    agi_priority: 1</div>
                  <div>&lt;SIP/1600-00000038&gt;AGI Tx&gt;&gt;
                    agi_enhanced: 0.0</div>
                  <div>&lt;SIP/1600-00000038&gt;AGI Tx&gt;&gt;
                    agi_accountcode:</div>
                  <div>&lt;SIP/1600-00000038&gt;AGI Tx&gt;&gt;
                    agi_threadid: 1095186752</div>
                  <div>&lt;SIP/1600-00000038&gt;AGI Tx&gt;&gt;</div>
                  <div>&lt;SIP/1600-00000038&gt;AGI Rx&lt;&lt; SET
                    VARIABLE consulta 5</div>
                  <div>&lt;SIP/1600-00000038&gt;AGI Tx&gt;&gt; 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> --&lt;SIP/1600-00000038&gt;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&gt;</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>