domingo, 23 de junho de 2013

DialPlan & Portabilidade AGI | Consulta Magnus Billing

 Fonte: http://drasterisk.blogspot.com.br/2013/03/script-phpagi-portabilidade-celular.html



=> arquivo extensions.conf


[contexto-portabilidade]

;Ligacoes para celular local

exten => _[6-9]XXXXXXX,1,NoOp(---> DE ${CALLERID(num)} PARA ${EXTEN} <--)
exten => _[6-9]XXXXXXX,n,AGI(portabilidade.php,12${EXTEN})
exten => _[6-9]XXXXXXX,n,NoOp(---> A OPERADORA DISCADA E: ${OPERADORA} <---)
exten => _[6-9]XXXXXXX,n,Macro(portabilidade,)
exten => _[6-9]XXXXXXX,n,Dial(${PORTAGSM}/${EXTEN},40,tgr)
;exten => _[6-9]XXXXXXX,n,Dial(${PORTAGSM2}/${EXTEN},40,tgr)
exten => _[6-9]XXXXXXX,n,Hangup()



;ligacoes para celular DDD

exten => _0XX[6-9]XXXXXXX,1,NoOp(---> DE ${CALLERID(num)} PARA ${EXTEN} <--)
exten => _0XX[6-9]XXXXXXX,n,AGI(portabilidade.php,${EXTEN:1})
exten => _0XX[6-9]XXXXXXX,n,NoOp(---> A OPERADORA DISCADA E: ${OPERADORA} <---)
exten => _0XX[6-9]XXXXXXX,n,Macro(portabilidade,)
exten => _0XX[6-9]XXXXXXX,n,Dial(${PORTAGSM}/0${GSMDDD}${EXTEN:1},40,tgr)
;exten => _0XX[6-9]XXXXXXX,n,Dial(${PORTAGSM2}/0${GSMDDD}${EXTEN:1},40,tgr)
exten => _0XX[6-9]XXXXXXX,n,Hangup()

;Ligacoes para sao paulo (nono digito)

exten => _0XX9[4-9]XXXXXXX,1,NoOp(---> DE ${CALLERID(num)} PARA ${EXTEN} <--)
exten => _0XX9[4-9]XXXXXXX,n,AGI(portabilidade.php,${EXTEN:1})
exten => _0XX9[4-9]XXXXXXX,n,NoOp(---> A OPERADORA DISCADA E: ${OPERADORA} <---)
exten => _0XX9[4-9]XXXXXXX,n,Macro(portabilidade,)
exten => _0XX9[4-9]XXXXXXX,n,Dial(${PORTAGSM}/0${GSMDDD}${EXTEN:1},40,tgr)
;exten => _0XX9[4-9]XXXXXXX,n,Dial(${PORTAGSM2}0/${EXTEN:1},40,tgr)
exten => _0XX9[4-9]XXXXXXX,n,Hangup()

[macro-portabilidade]

; --- VERIFICA SE O RAMAL DE DESTINO OU DE ORIGEM DEVE SER GRAVADO

exten => s,1,Noop(---> VERIFICANDO QUAL OPERADORA DISCADA = (${OPERADORA})<---)
exten => s,n,GotoIf($["${OPERADORA}" = "TIM CELULAR"]?tim)
exten => s,n,GotoIf($["${OPERADORA}" = "VIVO"]?vivo)
exten => s,n,GotoIf($["${OPERADORA}" = "CLARO"]?claro)
exten => s,n,GotoIf($["${OPERADORA}" = "TNL PCS"]?tlnpcs)
exten => s,n,GotoIf($["${OPERADORA}" = "MCS (Nextel)"]?nextel)
exten => s,n,GotoIf($["${OPERADORA}" = "AMERICEL"]?americel)
exten => s,n,GotoIf($["${OPERADORA}" = "TELEMIG CELULAR"]?telemig)
exten => s,n,GotoIf($["${OPERADORA}" = "CTBC CELULAR S.A"]?ctbc)
exten => s,n,GotoIf($["${OPERADORA}" = "BRASIL TELECOM CELULAR"]?btelecom)
exten => s,n,GotoIf($["${OPERADORA}" = "AMAZONIA CELULAR"]?amazonia)
exten => s,n,GotoIf($["${OPERADORA}" = "UNICEL DO BRASIL"]?unicel)
exten => s,n,GotoIf($["${OPERADORA}" = "SERCOMTEL CELULAR"]?sercomtel)
exten => s,n,GotoIf($["${OPERADORA}" = "OPTIONS COMP"]?options)
exten => s,n,GotoIf($["${OPERADORA}" = "TELCOM TELECOMUNICACOES DO BRASIL"]?telecom)
exten => s,n,GotoIf($["${OPERADORA}" = "FALKLAND TECNOLOGIA"]?falkland)
exten => s,n,GotoIf($["${OPERADORA}" = "IRIDIUM"]?iridium)
exten => s,n,GotoIf($["${OPERADORA}" = "GLOBALSTAR DO BRASIL"]?globalstar)

