Re: [AsteriskBrasil] Cadeado Eletrônico

Andre Ruiz andre.ruiz em gmail.com
Sábado Julho 29 09:37:34 BRT 2006


Rodolfo,

Eu implementei um sistema de cadeado pra um cliente há algumas
semanas. Não ficou "uma brastemp" mas foi o que veio à cabeça na hora.
Certamente ainda vou tentar desenvolver um melhor para colocar no
lugar depois.

Nesse caso específico, nós estávamos usando uma instalação baseada em
AMP/AAH, e o que fiz foi o seguinte:

1) Criei um contexto novo, chamado cadeado, e coloquei nele uma
extensão que chama o DISA. A extensão pode chamar por exemplo *00.
2) Dupliquei o contexto "from-internal" com o nome "from-internal-semcadeado".
3) Retirei o contexto all-outbound e incluí o contexto "cadeado" no
contexto "from-internal". Opcionalmente você pode também incluir o
contexto "cadeado" no "from-internal-semcadeado".

Agora você tem um contexto default que não disca pra fora, mas pode
discar *00 pra cair no disa. E os ramais que você quer livrar do
cadeado, basta trocar o contexto default deles para o -semcadeado que
eles voltam ao normal. Fiz assim porque a quantidade de ramais que não
teriam cadeado era pequena. Se for o contrário, inverta os nomes, vai
dar menos trabalho.

O DISA vai ler uma base de dados de senha, onde cada usuário vai ter
que digitar sua senha para poder ganhar um tom de linha e daí fazer a
ligação. O contexto onde o DISA disca é o all-outbound-routes.

Agora, se alguém que está num ramal cujo contexto não tem o
all-outbound-routes, se ele tentar ligar pra fora, vai falhar. Ele vai
precisar discar *00, daí virá um novo tom de linha pra discar a
senha... Depois de discar a senha (se ela for válida), virá um novo
tom de linha onde ele disca pra fora. Se for discar pra ramais
internos, basta discar direto, pois está no contexto default dele.

Não creio que o DISA seja um problema de segurança nesse caso, pois
você vai estar rodando o disa no contexto all-outbound-routes, que ele
já teria acesso de qualquer forma, você só colocou uma senha no
caminho. (É normal ver o DISA como furo de segurança quando não for
bem usado).

Desculpe não poder dar mais detalhes, creio que meu empregador não
permitiria que eu colasse aqui o que foi feito lá exatamente. Mas você
entendeu a idéia :-)

Observações:

1) O DISA não pergunta usuário, apenas a senha. É como se o
número-senha fosse um login e senha ao mesmo tempo. Isso pode ser
ruim, pois na hora de mudar a senha de alguém você precisa verificar
se não repetiu outra senha.

2) É possível que alguém disque senhas sequenciais até achar alguma
válida, já que não tem login. Use senhas de muitos dígitos e bem
espaçadas entre si, e veja nos logs se pega alguém tentando fazer
isso.

3) A maneira com que o DISA opera faz com que ele mude o caller ID de
saída da ligação para aquele associado ao ramal de quem está discando,
mesmo que essa pessoa tenha ido usar o ramal de outro usuário. Isso
faz com que nos CDRs apareça quem ligou e nunca de onde ele ligou (não
dá pra ter idéia se foi do telefone dele mesmo ou não). Isso não é tão
ruim, mas é importante saber.

4) Não use essa solução como definitiva, tente bolar alguma coisa
melhor. Como eu disse, foi só um quebra-galho até implementar alguma
coisa melhor. E, quando você bolar alguma melhor, manda ela pra mim,
heheheh :-)

Abraços,
andre


On 7/28/06, Rodolfo Santos <rodolfo.sts em gmail.com> wrote:
>
> Alguém já conseguiu com sucesso criar um cadeado eletrônico por ramal?
>
> _______________________________________________
> LIsta de discussões AsteriskBrasil.org
> AsteriskBrasil em listas.asteriskbrasil.org
> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>
> _______________________________________________
> Acesse o  wiki AsteriskBrasil.org:
> http://www.asteriskbrasil.org
>
>


-- 
Andre Ruiz  <andre.ruiz em gmail.com>
Curitiba, PR, Brasil


Mais detalhes sobre a lista de discussão AsteriskBrasil