Disparando eventos com Asterisk

  • 1,854 views
Uploaded on

Como disparar eventos de software e hardware com o Asterisk

Como disparar eventos de software e hardware com o Asterisk

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,854
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
41
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1.
      Disparando eventos com o Asterisk
      Fernando Mercês
  • 2.
      Apresentação
    Fernando Mercês [email_address] Bacharelando em Ciência da Computação e com formação técnica em eletrônica, Fernando Mercês é consultor técnico da 4Linux, onde atua com sistemas livres. É especialista em Comunicação Unificada e SL, tendo trabalhado com soft-PBX proprietários e livres durante sua carreira. Possui certificações Aastra/Ericsson, CompTIA e Microsoft, inclusive em UC. Também é fundador e mantenedor dos sites sobre tecnologia Mente Binária e GNU/Linux Reversing.
  • 3.
      Objetivos
    • Demonstrar como executar ações externas ao Asterisk.
    • 4. Compreender a importância deste recurso.
    • 5. Definir os requisitos para disparo de eventos em hardwares externos.
  • 6.
      Agenda
    • Quando e por que disparar um evento?
    • 7. Comandos que executam comandos.
    • 8. Exemplo de votação por URA.
    • 9. Interfaceando hardware.
    • 10. Exemplo de um controle de LEDs.
    • 11. O que é preciso saber para usar estes recursos.
  • 12.
      Quando e por que disparar um evento
    • Implementação de recursos não disponíveis nativamente.
    • 13. Administração remota.
    • 14. Alternativa ao usuário de serviços de rede.
    • 15. Controle de dispositivos.
  • 16.
      Comandos que executam comandos
    System(caminho_do_comando argumentos)
    • Executa um comando no sistema.
    • 17. Se o comando não executar de maneira correta, a variável SYSTEMSTATUS conterá o valor APPERROR.
    • 18. É preferível tratar a lógica dentro do programa/script que será chamado, mas alguma lógica pode (e deve) ser aplicada no contexto do Asterisk.
  • 19.
      Comandos que executam comandos
    TrySystem(caminho_do_comando argumentos)
    • Executa um comando no sistema.
    • 20. Independente do resultado do comando, retorna 0 na SYSTEMSTATUS.
  • 21.
      Votação por URA
    [vota] exten => s,1,Wait(1) exten => s,n,Read(voto,votamenu,1) exten => s,n,GotoIf($[ "${voto}" = "1"]?votook) exten => s,n,GotoIf($[ "${voto}" = "2"]?votook) exten => s,n,GotoIf($[ "${voto}" = "3"]?votook) exten => s,n,Playback(invalido) exten => s,n,Goto(s,1) exten => s,n(votook),System(./vota.sh ${voto}) exten => s,n,Playback(computado) exten => s,n,Hangup
  • 22.
      Interfaceando hardware
    • Porta serial, paralela ou USB.
    • 23. É possível fazer com scripting em alguns casos.
    • 24. Para mais controle, é necessário um programa compilado.
    • 25. Hardware extra é necessário.
  • 26.
      Interfaceando hardware
      Fonte: www.profelectro.info
      Interfaceando hardware
  • 27.
      Interfaceando hardware
      Porta paralela
    • 8 bits de dados.
    • 28. Acionamento dos bits em paralelo.
    • 29. TTL (5V / 0V)
  • 30.
      Interfaceando hardware
      Porta Paralela com o Parashell parashell 0x378 1 #00000001 parashell 0x378 255 #11111111 parashell 0x378 128 #01000000 parashell 0x378 0 #00000000
  • 31.
      Interfaceando hardware
      Porta USB
    • Interface USB.
    • 32. Microcontrolador incluso.
  • 33.
      Interfaceando hardware
    int ledPin = 10; // LED conectado ao pino 10 da placa. void setup() { pinMode(ledPin, OUTPUT); // Saída é o pino. } void loop() { digitalWrite(ledPin, HIGH); // Envia energia para o pino. delay(1000); // Aguarda 1 segundo digitalWrite(ledPin, LOW); // Desliga a energia do pino. delay(1000); }
  • 34.
      O que é preciso saber
    • Programar, mesmo que o básico, é sempre bom. A programação em BASH, no Linux, costuma atender bem o administrador do Asterisk.
    • 35. A segurança dos scripts precisa ser pensada, afinal, quem executa os comandos externos é o usuário que executa o Asterisk (geralmente, o root) e uma “invasão pelo telefone” se torna perigosa e ameaçadora.
  • 36.
      O que é preciso saber
    • Eletrônica exige algum estudo. Não se pode sair ligando tudo que é pino ou cabo. Existem grandezas que precisam ser calculadas antes como intensidade de corrente, tensão elétrica e resistência. Com um circuito mal feito, os resultados podem não ser concretos e/ou conter muita fumaça. =X
    • 37. São inúmeras operações que podem ser feitas com o disparo de eventos. Só depende de criatividade!
  • 38.
      Referências
    www.voip-info.org www.arduino.cc www.faqs.org/docs/Linux-mini/IO-Port-Programming.html#s5 http://parashell.sourceforge.net http://www.mentebinaria.com.br/hardware/20-controle-de-dispositivos-com-a-porta-paralela
  • 39.
      Perguntas?
  • 40.
      Obrigado!
  • 41.
      Rua Teixeira da Silva, 660 – Paraíso – São Paulo – SP (11) 2125-4747