exten => s,n,MacroExit

exten => s,n(tlnpcs),Noop(---> TNL PCS <---)
exten => s,n,Set(PORTAGSM=DGV/g5)
;exten => s,n,Set(PORTAGSM2=DGV/g5)
exten => s,n,Set(GSMDDD=15)
exten => s,n,MacroExit

exten => s,n(vivo),Noop(---> Operadora VIVO <---)
exten => s,n,Set(PORTAGSM=DGV/g5)
;exten => s,n,Set(PORTAGSM2=DGV/g5)
exten => s,n,Set(GSMDDD=15)
exten => s,n,MacroExit

exten => s,n(tim),Noop(---> Operadora TIM <---)
exten => s,n,Set(PORTAGSM=DGV/g6)
;exten => s,n,Set(PORTAGSM2=DGV/g6)
exten => s,n,Set(GSMDDD=41)
exten => s,n,MacroExit

exten => s,n(claro),Noop(---> Operadora CLARO <---)
exten => s,n,Set(PORTAGSM=DGV/g5)
;exten => s,n,Set(PORTAGSM2=DGV/g5/2)
exten => s,n,Set(GSMDDD=15)
exten => s,n,MacroExit

exten => s,n(nextel),Noop(---> Operadora NEXTEL <---)
exten => s,n,Set(PORTAGSM=DGV/g6)
;exten => s,n,Set(PORTAGSM2=DGV/g6)
;exten => s,n,Set(GSMDDD=21)
exten => s,n,MacroExit

exten => s,n(americel),Noop(---> Operadora AMERICEL <---)
exten => s,n,Set(PORTAGSM=DGV/g5)
;exten => s,n,Set(PORTAGSM2=DGV/g6)
exten => s,n,Set(GSMDDD=15)
exten => s,n,MacroExit

exten => s,n(telemig),Noop(---> Operadora TELEMIG CELULAR <---)
exten => s,n,Set(PORTAGSM=DGV/g5)
;exten => s,n,Set(PORTAGSM2=DGV/g6)
exten => s,n,Set(GSMDDD=15)
exten => s,n,MacroExit

exten => s,n(ctbc),Noop(---> Operadora CTBC <---)
exten => s,n,Set(PORTAGSM=DGV/g5)
;exten => s,n,Set(PORTAGSM2=DGV/g6)
exten => s,n,Set(GSMDDD=15)
exten => s,n,MacroExit

exten => s,n(btelecom),Noop(---> Operadora BRASIL TELECOM <---)
exten => s,n,Set(PORTAGSM=DGV/g5)
;exten => s,n,Set(PORTAGSM2=DGV/g6)
exten => s,n,Set(GSMDDD=15)
exten => s,n,MacroExit

exten => s,n(amazonia),Noop(---> Operadora AMAZONIA CELULAR <---)
exten => s,n,Set(PORTAGSM=DGV/g5)
;exten => s,n,Set(PORTAGSM2=DGV/g6)
exten => s,n,Set(GSMDDD=15)
exten => s,n,MacroExit

exten => s,n(unicel),Noop(---> Operadora UNICEL DO BRASIL<---)
exten => s,n,Set(PORTAGSM=DGV/g5)
;exten => s,n,Set(PORTAGSM2=DGV/g6)
exten => s,n,Set(GSMDDD=15)
exten => s,n,MacroExit

exten => s,n(sercontel),Noop(---> Operadora SERCONTEL CELULAR <---)
exten => s,n,Set(PORTAGSM=DGV/g5)
;exten => s,n,Set(PORTAGSM2=DGV/g6)
exten => s,n,Set(GSMDDD=15)
exten => s,n,MacroExit

