Projeto asteris para controle remoto

Download Projeto   asteris para controle remoto

Post on 14-Jan-2017

86 views

Category:

Technology

3 download

Embed Size (px)

TRANSCRIPT

  • O USO DO ASTERISK PARA O CONTROLE REMOTO DE SISTEMAS DE AUTOMAO

    MICHEL C. DIAS, DAIANA C. LUCENA, ELIEL P. SANTOS

    Laboratrio de Telefonia e Redes Convergentes, Departamento de Engenharia Eltrica, Instituto Federal de

    Educao, Cincia e Tecnologia da Paraba - IFPB

    Avenida Primeiro de Maio, 720 - Jaguaribe, Joo Pessoa - PB, 5015-430 E-mails: michel.dias@ifpb.edu.br, daiana000@gmail.com, elielpoggi@gmail.com

    Abstract This work describes a multiuser platform that allows the remote and concurrent control of automation systems

    which uses an Arduino as main controller. It user interface is an IVR (Interactive Voice Response) that send commands over the

    TCP/IP network established for the remote systems to be controlled. The platform was developed with Asterisk VoIP software

    which is in public domain, free and widely spread in Internet. The validation occurred through two experiments set up and tested

    in laboratory. The result is a low cost and open VoIP platform that fulfills what was described above.

    Keywords Asterisk, Automation Systems, Arduino, VoIP.

    Resumo Este trabalho descreve uma plataforma multiusurio que permite o controle remoto e concorrente de sistemas de au-

    tomao que utilizam o Arduino como controlador principal. A interface com o usurio uma URA (Unidade de Resposta aud-

    vel) que de acordo com as interaes dos usrios envia comandos para os sistemas remotos a serem controlados. A plataforma

    foi desenvolvida com o software VoIP Asterisk que de domnio pblico, gratuito e amplamente utilizado na Internet. A valida-

    o foi feita em dois experimentos realizados em laboratrio. O resultado uma plataforma aberta e baixo custo que atende o

    proposto no artigo.

    Palavras-chave Asterisk, Sistemas de Automao, VoIP.

    1 Introduo

    cada vez mais frequente o uso de sistemas de

    automao para resolver problemas do cotidiano.

    Solues so dadas nas mais variadas reas, desde

    segurana at na rea de sade. No entanto, em mui-

    tos casos, um dos fatores que dificultam a implemen-

    tao das solues de automao o custo. Alm

    disto, os sistemas comerciais em sua grande maioria

    so de difcil alterao e evoluo tecnolgica. Dian-

    te do exposto, este artigo contribui para sanar estas

    deficincias ao propor um sistema de baixo custo

    formado por solues de software gratuito (Asterisk)

    de cdigo aberto, e hardware livre (Arduino, 2013).

    O software Asterisk (ASTERISK, 2013), nor-

    malmente utilizada como PABX VoIP (Voice Over

    IP) em empresas, contm um conjunto de aplicaes

    e funes que podem ser utilizadas para fins de au-

    tomao. Estas permitem gerenciar e direcionar cha-

    madas telefnicas, atravs de uma URA (Unidade de

    Resposta Audvel), a processos de automao, con-

    trolando equipamentos remotamente, reduzindo cus-

    tos e criando um sistema flexvel. Um servidor cen-

    tralizado executando o Asterisk pode ser responsvel

    pelo gerenciamento das chamadas e pelo envio de

    comandos pela rede TCP/IP aos sistemas a serem

    controlados (GONALVES, 2009), (KAPICAK et.

    al, 2011).

    O Asterisk um software em cdigo aberto que

    executa as funes de uma central telefnica e recebe

    diversas contribuies de programadores de todo o

    mundo. O software pode ser customizado de acordo

    com as necessidades do usurio (ASTERISK, 2013).

    Algumas funcionalidades como o acesso a bases

    de dados e comunicao com recursos externos po-

    dem ser executadas atravs de scripts em outras lin-

    guagens de programao, tais como Python, PHP

    (Hypertext Preprocessor) e Perl a partir do plano de

    discagem por meio do AGI (Asterisk Gateway Inter-

    face) (MACURA et. al, 2012), (KELLERl, 2009),

    (QUADEER, SHAH & GOEL, 2012).

    O Arduino uma placa eletrnica em cdigo

    aberto, sendo o seu ambiente para desenvolvimento

    um software tambm em cdigo aberto.

    O objetivo deste trabalho propor uma plata-

    forma aberta VoIP (Voice Over IP), de baixo custo,

    multiusurio e que permite acesso concorrente para

    controle remoto de mltiplos sistemas de automao.

    A plataforma desenvolvida permite gerenciar e

    direcionar mltiplas chamadas telefnicas para o

    controle de processos de automao, e pode ser apli-

    cada de diversas situaes. um sistema de baixo

    custo j que necessita apenas de um computador com

    o software Asterisk instalado, uma placa Arduico

    para cada sistema de automao a ser controlado e

    uma conexo de rede TCP/IP entre os dois. E aber-

    ta porque utiliza apenas softwares/plataformas em

    cdigo aberto. Por outro lado, o Asterisk pode tam-

    bm ser instalado em um dispositivo Android para

    controlar uma quantidade pequena de dispositivos

    Arduino. Estas caractersticas agregam plataforma

    proposta, alta flexibilidade e escalabilidade.

    Tecnologias como bluetooth, GPRS e Web Ser-

    vice tem sido utilizadas em sistemas de automao.

    Comumente surgem novas pesquisas na rea de sis-

    temas de automao utilizando diferentes mecanis-

    mos para o controle remoto (JIN et. al, 2000),

    (KAPICAK et. al, 2011), (LEE & CHOI, 2003). A

    plataforma proposta, sendo modular, aberta e facil-

    Anais do XX Congresso Brasileiro de Automtica Belo Horizonte, MG, 20 a 24 de Setembro de 2014

    1674

    mailto:elielpoggi@gmail.com

  • mente modificvel, pode ser utilizada junto a essas

    novas tecnologias.

    Atualmente, o Asterisk vem sendo utilizado por

    diversos usurios em projetos para automao resi-

    dencial (EGUINO, 2013) (HACKWORTH, 2012).

    So prncpios de trabalhos como por exemplo em

    (GRAVEN, 2009) que se baseiam a automao resi-

    dencial utilizando Asterisk no qual possvel contro-

    lar aplicaes atravs dele. Projetos que descrevem a

    integrao do GSM com o Asterisk na qual o usurio

    consegue registrar um servidor asterisk em celulares

    e em computadores tambm tem sido alvo de pesqui-

    sas (GUPTA, AGRAWAL & QADEER, 2013).

    Este trabalho est organizado da seguinte forma:

    inicialmente descrito que microcontrolador foi uti-

    lizado como tambm o software Asterisk. Em seguida

    explicado como estabelecida a comunicao entre

    o Asterisk e o Arduino e a arquitetura da plataforma.

    Ao fim, so apresentadas a validao da plataforma e

    as consideraes finais.

    2 Arduino

    O Arduino um circuito eletrnico para controle

    de entrada/sada de dados baseada no microcontrola-

    dor AVR de 8 bits, de arquitetura Harvard (memria

    de dados e de programa so fisicamente separadas),

    da Atmel. Seu projeto foi iniciado na cidade de Ivre,

    Itlia, em 2005, com o intuito de interagir em proje-

    tos escolares, com um oramento menor que outros

    sistemas de prototipagem disponveis na poca. De

    forma que as pessoas tivessem acesso ao cdigo-

    fonte do software e ao projeto do hardware (sendo

    assim open-source), podendo estender e adequar a

    plataforma s suas necessidades (ARDUINO, 2013).

    O Arduino pode ter suas funcionalidades esten-

    didas atravs de shields, que so placas contendo

    dispositivos adicionais como receptores GPS, mdu-

    los Ethernet, bluetooth, zigBee, etc. Estes conectam-

    se ao Arduino por barras de pinos empilhveis, man-

    tendo o layout e permitindo que outro shield se en-

    caixe acima.

    Para o desenvolvimento do trabalho foi utilizado

    um Arduino Uno, que responsvel por receber os

    comandos de um Ethernet shield, process-los e en-

    viar sinais para que os dispositivos sejam acionados.

    A Figura 1 apresenta os elementos de um Arduino

    Uno (ARDUINO BRASIL, 2013).

    Figura 1 Elementos de um Arduino Uno (ARDUINO

    BRASIL, 2013).

    3 Asterisk

    A plataforma Asterisk foi criada pela companhia

    Digium, tem sido utilizado por pequenas e grandes

    empresas, call centers, operadoras, provedores VoIP

    e agncias governamentais em todo o mundo.

    A estrutura dinmica da plataforma Asterisk

    permite ao cliente adequar o cenrio da empresa aos

    diversos recursos tecnolgicos por meio de aplica-

    es tais como: correio de voz, conferncias, bilheta-

    gem, chamadas em fila, call agents (gerencia funes

    como roteamento de ligaes e sinalizao), Distri-

    buio Automtica de Chamadas (DAC), Unidade de

    Resposta Audvel (URA), msica em espera, grava-

    o da chamada, bloqueio de chamadas, entre outras.

    Essas aplicaes so caractersticas padronizadas ou

    que podem ser inseridas no software por meio do

    plano de discagem (MADSEN, MEGGELEN &

    SMITH, 2011).

    Existem trs tipos de dispositivos finais que po-

    dem ser usados para o estabelecimento de comunica-

    o via rede TCP/IP: Telefone IP, Softfone e ATAs

    (Analog Terminal Adaptors). Um Telefone IP possui

    a interface de um telefone convencional, e pode co-

    nectar-se diretamente a uma rede. O Softfone uma

    aplicao em software que se pode executar em um

    computador ou em um celular, exercendo a funo de

    um telefone. ATAs so designados para permitir que

    telefones convencionais possam ser conectados a

    rede.

    A arquitetura do Asterisk organizada em mdu-

    los, isto , componentes carregveis que possibilitam

    a execuo de uma funcionalidade especifica, como o

    driver de um canal (chan_sip.so) ou um recurso que

    permite conexo com uma tecnologia externa

    (func_odbc.so).

    O plano de discagem o ponto central do Aste-

    risk, composto por contextos, extenses, prioridades

    e aplicaes. por onde passam todas as chamadas, e

    o que determina como elas devem ser processadas.

    Pode ser configurado utilizando a sintaxe tradicional

    em /etc/Asterisk/extensions.conf.

    Anais do XX Congresso Brasileiro de Automtica Belo Horizonte, MG, 20 a 24 de Setembro de 2014

    1675

  • Os contextos mantem blocos isolados no plano

    de discagem, sendo definidos por um nome entre

    colchetes ([]). Uma extenso definida em um contex-

    to est isolada de extenses em outro contexto.

    Quando um canal configurado (no arquivo sip.conf

    ou iax.conf), um dos parmetros necessrio o con-

    texto, que especifica o ponto no plano de discagem,

    onde as instrues devem comear a ser executadas.

    A Figura 2 ilustra isto (MADSEN, MEGGELEN &

    SMITH, 2011).

    Figura 2 Relao entre um arquivo de configurao do canal e o

    contexto no plano de discagem (MADSEN, MEGGELEN &

    SMITH, 2011).

    As extenses que so identificaes dentro de

    cada contexto definem os passos a serem seguidos no

    plano de discagem. Cada extenso composta por

    um nome (ou nmero), prioridade (que define qual

    passo ir ser executado) e aplicao. A sintaxe a

    seguinte:

    exten => nome, prioridade, aplicao()

    As prioridades so numeradas sequencialmente,

    comeando com 1, e cada uma executa uma aplica-

    o especifica. A prioridade n pode ser utilizada

    para indicar que a anterior mais 1 deve ser execu-

    tada.

    As aplicaes executam uma ao especifica

    como tocar um som, procurar algo no banco de da-

    dos, desligar ou atender uma chamada, entre outros.

    O funcionamento e a operao do Asterisk esto

    baseados em quatro componentes bsicos: protocolo,

    driver do canal, CODEC e aplicaes.

    3.1 Protocolo

    Os protocolos de transporte TCP (Transport

    Control Protocol) e UDP (User Datagram Protocol)

    no foram desenvolvidos tendo como prioridade o

    fluxo de dados em tempo real. E os dispositivos fi-

    nais devem lidar com a perda de pacotes, aguardando

    a chegada de alguns, requisitando uma retransmisso

    ou desconsiderando os que foram perdidos. No en-

    tanto, na transmisso de voz, se pacotes so perdidos

    ou ocorrer um atraso superior a 150 milissegundos

    haver dificuldades em continuar uma conversao.

    Sendo necessrio para o estabelecimento de uma co-

    nexo/chamada VoIP entre dispositivos finais um

    protocolo de sinalizao (MADSEN, MEGGELEN

    & SMITH, 2011).

    Quanto aos protocolos de sinalizao, a reco-

    mendao H.323 foi largamente implementada em

    redes VoIP (Voice Over IP). Atualmente, tem se tor-

    nado comum o uso do SIP (Session Initiation Proto-

    col), considerado mais simples em relao ao H.323.

    O SIP trata cada conexo como um par, negoci-

    ando o estabelecimento da conexo entre eles, e

    transporta apenas a sinalizao sobre TCP ou UDP.

    O RTP (Real Time Protocol) usado junto ao SIP ou

    H.323 para a transmisso dos pacotes de dados (que

    contm o udio das chamadas) (GONALVES,

    2013).

    O IAX (Inter-Asterisk eXchange) um protocolo

    de aplicao aberto, que utiliza um processo de regis-

    tro e autenticao similar ao SIP e foi produzido com

    o objetivo de estabelecer comunicao entre dois

    servidores Asterisk. A sinalizao do canal e o fluxo

    de dados so enviados por uma nica porta UDP

    (4569) (o protocolo RTP no utilizado para o

    transporte do udio), e consegue reduzir a vazo uti-

    lizada, atravs de uma caracterstica denominada

    trunk que possibilita a multiplexao de vrias cha-

    madas utilizando um nico cabealho. E o IAX2 (2

    verso do protocolo IAX) foi desenvolvido para fun-

    cionar em uma rede que utilize NAT (Network

    Adress Translation) (GONALVES, 2013),

    (MADSEN, MEGGELEN & SMITH, 2011).

    Em uma rede IP os dados sero transportados

    utilizando como protocolo de transporte, o TCP,

    UDP ou SCTP.

    O TCP quase nunca utilizado em VoIP, pois

    embora garanta a entrega dos dados, acrescenta um

    atraso significativo, aumentando a latncia, no sen-

    do eficiente para comunicao em tempo real. O pro-

    posito do TCP garantir a entrega dos pacotes, e por

    isto, vrios mecanismos so implementados, como

    numerao dos pacotes, confirmao da entrega e

    retransmisso de pacotes perdidos. Diferentemente

    do TCP, o UDP no oferece nenhuma garantia de

    entrega dos dados, conseguindo que os pacotes che-

    guem ao destino final em um intervalo de tempo me-

    nor.

    O SCTP (Stream Control Transmission Proto-

    col) foi desenvolvido para suprir as limitaes do

    TCP e do UDP. Consegue implementar tcnicas mais

    eficazes de controle de congestionamento (evitando

    tambm ataques de negao de servio), garante a

    sequncia dos pacotes entregues e apresenta baixa

    latncia [2, (KELLER, 2009)].

    3.2 Driver do canal

    So necessrios para a realizao de chamadas.

    Cada protocolo utilizado (SIP, IAX, etc.) possui um

    driver especfico como descrito a seguir: chan_iax2 -

    promove conexo entre dois terminais IAX, chan_sip

    - driver do protocolo SIP, chan_mgcp - driver do

    protocolo MGCP, chan_dahdi - possibilita comuni-

    cao com a RTPC (Rede Pblica de Telefonia Co-

    mutada), entre outros. O driver do canal age como

    um gateway para o Asterisk.

    3.3 CODEC

    Software dedicado a codificar e decodificar uma

    informao digital. O propsito dos algoritmos de

    codificao apresentar diferentes relaes entre

    Anais do XX Congresso Brasileiro de Automtica Belo Horizonte, MG, 20 a 24 de Setembro de 2014

    1676

  • eficincia e qualidade. So caracterizados de acordo

    com a taxa de compresso, perda de pacotes, vazo

    utilizada e processamento computacional exigido,

    possibilitam a deteco de silncio e gerao do ru-

    do de conforto. Como a vazo finita, o nmero de

    conversaes simultneas que uma conexo pode

    estabelecer est diretamente relacionado ao CODEC

    utilizado.

    3.4 Aplicaes

    As aplicaes definem, dentro do plano de dis-

    cagem (extensions.conf), as aes que devem ser

    aplicadas s chamadas, so responsveis por exem-

    plo, pelo estabelecimento da comunicao, toque de

    uma gravao, recebimento de dgitos e desligamento

    de uma chamada.

    As aplicaes so invocadas a partir do plano de

    discagem. O plano de discagem realiza o gerencia-

    mento das chamadas determinando a sequncia de

    passos por o...