<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Este &eacute; um script em perl que chama o webservice para checar os
    numeros portados.<br>
    <br>
    #!/usr/bin/perl<br>
    <br>
    use DBI;<br>
    use Asterisk::AGI;<br>
    use Switch;<br>
    use SOAP::Lite;<br>
    <br>
    $AGI = new Asterisk::AGI;<br>
    %input = $AGI-&gt;ReadParse();<br>
    <br>
    $tn = $AGI-&gt;get_variable('DESTINO');<br>
    <br>
    <br>
    if(length($tn) == "12"){<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $ddd = substr($tn, 2, 2);<br>
    }elsif(length($tn) == "10"){<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $ddd = substr($tn, 0, 2);<br>
    <br>
    }<br>
    <br>
    <br>
    $soap = SOAP::Lite<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt; uri(<a class="moz-txt-link-rfc2396E" href="http://mlm">"http://mlm"</a>)<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt;
    proxy(<a class="moz-txt-link-rfc2396E" href="http://meu/web/service/consulta_portabilidade.cfc?wsdl">"http://meu/web/service/consulta_portabilidade.cfc?wsdl"</a>);<br>
    <br>
    $usuario = 'MEU_USUAARIO';<br>
    $senha = 'MINHA_SENHA';<br>
    $querytype = 'RN1';<br>
    <br>
    <b>$xml = '&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;MessageContent
      xmlns="urn:brazil:lnp:1.0"
      xmlns:xsi=<a class="moz-txt-link-rfc2396E" href="http://www.w3.org/2001/XMLSchema-instance">"http://www.w3.org/2001/XMLSchema-instance"</a>&gt;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;yquery&gt;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;querytype
      xsi:type="xsd:string"&gt;' . $querytype . '&lt;/querytype&gt;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tn
      xsi:type="xsd:string"&gt;' . $tn . '&lt;/tn&gt;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;usuario
      xsi:type="xsd:string"&gt;' . $usuario . '&lt;/usuario&gt;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;senha
      xsi:type="xsd:string"&gt;'. $senha . '&lt;/senha&gt;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/yquery&gt;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/MessageContent&gt;';<br>
      <br>
    </b><br>
    <br>
    my $body = SOAP::Data-&gt;name("arg0")-&gt;value("$xml");<br>
    <br>
    $status = $soap-&gt;Process($body);<br>
    <br>
    $operadora = $status-&gt;result;<br>
    <br>
    $AGI-&gt;exec("NoOp", "OPERADORA: $operadora DDD $ddd");<br>
    <br>
    switch($operadora){<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "55341" {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $AGI-&gt;exec("NoOp", "CASE 55341 TIM");<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $AGI-&gt;set_variable("TIM","1");<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "55321" {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $AGI-&gt;exec("NoOp", "CASE 55321 CLARO - OTHER");<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $AGI-&gt;set_variable("OTHER","1");<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "55320" {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $AGI-&gt;exec("NoOp","CASE 55320 VIVO");<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $AGI-&gt;set_variable("VIVO","1");<br>
    <br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br>
    <br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $AGI-&gt;exec("NoOp", "CASE $operadora - OTHER");<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $AGI-&gt;set_variable("OTHER","1");<br>
    <br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
    }<br>
    <br>
    <br>
    <br>
    <br>
    Para maiores informa&ccedil;&otilde;es procure sobre asterisk+agi+perl ou
    asterisk+agi+php<br>
    <br>
    <br>
    <br>
    No meu asterisk eu chamo da seguinte forma.<br>
    <br>
    exten =&gt; _55XX[6-9]XXXXXXX,1,NoOp(SAIDA PARA CELULAR ${EXTEN})<br>
    exten =&gt; _55XX[6-9]XXXXXXX,n,Set(TIM="0")<br>
    exten =&gt; _55XX[6-9]XXXXXXX,n,Set(VIVO="0")<br>
    exten =&gt; _55XX[6-9]XXXXXXX,n,Set(OTHER="0")<br>
    <b>exten =&gt; _55XX[6-9]XXXXXXX,n,Set(DESTINO=${EXTEN:2})</b><br>
    exten =&gt; _55XX[6-9]XXXXXXX,n,Authenticate(/etc/asterisk/senhas,a)<br>
    <b>exten =&gt; _55XX[6-9]XXXXXXX,n,Agi(verifica-operadora.agi)</b><br>
    exten =&gt;
    _55XX[6-9]XXXXXXX,n,Macro(records,${CALLERID(num)},${DESTINO})<br>
    exten =&gt; _55XX[6-9]XXXXXXX,n,NoOp(TIM = ${TIM} - VIVO = ${VIVO} -
    OTHER = ${OTHER})<br>
    exten =&gt; _55XX[6-9]XXXXXXX,n,GotoIf($[${TIM} =
    1]?disca-tim,${EXTEN},1)<br>
    exten =&gt; _55XX[6-9]XXXXXXX,n,GotoIf($[${VIVO} =
    1]?disca-vivo,${EXTEN},1)<br>
    exten =&gt; _55XX[6-9]XXXXXXX,n,GotoIf($[${OTHER} =
    1]?disca-vivo,${EXTEN},1)<br>
    exten =&gt; _55XX[6-9]XXXXXXX,n,NoOp(Nao foi possivel determinar o
    numero)<br>
    exten =&gt; _55XX[6-9]XXXXXXX,n,Hangup()<br>
    <br>
    <br>
    <br>
    Em 10-10-2012 17:16, Alessandro Lu&iacute;s Daudt escreveu:
    <blockquote
cite="mid:CAPC5ejba2gndd_MZJLFLSiHKO4jBH_6UDq8O5gnW9k-i4A6hRQ@mail.gmail.com"
      type="cite">Amigo, tu tem como me escrever um exemplo de codigo
      que fa&ccedil;a isso para q eu possa me basear?
      <div><br>
      </div>
      <div>sou iniciante nessa parte de usar o agi no asterisk....<br>
        <br>
        <div class="gmail_quote">Em 10 de outubro de 2012 17:13, Mike
          Tesliuk <span dir="ltr">&lt;<a moz-do-not-send="true"
              href="mailto:mike@tesliuk.com" target="_blank">mike@tesliuk.com</a>&gt;</span>
          escreveu:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div bgcolor="#FFFFFF" text="#000000"> Fa&ccedil;a um AGI, voc&ecirc;
              consegue fazer o post usando perl, php ou sei la oque, e
              inclusive tratar os resultados se for necess&aacute;rio.<br>
              <br>
              Em 10-10-2012 17:06, Alessandro Lu&iacute;s Daudt escreveu:
              <blockquote type="cite">
                <div>
                  <div class="h5">Boa tarde!
                    <div><br>
                    </div>
                    <div>Alguem sabe me dizer se eu consigo fazer com
                      que o asterisk chame um webservice e fa&ccedil;a um post
                      nele?<br clear="all">
                      <div><br>
                      </div>
                      -- <br>
                      <br>
                      Atenciosamente,<br>
                      Alessandro Luis Daudt<br>
                    </div>
                    <br>
                    <fieldset></fieldset>
                    <br>
                  </div>
                </div>
                <pre>_______________________________________________
KHOMP Inova&ccedil;&atilde;o: External Board Series
M&oacute;dulos de 1/2 rack e 1U para todas as interfaces e solu&ccedil;&otilde;es Asterisk e FreeSWITCH.
Tenha a External Series Experience na sua aplica&ccedil;&atilde;o. Visite <a moz-do-not-send="true" href="http://www.khomp.com" target="_blank">www.khomp.com</a>
_______________________________________________
DIGIVOICE  Fabricante de Placas de Voz e Channel Bank
20 anos de experi&ecirc;ncia com E1(R2/ISDN), FXS, FXO e GSM
Centro Treinamento - Curso de PABX IP -  Asterisk  - Site  <a moz-do-not-send="true" href="http://www.digivoice.com.br" target="_blank">www.digivoice.com.br</a>
________
YEALINK: Telefones IP e V&iacute;deoPhones IP com o melhor custo/benef&iacute;cio do mercado.
email: <a moz-do-not-send="true" href="mailto:yealink@commlogik.com.br" target="_blank">yealink@commlogik.com.br</a> | <a moz-do-not-send="true" href="http://www.commlogik.com.br" target="_blank">www.commlogik.com.br</a> | <a moz-do-not-send="true" href="tel:%2811%29%205503-1011" value="+551155031011" target="_blank">(11) 5503-1011</a>
______________________________________________
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" target="_blank">asteriskbrasil-unsubscribe@listas.asteriskbrasil.org</a></pre>
              </blockquote>
              <br>
            </div>
            <br>
            _______________________________________________<br>
            KHOMP Inova&ccedil;&atilde;o: External Board Series<br>
            M&oacute;dulos de 1/2 rack e 1U para todas as interfaces e solu&ccedil;&otilde;es
            Asterisk e FreeSWITCH.<br>
            Tenha a External Series Experience na sua aplica&ccedil;&atilde;o. Visite
            <a moz-do-not-send="true" href="http://www.khomp.com"
              target="_blank">www.khomp.com</a><br>
            _______________________________________________<br>
            DIGIVOICE &nbsp;Fabricante de Placas de Voz e Channel Bank<br>
            20 anos de experi&ecirc;ncia com E1(R2/ISDN), FXS, FXO e GSM<br>
            Centro Treinamento - Curso de PABX IP - &nbsp;Asterisk &nbsp;- Site &nbsp;<a
              moz-do-not-send="true" href="http://www.digivoice.com.br"
              target="_blank">www.digivoice.com.br</a><br>
            ________<br>
            YEALINK: Telefones IP e V&iacute;deoPhones IP com o melhor
            custo/benef&iacute;cio do mercado.<br>
            email: <a moz-do-not-send="true"
              href="mailto:yealink@commlogik.com.br">yealink@commlogik.com.br</a>
            | <a moz-do-not-send="true"
              href="http://www.commlogik.com.br" target="_blank">www.commlogik.com.br</a>
            | <a moz-do-not-send="true" 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 moz-do-not-send="true"
              href="mailto:asteriskbrasil-unsubscribe@listas.asteriskbrasil.org">asteriskbrasil-unsubscribe@listas.asteriskbrasil.org</a><br>
          </blockquote>
        </div>
        <br>
        <br clear="all">
        <div><br>
        </div>
        -- <br>
        <br>
        Atenciosamente,<br>
        Alessandro Luis Daudt<br>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
KHOMP Inova&ccedil;&atilde;o: External Board Series
M&oacute;dulos de 1/2 rack e 1U para todas as interfaces e solu&ccedil;&otilde;es Asterisk e FreeSWITCH.
Tenha a External Series Experience na sua aplica&ccedil;&atilde;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&ecirc;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&iacute;deoPhones IP com o melhor custo/benef&iacute;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>