Disparando eventos com Asterisk

2,502 views

Published on

Como disparar eventos de software e hardware com o Asterisk

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,502
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
88
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Disparando eventos com Asterisk

  1. 1. <ul>Disparando eventos com o Asterisk </ul><ul>Fernando Mercês </ul>
  2. 2. <ul>Apresentação </ul>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. 3. <ul>Objetivos </ul><ul><li>Demonstrar como executar ações externas ao Asterisk.
  4. 4. Compreender a importância deste recurso.
  5. 5. Definir os requisitos para disparo de eventos em hardwares externos. </li></ul>
  6. 6. <ul>Agenda </ul><ul><li>Quando e por que disparar um evento?
  7. 7. Comandos que executam comandos.
  8. 8. Exemplo de votação por URA.
  9. 9. Interfaceando hardware.
  10. 10. Exemplo de um controle de LEDs.
  11. 11. O que é preciso saber para usar estes recursos. </li></ul>
  12. 12. <ul>Quando e por que disparar um evento </ul><ul><li>Implementação de recursos não disponíveis nativamente.
  13. 13. Administração remota.
  14. 14. Alternativa ao usuário de serviços de rede.
  15. 15. Controle de dispositivos. </li></ul>
  16. 16. <ul>Comandos que executam comandos </ul>System(caminho_do_comando argumentos) <ul><li>Executa um comando no sistema.
  17. 17. Se o comando não executar de maneira correta, a variável SYSTEMSTATUS conterá o valor APPERROR.
  18. 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. </li></ul>
  19. 19. <ul>Comandos que executam comandos </ul>TrySystem(caminho_do_comando argumentos) <ul><li>Executa um comando no sistema.
  20. 20. Independente do resultado do comando, retorna 0 na SYSTEMSTATUS. </li></ul>
  21. 21. <ul>Votação por URA </ul>[vota] exten => s,1,Wait(1) exten => s,n,Read(voto,votamenu,1) exten => s,n,GotoIf($[ &quot;${voto}&quot; = &quot;1&quot;]?votook) exten => s,n,GotoIf($[ &quot;${voto}&quot; = &quot;2&quot;]?votook) exten => s,n,GotoIf($[ &quot;${voto}&quot; = &quot;3&quot;]?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. 22. <ul>Interfaceando hardware </ul><ul><li>Porta serial, paralela ou USB.
  23. 23. É possível fazer com scripting em alguns casos.
  24. 24. Para mais controle, é necessário um programa compilado.
  25. 25. Hardware extra é necessário. </li></ul>
  26. 26. <ul>Interfaceando hardware </ul><ul>Fonte: www.profelectro.info </ul><ul>Interfaceando hardware </ul>
  27. 27. <ul>Interfaceando hardware </ul><ul>Porta paralela <li>8 bits de dados.
  28. 28. Acionamento dos bits em paralelo.
  29. 29. TTL (5V / 0V) </li></ul>
  30. 30. <ul>Interfaceando hardware </ul><ul>Porta Paralela com o Parashell parashell 0x378 1 #00000001 parashell 0x378 255 #11111111 parashell 0x378 128 #01000000 parashell 0x378 0 #00000000 </ul>
  31. 31. <ul>Interfaceando hardware </ul><ul>Porta USB <li>Interface USB.
  32. 32. Microcontrolador incluso. </li></ul>
  33. 33. <ul>Interfaceando hardware </ul>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. 34. <ul>O que é preciso saber </ul><ul><li>Programar, mesmo que o básico, é sempre bom. A programação em BASH, no Linux, costuma atender bem o administrador do Asterisk.
  35. 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. </li></ul>
  36. 36. <ul>O que é preciso saber </ul><ul><li>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. 37. São inúmeras operações que podem ser feitas com o disparo de eventos. Só depende de criatividade! </li></ul>
  38. 38. <ul>Referências </ul>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. 39. <ul>Perguntas? </ul>
  40. 40. <ul>Obrigado! </ul>
  41. 41. <ul>Rua Teixeira da Silva, 660 – Paraíso – São Paulo – SP (11) 2125-4747 </ul>

×