Você gostou do post,
e
quer mais?
Me paga um café! :) PIX consultoria@carlosdelfino.eti.br
Curta o post no final da página, use o Disqus, compartilhe em sua rede social. Isso me ajuda e motiva
Obrigado.

excerpt: Como instalar o Asterisk e configura-lo para usar com Arduino

Atenção: Acredito que você ja tenha tido sucesso em instalar o Asterisk conforme o tutorial Instalação do Asterisk para Uso com Arduinos

Vamos ao proximo passo a ser dado com o Asterisk após sua instalação, agora iremos configurar as extensões e canais de comunicação, usaremos apenas um tipo de canal, controlado pelos protocolos SIP, o que será suficiente para tudo que desejamos apresentar e muito mais.

Antes de Começar, Alguns Conceitos

Para se usar o Asterisk é preciso consolidar alguns conceitos, dentre eles:

Considerando que você já conhece tais conceitos vamos continuar.

Arquivos de configuração Importantes

Durante a instalação usamos o comando make sampless para que tenhamos configurações padrões para uso do Asterisk, mas estas configurações não nos atende, portanto vamos fazer um backup delas, criando um diretório backup e movendo todos os arquivos que estão na pasta /etc/asterisks para a pasta de bakcup, porém mantenha uma copia dos seguintes arquivos:

  • asterisk.conf
  • indications.conf
  • logger.conf
  • cel.conf
  • features.conf
  • modules.conf

Deixe todos os arquivos intactos, porém sugiro que liste o conteúdo de cada um para se familiarizar mais com as configurações, o arquivo asterisk.conf e logger.conf podem ter configurações de depuração alteradas para melhorar a visualização de mensagens de erros.

Quais Módulos iremos Usar

O primeiro arquivo que vamos intervir é o arquivo modules.conf, este arquivo informa ao Asterisk como carregar os módulos necessário ao nosso ambiente. O Asterisk é um software totalmente modular e além de vir com todos os módulos/extensões necessários para nosso trabalho, possui uma API bem madura para se desenvolver novos módulos.

Neste arquivo originalmente ele pede para que o Asterisk faça a carga automática dos módulos, porém queremos carregar apenas módulos que nos são interessantes, já que com a carga automática é carregado uma grande quantidade de módulos desnecessários.

Portanto vamos criar um arquivo novo com apenas os módulos que iremos precisar em nosso Workshop.

Vamos começár criando o arquivo de novo modules.conf e na primeira linha coloque a diretiva que indica inicio de secão [modules], em seguida na próxima linha coloque o parametro autoload, com a opção no, veja abaixo o exemplo de com ficará o arquivo, neste exemplo já listo todos os módulos necessários e como devem ser carregados:

Agora abaixo da diretiva autoload, coloque as diretivas conforme o exemplo a seguir, explicarei depois do exemplo os grupos de diretivas:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
[modules]
autoload=no
;
; Modulo de Configuração por Arquivo
preload=pbx_config.so
;
; Módulos de Aplicação com funções para planos de discagem
load=app_system.so
load=app_verbose.so
load=app_dial.so
load=app_record.so
load=app_userevent.so
load=app_playtones.so
load=app_playback.so
load=app_sayunixtime.so
;
; Recursos
load=res_rtp_asterisk.so
; Recurso que ira fazer a integracão com scripts que se comunicam com Arduino
load=res_agi.so
;
; Codecs de Audio
load=codec_alaw.so
load=codec_ulaw.so
load=codec_gsm.so
load=codec_ilbc.so
;
; Funções para Planos de Discagem
load=func_dialgroup.so
load=func_dialplan.so
load=func_callerid.so
load=func_channel.so
;
; Canais de Audio Local
noload=chan_alsa.so
noload=chan_oss.so
load=chan_console.so
; Canais de Audio VOIP, usaremos apenas SIP para os ramais
load=chan_sip.so
load=chan_aix.so
;
; Formatos de audio, observe diretiva “noload”, diz para não carregar
noload=format_g719.so
load=format_ilbc.so
load=format_g723.so
load=format_jpeg.so
load=format_sln.so
noload=format_sln16.so
noload=format_g726.so
noload=format_mp3.so
load=format_vox.so
load=format_g729.so
load=format_ogg_vorbis.so
load=format_wav_gsm.so
load=format_gsm.so
load=format_pcm.so
load=format_wav.so
noload=format_h263.so
noload=format_siren14.so
noload=format_h264.so
noload=format_siren7.so

Como pode ser visto nos comentários, carregamos primeiro um modulo que irá cuidar da configuração, este modulo nos oferece recurso como recargar de configuração, e principalmente a possibilidade de se usar arquivos de configuração em formato texto.

O módulo de configuração e carregado com a diretiva preload para que seja carregado com antecedência.

Em seguida, carregamos módulos de aplicação e úteis ao plano de discagem, porém o que mais nos interessa e que iremos lidar mais, além do plano de discagem propriamente dito, será o módulo res_agi.so, este módulo é responsável pela integração com aplicações externas, funcionando como um Gateway para o Asterisk e tais aplicações, será através deste recurso que iremos ver como desenvolver scripts para se comunicar com o Arduino.

Os módulos de prefixo chan_, criam os canais de audio e voip necessário ao funcionamento do Asterisk e todo o PBX e os módulos de prefixo format_ carregam recursos para tratamentos dos arquivos de áudio nos formatos identificados, serão úteis para gravar e reproduzir arquivos de áudio.

Após esta mudança precisamos reiniciar o Asterisk já que fizemos mudaças em praticamente todos os arquivos de configuração, reiniciando é mais seguro se ter o resultado desejado.

Porém, ao se alterar apenas arquivos de configurações pode se usar o comando rasterisk que veremos a seguir.

Próximos Passos

Veremos no próximo tutorial como criar nosso primeiro canal de comunicação e nossos ramais. Aguardem.

Mais Informações:

Outras informações sobre o Workshop podem ser obtidos clicando aqui, visitando nossa página no facebook

Este trabalho é mantido com os cursos oferecidos no
Curso Arduino Minas!

Não deixe de me pagar um café, faz um PIX: consultoria@carlosdelfino.eti.br de qualquer valor.


Carlos Delfino

Escrito por:

Desenvolvedor e consultor para projetos com Microcontroladores e Mobile

Google LinkedIn Digg Reddit StumbleUpon

Atualizado em