[AsteriskBrasil] Cadeado Asterisk, erro de dbget

Diego Aguirre (DagMoller) dag.voip em oi.com.br
Segunda Junho 23 16:48:28 BRT 2008


Felipe,

eu tenho uma implementação para cadeado, mas escrita com AEL (extension.ael). 
a macro "checkLock" pedirá a senha (6 digitos) antes de efetuar a ligação, se houver senha cadastrada.

segue:

// macro usada para autenticar antes de cada chamada.
macro checkLock(contexto, exten, callerid)
{
        Set(status=${DB(FEATURES/lock/${callerid}/status)});
        if ("x${status}" == "x1")
        {
                Set(oldPass=${DB(FEATURES/lock/${CALLERID(number)}/pass)});
                Set(count=0);

                password:
                if (${count} == 3)
                {
                        Playback(vm-goodbye);
                        Hangup();
                }

                Read(password|vm-password|6);

                if ("x${password}" != "x${oldPass}")
                {
                        Playback(vm-incorrect);
                        Set(count=${count} + 1);
                        goto password;
                }

                Playback(beep);
        }

        goto ${contexto}|${exten}|no-check;
}

context features
{
        // Setar senha... (senha default: 000000)
        *11* => {
                Set(oldPass=${DB(FEATURES/lock/${CALLERID(number)}/pass)});
                if ("x${oldPass}" == "x")
                        Set(oldPass=000000);

                password:
                Read(password|vm-password|6);

                if ("x${password}" != "x${oldPass}")
                {
                        Playback(vm-incorrect);
                        goto password;
                }

                new-password:
                Read(newPass|vm-newpassword);
                if ("x${newPass}" == "x")
                        goto new-password;

                new-password-2:
                Read(newPass2|vm-reenterpassword);
                if ("x${newPass2}" == "x")
                        goto new-password-2;

                if ("x${newPass}" != "x${newPass2}")
                {
                        Playback(vm-mismatch);
                        goto new-password;
                }

                Set(DB(FEATURES/lock/${CALLERID(number)}/pass)=${newPass});
                Playback(vm-passchanged);

                Hangup();
        }

        // Ativar cadeado, somente se ja possui senha.
        *12* => {
                Set(oldPass=${DB(FEATURES/lock/${CALLERID(number)}/pass)});
                if ("x${oldPass}" == "x")
                        Congestion();

                password:
                Read(password|vm-password|6);
                if ("x${password}" != "x${oldPass}")
                {
                        Playback(vm-incorrect);
                        goto password;
                }

                Set(DB(FEATURES/lock/${CALLERID(number)}/status)=1);
                SayAlpha(ok);
                Hangup();
        }
        // Desativar cadeado.
        *13* => {
                Set(oldPass=${DB(FEATURES/lock/${CALLERID(number)}/pass)});
                if ("x${oldPass}" == "x")
                        Congestion();

                password:
                Read(password|vm-password|6);
                if ("x${password}" != "x${oldPass}")
                {
                        Playback(vm-incorrect);
                        goto password;
                }

                Set(DB(FEATURES/lock/${CALLERID(number)}/status)=0);
                SayAlpha(ok);
                Hangup();
        }
}

context nacional
{
        _0ZX. => {
                // se houver senha, pergute-a e vá para 'no-check'.
                // se não houver senha, vai para 'no-check'
                &checkLock(nacional,${EXTEN},${CALLERID(number)});

                no-check:
                Dial(${CHANTYPE}/${EXTEN}@${TRUNK},,T);
                Hangup();
        }
}

