• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Disparando eventos com Asterisk
 

Disparando eventos com Asterisk

on

  • 2,273 views

Como disparar eventos de software e hardware com o Asterisk

Como disparar eventos de software e hardware com o Asterisk

Statistics

Views

Total Views
2,273
Views on SlideShare
2,269
Embed Views
4

Actions

Likes
0
Downloads
30
Comments
0

1 Embed 4

http://www.linkedin.com 4

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Disparando eventos com Asterisk Disparando eventos com Asterisk Presentation Transcript

      • Disparando eventos com o Asterisk
        Fernando Mercês
      • 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.
      • Objetivos
      • Demonstrar como executar ações externas ao Asterisk.
      • Compreender a importância deste recurso.
      • Definir os requisitos para disparo de eventos em hardwares externos.
      • Agenda
      • Quando e por que disparar um evento?
      • Comandos que executam comandos.
      • Exemplo de votação por URA.
      • Interfaceando hardware.
      • Exemplo de um controle de LEDs.
      • O que é preciso saber para usar estes recursos.
      • Quando e por que disparar um evento
      • Implementação de recursos não disponíveis nativamente.
      • Administração remota.
      • Alternativa ao usuário de serviços de rede.
      • Controle de dispositivos.
      • Comandos que executam comandos
      System(caminho_do_comando argumentos)
      • Executa um comando no sistema.
      • Se o comando não executar de maneira correta, a variável SYSTEMSTATUS conterá o valor APPERROR.
      • É 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.
      • Comandos que executam comandos
      TrySystem(caminho_do_comando argumentos)
      • Executa um comando no sistema.
      • Independente do resultado do comando, retorna 0 na SYSTEMSTATUS.
      • 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
      • Interfaceando hardware
      • Porta serial, paralela ou USB.
      • É possível fazer com scripting em alguns casos.
      • Para mais controle, é necessário um programa compilado.
      • Hardware extra é necessário.
      • Interfaceando hardware
        Fonte: www.profelectro.info
        Interfaceando hardware
      • Interfaceando hardware
        Porta paralela
      • 8 bits de dados.
      • Acionamento dos bits em paralelo.
      • TTL (5V / 0V)
      • Interfaceando hardware
        Porta Paralela com o Parashell parashell 0x378 1 #00000001 parashell 0x378 255 #11111111 parashell 0x378 128 #01000000 parashell 0x378 0 #00000000
      • Interfaceando hardware
        Porta USB
      • Interface USB.
      • Microcontrolador incluso.
      • 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); }
      • 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.
      • 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.
      • 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
      • São inúmeras operações que podem ser feitas com o disparo de eventos. Só depende de criatividade!
      • 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
      • Perguntas?
      • Obrigado!
      • Rua Teixeira da Silva, 660 – Paraíso – São Paulo – SP (11) 2125-4747