[AsteriskBrasil] Asterisk chamando webservice
Mike Tesliuk
mike em tesliuk.com
Quarta Outubro 10 17:31:44 BRT 2012
Este é um script em perl que chama o webservice para checar os numeros
portados.
#!/usr/bin/perl
use DBI;
use Asterisk::AGI;
use Switch;
use SOAP::Lite;
$AGI = new Asterisk::AGI;
%input = $AGI->ReadParse();
$tn = $AGI->get_variable('DESTINO');
if(length($tn) == "12"){
$ddd = substr($tn, 2, 2);
}elsif(length($tn) == "10"){
$ddd = substr($tn, 0, 2);
}
$soap = SOAP::Lite
-> uri("http://mlm")
-> proxy("http://meu/web/service/consulta_portabilidade.cfc?wsdl");
$usuario = 'MEU_USUAARIO';
$senha = 'MINHA_SENHA';
$querytype = 'RN1';
*$xml = '<?xml version="1.0" encoding="UTF-8"?>
<MessageContent xmlns="urn:brazil:lnp:1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<yquery>
<querytype xsi:type="xsd:string">' . $querytype . '</querytype>
<tn xsi:type="xsd:string">' . $tn . '</tn>
<usuario xsi:type="xsd:string">' . $usuario . '</usuario>
<senha xsi:type="xsd:string">'. $senha . '</senha>
</yquery>
</MessageContent>';
*
my $body = SOAP::Data->name("arg0")->value("$xml");
$status = $soap->Process($body);
$operadora = $status->result;
$AGI->exec("NoOp", "OPERADORA: $operadora DDD $ddd");
switch($operadora){
case "55341" {
$AGI->exec("NoOp", "CASE 55341 TIM");
$AGI->set_variable("TIM","1");
}
case "55321" {
$AGI->exec("NoOp", "CASE 55321 CLARO - OTHER");
$AGI->set_variable("OTHER","1");
}
case "55320" {
$AGI->exec("NoOp","CASE 55320 VIVO");
$AGI->set_variable("VIVO","1");
} else {
$AGI->exec("NoOp", "CASE $operadora - OTHER");
$AGI->set_variable("OTHER","1");
}
}
Para maiores informações procure sobre asterisk+agi+perl ou asterisk+agi+php
No meu asterisk eu chamo da seguinte forma.
exten => _55XX[6-9]XXXXXXX,1,NoOp(SAIDA PARA CELULAR ${EXTEN})
exten => _55XX[6-9]XXXXXXX,n,Set(TIM="0")
exten => _55XX[6-9]XXXXXXX,n,Set(VIVO="0")
exten => _55XX[6-9]XXXXXXX,n,Set(OTHER="0")
*exten => _55XX[6-9]XXXXXXX,n,Set(DESTINO=${EXTEN:2})*
exten => _55XX[6-9]XXXXXXX,n,Authenticate(/etc/asterisk/senhas,a)
*exten => _55XX[6-9]XXXXXXX,n,Agi(verifica-operadora.agi)*
exten => _55XX[6-9]XXXXXXX,n,Macro(records,${CALLERID(num)},${DESTINO})
exten => _55XX[6-9]XXXXXXX,n,NoOp(TIM = ${TIM} - VIVO = ${VIVO} - OTHER
= ${OTHER})
exten => _55XX[6-9]XXXXXXX,n,GotoIf($[${TIM} = 1]?disca-tim,${EXTEN},1)
exten => _55XX[6-9]XXXXXXX,n,GotoIf($[${VIVO} = 1]?disca-vivo,${EXTEN},1)
exten => _55XX[6-9]XXXXXXX,n,GotoIf($[${OTHER} = 1]?disca-vivo,${EXTEN},1)
exten => _55XX[6-9]XXXXXXX,n,NoOp(Nao foi possivel determinar o numero)
exten => _55XX[6-9]XXXXXXX,n,Hangup()
Em 10-10-2012 17:16, Alessandro Luís Daudt escreveu:
> Amigo, tu tem como me escrever um exemplo de codigo que faça isso para
> q eu possa me basear?
>
> sou iniciante nessa parte de usar o agi no asterisk....
>
> Em 10 de outubro de 2012 17:13, Mike Tesliuk <mike em tesliuk.com
> <mailto:mike em tesliuk.com>> escreveu:
>
> Faça um AGI, você consegue fazer o post usando perl, php ou sei la
> oque, e inclusive tratar os resultados se for necessário.
>
> Em 10-10-2012 17:06, Alessandro Luís Daudt escreveu:
>> Boa tarde!
>>
>> Alguem sabe me dizer se eu consigo fazer com que o asterisk chame
>> um webservice e faça um post nele?
>>
>> --
>>
>> Atenciosamente,
>> Alessandro Luis Daudt
>>
>>
>> _______________________________________________
>> 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. Visitewww.khomp.com <http://www.khomp.com>
>> _______________________________________________
>> 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 - Sitewww.digivoice.com.br <http://www.digivoice.com.br>
>> ________
>> YEALINK: Telefones IP e VídeoPhones IP com o melhor custo/benefício do mercado.
>> email:yealink em commlogik.com.br <mailto:yealink em commlogik.com.br> |www.commlogik.com.br <http://www.commlogik.com.br> |(11) 5503-1011 <tel:%2811%29%205503-1011>
>> ______________________________________________
>> Para remover seu email desta lista, basta enviar um email em branco paraasteriskbrasil-unsubscribe em listas.asteriskbrasil.org <mailto:asteriskbrasil-unsubscribe em listas.asteriskbrasil.org>
>
>
> _______________________________________________
> 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
> www.khomp.com <http://www.khomp.com>
> _______________________________________________
> 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
> www.digivoice.com.br <http://www.digivoice.com.br>
> ________
> YEALINK: Telefones IP e VídeoPhones IP com o melhor
> custo/benefício do mercado.
> email: yealink em commlogik.com.br <mailto:yealink em commlogik.com.br>
> | www.commlogik.com.br <http://www.commlogik.com.br> | (11)
> 5503-1011 <tel:%2811%29%205503-1011>
> ______________________________________________
> Para remover seu email desta lista, basta enviar um email em
> branco para asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
> <mailto:asteriskbrasil-unsubscribe em listas.asteriskbrasil.org>
>
>
>
>
> --
>
> Atenciosamente,
> Alessandro Luis Daudt
>
>
> _______________________________________________
> 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 www.khomp.com
> _______________________________________________
> 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 www.digivoice.com.br
> ________
> YEALINK: Telefones IP e VídeoPhones IP com o melhor custo/benefício do mercado.
> email: yealink em commlogik.com.br | www.commlogik.com.br | (11) 5503-1011
> ______________________________________________
> Para remover seu email desta lista, basta enviar um email em branco para asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20121010/9f1b5557/attachment-0001.htm
Mais detalhes sobre a lista de discussão AsteriskBrasil