Felippe escreveu:
> Saudações Messias! blz!!
> 
>  
> 
> Ja tinha visto esse erro e apos correção postei outra mensagem com o 
> assunto Cadeado implementando no asterisk 1.4 (se nao me engano)
> 
>  
> 
> Depois dê uma olhada na lista e veja se consegue me ajudar! A grande 
> questao é que apos ajuda de Diego Aguirre e algumas outras mudanças que 
> fiz como vc observou e sugeriu, deu tudo certo, dão os beeps ok porem 
> parece que o cadeado não funciona.. Pois no teste que faço as chamadas 
> continuam passando..
> 
>  
> 
> Antes, Obrigado
> 
>  
> 
> Felippe.
> 
>  
> 
> Em 10:23, *José Carlos Messias  * escreveu:
> 
> 
>     2008/6/22 Felippe :
>      > Opa, então, troquei para DB mas nada..
>      >
>      >
>      >
>      > Cli> -- Executing [*11*1234 em default:1] NoCDR("SIP/20-081ff6e0",
>     "") in
>      > new stack
>      > [Jun 22 04:02:58] WARNING[7680]: pbx.c:1821 pbx_extension_helper: No
>      > application 'DB' for extension (default, *11*1234, 2)
>      > == Spawn extension (default, *11*1234, 2) exited non-zero on
>      > 'SIP/20-081ff6e0'
>      >
>      >
>      > Tenho asterisk 1.4.19.1
>      >
>      > Adaptei o dbget e dbput para db como descreveu e lembrei de
>     corrigir o
>      > callerid tb.
>      >
>      >
>      >
>      > Estou tentando este primeiramente:
>      >
>      > ;cadastrar senha cadeado
>      > exten => _*11*xxxx,1,NoCDR()
>      > exten => _*11*xxxx,2,DB(senha=CADEPASS/${CALLERID(NUM)})
>      > exten => _*11*xxxx,3,GoToIf($["${senha}" = ""]?5:4)
>      > exten => _*11*xxxx,4,Hangup
>      >>>>>>>>>>> exten =>
>     _*11*xxxx,5,Set(DB(CADEPASS/${CALLERID(num)})=${EXTEN:4}) ;faltou o
>     Set eu uso o NUM em minusculo, parenteses em lugar err ado veja se
>     dá certo agora
>      > exten => _*11*xxxx,6,Wait(2)
>      > exten => _*11*xxxx,7,Playback(beep)< br />exten =>
>      > _*11*xxxx,8,Playback(beep)
>      > exten => _*11*xxxx,9,Playback(beep)
>      > exten => _*11*xxxx,10,Hangup
>      >
>      >
>      >
>      >
>      >
>      > Obg.
>      > Felippe
>      >
>      >
>      >
>      >
>      >
>      > Em 18/06/2008 11:55, Leonardo Gomes Figueira escreveu:
>      >
>      > U Felippe escreveu:
>      >> Aproveitando aquele velho cadeado visto aqui na lista, coloquei para
>      >> rodar no meu asterisk mas sempre sem sucesso, já tentei ver algumas
>      >> coisas e estava deixando isso de lado.. mas posto aqui na lista para
>      >> alguma ajuda.
>      >> Ramal que tenho é o 2000
>      >>
>      >>
>      >> Veja o que retorna:
>      >>
>      >> -- Executing [*11*2000 em default:1] NoCDR(";SIP/23-08216fe0";, &q
>     uot;;";) in
>      >> new stack
>      >> [May 26 00:23:46] WARNING[5082]: pbx.c:1821 pbx_extension_helper: No
>      >> application 'DBget' for extension (default, *11*2000, 2)
>      >> == Spawn extension (default, *11*2000, 2) exited non-zero on
>      >> 'SIP/23-08216fe0'
>      >>
>      >
>      > DBget/DBput só tem no Asterisk 1.0 e 1.2 (deprecated). Provavelmente
>      > você está usando 1.4 ou maior portanto basta adaptar o dialplan
>     para a
>      > função DB() que substituiu ambos.
>      >
>      > Leonardo
>      > _______________________________________________
>      > Compre uma camiseta da AsteriskBrasil.org!
>      > http://www.voipmania.com.br
>      >
>      > Acesse o canal IRC de discussão sobre Asterisk em Português
>     Brasileiro na
>      > rede Freenode.net: #asterisk-br
>      > _______________________________________________
>      > Lista de discussões AsteriskBrasil.org
>      > Aste riskBrasil em listas.asteriskbrasil.org
>      > http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>      >
>      >
>      > _______________________________________________
>      > Compre uma camiseta da AsteriskBrasil.org!
>      > http://www.voipmania.com.br
>      >
>      > Acesse o canal IRC de discussão sobre Asterisk em Português
>     Brasileiro na
>      > rede Freenode.net: #asterisk-br
>      > _______________________________________________
>      > Lista de discussões AsteriskBrasil.org
>      > AsteriskBrasil em listas.asteriskbrasil.org
>      > http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>      >
>     _______________________________________________
>     Compre uma camiseta da AsteriskBrasil.org!
>     http://www.voipmania.com.br
> 
>     Acesse o canal IRC de discussão sobre Asterisk em Português
>     Brasileiro na rede Freenode.net: #asterisk-br
>     _______________________________________________
>     Lista de discus sões AsteriskBrasil.org
>     AsteriskBrasil em listas.asteriskbrasil.org
>     http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Compre uma camiseta da AsteriskBrasil.org!
> http://www.voipmania.com.br
> 
> Acesse o canal IRC de discussão sobre Asterisk em Português Brasileiro na rede Freenode.net: #asterisk-br
> _______________________________________________
> Lista de discussões AsteriskBrasil.org
> AsteriskBrasil em listas.asteriskbrasil.org
> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil

-- 
Diego Aguirre
Infodag - Informática
FWD#: 459696
EnumLookup#: +55 21 8138-2710
DUNDi-br#: 21 8138-2710 


More information about the AsteriskBrasil mailing list