exten => s,n(options),Noop(---> Operadora OPTIONS COMP <---)
exten => s,n,Set(PORTAGSM=DGV/g5)
;exten => s,n,Set(PORTAGSM2=DGV/g6)
exten => s,n,Set(GSMDDD=15)
exten => s,n,MacroExit

exten => s,n(telecom),Noop(---> Operadora TELCOM TELECOMUNICACOES DO BRASIL <---)
exten => s,n,Set(PORTAGSM=DGV/g5)
;exten => s,n,Set(PORTAGSM2=DGV/g6)
exten => s,n,Set(GSMDDD=15)
exten => s,n,MacroExit

exten => s,n(falkland),Noop(---> Operadora FALKLAND TECNOLOGIA <---)
exten => s,n,Set(PORTAGSM=DGV/g5)
;exten => s,n,Set(PORTAGSM2=DGV/g6)
exten => s,n,Set(GSMDDD=15)
exten => s,n,MacroExit

exten => s,n(iridium),Noop(---> Operadora IRIDIUM <---)
exten => s,n,Set(PORTAGSM=DGV/g5)
;exten => s,n,Set(PORTAGSM2=DGV/g6)
exten => s,n,Set(GSMDDD=15)
exten => s,n,MacroExit

exten => s,n(globalstar),Noop(---> Operadora GLOBALSTAR DO BRASIL <---)
exten => s,n,Set(PORTAGSM=DGV/g5)
;exten => s,n,Set(PORTAGSM2=DGV/g6)
exten => s,n,Set(GSMDDD=15)
exten => s,n,MacroExit

=> arquivo portabilidade.php /var/lib/asterisk/agi-bin /
Lembrando que estou utilizando a classe agiphp, a mesma deve estar no diretório /var/lib/asterisk/agi-bin/ juntamente com o arquivo portabilidade.php.
Deve-se também dar permissão de execução nos arquivos para que o asterisk possa executar o mesmo.
 
#!/usr/bin/php -q

<?php

include("phpagi.php");

//version: Danilo Almeida

//package: AGI Portabilidade PHP

//copyright: Copyright (C) Open Source.

//license: GNU/GPL, see LICENSE.php

//Agi para consulta de operadora para celulares portados

//Acesso ao banco de dados fornecido por http://magnussolution.com

//Contato: danilo.almeida em g1telecom.com.br

$agi = new AGI(); //instanciando objeto

$numero = $argv[1]; //pegando numero discado no extensions.conf

$numero = "55".$numero; //acrescentando 55 para enviar formato E164

$url="http://magnussolution.com/portabilidade.php?seache_number=$numero";

$chave = file_get_contents($url);

//$array_resposta = explode('#', $texto_resposta);
 
switch($chave){
    case 5312 :
        $operadora = 'CTBC CELULAR S.A' ;
        break;
        case 55314 :
        $operadora = 'BRASIL TELECOM CELULAR' ;
        break;
        case 55320 :
        $operadora = 'VIVO' ;
        break;
        case 55321 :
        $operadora = 'AMERICEL' ;
        break;
        case 55323 :
        $operadora = 'TELEMIG CELULAR' ;
        break;
        case 55324 :
        $operadora = 'AMAZONIA CELULAR' ;
        break;
        case 55331 :
        $operadora = 'TNL PCS' ;
        break;
        case 55337 :
        $operadora = 'UNICEL DO BRASIL' ;
        break;
        case 55341 :
        $operadora = 'TIM CELULAR' ;
        break;
        case 55343 :
        $operadora = 'SERCOMTEL CELULAR' ;
        break;
        case 55349 :
        $operadora = 'OPTIONS COMP' ;
        break;
        case 55377 :
        $operadora = 'MCS (Nextel)' ;
        break;
        case 55390 :
        $operadora = 'TELCOM TELECOMUNICACOES DO BRASIL' ;
        break;
        case 55391 :
        $operadora = 'FALKLAND TECNOLOGIA' ;
        break;
        case 55392 :
        $operadora = 'IRIDIUM' ;
        break;
        case 55393 :
        $operadora = 'GLOBALSTAR DO BRASIL' ;
        break;

}

$agi->set_variable("OPERADORA", $operadora);
exit();

?>
    



Nenhum comentário:

Postar um comentário