Vous êtes sur la page 1sur 202

Asterisk InProprietário

A Telefonia Hoje!

Professor Angelo B. Delphini


Asterisk InProprietário, A Telefonia Hoje! 2014

As Licenças Creative Commons permitem expandir a quantidade de obras disponibilizadas


livremente e estimular a criação de novas obras com base nas originais, de uma forma eficaz e muito
flexível, recorrendo a um conjunto de licenças padrão que garantem a proteção e liberdade - com
alguns direitos reservados.
As Licenças Creative Commons situam-se entre os direitos de autor (todos os direitos reservados) e
o domínio público (nenhum direito reservado). Têm âmbito mundial, são perpétuas e gratuitas.
Através das Licenças Creative Commons, o autor de uma obra define as condições sob as quais
essa obra é partilhada, de forma proactiva e construtiva, com terceiros, sendo que todas as licenças
requerem que seja dado crédito ao autor da obra, da forma por ele especificada.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 2

[2]
Asterisk InProprietário, A Telefonia Hoje! 2014
Asterisk InProprietário – A telefonia Hoje! É um trabalho para auxiliar os
profissionais da área de TI que estão iniciando em “ToIP & VoIP”. Este
material é a reunião de várias informações disponibilizadas pela Internet,
artigos e livros.

Minha intenção não é plagiar, mas sim oferecer um material onde você
possa estudar de maneira simples e eficiente.
Bom estudo!
Professor Angelo B. Delphini.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 3

[3]
Asterisk InProprietário, A Telefonia Hoje! 2014

Conceitos de Telefonia ................................................................................................................................................. 8


História da Telefonia ..................................................................................................................................................... 8
Telefonia Analogica...................................................................................................................................................... 10
Frequencia da Voz........................................................................................................................................................ 14
DTMF ................................................................................................................................................................................ 14
Telefonia Digital ............................................................................................................................................................ 15
O VoIP.............................................................................................................................................................................. 18
Visão Geral Sobre Protocolos VoIP ......................................................................................................................... 19
SIP..................................................................................................................................................................................... 19
B2BUA .............................................................................................................................................................................. 21
H.323................................................................................................................................................................................ 23
IAX .................................................................................................................................................................................... 23
Visão Geral Sobre CODECs ........................................................................................................................................ 24
Resumo de Conceito de Telefonia........................................................................................................................... 25
Atendendoo Asterisk.................................................................................................................................................... 26
Considerações da Pré Instalação ............................................................................................................................. 26
Dimensionamento do Hardware .............................................................................................................................. 26
Consideções sobre a estrutura de rede ................................................................................................................. 27
GNU/Linux para SysAdmin Asterisk ........................................................................................................................ 28
GNU/Linux com Asterisk ............................................................................................................................................. 28
O que é Hands On ? .................................................................................................................................................... 29
Mão à Obra – Hands On Um ..................................................................................................................................... 30
Escolhendo sua distribuição GNU/Linux ................................................................................................................ 40
Por que o CentOS ? ..................................................................................................................................................... 45
Sobre o CentOS BR GNU/Linux ................................................................................................................................ 46
Sobre o CentOS GNU/Linux....................................................................................................................................... 46
Instalando o CentOS GNU/Linux ............................................................................................................................. 47
Mão à Obra – Hands On Dois ................................................................................................................................... 47
Instalando Laboratório de Estudos ......................................................................................................................... 70
Mão à Obra – Hands On Três ................................................................................................................................... 70
Putty ................................................................................................................................................................................. 70
Notepad++..................................................................................................................................................................... 74
WinSCP ............................................................................................................................................................................ 78

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 4

[4]
Integração das Ferramentas ..................................................................................................................................... 84
Instalando repositorios no CentOS ......................................................................................................................... 95
Mão à Obra – Hands On Quatro .............................................................................................................................. 95
Apresentação do Asterisk........................................................................................................................................... 97
História do Asterisk ...................................................................................................................................................... 97
Arquitetura do Asterisk ............................................................................................................................................... 99
O Asterisk e sua Flexibilidade ................................................................................................................................... 99
As APIs............................................................................................................................................................................. 99
O núcleo do Sistema ................................................................................................................................................ 101
Check List Atualização do Kernel .......................................................................................................................... 101
Mão à Obra – Hands On Cinco .............................................................................................................................. 101
Configurando CDR com MysQL ............................................................................................................................. 109
Mão à Obra – Hands On Seis................................................................................................................................. 109
Instalando DAHDI, LIBPRI, LAME e Asterisk .................................................................................................... 119
Mão à Obra – Hands On Sete ................................................................................................................................ 119
Conhecendo o Asterisk ............................................................................................................................................ 123
Estrutura de Pastas................................................................................................................................................... 123
Iniciando o Asterisk .................................................................................................................................................. 125
Mão à Obra – Hands On Oito ................................................................................................................................ 125
Backup dos Ficheiros do Asterisk ......................................................................................................................... 126
Mão à Obra – Hands On Nove .............................................................................................................................. 126
Asterisk Overview ...................................................................................................................................................... 129
Nosso Cenário............................................................................................................................................................. 129
PBX IP Tradicional ..................................................................................................................................................... 131
PBX IP 100% VoIP .................................................................................................................................................... 131
PBX IP HIBRIDO VoIP & PSTN .............................................................................................................................. 132
Gateway VoIP ............................................................................................................................................................. 133
Servidor de Funcionalidades .................................................................................................................................. 134
Resumo de Atendendo o Asterisk ........................................................................................................................ 134
Configurações Básicas ............................................................................................................................................. 135
O Protocolo SIP .......................................................................................................................................................... 135
Configurar Extensões Telefonicas com o SIP.CONF ....................................................................................... 139
Mão à Obra – Hands On Dez ................................................................................................................................. 139
Configurar Extensões Telefonicas com o IAX.CONF ....................................................................................... 160
Mão à Obra – Hands On Onze .............................................................................................................................. 160
O Dial Plan ................................................................................................................................................................... 165
A Sintaxe ...................................................................................................................................................................... 165
Criando o Dial Plan EXTENSIONS.CONF............................................................................................................. 168
Mão à Obra – Hands On Donze ............................................................................................................................ 168
Entendendo Melhor o Dial Plan EXTENSIONS.CONF ...................................................................................... 171
Configurações de IVRs............................................................................................................................................. 183
Criando Facilidades ................................................................................................................................................... 184
Mão à Obra – Hands On Treze.............................................................................................................................. 184
Criando Variaveis Globais........................................................................................................................................ 187
Mão à Obra – Hands On Quatorze ....................................................................................................................... 187
Entendendo Melhor o IVR....................................................................................................................................... 197
Espaço para dedicatória.
Asterisk InProprietário, A Telefonia Hoje! 2014

Conceitos de Telefonia

História da Telefonia
A invenção do telefone é popularmente atribuída ao escocês Alexander Graham Bell em
1876 por ter ele sido o primeiro a patentear o invento que iria revolucionar a forma com
que as pessoas se comunicam. No entanto Bell só conseguiu manter a glória de ter sido o
pai do telefone porque o verdadeiro inventor não teve condições financeiras de renovar a
patente. Até hoje esse fato não é de conhecimento de todos, mas o primeiro a conseguir
estabelecer uma comunicação de voz entre dois equipamentos elétricos foi o italiano
António Meucci entre 1854 e 1855.

Meucci migrou da Itália para Cuba devido às perseguições que sofria por conta de suas
ideias liberais. Observando o comportamento da voz humana, concluiu que a mesma
poderia ser transmitida através de circuitos elétricos e entre 1854 e 1855 desenvolveu um
“telégrafo sonoro” – como ele mesmo chamava – que comunicava o quarto de sua esposa
doente com o seu laboratório. A figura 1.1 mostra o projeto desenvolvido pelo italiano.

Figura 1.1: Protótipo do equipamento desenvolvido por António Meucci.

Esse invento foi publicado em 1861 por um jornal nova-iorquino mantido por italianos e em
1871 (aproximadamente cinco anos antes de Bell) foi solicitada a patente de um
“Teletrofone”. Como o pedido não foi renovado até 1874 devido aos custos envolvidos,
Graham Bell teve o caminho livre para conseguir registrar o seu protótipo.

Assim, a patente foi mantida devido à morte de Meucci em 1889 e por conta de outros
tropeços burocráticos até que em 2002 o Congresso Americano o reconheceu como
verdadeiro inventor do telefone.

No entanto, Graham Bell, teve seus méritos com esse projeto, pois foi ele quem conseguiu
aperfeiçoar e trazer notoriedade ao invento. Juntamente com outros pesquisadores a rede
de telefonia começou a se difundir e em Portugal as primeiras experiências de telefone

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 8

[8]
Asterisk InProprietário, A Telefonia Hoje! 2014
iniciaram-se em 24 de Novembro de 1877, ligando Carcavelos à Central do Cabo em
Lisboa. A primeira rede telefónica pública foi inaugurada em Lisboa a 26 de Abril de 1882
pela Edison Gower Bell Telephone Company of Europe Ltd que tinha a concessão atribuída
desde 13 de Janeiro de 1882. A concessão foi transferida para a The Anglo Portuguese
Telephone Company (APT) em 1887 que a manteve até 1968.

O primeiro serviço de telefone automático foi inaugurado em Portugal em 1930 e em 25 de


Setembro de 1937 a APT inaugurou a primeira estação automática na Estrela em Lisboa.
Nesse ano a rede da APT tinha 48 000 assinantes.

Nessa época eram necessários pontos centralizados que fizessem a comutação manual
entre a origem e o destino: eram os primeiros PBXs (Private Branch Exchange), a figura 1.2
mostra como era uma central telefónica nesta época.

Figura 1.2: Comutação manual de chamadas feitas por telefonistas.

Com a disseminação do uso do telefone a sua adoção comercial, a necessidade de


agilidade e novos recursos envolvendo telefonia vieram à tona. Em 1889 foi desenvolvida a
primeira central telefónica automática (PABX – Private Automatic Branch Exchange)
tendo seu projeto ampliado e melhorado até atingir o nível que conhecemos hoje. Novos
recursos como gravação, música em espera e atendimento automático vieram a ser

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 9

[9]
Asterisk InProprietário, A Telefonia Hoje! 2014
incorporados às centrais telefónicas com o avanço da tecnologia. A figura 1.3 mostra uma
central PABX.

Figura 1.3: Central PABX

Telefonia Analogica
A telefonia analógica se baseia no simples princípio onde temos uma fonte de tensão e a
ponta que a recebe.

A ponta que gera a tensão e consequentemente o tom de marcação é conhecida como


porta FXS (Foreign Exchange Station) ou porta de extensão e esta encontra-se sempre
do lado onde o serviço está sendo oferecido – usualmente a operadora para o telefone ou
o PABX para a extensão. A ponta que recebe a tensão e o tom é a chamada porta FXO
(Foreign Exchange Office) ou porta de tronco (trunk). Para haver o correto
funcionamento do sistema e evitar danos aos equipamentos envolvidos é fundamental que
seja sempre ligada uma porta FXO a uma porta FXS, ou seja, nunca uma porta FXS deve
ser ligada à outra, pois ambas irão gerar tensão, o que pode ocasionar a queima de uma
ou das duas portas. Também não se deve conectar uma porta FXO com outra, já que
ambas apenas recebem o tom e sendo assim essa conexão irá se anular.

A corrente gerada pela porta FXS para fazer com que o telefone toque é de 90 volts, o
suficiente para alimentar os componentes eletrónicos de um telefone analógico simples
para que faça vibrar o dispositivo de emissão sonora. Vale lembrar que ao trabalhar com
uma linha “viva” é necessário tomar os devidos cuidados.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 10

[ 10 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

Logo FXS e FXO são as portas usadas por linhas de telefonia analógica (também
conhecidas por POTS – Sistema de Telefonia Tradicional).

FXS - Foreign eXchange Subscriber. É a interface que fornece a linha analógica ao


assinante. Em outras palavras, é o “plug na parede” que fornece o tom de marcação,
corrente de energia e som.

FXO - Foreign eXchange Office. É a interface que recebe a linha analógica. É o plug no
telefone ou aparelho de fax, ou o(s) plug(s) no seu sistema de telefonia analógica. Indica
se o telefone está no gancho/fora do gancho (circuito fechado). Como a porta FXO está
ligada a um dispositivo, tal como fax ou telefone, esse dispositivo é normalmente chamado
de ‘dispositivo FXO’.

FXO e FXS estão sempre em pares, de modo semelhante a um plug macho / fêmea.
Sem um PBX, um telefone fica conectado diretamente à porta FXS fornecida por uma
companhia telefónica.

Figura 1.4: Esquema de telefonia PSTN x Telefone

Se você tiver um PBX, as linhas fornecidas pela companhia telefónica estarão conectadas a
um PBX, assim como os telefones. Portanto, o PBX deve ter tanto as portas FXO (para
conectar com as portas FXS fornecidas pelas companhias telefónicas) quanto portas FXS
(para conectar os aparelhos de telefone e fax).

Figura 1.5: Esquema de telefonia PSTN x PBX x Telefone

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 11

[ 11 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
FXS & FXO & VoIP
Você vai se deparar com os termos FXS e FXO quando decidir comprar equipamentos que
permitam a conexão de linhas analógicas ao sistema de telefonia VoIP, telefones
analógicos ao sistema de telefonia VoIP ou PBXs tradicionais ao provedor de serviços VoIP,
ou um à outra via Internet.

O Gateway FXO

Figura 1.6: Telefonia VoIP com Gateway FXO

Para conectar linhas telefónicas analógicas a um IP PBX, você precisa de um Gateway FXO.
Isso permite que você conecte a porta FXS à porta do Gateway, o que transforma uma
linha telefónica analógica em uma ligação VoIP.

O Gateway FXS

Figura 1.7: Telefonia VoIP com Gateway FXS

O Gateway FXS é usado para conectar uma ou mais linhas de um PBX convencional a um
sistema de telefonia VoIP ou a um provedor. É preciso um Gateway FXS para conectar as
portas FXO (que normalmente estão conectadas à companhia telefónica) à Internet ou a
um sistema VoIP.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 12

[ 12 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Adaptador FXS ATA ou adaptador ATA

Figura 1.8: Telefonia VoIP FXS ATA

O adaptador FXS é usado para conectar o telefone ou faxe analógico a um sistema de


telefonia VoIP ou a um provedor VoIP. É necessário porque é preciso conectar a porta FXO
do telefone ou aparelho de Faxe ao adaptador.

Conexão
Procedimentos FXS/ FXO – funcionamento técnico
Se quiser saber mais detalhes técnicos sobre o funcionamento das portas FXS/ FXO, esta é
a sequência exata:

Ao realizar uma chamada:


1. Tire o telefone do gancho (dispositivo FXO). A porta FXS detecta que o telefone
está fora do gancho.
2. Faça a marcação do número de telefone, que é transmitido à porta FXS em Tom
Duplo de Multifrequência (DTMF).

Ligação interna
1. A porta FXS recebe a ligação, e então envia um impulso tônico (som) ao
dispositivo FXO anexado.
2. O telefone toca.
3. Assim que alguém atende, pode responder a chamada.

Finalizando uma ligação – normalmente a porta FXS conta com qualquer dispositivo FXO
conectado para finalizar a ligação.

Nota: A linha de telefonia analógica transmite aproximadamente uma potência de 90 volts


à porta FXS. É por isso que alguns sentem um ‘leve’ choque ao tocar numa linha telefónica
conectada. Isso permite que a ligação continue em caso de interrupção de energia.

Fonte: www.3cx.com

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 13

[ 13 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

Frequencia da Voz
A maior parte da voz é transmitida entre 250 e 3000Hz e ainda conseguimos capturar
vibrações no ar na faixa de 20 a 20000Hz. Para que haja uma qualidade o mais perto
possível do real e sem causar uma sobrecarga no sistema a faixa escolhida para
transmissão é de 300 a 3500Hz, o que traz uma perda de qualidade quando é tocada uma
música, por exemplo, utilizando esse meio ou quando as nuances da voz atingem
frequências muito altas ou baixas.

DTMF
Atualmente a maioria dos sistemas de telefonia trabalha com a marcação por tom enviando
DTMF (Dual-Tone Multi Frequency), isso significa que são combinadas duas frequências
cada vez que um dos dígitos do teclado do telefone pressionado, após um determinado
tempo sem receber as frequências o PABX irá interpretar que a marcação chegou ao final e
irá tentar encontrar uma rota para o destino. Veja na figura 1.9 os dígitos e as frequências
que os formam.

Figura 1.9: Os dígitos e suas respectivas frequências.

A maioria dos telefones não explora a última coluna, no entanto o protocolo elétrico
definido entre as pontas define esses dígitos para funções internas de controlo das
chamadas.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 14

[ 14 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

Telefonia Digital
Como na comunicação em canais analógicos é possível estabelecer somente uma chamada
por vez para cada par de fios metálicos, a malha telefónica tendia ao colapso, pois não
haveria mais infraestrutura suficiente para manter todos conectados. Imagine quantos
pares deveriam ser ligados entre os pontos de presença de uma companhia telefónica, por
exemplo, para que não gerasse lentidão no sistema e viabilizasse a comunicação entre
duas cidades. Observe a figura 1.10.

Figura 1.10: Rede de Telefonia analógica com infraestrutura sobre carregada

Para resolver essa e outras limitações da telefonia analógica, surgiu um novo conceito de
telefonia que é amplamente utilizado hoje: a telefonia digital. Nesse novo modelo, a
comunicação é estabelecida através de pacotes contendo as informações do áudio que são
lidos e reproduzidos na outra ponta, ou seja, deixa-se de transmitir a onda sonora para
transportar apenas suas informações que são reconstruídas sem qualquer perda de sua
natureza no destino. Veremos mais adiante em CODECs como ocorre o processo de
amostragem e digitalização do áudio.

Os links sobre os quais trafegam os pacotes de telefonia digital mais utilizados atualmente
são:

E1: link de 2Mbps dividido em 32 canais de 64Kbps. Desses, 30 são destinados à voz, 1 a
fechamento de loop para controlo do link e 1 para sinalização. É o tipo de canal digital mais
utilizado no mundo, exceto nos EUA e Japão.

T1: link de 1.544Mbps dividido em 24 canais de 64Kbps onde todos são utilizados para voz,
os 0,008Mbps restantes são utilizados para enquadramento de bits. São encontrados
somente nos EUA e Japão (no Japão o padrão é chamado de J1 que é muito semelhante ao
T1).

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 15

[ 15 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
T2, T3, T4: são múltiplos T1s. Onde o T2 é um conjunto de 4 T1s, T3 de 7 T2s e T4 de 6
T3s.

Para cada chamada se estabelece um canal de 64Kbps para transportar voz, bastando um
protocolo para informar os dados essenciais da chamada como origem, destino, início e
fim. Os protocolos hoje encontrados são:
MFC/R2: esse protocolo utiliza a sinalização CAS (Channel Associated Signalling –
Sinalização de Canal Associado), isso quer dizer que a voz e a sinalização da chamada são
trafegadas pelo mesmo canal.

É um protocolo mais antigo que seu concorrente ISDN, usado hoje somente no Brasil,
devido seu parque de telefonia ser antigo.

No MFC-R2 (ou simplesmente R2 como é popularmente conhecido no Brasil) os dígitos do


número A (origem), de B (destino) e controlo da chamada são passados um a um,
tornando esse protocolo um pouco lento, como o tempo estimado de cerca de 5 segundos
até o estabelecimento de uma chamada. A figura 1.11 elucida o funcionamento do MFC-R2.

Figura 1.11: Fluxograma do protocolo R2

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 16

[ 16 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Nota-se, até a comunicação se estabelecer efetivamente com o atendimento, são enviadas
uma série de dígitos e confirmações. Dependendo das características físicas do meio e da
capacidade de processamento dos sinais nas duas pontas, a demora para conseguir um
status da chamada (tom de chamando ou ocupado) pode variar, mas sempre será uma
conexão um tanto morosa.
ISDN: nesse protocolo é utilizado a sinalização CCS (Common Channel Signaling
– Sinalização de Canal Comum), ou seja, toda a sinalização é enviada por um único
canal – o canal 16 – restando os demais canais para trafegar apenas a voz.

Esse protocolo é o mais moderno, sendo muito encontrado em países desenvolvidos. O


padrão PRI (Primary Rate Interface) é o mais difundido entre os padrões que o ISDN
descreve, pois nesse padrão são utilizados os 30 canais de voz do E1. Existe também o
padrão BRI, no qual são utilizados somente dois canais de voz que trafegam sobre um par
metálico. Porém raramente são encontrados fora dos Estados Unidos e Japão.

Uma das principais características positivas do ISDN é enviar todas as informações da


chamada a ser estabelecida de uma única vez, o que diminui muito o tempo de
estabelecimento da chamada, sendo somente o tempo dos dados chegarem à operadora e
retornarem com o status informando se a chamada pôde ser completada ou não. Veja a
figura 1.12 que ilustra esse comportamento e compare com a figura 1.11.

Figura 1.12: Esquema do protocolo ISDN

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 17

[ 17 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

O VoIP
Como já é de conhecimento geral, VoIP vem
da sigla em inglês Voice over Internet
Protocol, em português: Voz sobre o Protocolo
de Internet (IP), ou seja, estabelecer uma
chamada de voz entre dois pontos utilizando
como meio a rede de dados.

Com a ampliação, massificação e,


principalmente, com o aumento na qualidade
dos serviços das redes de dados, a exploração
dos conceitos de VoIP popularizou-se tornando a comunicação entre dois pontos (talvez
remotos) mais eficiente e muito mais barata. Isso acontece pois deixa de ser necessário ter
em todos os momentos duas estruturas separadas para telefonia e dados, uma vez que é
utilizada uma infraestrutura única para trafegar os diferentes serviços. Isso se reflete no
custo de chamadas de longa distancia nacional e internacional, já que a conexão
permanente está previamente estabelecida só aumentando o fluxo de informação
trafegando por ela, mas fundamentalmente o processo permanece o mesmo.

Novas alternativas surgiram inclusive para o uso residencial, sem a necessidade de


equipamentos robustos. Hoje em dia é possível conversar com pessoas ao redor do mundo
a um custo muito inferior do que era praticado até alguns anos atrás. Dois exemplos muito
famosos e utilizados são os recursos de voz presentes nos comunicadores instantâneos e
as operadoras VoIP.

Um dos mais famosos recursos nas comunicações de voz “domésticas” foi o Skype.
Trazendo uma qualidade bastante interessante e sem ter gastos com contas nacionais e
internacionais altíssimas é possível com um headset e uma conexão de Internet
relativamente simples, falar com uma pessoa que esteja conectada à rede em qualquer
lugar do mundo sem pagar nada a mais por isso. Ou ainda, comprar créditos a um valor
mais acessível que o minuto de uma chamada delonga distancia praticado por uma
operadora convencional para falar praticamente com qualquer lugar do mundo. Surgiram,
inclusive, soluções para integração de PBXs IP com o Skype e que fizesse o uso desses
benefícios. Infelizmente com a aquisição da Skype pela Microsoft este projeto foi
descontinuado.

As operadoras VoIP também se adequaram ao mercado doméstico com planos


direcionados para esse público além do corporativo. Em Portugal, as operadoras
disponibilizam de chamadas nacionais gratuitas. Com um dispositivo ATA ou qualquer tipo
de Gateway, e até mesmo um telefone IP que possibilite a conexão com esse tipo de
provedor de serviço, é possível estabelecer chamadas pela Internet a um custo
normalmente mais baixo que o serviço tradicional de telefonia. É possível até mesmo
contratar uma numeração do exterior para receber e fazer chamadas utilizando esses
recursos.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 18

[ 18 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

Visão Geral Sobre Protocolos VoIP


As chamadas sobre a rede de dados são estabelecidas e têm sua média transportada por
protocolos especialmente desenvolvidos para esse fim. Os mais famosos são o SIP e o
H.323, porém iremos apresentar também o IAX que é um protocolo desenvolvido pela
empresa fabricante do Asterisk – a Digium – e vem ganhando bastante espaço devido ao
crescimento desse PBX IP.

SIP
O protocolo SIP (Session Initiation Protocol – Protocolo de Inicialização de Sessão) foi
desenvolvido pelo IETF (sigla em inglês de Internet Engineering Task Force) é uma
comunidade internacional ampla e aberta (técnicos, agências, fabricantes, fornecedores,
pesquisadores) preocupada com a evolução da arquitetura da Internet e seu perfeito
funcionamento. A IETF tem como missão identificar e propor soluções a
questões/problemas relacionados à utilização da Internet, além de propor padronização das
tecnologias e protocolos envolvidos. As recomendações da IETF são usualmente publicadas
em documentos denominados RFCs (Request for Comments), sendo que a própria IETF
é descrita pela RFC 3160. O protocolo SIP na data de publicação deste livro se encontrava
na sua segunda versão que está definida na RFC 3261 publicada no ano de 2002. Esse
protocolo encaixa-se na camada de aplicação do modelo de referência OSI e é responsável
por estabelecer, alterar e finalizar sessões multimídia, entre elas, as chamadas VoIP.

Como o próprio nome indica, o protocolo SIP não transporta qualquer tipo de média em
seus pacotes. Ele é responsável apenas pelo gerenciamento da sessão. Para chamadas de
voz é utilizado o SDP (Session Description Protocol) para informar os dados da média
entre as pontas e o RTP (Realtime Transport Protocol) para efetivamente trafegar o
áudio. Normalmente quando se fala em SIP em um ambiente VoIP subentende-se o
conjunto [VoIP={SIP+SDP+RTP}], porque um não faz sentido sem o outro nesse
contexto.

Em sua estrutura, o protocolo SIP se parece com o protocolo http, sendo também um
protocolo baseado em texto e funcional como cliente/servidor, ou seja, implementa
métodos de requisição e resposta na comunicação. Em SIP o cliente é chamado de UAC
(User Agent Client) e o servidor de UAS (User Agent Server).

Os métodos de requisição em SIP são:


 INVITE: início de uma sessão;
 ACK: acklogement, confirmação de resposta;
 BYE: fim de uma sessão;
 CANCEL: cancelamento de uma requisição pendente;
 OPTIONS: descrição das funções suportadas;
 REGISTER: requisição de registro.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 19

[ 19 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

As respostas são divididas em classes:


 1XX: informativos, por exemplo 180 Ringing;
 2XX: confirmação, exemplo 200 Ok;
 3XX: redireccionamento, 302 Moved Temp;
 4XX: falha na execução do comando, 401 Unauthorized;
 5XX: erros no servidor. Geralmente esses erros são gerados pela própria aplicação e
não retornados pelo servidor como os demais, 504 Timeout;
 6XX: erros globais, 600 Busy Everywhere.

Utilizando o SIP existem basicamente três tipos de plataformas que gerenciam as


chamadas:
 SIP Proxy;
 SIP Redirect;
 SIPB2BUA.

No modo Proxy toda a sinalização SIP é gerenciada pelo servidor e a média passa
diretamente entre as pontas sem qualquer intervenção do SIP Proxy. Servidores desse tipo
geralmente são utilizados em operadoras VoIP por conseguirem realizar a gestão de uma
gama de números maior de chamadas e utilizadores. No entanto não têm qualquer recurso
de um PABX que trabalhe com áudio como: música em espera, IVR ou Voice-mail; caso
seja necessário utilizar este tipo de recurso é necessário que este seja integrado a um PBX
IP, como o Asterisk, por exemplo.

Atualmente existe no mercado alguns aplicativos Open Source bastante utilizados como SIP
Server, entre eles os mais famosos são as duas vertentes do descontinuado aplicativo
OpenSER: Kamailio e OpenSIPS: dois softwares bastante robustos e flexíveis dentro do seu
nicho de mercado.

Outra forma de utilizar o protocolo é com um servidor SIP Redirect. Este servidor armazena
informações sobre a localização dos clientes e encaminha tais dados para a própria origem
entre em contato diretamente com o destino. Geralmente este recurso é utilizado quando o
destino que se deseja alcançar está em um domínio diferente do da origem, servindo como
um servidor de localização.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 20

[ 20 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

B2BUA
O modo que é utilizado pelos PBXs IP (inclusive o Asterisk) e mais popular é o B2BUA
(Back-to-Back User Agent). Ou seja, o servidor irá concentrar o gerenciamento da
sinalização e da média criando assim, dois canais de comunicação para cada chamada
estabelecida: uma da origem até o servidor e outra do servidor ao destino. Veja o exemplo
na figura 1.13.

Figura 1.13: Exemplo do protocolo SIP no modo B2BUA.

Com a capacidade de gerenciamento da média, a gama de recursos do PBX IP se torna


imensa. É possível fazer atendimentos automáticos, inclusive com controlo de horários,
voice-mail, gravação, transcodificação entre CODECs e protocolos, entre outros. Como a
figura 1.14 ilustra o funcionamento de um serviço utilizando o SIP no modo B2BUA,
podemos perceber que a única diferença entre esse modo e o SIP Proxy é o fluxo da média
sendo intermediado pelo servidor.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 21

[ 21 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

Figura 1.14: Exemplo do fluxo no protocolo SIP com o modo B2BUA.

Uma das maiores dificuldades ao trabalharmos com SIP é em relação à travessia de NAT.
Como é utilizada uma porta para sinalização (5060 UDP) e uma faixa para o RTP
transportar a média (por padrão do Asterisk de 10000 a 20000 UDP), muitas portas têm de
ser abertas no firewall, o que pode ser uma falha na segurança, e algumas personalizações
devem ser feitas nas configurações exclusivamente para tentar evitar problemas como
ligações mudas e outros problemas que acontecem em cenários desse tipo.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 22

[ 22 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

H.323
O H.323 é um dos protocolos mais maduros, robustos e utilizados nos equipamentos que
utilizam VoIP por ser um dos mais antigos e desenvolvido especificamente com a finalidade
de comunicações multimédias. Ele é o protocolo padrão utilizado em Gateways de Voz
sobre IP das marcas Cisco, Polycom e Siemens, por exemplo, além de estar presente na
maioria das centrais telefónicas que possibilitam o uso de VoIP, porém vem sendo
substituído pelo SIP devido à flexibilidade deste.

O H.323 trabalha na camada 2 do modelo OSI e por isso é totalmente independente dos
assuntos relacionados à rede. Esse ponto pode ser visto como um ponto positivo ou
negativo dependendo do ambiente que se tem.

Hoje em dia o uso mais comum do protocolo H.323 está relacionado com videoconferência,
onde o seu desempenho ainda é muito bom.

IAX
O IAX (Inter Asterisk eXchange Protocol) é um dos mais novos protocolos utilizados
em VoIP. Foi desenvolvido pela Digium, empresa desenvolvedora do Asterisk, com o
objetivo de estabelecer a comunicação entre dois servidores também Asterisk. Por esse
motivo esse protocolo tem seu uso restrito a plataformas que têm como base o Asterisk.
Em consequência, existem poucos aplicativos e equipamentos que têm esse protocolo
nativo, pois a maioria das empresas ainda não considera que seja comercialmente
interessante desenvolver produtos para uma utilização tão específica.

Pode-se dizer que o IAX foi desenvolvido pensando em superar algumas dificuldades que
existiam no entroncamento entre dois servidores utilizando o SIP, principalmente na
travessia de NAT e consumo de banda. Atualmente o IAX encontra-se na versão 2 e
recebeu sua definição na RFC 5456.

A facilidade do IAX em atravessar NAT está no facto de que este trabalha somente com
uma porta (4569 UDP) para transporte de toda sinalização e média das chamadas.
Portanto muito menos configurações e considerações nas resoluções de problemas são
necessárias.

Diferentemente do SIP o IAX não é um protocolo em modo texto, portanto seus pacotes
não podem ser capturados, abertos e lidos por analisadores de protocolos, como o
Wireshark por exemplo. Objetivo principal de ser desenvolvido dessa maneira é para
formar pacotes menores e ser menos custoso para a rede.

Para economizar ainda mais banda em um entroncamento utilizando o protocolo IAX é


possível configurá-lo no modo trunk. Nesse modo de operação, parte-se do princípio de
que todas as ligações que saem para um mesmo destino podem ser empacotadas em um
único pacote IP, sem que seja necessário enviar um pacote para cada chamada contendo
cabeçalhos com informações iguais. Ou seja, têm-se menos pacotes, mas pacotes maiores.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 23

[ 23 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Além de economizar banda, os ativos de rede conseguem trabalhar com mais facilidade já
que chegam menos requisições redundantes para serem gerenciadas.

Por exemplo: analisando um sentindo de cada chamada utilizando o CODEC G.711u (ulaw)
e o protocolo IAX sem o modo trunk há um consumo de 82.1Kbps, sendo
aproximadamente 65.9Kbps de áudio e 16Kbps de overhead. Se forem submetidas duas
chamadas simultâneas, tem-se 82.1+82.1Kbps ou um consumo de aproximadamente
164Kbps para esse sentido. Operando no modo trunk o cenário seria diferente pois para
uma chamada o consumo de banda ficaria praticamente o mesmo: 82.1Kbps; porém a
cada chamada adicional é acrescentado somente os 65.9Kbps de média, resultando em
82.1+65.9Kbps para duas chamadas simultâneas, ou seja, cerca de 148Kbps.

Outra vantagem do IAX sobre o SIP é o jitter buffer. O jitter buffer tem objetivo de agrupar
uma sequência de pacotes para encaminhá-los com uma variação menor de atraso do que
foram recebidos. Com isso a comunicação vai soar mais natural do que se esse tratamento
não fosse feito. Nas versões mais novas do Asterisk já existe um jitter buffer para o SIP
também, porém ele ainda não é tão maduro e eficiente como o disponível no IAX.

Visão Geral Sobre CODECs


A voz humana é uma onda senoidal contínua e o meio de dados só consegue transmitir
sinais discretos, representados ao mais baixo nível por zeros e uns. O processo que faz
essa conversão entre os diferentes tipos de sinais é chamado de digitalização do áudio e
como será feita a retirada das amostras de áudio e como elas serão comprimidas ou não
são tarefas definidas pelos CODECs (CoDec é o acrônimo de Codificador/Decodificador,
dispositivo de hardware ou software que codifica/decodifica sinais).

O número de amostras que o CODEC irá retirar do áudio contínuo é chamado de taxa de
amostragem. Essa taxa influencia diretamente na qualidade do áudio e no tamanho do
pacote gerado. Segundo o Teorema de Nyquist:

“…a frequência de amostragem de um sinal analógico para que esse possa ser
reconstruído com o mínimo de perda de informação deve ser igual ou maior a duas
vezes a maior frequência do espectro desse sinal…”;

Como as linhas telefónicas não conseguem transmitir mais que 4000Hz, a taxa de
amostragem para esse meio será de 8000 amostras por segundo.

Os CODECs fazem uso de técnicas de compressão, diferem quanto ao número de bits para
representar as amostras e trabalham somente na região que o ouvido humano percebe as
nuances da voz com maior precisão, dessa forma, dados menos percetíveis para o
entendimento geral da conversa são menos amostrados e há maior economia da banda.

O CODEC padrão da telefonia analógica é o G.711, que é subdividido em duas leis: lei a (a-
law) e lei µ (µ-law). Elas diferem somente na forma como as amostragens são tiradas,
porém ambas usam 8bits por amostra a uma frequência de 8000 amostras por segundo o

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 24

[ 24 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
que dá um uso de banda de 64Kbps para cada chamada utilizando esse CODEC. Em
Portugal, especificamente, é adotada a lei a, porém em outros países, como os EUA, é
usada µ. Falaremos mais adiante sobre a importância dessa informação.

A figura 1.15 apresenta um quadro com o comparativo do consumo de banda (BW) entre
os CODECs.

Figura 1.15: Tabela de largura de banda (BW) real para alguns CODECs (usando Ethernet)

Como o G.711 não faz qualquer compressão de voz, o processamento que ele necessita é
muito pequeno e a qualidade do áudio é muito boa, no entanto o pacote gerado é grande.
Os CODECs que têm uma taxa de amostragem alta e fazem mais compressão desses dados
exigem mais processamento (como no GSM e G729). Os que fazem pouca compressão,
utilizam pouco processamento e geram pacotes pequenos têm uma taxa de amostragem
menor e a qualidade do áudio acaba ficando comprometida (como no iLBC e LPC10).

Resumo de Conceito de Telefonia


Foram apresentados conceitos sobre telefonia desde o princípio e sua evolução durante o
tempo até chegar ao que é utilizado hoje. Durante essa linha do tempo foram vistos
conceitos de telefonia analógica, sendo a base para conhecer portas FXS e FXO muito
utilizadas em extensões e entroncamentos com a operadora. Em seguida passamos pelos
links digitais juntamente com os protocolos mais utilizados em Portugal. Chegando
finalmente o foco deste material: o VoIP. Sobre o VoIP podemos ver como é o seu
funcionamento e podemos conhecer o protocolo SIP, que vem crescendo e se difundindo
em diversas plataformas e foi base de comparação para seu concorrente mais antigo e
robusto e que vem entrando em desuso devido às suas limitações. Por fim chegamos ao
estudo dos CODECs. Como trabalham, qual sua finalidade no mundo VoIP, as diferenças e
principais características de cada um.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 25

[ 25 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

Atendendo o Asterisk

Considerações da Pré Instalação


Como em qualquer projeto em TI, existem alguns requisitos que devem ser observados
antes de efetivamente colocar a mão na massa e montar um PBX IP baseado em Asterisk.
Não vamos nos ater às metodologias de gerenciamento de projetos por não ser o foco
deste material de estudo, mas montar um plano e segui-lo da melhor forma possível é uma
das fontes para ser bem-sucedido no projeto de telefonia.

Outro desafio que se enfrenta ao se implementar uma solução VoIP é que estamos sempre
concorrendo com um sistema muito maduro e geralmente estável de telefonia
convencional. Portanto instalar um sistema novo deverá apresentar bons resultados para
evitar comparações e reclamações to tipo “o VoIP nunca funciona”, “quando utilizávamos o
outro sistema era melhor” ou reclamações de qualidade da voz que minam o projeto, a
imagem da tecnologia e do profissional que está à frente da solução.

Para tentar evitar esse tipo de problema, trazer qualidade e valor ao projeto é necessário
que alguns cuidados sejam tomados já no princípio.

Dimensionamento do Hardware
Fazer um levantamento do hardware ideal para o ambiente que será implantado é um dos
principais pilares para evitar complicações durante a utilização do serviço.

Recomenda-se que seja utilizada uma máquina com arquitetura projetada para servidores e
de uma marca ou com componentes que você confie para garantir um uptime alto de
hardware. Os principais pontos suscetíveis a falhas em computadores são a fonte de
energia e o disco rígido; portanto, devido a criticidade do serviço de telefonia é sempre
importante pensar em redundância pelo menos para esses dois componentes, utilizando
fontes de energia redundantes e RAID de discos.

Caso haja necessidade é possível trabalhar também com servidores em redundância, de


forma que quando um parar de funcionar o outro assuma seu lugar automaticamente.
Ambientes como esse são chamados de clusters de alta disponibilidade ou HA (High
Availability). Existem ferramentas para GNU/Linux que fazem esse processo.

Diversos serviços no GNU/Linux precisam gravar logs e informações temporárias em disco


enquanto tarefas estão sendo executadas e caso isso não seja possível devido a um disco
rígido cheio, os problemas começam a aparecer. O Asterisk é bastante sensível para
armazenar seus ficheiros temporários. Para eliminar esse tipo de problema alguns fatores
são cruciais:

Gravação de chamadas: se for feita a gravação de chamadas é necessário tomar um


cuidado ainda maior e estimar o número de gravações e o tamanho que cada um terá em

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 26

[ 26 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
média, assim como qual será o período que os ficheiros de áudio ficarão armazenados em
disco antes de serem movidos para outro local ou eliminados.

Caixas de mensagens (Voice-mail): deve-se atentar também ao número de mensagens


que serão armazenadas no servidor, seu tamanho e o tempo que ficarão disponíveis.
Quanto ao consumo da CPU e memória, também deve ser dispensada especial atenção,
porque se o hardware trabalhar em seu limite não dispondo de tempo para processar toda
a sinalização e áudio que será gerado, haverá problemas desde quedas de chamadas até
baixa qualidade nas mesmas. Desta forma, devem ser analisados os seguintes itens:

 Transcodificação de CODECs e protocolos: CODECs que utilizam maior


compressão exigem maior processamento, portanto é necessário analisar qual o
CODEC que será trabalhado e em qual situação dentro do ambiente. Assim como
fazer a tradução de um protocolo para outra demanda mais recursos que trabalhar
somente com um tipo.

 Aplicativos “pesados”: aplicativos como os de conferência, quando executados


com muitos participantes são mais caras computacionalmente por terem que fazer a
gestão de diversos canais, muitas vezes com diferentes origens. Ou seja, deve-se
analisar o uso desses aplicativos quando forem essenciais e com muito volume de
participações.

 Integrações e aplicativos de terceiros: é preferível que seja utilizado um


servidor apenas para executar o Asterisk, porém frequentemente é desejado
integra-lo a outros aplicativos no mesmo servidor. Desde que o consumo dos
recursos exigidos pelo programa seja conhecido não haverá maiores problemas, mas
não deve ser desconsiderado.

Sempre que for utilizado Hardware conectado aos slots PCI é exigida uma observação da
velocidade do barramento e no controlo de compartilhamento dos IRQs. Perdas de
desempenho pelas placas podem acarretar picotes, eco e outros problemas envolvendo a
qualidade do áudio e sinalização das chamadas. Deve-se prestar atenção também quanto
ao consumo de processamento para cancelamento de eco exigido pela placa que será
utilizada, algumas utilizam o processador do servidor e outras têm seus próprios DSPs para
realizar os processos.

Consideções sobre a estrutura de rede


O VoIP é muito sensível às intempéries que acontecem na rede. Consequentemente, falhas
podem ser percebidas facilmente pelos utilizadores. Em ambientes no qual a telefonia irá
compartilhar os recursos da rede com o restante do tráfego já existente para comunicação
de dados, os cuidados com QoS são essenciais.

Existe a necessidade de se reservar recursos exclusivamente para voz e também priorizar


esses pacotes em relação a outros. Perder ou atrasar pacotes de voz acarretam em perda
de informação porque é utilizado o protocolo UDP (sem confiabilidade e sem

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 27

[ 27 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
retransmissão). Esse fato é diretamente percebido pelo utilizador como voz metalizada ou
picotes, diferentemente de quando esse problema ocorre com outros serviços como acesso
à Internet ou emails.

Para garantir que não ocorra concorrência entre os dispositivos IP como Gateways de
telefonia, telefones IP, ATAs e os demais serviços que estão trafegando no meio, é
recomendável que sejam separadas VLANs para esses equipamentos.

Desde o cabeamento até os ativos de rede e políticas de acesso devem sofrer revisões
quando estiver em etapa de dimensionamento da estrutura. Nessa etapa o tamanho dos
pacotes gerados por cada CODEC deve ser analisado para ver o que é compatível com o
que está disponível. Lembrando que cada chamada tem dois canais, ou seja, se utilizar o
CODEC G.711, por exemplo, que utiliza 64Kbps teremos para cada chamada pelo menos
128Kbps somente para a passagem de áudio sem considerar os cabeçalhos.

Os switches gerenciáveis de camada 3 são a melhor opção para configurar os parâmetros


de priorização e garantia de banda para os pacotes de voz. Hubs devem ser eliminados da
rede por replicarem os pacotes que entram em uma porta para todas as outras; imagine o
tráfego gerado se todas as portas estiverem fazendo chamadas e os pacotes sendo
replicados entre elas.

Quando forem utilizados provedores VoIP ou entroncamentos entre servidores em


diferentes locais, o tamanho do link de Internet que será utilizado deve ser dimensionado,
novamente, observando o consumo de banda dos CODECs multiplicado pelo número de
chamadas simultâneas para evitar problemas de lentidão. O link deve ser dimensionado
para que seja suficientemente grande para suportar a média de chamadas simultâneas que
irão trafegar durante o horário de maior movimento e mais uma folga para suportar os
picos.

GNU/Linux para SysAdmin Asterisk

GNU/Linux com Asterisk


O Asterisk pode ser utilizado em qualquer distribuição GNU/Linux ou BSD sem necessidade
de adaptações, sinta-se a vontade para escolher o sistema operacional que você tem mais
familiaridade e tenha bom desempenho em servidores. A melhor distribuição com certeza
será a que você tiver melhor facilidade para manter.

Para ter maior controlo e segurança quando os serviços estiverem sendo executados o é
importante que o sistema de ficheiros (File System) esteja particionado de acordo com o
sistema que você irá montar.

Com um bom particionamento, caso ocorra algum erro em uma das partições fica mais fácil
recuperar os dados que estão armazenados em outras delas, isolando a falha para causar o
menor dano possível em seu PBX IP.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 28

[ 28 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Outro benefício é o controlo do volume dos dados que serão gravados em cada uma das
partições. Ou seja, você sabe exatamente quanto pode gravar em cada divisão sem
atrapalhar o que é escrito em outra. No entanto é necessário que seja feita uma boa
administração das partições para que não ocorram paradas por que o sistema não está
conseguindo gravar dados necessários por não haver mais espaço disponível.

Para o Asterisk, é recomendável separar uma fatia do disco para as configurações, ou seja,
para a pasta “/etc”. Essa fatia não precisa ser mito grande, pois apesar de existirem vários
ficheiros nela, em média, não são grandes ficheiros em se tratando do tamanho dos
kilobytes, uma vez que se tratam basicamente de textos. Outra fatia deve ser reservada
aos módulos “/usr”. Para evitar a disseminação de erros que surgirem no núcleo do seu
sistema, essa fatia deve ser ampla o suficiente para armazenar todos os módulos com certa
flexibilidade para serem instalados mais tarde caso seja necessário. Lembre-se de que
alguns aplicativos com instalações padrão via gerenciadores de pacotes podem gerar logs
também nessa partição.

Pelo menos mais uma partição para os ficheiros gerados pelo PBX IP deve ser criada, o
“/var”. Nela serão armazenadas as gravações, voice-mails e logs de todo o servidor, ou
seja, muitos ficheiros, – e às vezes com tamanhos consideráveis - portanto a maior porção
do disco deve ser reservada para ela. Tenha sempre à mão as pastas utilizadas pelo
Asterisk por padrão orientar as suas ações nessa etapa. Outras partições podem ser
geradas conforme necessário, por exemplo, uma partição reservada para o “/boot”, outra
para o “/home” e outra para o “/tmp” sempre são interessantes.

Além das questões de particionamento, é importante atentar para o desempenho do seu


sistema operativo. Para isso, evite instalar softwares que não são fundamentais para o
funcionamento dos aplicativos que forem executadas e também aquelas muito pesadas e
que possam consumir partes importantes da CPU e memória. Um exemplo comum é a
interface gráfica; muitos preferem utilizá-la para agilizar a manutenção e o monitoramento
do sistema. Mas visto que tudo o que se pode fazer na interface gráfica está disponível
também em linha de comando sem consumir tanto processamento e memória, é preferível
usar apenas o modo de texto quando em ambiente de produção.

O que é Hands On?


Hands On - Termo da língua inglesa que significa "Mãos à obra" ou "Mãos na massa"
em português. Dá o sentido de ação, de se colocar à disposição para que os resultados
apareçam. Também é uma expressão utilizada no ambiente empresarial para indicar
"Proatividade", ou seja, disposição do funcionário para auxiliar em qualquer necessidade
da empresa. Em informática é utilizado para treinamentos que são feitos durante a própria
implantação de um sistema, ou seja, enquanto um sistema está sendo instalado, os
usuários acompanham a sua implantação e são treinados simultaneamente.

Este Livro é todo ele voltado para este sentido ou seja Hands On! Enquanto você estuda
você ira ser interrompido para realziar os laboratorios ou melhor os treinamentos na
metodologia Hands On!

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 29

[ 29 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

Mão à Obra – Hands On Um


Descrição: iremos instalar o nosso ambiente de estudo com o Virtual Box da Oracle Sun.
Objetivo: Instalar e configurar ambiente de virtualização.
Tempo Máximo: 15 minutos.
Instruções: vamos preparar nosso laboratório de estudos, para isto é necessário que você
instale em seu computador o Oracle Virtual Box o endereço está abaixo:
 Virtualbox: (http://www.virtualbox.org/)

Você pode utilizar o MagicISO Virtual para emular a imagem ISO do CD/DVD, ou se preferir
grave a imagem em uma média. Você pode também utilizar a ISSO diretamente no Virtual
Box. Neste Hands On Um iremos utilizar a ISSO diretamenteo no VirtualBox portanto não
se preocupe em queimar a média. Após realizar a descarga dos ficheiros, instale o Virtual
Box usando o método Next – Next - Finish. Agora vamos criar a nossa Virtual Machine ou
como também é chamada “VM”.

Inicie o Virtual box, irá ser mostrado no ecrã uma janela igual a imagem abaixo. Click em
Novo.

Figura Hands On 1.1: Oracle Virtual Box

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 30

[ 30 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

É apresentado o assistente de criação da VM, click em Próximo.

Figura Hands On 1.2: Oracle Virtual Box

Preencha o nome da VM, irei chamar de MyTraceLog. Selecione em seguida o Sistema


Operativo “Linux Versão Red Hat (64 bit)”.

Figura Hands On 1.3: Oracle Virtual Box

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 31

[ 31 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Preencha a quantidade de memória RAM que irá ser alocada para a VM. Por exemplo, 4096
MB (4 GB).

Figura Hands On 1.4: Oracle Virtual Box

Nesta tela será criado o disco rígido virtual. Mantenha marcado as opções Disco Rígido de
arranque, em selecione Criar novo disco rígido.

Figura Hands On 1.5: Oracle Virtual Box

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 32

[ 32 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
É apresentado o assistente de criação do disco virtual, click em Próximo.

Figura Hands On 1.6: Oracle Virtual Box

Mantenha a opção Armazenamento dinamicamente expansível marcada.

Figura Hands On 1.7: Oracle Virtual Box

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 33

[ 33 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Defina o tamanho do disco virtual. Por exemplo, 100,00 GB. Como foi marcado a opção
Armazenamento dinamicamente expansível na tela anterior, não se preocupe, não irar
ocupar 100,00 GB de imediato, será alocado conforme a necessidade. Está definição é
apenas para definir quanto o disco virtual pode crescer, logo é interessante definir um valor
bem alto.

Figura Hands On 1.8: Oracle Virtual Box

Ultima tela antes da criação do disco virtual, é apresentado um sumário, click em Finalizar.

Figura Hands On 1.9: Oracle Virtual Box

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 34

[ 34 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Com o disco virtual criado, é apresentando um sumário com informações da VM, click em
Finalizar e sua VM será criada.

Figura Hands On 1.10: Oracle Virtual Box

Podemos ver a VM MyTraceLog criada.

Figura Hands On 1.11: Oracle Virtual Box

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 35

[ 35 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Irei apresentar algumas configurações interessantes para melhorar o desempenho da VM:
Click com o botão direito do rato em cima da VM MyTraceLog, em seguida,
Configurações...

Figura Hands On 1.12: Oracle Virtual Box

Click em Sistema, em seguida no separador Processador. É possível definir o número de


CPUs quer será utilizada, como por exemplo 4.

Figura Hands On 1.13: Oracle Virtual Box

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 36

[ 36 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Em Monitor, no separador Vídeo é configurado a quantidade de memória de vídeo. 32 MB é
um valor suficiente.

Figura Hands On 1.14: Oracle Virtual Box

Em Armazenamento podemos carregar o CD/DVD na VM. Click em “Controladora IDE”,


“Vazio”, depois em “Unidade CD/DVD”. No meu caso é a unidade L: da máquina
hospedeira. Para usar essa unidade na VM insira a média na unidade de CD/DVD ou
carregue a imagem pelo MagicISO Virtual. Você pode ainda carregar diretamente o ficheiro
com extensão ISO. No menu selecione “Escolher um ficheiro de CD/DVD Virtual...” E
selecionar o ficheiro ISO do Seu Sistema Operativo.

Figura Hands On 1.15: Oracle Virtual Box

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 37

[ 37 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Por padrão a placa de rede vem configurado como NAT. Porém, é mais interessante
configurar a placa como “Placa em modo Bridge”. Caso você esteja em uma rede local,
qualquer máquina pode se comunicar com a VM, não só a máquina hospedeira. No modo
NAT isso não é possível.

Figura Hands On 1.16: Oracle Virtual Box

Como configuramos a rede em modo Bridge não é mais necessário a conexão Exclusiva de
Hospedeiro, então podemos remover a mesma. Click em “Ficheiro> Preferências...”

Figura Hands On 1.17: Oracle Virtual Box

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 38

[ 38 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Click em Rede, e remova executando um com um click no ícone com sinal de menos.

Figura Hands On 1.18: Oracle Virtual Box

Será mostrada uma confirmação, click em OK.

Figura Hands On 1.19: Oracle Virtual Box

Fonte: (mytracelog.blogspot.com.br)

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 39

[ 39 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

Escolhendo sua distribuição GNU/Linux

Um dos problemas que vejo para os usuários Windows que por algum motivo desejam
mudar para o Linux e não saber por onde começar, não tenho a pretensão de fazer uma
referência completa e sim dar dicas para os iniciantes. Sem duvida o começo é o mais difícil
é entender o sistema, descobrir qual a distribuição mais indicada para a nossa necessidade
os comandos etc.

No GNU/Linux as coisas funcionam diferentemente do Windows, existem varias


distribuições independentes (outras nem tanto) umas das outras, colocarei aqui as que
considero as melhores opções para os iniciantes. Uma dica para quem quer testar o
GNU/Linux e não quer instalar diretamente no HD é colocar em um pendrive ou usar um
live cd ou até mesmo instalar em uma maquina virtual (VM – Virtual Machine) dentro do
próprio Windows.

Ubuntu

É a mais famosa e provavelmente a distribuição GNU/Linux mais usada atualmente. É


desenvolvido pela Ubuntu Foundation, uma organização sem fins lucrativos, que por sua
vez é patrocinada pela Canonical Inc., que ganha dinheiro vendendo suporte, treinamentos
e customizações do Ubuntu. Esta combinação de ONG e empresa tem dado muito certo,
não sei necessariamente se é a mais fácil, mas com certeza esta entre elas. Tem um
grande numero de voluntários e desenvolvedores bem pagos que trabalham em tempo
integral no desenvolvimento do sistema.

Figura 1.15: Desktop do Ubuntu

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 40

[ 40 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Mandriva

O Mandriva Linux nasceu da fusão da francesa MandrakeSoft e da brasileira Conectiva é


uma das distribuições Linux mais fáceis de usar, desenvolvida com foco no usuário
doméstico. O Mandriva foi uma das primeiras distribuições a incluir um instalador gráfico e
ferramentas de configuração fáceis de usar, ainda na época em que o Linux estava restrito
ao público técnico.

Figura 1.16: Desktop do Mandriva

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 41

[ 41 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
OpenSuSe

Apesar de oferecer um bom conjunto de recursos, o SuSE sempre foi uma distribuição
pouco usada no Brasil, devido ao fato de ser uma distribuição comercial, baseada na venda
de caixinhas com as mídias de instalação e manuais impressos. Não existia nenhuma
versão gratuita do sistema para download e não era permitido fazer cópias dos CDs. Isso
mudou a partir do final de 2003, quando a empresa foi adquirida pela Novell, dando origem
ao OpenSUSE, É outra distribuição com foco no usuário final com a intenção de ser fácil de
usar.

Figura 1.17: Desktop do OpenSUSE

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 42

[ 42 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Fedora

O Fedora é o sucessor do antigo Red Hat Desktop, descontinuado em 2003. Ele combina os
esforços da Red Hat, com um grande número de voluntários e usuários fiéis. O Fedora é
uma das distribuições mais utilizada em servidores, mas também possui um público fiel no
Desktop,uma das principais características do Fedora é o ritmo das atualizações. O alem de
ser atualizado a cada seis meses inclui sempre um conjunto atualizado de pacotes.

Figura 1.18: Desktop do Fedora

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 43

[ 43 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Debian

Embora o Debian seja mais usado em servidores por sua alta estabilidade, ele também
pode perfeitamente ser usado em desktops. O maior problema em utilizar o Debian
diretamente, em vez de usar alguma das outras distribuições comentadas anteriormente é
que o sistema é bastante espartano, carecendo de muitas ferramentas de configuração
automática. Em compensação, ele é bem mais leve, pois muitos pacotes são compilados
com menos componentes e opções mais otimizadas, o que resulta em um desempenho
geral sensivelmente superior, sobretudo em maquinas com hardware modesto.

Figura 1.19: Desktop do Debian 6

Existem varias outras distribuições vai ao gosto de cada um, mas Acredito que escolhendo
uma dessas dificilmente o usuário ficara frustrado.

Fonte: (http://ideiabacana.blogspot.com.br)

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 44

[ 44 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

Por que o CentOS?

Figura 1.20: Desktop do CentOS 6

Quero falar dos motivos por que prefiro utilizar o CentOS GNU/Linux (Community
ENTerprise Operating System) como a distribuição preferencial de trabalho, mas antes
disso quero deixar claro que não sou radical e também utilizo outras distribuições. Por
muito tempo utilizei Conectiva, hoje em dia utilizo o Ubuntu no meu desktop de trabalho.
Já utilizei também outras distribuições, sempre de acordo com as necessidades de cada
situação.

Voltando ao CentOS GNU/Linux, uma das características que mais me chamou a atenção
foi o longo tempo que será mantido - na versão 5 por exemplo será até 2012 - isso
significa que depois de instalado e configurado um servidor, pode-se passar um longo
período de tempo apenas preocupado com atualizações menores, sem ter que realizar
atualizações de versões após curtos períodos de tempo como, por exemplo ocorre no
Fedora GNU/Linux, que muitas vezes exige a configuração de vários serviços novamente.

Para quem nunca ouviu falar do CentOS GNU/Linux ele é feito a partir das fontes do Red
Hat AS, e tem como objetivo ser “100% binário compatível” com a distribuição
original, isso é especialmente útil quando se necessita instalar alguns softwares que são
homologados apenas para certas distribuições.

Como toda distribuição que utiliza o gestor de pacotes RPM (RedHat Package Manager),
existem numerosos repositórios para complementar os pacotes que vem na distribuição
original, um dos mais completos é o de Dag Wieers, que também participa ativamente na

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 45

[ 45 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
lista de discussão do CentOS BR e está sempre aberto a adicionar algum pacote que seja
solicitado.

Em resumo: o CentOS GNU/Linux é uma distribuição extremamente útil em ambientes


corporativos, especialmente em servidores que necessitem de alta estabilidade e pouco
downtime de manutenção, além é claro, do conhecido suporte proporcionado pela
comunidade Open Source.

Sobre o CentOS BR GNU/Linux


O CentOS BR nasceu com o propósito de propagar e divulgar o Linux CentOS no Brasil,
Portugal e outros países que falam o português, sempre focando em conteúdo atualizado.

Eles contam com uma equipe responsável pela edição e inserção de notícias e informações
em geral. O site é atualizado sempre que possível com notícias do mundo CentOS e Open
Source.

Sobre o CentOS GNU/Linux


"CentOS é uma distribuição Linux de classe Enterprise derivada de códigos fonte
gratuitamente distribuídos pela Red Hat Enterprise Linux e mantida pelo CentOS Project”.

A numeração das versões é baseada na numeração do Red Hat Enterprise GNU/Linux. Por
exemplo, o CentOS GNU/Linux 5 é baseado no Red Hat Enterprise GNU/Linux 5. A
diferença básica entre um e outro é o fornecimento de suporte pago na aquisição de um
Red Hat Enterprise GNU/Linux. Funcionalmente, podem-se considerar os sistemas clones.
CentOS GNU/Linux proporciona um grande acesso aos softwares padrão da indústria,
incluindo total compatibilidade com os pacotes de softwares preparados especificamente
para os sistemas da Red Hat Enterprise GNU/Linux. Isso lhe dá o mesmo nível de
segurança e suporte através de updates que outras soluções Linux Enterprise, porém sem
custo.

Suporta tanto ambiente de servidores para aplicações de missão crítica quanto ambiente de
estações de trabalho e ainda possui uma versão Live CD.

CentOS GNU/Linux possui numerosas vantagens, incluindo: uma comunidade ativa e


crescente, um rápido desenvolvimento e teste de pacotes, uma extensa rede depósitos
contendo seus ficheiros em formato ISO, desenvolvedores acessíveis, múltiplos canais de
suporte, incluindo suporte em português e suporte comercial através de parceiros.

Fonte: Trecho retirado de: wiki do CentOS GNU/Linux

Site Oficial
CentOS GNU/Linux (Inglês) - “http://www.centos.org/”
CentOS GNU/Linux (Português) - “http://centosbr.org/”

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 46

[ 46 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
No Hands On Dois, você encontra os passos para instalar a distribuição Linux CentOS 5.7.
O objetivo é contribuir para que os utilizadores iniciantes tenham uma base para instalar o
sistema rapidamente. Pode ser uma referência para instalação de outras distribuições como
a Red Hat GNU/Linux ou a Fedora GNU/Linux, que são muito parecidas com o CentOS
GNU/Linux.

Recomendações:
Recomendo leitura com prática dos seguintes livros;
 Programação Avançada em Linux – Gleicon da Silveira Moraes
 Shell Script Profissional – Aurélio Marinho Jargas
 Comandos do Linux “Guia de Consulta Rápida” - Roberto G. A. Veiga
Todos os livros acima são da editora Novatec “www.novatec.com.br”.

Instalando o CentOS GNU/Linux


Você pode adquirir uma ISO da distribuição neste link
“http://isoredirect.centos.org/centos/5/isos/” quando da elaboração deste material de
estudo, no site encontrava-se a versão CentOS 5.7 i386 e a CentOS 5.7 x86_64.

Antes de você instalar o CentOS GNU/Linux, deve verificar a compatibilidade do seu


sistema. Para isso você pode pesquisar no google, ou ainda, solicitar ajuda no fórum do
VOL (Viva o Linux – Porque nós amamos a liberdade!).

Mão à Obra – Hands On Dois


Descrição: iremos instalar o sistema operativo CentOS 5.7 e realizar alguns procedimentos
de atualização.
Objetivo: Instalar o Sistema Operativo CentOS 5.7.
Tempo Máximo: 40 minutos.
Instruções: instalar o CentOS 5.7 em uma VM do Virtual Box.

CentOS 5.67 (http://www.centos.org/modules/tinycontent/index.php?id=30).

O CentOS 5.7 possui vários tipos de imagens disponíveis para baixar de seus repositórios
ISOs, procure por CentOS-5.7-x86_64-bin-DVD.torrent, ou CentOS-5.7-i386-bin-
DVD.torrent que são imagens de DVD. Baixe as imagens utilizando um cliente Torrent.
Quando terminar de baixar as imagem x86_64, teremos 2 ficheiros do tipo ISO:

CentOS-5.7-x86_64-bin-DVD-1of2.iso (3,95 GB)


CentOS-5.7-x86_64-bin-DVD-2of2.iso (639 MB)

É na imagem i386, após baixar teremos 1 ficheiro do tipo ISSO:

CentOS-5.7-i386-bin-DVD.iso (3.96 GB)

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 47

[ 47 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
O MagicISO Virtual é utilizado para emular as imagens, ou podes ainda gravar as imagens
em médias. Tudo pronto? Vamos começar:

Inicie o Virtual Box, click com o botão direito do rato em cima da VM MyTraceLog, em
seguida, Configurações...

Figura Hands On 2.1: Instalando o CentOS 5.7

Em Armazenamento podemos carregar o CD/DVD na VM. Click em Vazio, depois em


selecione uma unidade de CD/DVD. No meu caso é a unidade L: da máquina hospedeira.

Figura Hands On 2.2: Instalando o CentOS 5.7

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 48

[ 48 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Aqui você tem a opção de carregar a imagem do Sistema Operativo pelo item “Selecione
um ficheiro de CD/DVD Virtual...” procure a imagem do tipo ISO e pronto.

Carregue a imagem CentOS-5.7-x86_64-bin-DVD-1of2.iso pelo MagicISO Virtual ou insira a


média no drive. Ou ainda com o MagicISO

No ícone do MagicISO Virtual clique com o lado direito do mouse/rato:

Figura Hands On 2.3: Instalando o CentOS 5.7

Vai aparecer o menu do MagicISO Virtual, vá para o item do menu Virtual CD/DVD-rom,
colocando o rato sobre este item vai aparecer a unidade virtual neste caso “G: No Media”,

Figura Hands On 2.4: Instalando o CentOS 5.7

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 49

[ 49 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Colocando o rato sobre o item “G: No Media”, ira aparecer o item “Mount”, observe que
logo abaixo existe o “Unmount”, igualmente no Unix é aqui que você vai montar e
desmontar a imagem ISO no seu CD/DVD Virtual.

Figura Hands On 2.5: Instalando o CentOS 5.7

Com um click no item “Mount”, ira aparecer a caixa padrão do Microsoft Windows de busca
de ficheiros, selecione o ficheiro do tipo imagem ISO que você quer e click em Abrir.

Figura Hands On 2.6: Instalando o CentOS 5.7

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 50

[ 50 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

E pronto nosso CD ou DVD está carregado na nossa unidade Virtual pronto para ser
utilizado.

Figura Hands On 2.7: Instalando o CentOS 5.7

Selecione a VM MyTraceLog e click no ícone Iniciar.

Figura Hands On 2.8: Instalando o CentOS 5.7

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 51

[ 51 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

Vamos instalar o nosso servidor CentOS somente no modo texto ou CLI (Command Line
Interface). Para isso acontecer na janela de boot do instalador, digite “linux text”.

Figura Hands On 2.9: Instalando o CentOS 5.7

Logo depois de iniciar a instalação, o gestor perguntará se você deseja verificar o disco.
Esse processo é demorado. Caso você tenha verificado com checksum a imagem e tenha
certeza da qualidade da sua média, você pode pular essa etapa.

Figura Hands On 2.10: Instalando o CentOS 5.7

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 52

[ 52 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
A próxima etapa em diante já é gerida pelo aplicativo “Anaconda”, que já lhe dá as boas
vindas ao CentOS GNU/Linux. E em seguida solicita o idioma que o ambiente utilizará,
tanto para o ambiente de trabalho como para o layout do teclado.

Figura Hands On 2.11: Instalando o CentOS 5.7

Em Language Selection, selecione Portuguese (Portugal) ou Portuguese (Brazilian),


lembrando que a sua navegação neste modo é realizado com as teclas “TAB”, “Espaço”
“ENTER”.

Figura Hands On 2.12: Instalando o CentOS 5.7

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 53

[ 53 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Na Seleção do Teclado, selecione pt-latin1. E muito importante conhecer o verdadeiro
layout de seu teclado, principalmente os dos portáteis. Neste momento o aplicativo
“Anaconda” ira procurar por instalações anteriores do CentOS GNU/Linux.

Figura Hands On 2.13: Instalando o CentOS 5.7

Você recebera um aviso na janela de que foi encontrado um hard disc sem formatação e o
mesmo vai ser formatado para o padrão do sistema de ficheiros do CentOS. Aceite no
“SIM”.

Figura Hands On 2.14: Instalando o CentOS 5.7

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 54

[ 54 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Em Tipo de Particionamento selecione Apagar todas partições nos discos selecionados e
criar layout padrão. Logo abaixo tem o item Que disco(s) você deseja utilizar para esta
instalação? Deixe a unidade que ele encontrou selecionado, vá com o “TAB” ate o botão
“OK” e prossiga.

Figura Hands On 2.15: Instalando o CentOS 5.7

Logo após, você receberá um Aviso no ecrã a informar que TODOS OS DADOS NA
UNIDADE SERÁ PERDIDA, novamente, com as setas de direções, vão para o botão “SIM” e
pressione “ENTER”.

Figura Hands On 2.16: Instalando o CentOS 5.7

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 55

[ 55 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Agora vem uma informação na janela com o título Rever o Layout do Particionamento. O
aplicativo “Anaconda” esta a perguntar se você quer rever e modificar o layout do
particionamento. Vá com as teclas de direções para o botão “NÃO”. E novamente pressione
“ENTER”.

Figura Hands On 2.17: Instalando o CentOS 5.7

O ecrã de Configurar interface de rede ira surgir perguntando se quer configurar a rede
agora vá ao botão “SIM”.

Figura Hands On 2.18: Instalando o CentOS 5.7

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 56

[ 56 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Com isto vem o ecrã Configuração de rede para eth0 neste momento iremos configurar a
placa de rede manual para a utilização durante a instalação e acesso remoto logo após a
instalação do CentOS GNU/Linux.

Figura Hands On 2.19: Instalando o CentOS 5.7

Vamos deixar nesta janela selecionados os itens;


[*] Ativar na Inicialização;
[*] Habilitar suporte para Ipv4;
Iremos deixar desabilitado o suporte para Ipv6.

A próximo janela é a Configuração de Ipv4 para eth0 neste ecrã já vem default o item [*]
Configuração de IP dinâmico (DHCP), mude para Configuração de IP manual e utilize as
configurações da sua rede.

Exemplo;
IP: 192.168.1.254
MASK: 255.255.255.0
GW: 192.168.1.1
DNS1: 8.8.8.8
DNS2: 208.67.222.222
DNS3: 208.67.220.220
SEARCH: google.com

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 57

[ 57 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

Figura Hands On 2.20: Instalando o CentOS 5.7

Figura Hands On 2.21: Instalando o CentOS 5.7

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 58

[ 58 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Na janela de Configuração do nome de host selecione [*] manualmente para o nome do
host e coloque o nome que você deseja, para dar seguimento neste material irei colocar
“serverfull” tudo minúsculo, e mais uma vez de ok no botão “OK”.

Figura Hands On 2.22: Instalando o CentOS 5.7

Nesta janela Seleção de Fuso Horário deixe tudo como esta [*] O relógio do sistema utiliza
o UTC e Europa/Lisbon ou America/São Paulo, de ok no botão “OK”.

Figura Hands On 2.23: Instalando o CentOS 5.7

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 59

[ 59 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Na janela da palavra passe do Root (Administrador) digite duas vezes a sua palavra passe,
eu recomendo que troque algumas letras por números. Eu vou utilizar a palavra passe
“12345678” para fins didáticos.

Figura Hands On 2.24: Instalando o CentOS 5.7

Vamos agora selecionar no ecrã Seleção de pacotes o conjunto de programas aplicáveis


para o nosso servidor iremos selecionar somente os itens como os dos ecrãs, segundo as
imagens a seguir;

Figura Hands On 2.25: Instalando o CentOS 5.7

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 60

[ 60 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
No ecrã Package Group Selection vamos deixar selecionados somente os seguintes pacotes
(package);

Figura Hands On 2.26: Instalando o CentOS 5.7

Figura Hands On 2.27: Instalando o CentOS 5.7

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 61

[ 61 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

Figura Hands On 2.28: Instalando o CentOS 5.7

Figura Hands On 2.29: Instalando o CentOS 5.7

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 62

[ 62 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

Figura Hands On 2.30: Instalando o CentOS 5.7

Figura Hands On 2.31: Instalando o CentOS 5.7

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 63

[ 63 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

Figura Hands On 2.32: Instalando o CentOS 5.7

Figura Hands On 2.33: Instalando o CentOS 5.7

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 64

[ 64 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Realizado este procedimento siga com a instalação acionando o botão “OK”. O sistema
(Anaconda) ira ver as dependências de pacotes e logo depois aparecerá o ecrã Instalação
prestes a começar faça o acionamento do botão “OK”.

Figura Hands On 2.34: Instalando o CentOS 5.7

Figura Hands On 2.35: Instalando o CentOS 5.7

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 65

[ 65 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Logo após isto ira dar sequência de todo o processo de instalação do nosso CentOS
GNU/Linux.

Figura Hands On 2.36: Instalando o CentOS 5.7

Pronto neste ecrã Concluído remova o seu médio de instalação e acione o botão
“REINICIALIZAR” como esta com default basta dar “ENTER”.

Figura Hands On 2.37: Instalando o CentOS 5.7

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 66

[ 66 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Na primeira vez que o seu sistema inicializar o sistema ira aparecer ao ecrã Agente de
Configuração pedindo para configurar o servidor, entre em “Serviços do Sistema” desabilite
o “IP6tables”.

Figura Hands On 2.38: Instalando o CentOS 5.7

Desabilite “ip6tables” e “iptables”

Figura Hands On 2.39: Instalando o CentOS 5.7

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 67

[ 67 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Após habilite “vsftpd” depois vá em “OK” e depois em “SAIR”.

Figura Hands On 2.40: Instalando o CentOS 5.7

Figura Hands On 2.41: Instalando o CentOS 5.7

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 68

[ 68 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Para utilizar o seu servidor faça o login com “root” e a password que você colocou no meu
caso “12345678”. Obs.: tudo minúsculo.

Figura Hands On 2.42: Instalando o CentOS 5.7

Fontes:
http://www.fortenetwork.com.br
http://www.linuxinfo.com.br
http://www.linuxajuda.com.br
http://mytracelog.blogspot.com.br
Com adaptações do Professor Delphini.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 69

[ 69 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

Instalando Laboratório de Estudos

Neste momento vamos instalar no ambiente Windows nosso “Laboratório de Estudos”. Com
ele vamos poder trabalhar com nosso servidor GNU/Linus a partir do Windows. Este
cenario é comum na vida de um profissonal que administra servidores GNU/Linux.

Mão à Obra – Hands On Três


Descrição: iremos realizar a instalação e integração de aplicativos que auxilia na
Administração de Asterisk.
Objetivo: Instalar corretamente o PuTTY, WinSCP e Notepad++ bem como a integração
entre eles.
Tempo Máximo: 20 minutos.
Instruções: vamos preparar nosso ambiente de trabalho. Instale o putty 0.61
 http://the.earth.li/~sgtatham/putty/latest/x86/putty-0.61-installer.exe

Putty
Ao executar o ficheiro “putty-0.61-installer.exe” terá está janela de boas vindas, padrão de
instalação Microsoft®, siga com o botão “Next”.

Figura Hands On Três 3.1: Instalando o Laboratório de Estudo

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 70

[ 70 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
A próxima janela e o destino da instalação vamos aceitar o padrão, clique no botão “Next”.

Figura Hands On Três 3.2: Instalando o Laboratório de Estudo

A próxima janela solicita aceitação do nome da pasta no cardápio, aceitamos o padrão e


clicamos no botão “Next”.

Figura Hands On Três 3.3: Instalando o Laboratório de Estudo

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 71

[ 71 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
A próxima janela e o destino da instalação vamos aceitar o padrão, clique no botão “Next”.

Figura Hands On Três 3.4: Instalando o Laboratório de Estudo

A próxima janela finalmente fornece informações sobre a instalação, aceitaremos com um


click no botão “Install”.

Figura Hands On Três 3.5: Instalando o Laboratório de Estudo

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 72

[ 72 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Está janela é apenas informativa sobre o progresso da instalação.

Figura Hands On Três 3.6: Instalando o Laboratório de Estudo

A finalização da instalação, click no botão “Finish”.

Figura Hands On Três 3.7: Instalando o Laboratório de Estudo

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 73

[ 73 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

Notepad++
Instale o Notepad++ 5.9.3
 http://download.tuxfamily.org/notepadplus/5.9.3/npp.5.9.3.Installer.exe

Ao executar o instalador está e a primeira janela de interação, escolha o idioma que quer
utilizar no ambiente de trabalho do NotePad++ e click no botão “OK”.

Figura Hands On Três 3.8: Instalando o Laboratório de Estudo

Agora a janela de boas vindas, click no botão “Próximo”.

Figura Hands On Três 3.9: Instalando o Laboratório de Estudo

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 74

[ 74 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Agora a janela da licença, para dar sequência na instalação click no botão “Eu Concordo”.

Figura Hands On Três 3.10: Instalando o Laboratório de Estudo

Nesta janela está sendo apresentado o local de instalação, iremos deixar o padrão, click no
botão “Próximo”.

Figura Hands On Três 3.11: Instalando o Laboratório de Estudo

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 75

[ 75 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Está janela serve para escolhermos os componentes da instalação, vamos aceitar o padrão,
click em “Próximo”.

Figura Hands On Três 3.12: Instalando o Laboratório de Estudo

Vamos deixar está janela com o padrão, clique no botão “Instalar”.

Figura Hands On Três 3.13: Instalando o Laboratório de Estudo

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 76

[ 76 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Tela de progresso da instalação, sem ação para o utilizador.

Figura Hands On Três 3.14: Instalando o Laboratório de Estudo

Aqui está a tela de conclusão da instalação do Notepad++.

Figura Hands On Três 3.15: Instalando o Laboratório de Estudo

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 77

[ 77 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

WinSCP
Instale o WinSCP 4.3.5
 http://winscp.net/download/winscp435setup.exe

Idioma português
 http://winscp.net/translations/dll/pt.zip

Vamos executar o instalador do “WinSCP”, vamos deixar a linguagem padrão do instalador


“English”, depois iremos realizar o procedimento de translation para “Português”.

Figura Hands On Três 3.16: Instalando o Laboratório de Estudo

Está tela de boas vindas do instalador click no botão “Next”.·.

Figura Hands On Três 3.17: Instalando o Laboratório de Estudo

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 78

[ 78 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Janela da licença de uso, click em “Next”.

Figura Hands On Três 3.18: Instalando o Laboratório de Estudo

Aceitaremos o recomendado pelo instalador “Full upgrade”, logo click em “Next”.·.

Figura Hands On Três 3.19: Instalando o Laboratório de Estudo

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 79

[ 79 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Informações sobre os procedimentos realizado pelo instalador, click em “Install”.

Figura Hands On Três 3.19: Instalando o Laboratório de Estudo

Janela de informação do progresso da instalação, nenhuma ação para o utilizador.

Figura Hands On Três 3.20: Instalando o Laboratório de Estudo

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 80

[ 80 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Janela de conclusão do instalador, click no botão “Finish”.

Figura Hands On Três 3.21: Instalando o Laboratório de Estudo

Está é a janela de conexão com os servidores que serão administrados por você. Para criar
uma conexão click no botão “New”.

Figura Hands On Três 3.22: Instalando o Laboratório de Estudo

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 81

[ 81 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Está é a janela de informações necessárias para criação de uma conexão, em “Host name:”
informe o caminho do servidor (Ex: 192.168.1.1). Em “Port number:” informe a porta que
está sendo monitorada pelo “OpenSSH” no seu servidor, o padrão é “22” mas por motivo
de segurança é altamente recomendado que altere está porta. Em “User name:” informe o
utilizador ativo para conexões com o “OpenSSH”, por padrão é o “root” e com certeza é
altamente recomendado que altere este utilizador de acesso a seu servidor, assim como
também impedir que o utilizador “root” possa a cessar o mesmo via “OpenSSH”. Em
“Password:” vai a palavra passe do utilizador ativo para a conexão do “OpenSSH”, por
questão de segurança e recomendável utilizar palavras passes com nomenclatura “Hacker
= H4ck3r” (A=4, E=3, I=1, O=0 e U e o único que sempre será maiúsculo).

Figura Hands On Três 3.23: Instalando o Laboratório de Estudo

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 82

[ 82 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Após fornecer todas as informações, click no botão “Save...”, com isto a tela de “Save
session as:” aparecera, coloque o nome que quiser na sessão de conexão, e se tiver
certeza que será somente você que vai utilizar esta conexão então ative a caixa de seleção
(tag) “Save passwort ...”

Figura Hands On Três 3.24: Instalando o Laboratório de Estudo

Então será mostrada a janela de conexões novamente agora com a conexão que acabamos
de criar.

Figura Hands On Três 3.25: Instalando o Laboratório de Estudo


A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 83

[ 83 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

Integração das Ferramentas


Para realizar os procedimentos tem que estar com sua máquina virtual em execução.

Vamos primeiro realizar o procedimento de tradução para português do aplicativo WinSCP.


Observe que em “Languages” temos apenas um idioma, “English – Inglês (USA)”.

Figura Hands On Três 3.26: Instalando o Laboratório de Estudo

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 84

[ 84 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Vamos copiar o ficheiro “WinSCP.pt”. Este ficheiro foi baixado e descompactado por você
no inicio deste Hands On Três.

Figura Hands On Três 3.27: Instalando o Laboratório de Estudo

Uma vez com o ficheiro copiado, iremos colar ele no seguinte caminho: “C:\Arquivos de
programas\WinSCP”

Figura Hands On Três 3.28: Instalando o Laboratório de Estudo

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 85

[ 85 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
O ficheiro após ser colado no caminho anterior deve ficar assim como está sendo mostrado
na figura abaixo.

Figura Hands On Três 3.29: Instalando o Laboratório de Estudo

Execute agora o WinSCP e clique no botão “Languages” perceba que agora temos também
o idioma “Portuguese – Português (Brasil)”. Iremos selecionar o idioma português.

Figura Hands On Três 3.29: Instalando o Laboratório de Estudo

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 86

[ 86 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Ai temos nossa janela de Conexões já em nosso idioma. Uma vez que sua máquina virtual
está em execução, vamos conectar a ela, para isto click no botão “Login”.

Figura Hands On Três 3.30: Instalando o Laboratório de Estudo

Assim que o aplicativo consegue conexão com nosso servidor vem a solicitação para aceitar
a chave de criptografia ssh-rsa, você deve aceitar esta chave com um click no botão “Sim”.

Figura Hands On Três 3.31: Instalando o Laboratório de Estudo

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 87

[ 87 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Está é a janela do ambiente de trabalho, ao lado esquerdo temos sua unidade local, no
lado direito está sua unidade remota, ou seja, a unidade local de seu servidor. Está
ferramenta e de extrema utilidade para enviar diversos tipos de ficheiros para nosso
servidor. Observe na barra de ícones a seleção é para chamar o “putty”.

Figura Hands On Três 3.32: Instalando o Laboratório de Estudo

Outra maneira de executar o PuTTY a partir do WinSCP e ir em “Comandos” e depois em


“Abrir no PuTTY”.

Figura Hands On Três 3.33: Instalando o Laboratório de Estudo

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 88

[ 88 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Como perceberam o PuTTY tem sua integração automática, sendo apenas necessário
instalar o mesmo. Agora iremos realizar a integração do Notepad++ com o WinSCP. Para
isto clique em “Opções” e depois em “Preferências”.

Figura Hands On Três 3.34: Instalando o Laboratório de Estudo

Selecione “Editor” então remova o “Notepad”, selecionando o mesmo e depois procedendo


com um click no botão “Excluir”.

Figura Hands On Três 3.35: Instalando o Laboratório de Estudo

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 89

[ 89 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Ainda em “Editor” click no botão “Adicionar...”.

Figura Hands On Três 3.36: Instalando o Laboratório de Estudo

Aqui iremos selecionar o item “Editor Externo” e proceder com um click no botão
“Procurar”.

Figura Hands On Três 3.37: Instalando o Laboratório de Estudo

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 90

[ 90 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Vá até a pasta onde está instalado o Notepad++ “C:\Arquivos de
programas\Notepad++\notepad++.exe”. É selecione o ficheiro de execução do aplicativo
“notepad++.exe”. Então click no botão “Abrir”.

Figura Hands On Três 3.38: Instalando o Laboratório de Estudo

Iremos voltar a está janela com a ação anterior estando igual a está click no botão “OK”.

Figura Hands On Três 3.39: Instalando o Laboratório de Estudo

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 91

[ 91 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Selecionando mais uma vez “Editor”, iremos selecionar Notepad++ e vamos colocar com
prioridade de uso pelo WinSCP. Faremos isto com um click no botão “Acima” com o
Notepad++ selecionado, uma vez que sua janela fique igual a esta click no botão “OK”.

Figura Hands On Três 3.40: Instalando o Laboratório de Estudo

Observe que todos os ficheiros do tipo texto agora já se encontram o ícone do Notepad++.
Vamos abrir com um duplo clique no ficheiro “host.conf”, iremos apenas ver se esta
abrindo com o editor de nossa preferência.

Figura Hands On Três 3.41: Instalando o Laboratório de Estudo

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 92

[ 92 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Aqui percebemos que abriu o ficheiro de texto de nome host.conf com o editor de nossa
preferência, que neste caso é o Notepad++.

Figura Hands On Três 3.42: Instalando o Laboratório de Estudo

Agora vamos testar se o PuTTY está funcionando, para isto click no ícone ou abra pelo
menu comandos. A conexão é imediata e já vem a solicitação de aceitação da chave de
criptografia ssh-rsa. Devemos aceitar com um click no botão “Sim”.

Figura Hands On Três 3.43: Instalando o Laboratório de Estudo

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 93

[ 93 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Ai está nosso servidor solicitando a palavra passe do servidor.

Figura Hands On Três 3.44: Instalando o Laboratório de Estudo

Ai estamos já no ambiente (CLI) de trabalho de nosso servidor.

Figura Hands On Três 3.45: Instalando o Laboratório de Estudo

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 94

[ 94 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
O desenvolver recomenda para que seja encerrado o aplicativo no botão “F10 Sair”. Isto
porque nos procedimentos da ação do botão esta os encerramentos das chaves publicas.

Figura Hands On Três 3.46: Instalando o Laboratório de Estudo

Instalando repositorios no CentOS

Mão à Obra – Hands On Quatro


Descrição: iremos aprender a conhecer alguns comandos básicos de Linux e familiarizar-se
com a forma de trabalhar com este sistema operativo.
Objetivo: familiarizar-nos com a linha de comandos do GNU/Linux, também conhecida
como CLI (Command Line Interfaces).
Tempo Máximo: 15 minutos.
Instruções: lista o conteúdo da pasta que se encontra.
root@pbxip~# ls

Lista o conteúdo da pasta com as informações adicionais


root@pbxip~# ls -l

Lista o conteúdo da pasta /etc com as informações adicionais


root@pbxip~# ls –l /etc

Utilize o comando pwd para saber em que pasta está


root@pbxip~# pwd

Criar uma pasta de trabalho “/tmp/trabalho”


root@pbxip~# mkdir –p /tmp/trabalho

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 95

[ 95 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Entrar na pasta de trabalho “/tmp/trabalho”
root@pbxip~# cd /tmp/trabalho

Da pasta /tmp/trabalho suba para a pasta /tmp de forma absoluta e relativa


root@pbxip~# cd ..

Leia ajuda dos vários comandos


root@pbxip~# man ls

Pasta padrão para trabalhar no CentOS


root@pbxip~# cd /usr/local/src

Criando pasta para trabalho e à cessando a pasta


root@pbxip~# mkdir repositorio
root@pbxip~# cd repositorio

Copiar um ficheiro de uma locação para outra usando um tunnel por wget
Habilitando o repositório RPMFORGE
(i386el5)
# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm

(x86_64 el5)
# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-
2.el5.rf.x86_64.rpm

Habilitando o repositório Fedora EPEL


(i386 el5)
# wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm

(x86_64 el5)
# wget http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-
4.noarch.rpm

Habilitando o repositório REMI


# wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm

Instalando um pacote rpm, faça na ordem abaixo


# rpm -Uvh rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
# rpm -qa | grep “rpmforge”

# rpm -ivh epel-release-5-4.noarch.rpm


# rpm -qa | grep “epel-release”

# rpm -Uvh remi-release-5*.rpm


# rpm -qa | grep “remi”

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 96

[ 96 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Atualizando seu banco de informações do Sistema Operativo
# updatedb

Checando atualização necessária para o Sistema Operativo


# yum check-update

Realizando atualizações necessárias do seu Sistema Operativo


# yum update

Reiniciando seu Sistema Operativo


# reboot

Apresentação do Asterisk

História do Asterisk
O Asterisk é um aplicativo para criar centrais telefônicas PBX IP que pode ser executada
como um serviço em um servidor GNU/Linux, Mac OS X, ou BSD. Apesar de ser
desenvolvido para trabalhar com plataformas Unix, existem versões que não recebem tanta
atenção pelos desenvolvedores mas que trabalham sobre o Windows também. Aqui iremos
trabalhar com os comandos do GNU/Linux e mais especificamente com os comandos da
distribuição CentOS. Lembro que os conceitos são os mesmos independentes da plataforma
utilizada necessitando apenas de pequenas alterações dependendo do ambiente que será
utilizado.

O software foi desenvolvido inicialmente por Mark Spencer com o objetivo de montar um
PBX IP que satisfizesse as necessidades de uma empresa de suporte que utilizava
computadores com GNU/Linux na época, já que as soluções proprietárias custavam um
valor muito além do que ele queria e podia pagar. Utilizando seus vastos conhecimentos
em GNU/Linux e Linguagem C, Spencer começou o desenvolvimento da plataforma e
alguns meses depois abriu o código-fonte e lançou o Software para que a comunidade
Open Source pudesse ajudá-lo no desenvolver. O sucesso foi maior do que Spencer
esperava e ele acabou abandonando a antiga empresa para fundar a Digium, focando
exclusivamente no desenvolvimento do Asterisk, Hardwares especializados e suporte a nível
corporativo. Desde então o Asterisk vem crescendo rapidamente em utilização e robustez,
sendo atualmente um dos PBX IPs mais utilizado no mundo.

O Asterisk ganhou maior popularidade com a versão 1.2, que obteve mais estabilidade até
aquele momento. Após algum tempo de desenvolvimento foi lançada a versão 1.4 que nos
primeiros releases sofreu um pouco com questões de bugs que traziam instabilidade ao
sistema. Por conta disso eram lançados releases em intervalos bem curtos causando certa
desconfiança para os administradores que ficavam na dúvida se deviam ou não atualizar
seus sistemas. Mas a partir da versão 1.4.11, a maioria dos problemas foram resolvidos e
as migrações passaram a ser mais tranquilas. Com experiência nesse lançamento a
atualização para a versão 1.6 foi melhor planejada; foram liberadas versões alfa e beta
para a comunidade testar antes de ser confirmada a primeira versão estável do Asterisk

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 97

[ 97 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
1.6. No entanto, para fazer a migração de um PBX IP sendo executado sobre a versão 1.4
para a 1.6 deve-se atentar para o facto de que houveram mudanças em parâmetros de
alguns aplicativos que precisam ser atualizados.

O Asterisk tem todos os recursos de qualquer PABX do mercado, com a vantagem de ser
um produto de código aberto, e pode ser utilizado em diversos ambientes, alterado e
adequado às necessidades que o projeto a ser implantado demandar sem qualquer custo
ou necessidade de licença.
Ele é capaz de trazer grande interoperabilidade entre várias plataformas, pois faz a
conversão entre vários CODECs e protocolos padrão de mercado. Elimina a necessidade de
grande parte dos módulos adicionais que devem ser incorporados às centrais telefônicas
convencionais para que seja possível utilizar recursos um pouco mais avançados como:
música em espera, correio de voz e IVR, pois isto já está previsto em seu código básico.

O mercado adotou a solução tão fortemente que já existem várias soluções (proprietárias e
abertas) baseadas no aplicativo para as mais diversas atividades de negócios, agregando
maior valor e confiabilidade quando se deseja implantar um projeto VoIP tomando como
base o Asterisk. Gestores de filas de atendimento, tarifários e marcações automáticas, por
exemplo, já são encontrados com total integração com a plataforma Asterisk.

Como praticamente todos os projetos Open Source, o Asterisk possui uma comunidade
crescente, ativa e bastante disposta a ajudar aos demais integrantes com qualquer nível de
conhecimento e enfrentando os mais diversos problemas. A troca de experiencias e
conhecimentos nos fóruns, listas, sites, canais IRC e etc., é bastante dinâmica e muito
proveitosa na maior parte do tempo. Qualquer um pode ajudar também a aperfeiçoar o
software participando dos meios colaborativos fornecidos e moderados pela Digium, basta
respeitar as políticas que são impostas por eles.

Em Portugal, o principal ponto de encontro de quem utiliza, se interessa ou apenas tem


curiosidade sobre o Asterisk é a lista asteriskpt onde se encontra na URL: www.asterisk.pt.
Muitos membros ativos têm grande experiência com Asterisk e ajudam bastante quando
surgem problemas e você não sabe do que se trata. Da mesma forma, existem duas listas
internacionais que também podem ser utilizadas como referência: a Asterisk-users e
Asterisk-biz sendo a primeira para qualquer tipo de dúvida técnica e a segunda apenas
para assuntos comerciais.

Antes de enviar uma pergunta na comunidade é importante consultar na Internet ou no


histórico da lista se o seu problema já foi mencionado e se já houve alguma solução. Uma
referência para comandos e configurações envolvendo o Asterisk que se encontra na
Internet é o Wiki http://www.voip-info.org. Além de conter muitas informações sobre
comandos e aplicações descritas com exemplos e experiências de quem já utilizou, diversas
outras informações sobre equipamentos e tecnologias sobre VoIP são encontradas ali. Por
se tratar de um Wiki, qualquer um pode se cadastrar e ajudar a incrementar o portal,
tornando-o ainda mais completo.

Para comprovar conhecimentos no Asterisk, desde 2005 existe uma certificação aplicada
pela Digium ao final dos treinamentos Asterisk Bootcamp ou Asterisk Advanced e

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 98

[ 98 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
geralmente também na conferência anual Astricon, a dCAP (Digium Certified Asterisk
Professional). Essa certificação não necessita de renovação e, por enquanto, só possui um
nível. Abrange os conceitos da tecnologia VoIP com foco em Asterisk, protocolos SIP, IAX,
MGCP e H.323 além de aplicações e comandos do Asterisk. A prova é dividida entre partes
práticas e teórica, onde os conhecimentos do profissional são testados nos mais diversos
tópicos que envolvem a plataforma. Para ser aprovado o candidato deve acertar 75% das
respostas em cada uma das provas que utilizam as características da última versão estável
dos pacotes.

Arquitetura do Asterisk

O Asterisk e sua Flexibilidade


O Asterisk foi desenvolvido para prover máxima flexibilidade, APIs específicas são definidas
em volta de um avançado núcleo que é o PABX. Dessa forma, o núcleo faz a interação
entre todas as APIs dos sistemas para que seja possível executar de forma simultânea e
integrada todas as funções que se espera do software.

Figura 1.21: Core do Asterisk

As APIs
São definidas quatro APIs (Application Programming Interface ou Interface de
programação da aplicação) básicas para dividir o funcionamento e entendimento do
sistema. As APIs é um conjunto de módulos que podem ser carregados individualmente
para que haja um maior controle de desenvolvimento e do que será utilizado na
plataforma. Dessa forma, módulos com defeitos tendem a não refletir suas falhas para os
demais a não ser os diretamente relacionados a ele. A modularidade permite que

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 99

[ 99 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
combinando as partes de diferentes módulos seja possível obter maior personalização do
sistema.

Figura 1.22: As APIs

As APIs são:
 API de Canal: essa API é responsável por identificar o tipo de canal de comunicação (SIP,
IAX, ISDN etc.) da chamada que chega ao sistema. Então, os módulos são carregados
dinamicamente para abstrair as informações de mais baixo nível desse canal. No Asterisk,
cada chamada é formada por dois canais independentes em questão de módulos, um da
origem até o servidor e outra do servidor até o destino. Dessa forma, essa API permite
obter independência nos protocolos, e pode trabalhar com mais de um canal em cada
chamada.

 API de Aplicativos: a API de aplicação é responsável por carregar simultaneamente todos os


módulos necessários para executar os aplicativos disponíveis no Asterisk. Alguns exemplos
são: correio de voz através do aplicativo Voice-mail, DAC (Distribuição Automática de
Chamadas) disponibilizada pelo aplicativo Queue e conferência pelo aplicativo MeetMe.

 API de Tradução de CODECs: nessa API são carregados os módulos que cuidam da
codificação e decodificação de diversos formatos de áudio, como alaw, ulaw, GSM etc. É ela
quem possibilita que tenhamos a facilidade de trabalhar com os mais diversos CODECs, com
a opção de escolha de qual se encaixa melhor em cada cenário.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 100

[ 100 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
 API de Formato de Ficheiros: trabalha com leitura e escrita de diversos formatos de ficheiros
para serem armazenados em disco. Por exemplo format_mp3 e format_wav.

O núcleo do Sistema
O núcleo do Asterisk é responsável por interconectar os protocolos, CODECs, formatos de
ficheiros e aplicativos entre si para que possam ser executados os recursos desejados da
forma mais customizável possível. As principais funções do núcleo do sistema estão
descritas a seguir:

 Núcleo de Comutação: nessa parte do núcleo são feitas as comutações entre as pontas de
uma chamada. No Asterisk essa comutação é feita de forma transparente, ou seja, o
utilizador não sabe se está sendo feita a conversão de CODECs ou protocolos. Considere o
Núcleo de Comutações como o ponto central e básico de qualquer PABX. No Asterisk não é
diferente.

 Lançador de Aplicativos: é responsável em executar todos os aplicativos disponíveis no


Asterisk, como Voice-mail, Playback etc.

 Tradutor de Aplicativos: essa parte do núcleo é onde são feitas as traduções de um CODEC
para outro. O objetivo de tal tradução é permitir que o administrador ajuste o sistema a
utilizar os recursos da melhor forma possível para o ambiente que ele possui. Esse processo,
assim como a tradução de protocolos, é transparente para os utilizadores.

 Scheduler e gestor de I/O: faz a gestão do comportamento das tarefas em baixo nível e seu
escalonamento no sistema para que seja mantido um bom desempenho sob qualquer carga.

Check List Atualização do Kernel

Mão à Obra – Hands On Cinco


Descrição: vamos aprender a atualizar o kernel do GNU/Linux.
Objetivo: Familiarizar-nos com a linha de comandos do GNU/Linux.
Tempo Máximo: 50 minutos.
Instruções: verificar a versão do nosso kernel (anote a versão atual).
# uname -r

Verificar a versão do Sistema Operativo (anote a versão atual).


# cat /etc/redhat-release

Siga os procedimentos abaixo:


# yum install yum-priorities

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 101

[ 101 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
# yum clean all
# yum update glibc\*
# yum update yum\* rpm\* python\*
# yum update ecryptfs-utils\*
# yum clean all
# yum update kernel\*
# updatedb
# yum check-update
# yum update
# reboot

Instalar ferramentas e utilitários para atender o Asterisk (dependências).


# yum groupinstall “Development Tools” (para dahdi, libpri e asterisk)
# yum groupinstall “Development Libraries” (para dahdi, libpri e asterisk)
# yum groupinstall “FTP Server” (para suporte futuro)
# yum install dialog* (para placas Khomp)
# yum groupinstall “MySQL Database” (MySQL Server e seus componentes)
# yum provides *libmysqlclient.so.* (para CDR do Asterisk)
# yum install mysql-* (Dependências do MySQL)
# yum install sox* (para converter áudio de uso no Asterisk)
# yum install vim*
# updatedb
# yum check-update
# yum update
# reboot

Definições do relógio do Servidor


# hwclock --set --date “mm/dd/yyyy 00:00:00”
# hwclock --hctosys

Figura Hands On Cinco 5.01: Definições do Relógio do Servidor

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 102

[ 102 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
O primeiro comando, ajusta o relógio da placa mãe (HW = Hardware).

O segundo comando, sincroniza o relógio do HW com o SYS (Sistema Operativo).

Redefinindo a password do SGDB MySql

Para alterar a password do utilizador “root” siga os seguintes passos: parar o serviço do
MySQL (service mysqld stop, /etc/init.d/mysqld stop matando o processo – conforme sua
distribuição) no CentOS, o comando é este: # service mysqld stop
{start|stop|status|condrestart|restart}

[root@pbxip/]# service mysqld restart


A desligar o MySQL: [ OK ]
A iniciar o MySQL: [ OK ]
[root@pbxip/]#

[root@pbxip/]# service mysqld stop


A desligar o MySQL: [ OK ]

Para iniciar o mysql com a opção “--skip-grant-tables”

[root@pbxip/]# service mysqld start --skip-grant-tables


A iniciar o MySQL: [ OK ]

Alterar a password do utilizador root com o comando:

[root@pbxip/]# mysqladmin -u root password '12345678'

Você vai ter que devolver os privilégios para o utilizador root:

[root@pbxip/]# mysql -u root -p


Enter password: (A SENHA QUE ACABOU DE CONFIGURAR)
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.0.77 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> EXIT
Bye

[root@pbxip/]# service mysqld restart


A desligar o MySQL: [ OK ]
A iniciar o MySQL: [ OK ]
[root@pbxip/]#

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 103

[ 103 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
O parâmetro “–skip-grant-tables” desabilita no servidor o uso do sistema de privilégios.
Com isso todos os utilizadores terão o acesso a todos os bancos de dados. Ao executar o
comando “Flush privileges” o servidor retorna a utilizar o seu sistema de privilégios,
mantendo a segurança original do serviço.

Preparando o PHP e realizando os procedimentos de configurações para atender


o Asterisk.
# yum install e2fsprogs-devel keyutils-libs-devel krb5-devel libogg
# yum install libsepol-devel libxml2-devel libtiff-devel gmp php-pear
# yum install php-pear-DB php-gd php-mysql php-pdo php-cli php-xml
# yum install php-mcrypt php-mbstring php-mhash php-ncurses kernel-devel
# yum install ncurses-devel audiofile-devel libogg-devel libselinux-devel
# yum install openssl-devel mysql-devel zlib-devel perl-DateManip sendmail-cf

Com estes comandos já deve estar tudo que precisamos para o servidor padrão Apache +
PHP. Agora vamos configurar. Primeiro vamos já deixar configurado, para que no boot da
máquina o Apache e o MySQL sejam iniciados, para tal utilizaremos o comando:

# ntsysv ou setup
Depois disso selecione as opções:
[*] httpd
[*] mysqld

Desta forma, sempre que a máquina for reiniciada os dois vão levantar-se.

Agora vamos configurar o Apache. Primeiro inicie o Apache:

# service httpd start

Agora crie o ficheiro phpinfo.php para o testar o PHP com o seguinte conteúdo:

# vim /var/www/html/phpinfo.php

<?php
phpinfo(); // Mostra todas as informações, o padrão é INFO_ALL
?>

ou utilize o comando abaixo:

# echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php

Então aceda o endereço: http://ip-do-servidor/phpinfo.php, e pronto, nem precisamos


configurar nada, mas caso precise fazer alguma configuração específica, entre na pasta
/etc/httpd/ e dentro dela existe as pastas conf e conf.d, que são onde ficam os ficheiros de
configurações. O conf.d armazena a configuração dos módulos adicionados no Apache, e o
conf é onde fica a própria configuração do servidor.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 104

[ 104 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Instalar o PHP-SourceGuardian

Para instalar o Servidor Wide x86-64:

# cd /usr/lib64/php/modules
# wget http://www.sourceguardian.com/ixeds/ixed4.lin.x86-64.tar.gz
# tar vxzf ixed4.lin.x86-64.tar.gz
# chmod +x ixed.*.*

Para instalar o Servidor Wide i386

# cd /usr/lib/php/modules/
# wget http://www.sourceguardian.com/ixeds/ixed4.lin.x86-32.tar.gz
# tar vxzf ixed4.lin.x86-32.tar.gz
# chmod +x ixed.*.*

Depois edite o ficheiro PHP.INI localizado em /etc/php.ini e realize as alterações se


necessário:

# vim /etc/php.ini
short_open_tag = On ( linha 141 )
max_execution_time = 120 ( linha 312 )
memory_limit = 512M ( linha 314 )
error_reporting = E_COMPILE_ERROR ( linha 360 )
register_globals = On ( linha 457 )
upload_max_filesize = 12M ( linha 582 )
extension=ixed.5.3.lin ( incluir contexto linha 631 )

[root@pabxcentos modules]# service httpd restart


A desligar o httpd: [ OK ]
A iniciar o httpd: [ OK ]
[root@pabxcentos modules]#

Instalar o PhpMyAdmin

# yum -y install phpMyAdmin.noarch

ou

# yum -y install phpmyadmin.noarch

ou ainda

# yum -y install phpmyadmin*

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 105

[ 105 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Edite o ficheiro phpmyadmin.conf

[root@pabxcentos /]# vim /etc/httpd/conf.d/phpmyadmin.conf

Deixe assim:

-----------------------------------------------------------------------------
#
#Inicio de configuração para acesso Web ao phpMyAdmin.
#
<Directory "/usr/share/phpmyadmin">
Order Deny,Allow
Deny from all
Allow from 127.0.0.1 192.168
</Directory>
Alias /phpmyadmin /usr/share/phpmyadmin
Alias /phpMyAdmin /usr/share/phpmyadmin
Alias /mysqladmin /usr/share/phpmyadmin
#
#Fim de configurações das permissões de acesso Web ao phpMyAdmin.
#
-----------------------------------------------------------------------------

[root@pabxcentos /]# service httpd restart


A desligar o httpd: [ OK ]
A iniciar o httpd: [ OK ]
[root@pabxcentos /]#

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 106

[ 106 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Ao aceder o PhpMyAdmin você terá uma surpresa (blowfish_secret),
http://ip_do_servidor/phpmyadmin.

Figura Hands On Cinco 5.02: Erro Blowfish_secret

A necessidade da password blowfish é permitir que cada instalação do PhpMyAdmin,


mesmo instalado com gestor de pacote, tenha uma password de segurança somente para
está instalação.

Localizar o local para colocar esta password:

[root@pabxcentos /]# vim /usr/share/phpmyadmin/config.inc.php

Você vai encontrar uma linha assim:

$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

Deixe-a assim:

$cfg['blowfish_secret'] = '#$*nova_password*S4P4TU*$#';

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 107

[ 107 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Sempre coloco um comentário, no caso de querer trocar a password de segurança, então
ficaria assim;

/*
* Blowfish Secret
*/
$cfg['blowfish_secret'] = ' #$*nova_password*S4P4TU*$# ';

Reinicie o seu servidor com o seguinte comando:

[root@pabxcentos /]# service httpd restart


A desligar o httpd: [ OK ]
A iniciar o httpd: [ OK ]
[root@pabxcentos /]#

Aceda novamente o PhpMyAdmin, http://ip_do_servidor/phpmyadmin

Figura Hands On Cinco 5.03: Login sem o erro Blowfish_secret

Lembre-se utilizamos
Utilizador: root
Password: 12345678

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 108

[ 108 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

Configurando CDR com MysQL

Mão à Obra – Hands On Seis


Descrição: vamos configurar o CDR no MySQL para nosso Servidor Asterisk.
Objetivo: criar a base de dados no Banco de Dados MySQL para o CDR do Asterisk.
Tempo Máximo: 15 minutos.
Instruções: aceder o PhpMyAdmin (http://ip do seu servidor/phpmyadmin). Colocamos o
utilizador: root e a password: 12345678.

Figura Hands On Seis 6.01: Login phpMyAdmin

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 109

[ 109 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Em “Criar nova base de dados” digite “ippabx” e clique no botão “Criar”

Figura Hands On Seis 6.02: localhost do phpMyAdmin

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 110

[ 110 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Agora clique na base de dados “ippabx”

Figura Hands On Seis 6.03: localhost do phpMyAdmin

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 111

[ 111 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Agora clique no menu, no item “Import”.

Figura Hands On Seis 6.04: Import do ippabx

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 112

[ 112 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Agora clique no botão “Procurar...”

Figura Hands On Seis 6.05: Import do ippabx

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 113

[ 113 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Agora entre no diretório “Asterisk 1.6 ou 1.8 BD_IPPABX” e selecione o ficheiro “ippabx.sql”
fornecido pelo formador.

Figura Hands On Seis 6.06: Import do ippabx

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 114

[ 114 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Agora clique no botão “Executar”

Figura Hands On Seis 6.07: Import do ippabx

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 115

[ 115 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Aqui vemos que tudo foi executado com sucesso.

Figura Hands On Seis 6.08: Import do ippabx

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 116

[ 116 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Clique no menu esquerdo sobre o nome da nossa base de dados que esta em azul. Veja
que todas as tabelas de nossa Base de Dados foram criadas com sucesso. Depois clique no
ícone da “Casa” (Home)

Figura Hands On Seis 6.09: Tabelas da base de dados ippabx

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 117

[ 117 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Agora pode sair do phpMyAdmin, clicando no ícone “Exit”.

Figura Hands On Seis 6.10: Saindo do phpMyAdmin

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 118

[ 118 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

Instalando DAHDI, LIBPRI, LAME e Asterisk

Mão à Obra – Hands On Sete

Descrição: iremos realizar a instalação do Asterisk bem como aplicativos auxiliares.


Objetivo: Instalar corretamente o Asterisk e complementos.
Tempo Máximo: 20 minutos.
Instruções: após estar com o seu sistema operativo e infraestrutura de rede prontos, está
na hora de começar a instalar e em seguida configurar o PBX IP. Existem quatro pacotes
que compõem o projeto Asterisk:

DAHDI: composto pelos pacotes dahdi-linux e dahdi-tools. Esse pacote fornece os


módulos para que as placas da Digium possam ser carregadas no GNU/Linux e
reconhecidas pelo Asterisk. Nesses pacotes encontram-se também o driver dahdi_dummy,
ele é o responsável por gerar informações de temporização para alguns aplicativos do
Asterisk quando não existirem placas fisicamente instaladas;

LIBPRI: é uma biblioteca para uso das placas da Digium com sinalização ISDN;

Asterisk: pacote que traz os códigos-fonte do Asterisk e todos os seus recursos padrão;

Asterisk-addons: neste pacote são encontrados módulos adicionais para recursos extras
do Asterisk, por exemplo, o módulo que reconhece ficheiro MP3.

Lembrando que neste momento nos laboratórios anteriores atendemos todas as


dependências para instalar com sucesso o sistema Asterisk PBX IP. Demais dependências
que sejam necessárias, serão instaladas automaticamente. As fontes dos pacotes acima
listados podem ser encontradas na sessão de downloads do sítio oficial do Asterisk
(http://www.asterisk.org). Atualmente o Asterisk se encontra na versão 1.10, mas a versão
1.6 será a versão que iremos focar durante todo este material de estudo.

OBS: devido a constante mudanças realizadas na estrutura dos repositórios Open Source,
é possível que alguns dos caminhos indicados nos tuneis wget não seja mais valido. Caso
isto ocorra procure pelo nome do pacote no sítio oficial do projeto.

Instalar o LAME;

# cd /usr/local/src
# wget http://downloads.sourceforge.net/project/lame/lame/3.98.4/lame-
3.98.4.tar.gz?ts=1292626574&use_mirror=cdnetworks-us-1
# tar zxvf lame-3.98.4.tar.gz
# cd lame-3.98.4
# ./configure
# make
# make install

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 119

[ 119 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Instalar o LIBPRI;

# cd /usr/local/src
# wget http://downloads.asterisk.org/pub/telephony/libpri/releases/libpri-1.4.11.tar.gz
# tar zxvf libpri-1.4.11.tar.gz
# cd libpri-1.4.11
# make
# make install

Instalar o DAHDI-LINUX;

# cd /usr/local/src
# wget http://downloads.asterisk.org/pub/telephony/dahdi-linux/dahdi-linux-2.5.0.1.tar.gz
# tar zxvf dahdi-linux-current.tar.gz
# cd dahdi-linux-2.5.0.1
# make
# make install

Instalar o DAHDI-TOOLS;

# cd /usr/local/src
# wget http://downloads.asterisk.org/pub/telephony/dahdi-tools/dahdi-tools-2.5.0.1.tar.gz
# tar zxvf dahdi-tools-current.tar.gz
# cd dahdi-tools-2.5.0.1
# ./configure
# make
# make install

Para que inicie no boot (arranque) do Sistema Operativo (GNU/Linux CentOS):

# make config

Para iniciá-lo manualmente:

[root@pabxcentos dahdi-tools-2.5.0.1]# service dahdi start


Loading DAHDI hardware modules:
wct4xxp: [ OK ]
wcte12xp: [ OK ]
wct1xxp: [ OK ]
wcte11xp: [ OK ]
wctdm24xxp: [ OK ]
wcfxo: [ OK ]
wctdm: [ OK ]
wcb4xxp: [ OK ]
wctc4xxp: [ OK ]
xpp_usb: [ OK ]

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 120

[ 120 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Running dahdi_cfg: [ OK ]

[root@pabxcentos dahdi-tools-2.5.0.1]#

Instalar o Asterisk versão 1.6.2.20;

# cd /usr/local/src
# wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-1.6.2.20.tar.gz
# tar zxvf asterisk-1.6.2.20.tar.gz
# cd asterisk-1.6.2.20
# ./configure
# make menuselect

OBS: Será aberta uma nova janela para selecionar quais os módulos devem ou não ser
instalados. Para instalar, a opção estará como [ * ], para não instalar [ ], caso o sistema
exija alguma dependência que não está instalada, será mostrado XXX na frente do módulo.
Na versão 1.6 vá até ”Save & Quit” após terminar as seleções. Nota que enquanto na
versão 1.6 você utiliza a tecla “espaço” para realizar as seleções de módulos, na versão 1.4
você deve teclar X para o mesmo procedimento.

# make
# make install
# make samples
# make progdocs
# make config

Instalar o Asterisk addons para Asterisk versão 1.6.2.20;

# cd /usr/local/src
# wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-addons-
1.6.2.4.tar.gz
# tar zxvf asterisk-addons-1.6.2.4.tar.gz
# cd asterisk-addons-1.6.2.4
# ./configure
# make menuselect

Applications [*] app_addon_sql_mysql


[*] app_saycountpl
Call Detail Recording [*] cdr_addon_mysql
Resource Modules [*] res_config_mysql

Todos os itens acima necessitam da biblioteca cliente do MySQL, todos têm que estar com
a opção abaixo do lado esquerdo como descrito a seguir:

Simple Mysql Interface


MySQL CDR Backend
MySQL RealTime Configuration Driver

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 121

[ 121 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Depends on: mysqlclient(E)
Can use: N/A
Conflicts with: N/A

Escolha em salvar e sair, prossiga com a instalação;

# make
# make install
# make samples

[root@pabxcentos src]# service asterisk start


Starting asterisk: [ OK ]
[root@pabxcentos src]#

IMPORTANTE: caso seja necessária a recompilação do Asterisk, é recomendável que você


digite o comando make clean e make distclean antes do ./configure para limpar os códigos-
fonte compilados e os ficheiros makefile gerados. Em seguida, repita os processos – exceto
o make samples e o make config para não sobrescrever suas configurações. Esses
comandos não irão remover os módulos instalados na pasta /usr/lib/Asterisk/modules.

Vamos configurar agora o ficheiro named.conf para que os anexos do correio de voz
possam ser enviados para os destinatários, sem correr o risco de cair na lista de spam.

# echo "options {" >> /var/named/chroot/etc/named.conf


# echo " directory \"/var/named\";" >> /var/named/chroot/etc/named.conf
# echo " dump-file \"/var/named/data/cache_dump.db\";" >>
/var/named/chroot/etc/named.conf
# echo " statistics-file \"/var/named/data/named_stats.txt\";" >>
/var/named/chroot/etc/named.conf
# echo "};" >> /var/named/chroot/etc/named.conf
# echo "include \"/etc/rndc.key\";" >> /var/named/chroot/etc/named.conf
# cd /var/named/chroot/etc/
# chmod 640 named.conf
# chgrp named named.conf
# ln -s /var/named/chroot/etc/named.conf /etc/named.conf

Vamos desabilitar o SELinux e o Firewal para não termos problemas com os mesmos em
nossas conexões locais (intranet). Lembre-se que para conexões, externas a sua rede
(Internet) faz necessário firewall e vpn.

# echo "SELINUX=disabled" > /etc/selinux/config


# iptables -P INPUT ACCEPT
# iptables -P OUTPUT ACCEPT
# iptables -P FORWARD ACCEPT
# iptables -F
# iptables -X
# /etc/init.d/iptables save

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 122

[ 122 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

Conhecendo o Asterisk

Estrutura de Pastas
O Asterisk trabalha com as pastas listadas a seguir quando feita a instalação padrão a
partir dos códigos-fontes. É importante conhecê-los para saber onde procurar os módulos
ou ficheiros utilizados e gerados pelo sistema, assim como para melhor dimensionar o
particionamento do seu sistema operativo. Caso for alterada essa estrutura de pastas deve-
se alterar no ficheiro “asterisk.conf” quais as pastas utilizadas que corresponde os originais.

 /etc/asterisk: é a pasta onde são encontrados todos os ficheiros de configurações


do Asterisk. Veremos quais e suas devidas configurações mais adiante.

 /usr/lib/asterisk/modules: nessa pasta estão todos os módulos que englobam


as APIs descritas anteriormente e que são carregados pelo Asterisk. Se não houver
configurações no ficheiro “modules.conf” negando o carregamento de algum
módulo, todos os módulos que estiverem na pasta “/usr/lib/asterisk/modules” serão
carregados, por isso é preciso ter o cuidado de não manter backups de módulos
para teste de outros. Caso o Asterisk sinta qualquer dificuldade ao carregar os
módulos dessa pasta o serviço não irá iniciar. Caso o módulo já esteja em execução,
este não irá parar mas ao ser reiniciado não funcionará.

 /var/lib/asterisk/: armazena o ficheiro do bando de dados do Asterisk, o AstDB


(veremos seu uso mais adiante), e uma série de subpastas com ficheiros que podem
ser usados para apoiar alguns aplicativos do PBX IP.

 /var/lib/asterisk/sounds: pasta padrão para armazenar os ficheiros de áudio


utilizados pelos aplicativos do Asterisk. Por padrão, na compilação podem ser
instalados os ficheiros de Áudio em inglês, espanhol, e francês. Também é possível
colocar os áudios em português desde que se mantenham os mesmos nomes para
os ficheiros. Isso porque alguns aplicativos possuem os áudios padrões para serem
executados, instruções da administração da caixa de mensagens (correio de voz –
Voice-mail) dos utilizadores, e outros recursos procurando por esses áudios com
nomes padrão. Os ficheiros dessa pasta geralmente se encontram em formato GSM
por terem a mesma qualidade de chamadas telefónicas convencionais e serem
ficheiros menores que outros formatos.

 /var/lib/asterisk/moh: pasta onde ficam os áudios de músicas em espera. Para


cada classe configurada no ficheiro “musiconhold.conf” podem ser criados novas
pastas dentro desta.

 /var/lib/asterisk/agi-bin: armazena os scripts AGI. São utilizados para estender


os recursos do Asterisk e facilitar a integração com outros aplicativos.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 123

[ 123 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
 /var/lib/asterisk/keys: para garantir maior segurança é possível utilizar chaves
criptografadas para autenticar extensões ou outros sistemas que utilizam DUNDi por
exemplo. Nessa pasta são armazenadas essas chaves quando houver esse tipo de
requisito em seu PBX IP.

 /var/lib/asterisk/images: é uma pasta pouco utilizada atualmente, pois serve


apenas para armazenar imagens. No entanto, poucos dispositivos suportam a
visualização de imagens. Porém, se no futuro esse uso se ampliar, a pasta para esse
tipo de recurso já está prevista.

 /var/lib/asterisk/firmware: armazena os rmwares de dispositivos compatíveis


com o Asterisk. Por padrão o rmware do IAX se encontra nele. Também raramente é
utilizado; sua finalidade exata não está bem descrita.

 /var/spool/asterisk: nessa pasta são encontrados subpastas que armazenam


ficheiros consumidos e gerados dinamicamente pelo sistema durante sua execução
(voice-mail e gravações, por exemplo).

 /var/spool/asterisk/monitor: é onde são armazenadas por padrão as gravações


geradas pelos aplicativos Monitor() e MixMonitor() quando o caminho completo não
é passado como parâmetro.

 /var/spool/asterisk/voicemail: para cada caixa postal é gerada um novo


subpasta que irá conter as pastas e mensagens gravadas.

 /var/spool/asterisk/outgoing: essa pasta é constantemente monitorada pelo


Asterisk para que, assim que for colocado nele um ficheiro com padrão predefinido –
chamado de calle – contendo informações de marcação, essa chamada seja
imediatamente executada. Quando a marcação for bem-sucedida ou esgotarem-se o
número de tentativas o ficheiro é automaticamente removido da pasta. A utilização
dessa pasta é bem ampla e varia de acordo com a necessidade de cada ambiente;
pode ser feito, por exemplo, um aplicativo de callback e aplicativos de marcação
utilizando esse recurso.

 /var/spool/asterisk/meetme: quando é feita a configuração para gravar uma


conferência, é nessa pasta que os ficheiros gerados serão armazenados.

 /var/spool/asterisk/dictate: raramente utilizado, é onde o aplicativo dictate()


irá procurar pelos ficheiros correspondentes quando necessário.

 /var/spool/asterisk/system: quando é utilizado o aplicativo system() para


executar algum comando de dentro do plano de marcação direto no sistema
operativo, é nessa pasta que são armazenadas as informações temporárias caso seja
necessário.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 124

[ 124 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
 /var/spool/asterisk/tmp: guarda dados temporários gerados pelo Asterisk
principalmente para fazer controlo de concorrência entre aplicativos de leitura e
escrita em dados que estão sendo usados.

 /var/run: contém o ficheiro com o PID (Process ID – número que identifica o


processo quando em execução) que é gerado quando o Asterisk é inicializado.

 /var/log/asterisk: armazena os logs gerados pelo Asterisk. As informações que


serão escritas nos logs são configuradas no ficheiro logger.conf. Existe um subpasta
chamada /var/log/asterisk/cdr-csv onde fica armazenado o ficheiro master.csv que
contém os registros dos bilhetes gerados no Asterisk. Esses bilhetes também podem
ser personalizados e gerados em um outro subpasta, a /var/spool/asterisk/cdr-
custom.

Iniciando o Asterisk

Mão à Obra – Hands On Oito


O Asterisk está pronto ser iniciado. Confirme digitando o comando:

# rasterisk –vvvvgci

O prompt do sistema operativo deverá mudar para *CLI>. As opções mais usadas com o
comando # asterisk no GNU/Linux são as seguintes: (para mais informações digite # man
asterisk no prompt):

v: indica o nível de verbose que o Asterisk irá exibir após iniciado, múltiplos v indicarão
maior verbose;
c: inicia o Asterisk na consola. Para sair desse modo, o serviço do Asterisk deve ser
paralisado;
d: ativa o modo debug:
g: gera coredumps em caso de segmentation fault;
G<grupo>: grupo que iniciará o Asterisk;
r: conecta ao Asterisk que estiver sendo executado no servidor e não inicia uma nova
instância;
U<utilizador>: utilizador que iniciará o Asterisk;
x<comando>: conecta ao Asterisk que estiver sendo executado, executa o comando
passado como parâmetro, imprime o resultado na consola do GNU/Linux e fecha a
conexão.
Exemplo:
# rasterisk –x “core show channels”

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 125

[ 125 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Para interromper o Asterisk que está em produção é possível escolher entre os seguintes
comandos na linha de comando:

*CLI> core stop now: para o serviço do Asterisk de imediato;


*CLI> core stop gracefully: não permite que sejam geradas novas chamadas e espera
as que estão em andamento acabarem para parar o serviço;
*CLI> core stop when conveniente: espera o momento em que não houverem mais
chamadas para parar com o serviço. A diferença do gracefully é que este não rejeita novas
chamadas.

O mesmo se aplica para os comandos core restart now, gracefully e when conveniente.
De preferência inicie e pare o serviço Asterisk sempre pelos comandos:

# service asterisk start


# service asterisk restart
# service asterisk stop
# service asterisk status

Estes são satisfatórios para usar em testes, mas eles interrompem o serviço, então não são
apropriados para um sistema em produção.

Backup dos Ficheiros do Asterisk

Mão à Obra – Hands On Nove


Descrição: realizar as primeiras configurações em nosso Servidor Asterisk.
Objetivo: Backup de ficheiros do Asterisk.
Tempo Máximo: 15 minutos.
Instruções: O Asterisk é composto por uma série de ficheiros de configurações, onde cada
qual configura uma particularidade do serviço. Por padrão, todos os ficheiros de
configuração do Asterisk ficam em /etc/Asterisk, exceto os ficheiros de configuração dos
drivers das placas Digium que ficam na pasta /etc/dahdi.

Os ficheiros são divididos em seções, que são declaradas entre parêntese reto ([<seção>])
e tudo o que estiver abaixo desta seção até o início de outra ou até o final do ficheiro
estará relacionado a ela. Por exemplo:

[sessao1]
par1=123
par2=456

[sessao2]
par3=789

No exemplo acima, os parâmetros par1 e par2 pertencem à seção 1 e o parâmetro par3


pertence à seção 2.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 126

[ 126 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Alguns ficheiros possuem no início das configurações uma seção chamada [gereral]. Nos
casos de ficheiros de configuração de canais, como os ficheiros sip.conf, iax.conf e
chan_dahdi.conf, serão definidos nesta sessão os parâmetros utilizados em todas as outras
seções se esse parâmetro não for sobrescrito nas sessões específicas de cada canal. Em
outros ficheiros, como o features.conf essa sessão existe para definir um conjunto de
parâmetros que são usados por aplicações específicas dentro do Asterisk.

Na tabela abaixo estão os principais ficheiros de configuração e o que é configurado em


cada um deles:
Ficheiro Conteúdo
asterisk.conf Define as pastas padrão e alguns parâmetros para inicialização
do Asterisk entre outros.

agentes.conf Ficheiro de configuração dos agentes das filas de atendimento.

cdr.conf Configurações sobre a gravação dos CDRs (Call Detail Records)


– Bilhetes gerados peloAsterisk.

extensions.ael Ficheiro de configuração do plano de marcação escrito em AEL


(Asterisk Extension Language), uma linguagem mais avançada
específica para plano de marcação do Asterisk.

extensions.conf Ficheiro de configuração do plano de marcação.

features.conf Onde são configuradas algumas funcionalidades do IP PBX,


como captura, estacionamento e transferência de chamadas.

iax.conf Ficheiro que contém as configurações de canais IAX, sejam eles


extensões ou entroncamentos.

logger.conf Configurações referentes aos logs gerados pelo Asterisk.

manager.conf Configurações referentes à AMI (Asterisk Manager Interface),


porta para integração de aplicações externas se conectarem ao
Asterisk.
meetme.conf Configurações das salas de conferência.

modules.conf Ficheiro de configuração da aplicação que carrega os módulos.

musiconhold.conf Definições sobre música em espera.

queues.conf Configuração das filas de atendimento.

rtp.conf Configurações do protocolo RTP.

sip.conf Configuração dos canais SIP, tanto para as extensões, quanto


para os entroncamentos.

voicemail.conf Definições das caixas do correio de voz.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 127

[ 127 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Caso você deseje criar novos ficheiros para ter maior organização e controle do que está
sendo configurado, pode fazer uso de desenvolvimento segmentado, em todos os ficheiros
de configuração você pode utilizar esta técnica de desenvolvimento, com a inclusão de
ficheiros, ou seja, a partir do ficheiro padrão podem ser incluídos outros ficheiros criados
com qualquer nome.

Para realizar essas inclusões basta adicionar #include = nome_do_ficheiro.conf no ficheiro


padrão. Vários includes podem ser declarados, assim como um ficheiro incluído declarar a
inclusão de outro e assim por diante.

Então iremos ver com são feitas as primeiras configurações em um PBX IP Asterisk. Na
instalação foram criados ficheiros de exemplo quando executamos o comando make
samples, esses ficheiros podem servir de referência para as configurações que você for
iniciar. Porém, para evitar que ocorram confusões e até mesmo acessos a extensões
indevidas, procure sempre criar um backup dos ficheiros que veremos a seguir e comece
criando novos ficheiros somente com as configurações que você fizer.

Preparar o Asterisk. Digite as linhas a seguir na consola do GNU/Linux (CLI):

[root@pbxip /]# mkdir /tmp/bkp


[root@pbxip /]# cd /etc/
[root@pbxip /]# cp -a asterisk/ /tmp/bkp/
[root@pbxip /]# ls /tmp/bkp/asterisk/
[root@pbxip /]# cd /etc/asterisk/
[root@pbxip asterisk]# > extensions.conf
[root@pbxip asterisk]# > extensions.ael
[root@pbxip asterisk]# > sip.conf
[root@pbxip asterisk]# > iax.conf
[root@pbxip asterisk]# > users.conf
[root@pbxip asterisk]# > queues.conf
[root@pbxip asterisk]# > agents.conf
[root@pbxip asterisk]# > voicemail.conf
[root@pbxip asterisk]# > musiconhold.conf
[root@pbxip asterisk]# > meetme.conf

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 128

[ 128 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

Asterisk Overview

Nosso Cenário

Figura 1.23: Nosso cenário de estudo

1. Rede de Telefonia Pública.


Conexão com as redes públicas de Telefonia Fixa e de Telefonia Celular.

2. Redes Multisserviços.
Conexão com a Rede Multisserviços que interliga todas as instalações prediais da empresa
nas diversas localidades. No caso de uso de redundâncias, podem ser contratadas outros
prestadores de serviço para prover diversidade de circuitos.

3. PABX IP Principal.
Equipamento responsável pelo fornecimento do serviço de comunicação por Voz. Pode ser
um único equipamento que atende todas as localidades prediais a partir de um local
central. Eventualmente pode ter um equipamento de contingência em outra localidade.

4. PABX IP Secundário ou Gateway.


Equipamento utilizado como contingência do PABX IP principal, caso exista. Normalmente
será apenas um Gateway para acesso a rede telefónica pública local. Em algumas
localidades pode nem existir.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 129

[ 129 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

5. Telefone IP.
Terminal telefônico IP ou terminal telefônico analógico com adaptador para VoIP.

6. PC's ou Notebooks.
Computadores desktop ou laptop, que também podem ser utilizados para telefonia IP com
software do tipo softphone.

7. Rede Local.
Compreende toda a infraestrutura da rede local (LAN): cabos de interligação, cabeamento
estruturado, painel de distribuição e hub ou switch. Deve-se observar que as instalações
com hub podem introduzir perdas devido a sua característica de comunicação "um-para-
muitos". Recomenda-se, portanto, o uso de switches, que implementam a comunicação
"ponto-a-ponto" entre todos os elementos da rede.

8. CPE.
Equipamento de interface da rede corporativa com a rede multisserviços que implementa a
rede WAN da empresa. Quando o número de localidades é grande, na localidade principal
pode ser colocado adicionalmente um equipamento, switch de maior capacidade de
processamento, como nó central para melhorar o tráfego entre as diversas localidades.

Alguns cuidados adicionais devem ser considerados no projeto da Rede VoIP:


Dimensionamento: o dimensionamento do porte do PABX IP, da infraestrutura da(s) redes
locais, dos CPE's e da banda da rede WAN são fatores críticos para o sucesso da rede.

Qualidade de Serviço: para que a Rede VoIP tenha uma qualidade de comunicação de Voz
que seja, no mínimo, igual aos sistemas de Voz comutada, deve-se ter como prerrogativa
de projeto um plano para garantir o QoS das informações de Voz, tanto na(s) rede(s)
local(is) como nos CPE's e circuitos contratados das redes multisserviços.

Nível de Serviço: a disponibilidade geral da rede e o MTBF (falhas) devem ser objeto de
estudo para garantir que tantos os equipamentos como os serviços contratados das redes
multisserviços permitam manter a rede VoIP funcionando sempre. Os equipamentos devem
ter suporte local e em regime ininterrupto, e os serviços de telecomunicações devem ser
contratados com base num Acordo de Nível de Serviço (SLA) que atenda as necessidades
da Rede VoIP.

Segurança: assim como nas redes de dados, a rede VoIP deve também ter os seus
procedimentos de segurança definidos e implementados nos equipamentos de segurança
existentes (firewall, proxy, etc.) ou em novos equipamentos destinados a esse fim.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 130

[ 130 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

PBX IP Tradicional

Figura 1.24: PBX IP Tradicional

O Asterisk permite conectividade em tempo real entre a rede pública de telefonia e redes
VoIP. A rede pública de telefonia é frequentemente referida pela sua sigla em inglês PSTN
(Public Switched Telephony Network).

PBX IP 100% VoIP

Figura 1.25: PBX IP 100% VoIP

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 131

[ 131 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Para ligar para os telefones normais, fixos ou moveis em qualquer lugar no mundo é
necessário o uso de um ITSP - Internet Telephony Service Provider, estes provedores
possuem aparelhos especiais (gateways) que são ligados nas redes telefônicas normais
(PSTN) em muitos países, este serviço é chamado de "Terminação".

Conectando seu Servidor IP PABX a um destes ITSP você poderá ligar pela internet até o
país desejado e lá realizar uma ligação local para o telefone de destino. Por isso as tarifas
internacionais da Telefonia IP são tão baixas.

Os ITSP também fornecem números de telefone locais em muitos países, desta forma você
pode ter um número de telefone e receber chamadas de telefones normais sem que a
pessoa que está chamando pague tarifas internacionais.

PBX IP HIBRIDO VoIP & PSTN

Figura 1.26: PBX IP Hibrido VoIP & PSTN

Suponhamos que a Internet é nossa Terminação I seja responsável por todas as chamadas
nacionais. Quando não temos tratamento de falhas, o que também chamado de
redundância, onde caso a Terminação I para de operar por motivos que não nos
interessam até então, os utilizadores não conseguirão completar chamadas nacionais.

O nosso PSTN é então nossa Terminação II, Neste cenário que estamos ilustrando temos
um ITSP (nosso servidor VoIP) e um PSTN (nossa operadora telecom local).

Terminações que por sua vez encaminharão para a rede pública de telefonia (PSTN), todas
as chamadas que por algum motivo deixou de ser atendida pela no telefonia IP (ITSP).

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 132

[ 132 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

Gateway VoIP

Figura 1.26: Gateway VoIP

Um Servidor VoIP (Gateway VoIP) é um dispositivo que converte os sinais de voz para o
protocolo IP, que por sua vez, os transmite através de redes de dados. São usados de duas
formas:

1. Para converter linhas telefônicas/PSTN ao VoIP/IP:


Nesse caso, um servidor VoIP permite o recebimento e a realização de chamadas pela rede
de telefonia convencional. Em se tratando de empresas, é preferível continuar usando
linhas telefônicas tradicionais porque podem garantir maior qualidade e disponibilidade.

2. Para conectar um sistema de telefonia convencional/PABX à rede IP:


Nesse caso, o Gateway VoIP permite a realização de chamadas via VoIP. As chamadas
podem ser realizadas por um provedor de serviço VoIP ou, no caso de uma empresa com
vários escritórios, o custo das ligações internas pode ser reduzido com ligações via
Internet. Os Gateways VoIP estão disponíveis como unidades externas ou cartões PCI.

A grande maioria dos dispositivos é de unidades externas. Um Servidor VoIP terá um


conector para a rede IP e uma ou mais portas de conexão para as linhas telefônicas.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 133

[ 133 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

Servidor de Funcionalidades

Figura 1.27: Servidor de funcionalidades

O software Asterisk, é um software que transforma um computador num poderoso servidor


de comunicações, pode ser usado como um IP PABX, também conhecido com Servidor
IP/PABX, ou Gateway VoIP para possibilitar as empresas comunicar-se de novas formas, e
tornarem-se mais acessíveis sem perder a compatibilidade com os sistemas clássicos de
voz.

Esta poderosa ferramenta permite montar com custos reduzidos um ótimo servidor de
funcionalidades de voz com altíssimos níveis de funcionalidade, suportando entre outras:
- Vários operadores Voip
- Utilização de Hardware dedicado ou softphones
- Integração com dispositivos móveis
- Voice-mail
- Gateway voice-mail para correio electrónico
- Suporte para Hardware de telefonia RDIS e analógico
- IVR (URA) e AA (Atendimento Automático)
- Música em espera

Resumo de Atendendo o Asterisk


Resumo de Atendendo o Asterisk, GNU/Linux para Adm. Asterisk, Apresentação do
Asterisk, Arquitetura do Asterisk, conhecendo o Asterisk e Asterisk Overview. Foi
apresentado a história do Asterisk, uma breve evolução do software ao longo do tempo e
onde podem ser encontradas referências quando você estiver encontrando dificuldades
para configuração ou problemas de operação. Vimos como é a arquitetura interna do
aplicativo. Quais são e para que servem cada uma das APIs que compõem o sistema e as
divisões que temos no núcleo do sistema. Sendo que a modularidade do sistema é o que
possibilita toda a flexibilidade disponível por esse PBX IP. A árvore de pastas que o
Asterisk utiliza deve ser conhecida para saber onde deve ser focado quando houver
necessidade de manutenção de determinado módulo. Vimos o que é preciso ser feito em
nosso ambiente de rede para poder receber chamadas VoIP com qualidade, trazendo

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 134

[ 134 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
maiores chances de sucesso em seu projeto. Garantir banda suficiente para incorporar
transmissão de voz sobre a rede de dados, utilizar priorização de pacotes e VLANs quando
possível são questões que devem ser analisadas para obter qualidade nas transmissões de
voz. Da mesma forma o servidor que irá fornecer o serviço de voz sobre IP deve ser
dimensionado de acordo com a operação que será exigida do mesmo. Devem ser
consideradas os aplicativos que irão executar, os CODECs e protocolos que serão
utilizados para poder adequar o Hardware de forma correta. O particionamento que será
feito é essencial para garantir maior segurança e tranquilidade ao administrador, facilitando
a manutenção do servidor. Com o ambiente todo preparado foram apresentados os pacotes
que compõem o sistema: DAHDI, Libpri, Asterisk e Asterisk-addons. Lembrando que
o DAHDI fornece os drivers para as placas, LIBPRI é a biblioteca para sinalização ISDN,
Asterisk é o pacote principal e Asterisk-addons são recursos adicionais que podem ser
acrescidas ao seu PBX IP. Atenção especial deve ser dispensada ao módulo
dahdi_dummy que fornece o timing para aplicativos como MeetMe() (conferencia)
quando não houver placas da Digium instaladas. Por fim, passamos por alguns ficheiros de
configuração (o que contém cada um deles) e como é a estrutura básica dos mesmos. De
agora em diante iremos focar nas configurações desses ficheiros. Vamos aprender como
configurar extensões SIP, IAX e FXS, o plano de marcação, entroncamento com a PSTN
através de links digitais, analógicos e VoIP e conhecer os principais comandos de terminal
que nos ajudarão a administrar o PBX IP.

Configurações Básicas
Neste momento, veremos como são feitas as primeiras configurações em um PBX IP
Asterisk. Na instalação foram criados ficheiros de exemplos quando executamos o comando
# make samples, esses ficheiros podem servir de referência para as configurações que
você for iniciar. Porém, para evitar que ocorram confusões e até mesmo acessos a
extensões indevidas, procure criar backups dos ficheiros que veremos a seguir e comece
criando novos ficheiros somente com as configurações que você implementar.

O Protocolo SIP

Lembrando que já vimos quais são as principais mensagens e os modos de funcionamento


desse protocolo. É importante que se familiarize com esses conceitos para facilitar a
resolução de problemas e também para ter uma melhor visão do que é ou não possível
fazer em seus próximos projetos.

Devido a sua ampla adoção, o protocolo SIP possui diversos dispositivos que podem ser
utilizados como principal ferramenta de comunicação de voz. Esses equipamentos seriam
softphones – (softwares que emulam um telefone no computador – Figura 7.1), ATAs –
Analog Tlephony adapter - Figura 7.2), aparelho que converte uma extensão analógica
TDM para uma extensão VoIP. Normalmente possui uma ou duas portas, Gateways
(Figura 7.4), que são ATAs com mais portas, como se fossem um switch ou telefones VoIP
(Figura 7.5).

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 135

[ 135 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

Figura 1.28: Softphone X-Lite para Windows

Figura 1.29: ATA PAP2 da Cisco System – LinkSys

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 136

[ 136 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

Figura 1.30: Exemplo de uso da ATA PAP2 da Cisco System – LinkSys

Figura 1.31: Gateway VoIP FXS - Grandstream GXW 4008.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 137

[ 137 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

Figura 1.32: Telefone VoIP - Grandstream GXV3140.

Existem diversas marcas que praticam preços bastante variados. Pesquise nas listas ou
converse com outros Administradores de Sistemas Asterisk para saber quais são suas
experiências com cada marca e em qual ambiente eles foram usados, já que normalmente
isso ajuda a achar equipamentos com melhor custo/benefício.

Segue um quadro comparativo entre esses dispositivos para servir como base de
comparação (sem levar em conta fabricantes ou modelos):

Equipamento Prós Contras


Softphones Baixo custo de aquisição, Depende da qualidade da máquina para
pois existem diversas compartilhar os recursos. Maior
opções free com boa dificuldade de adaptação dos
qualidade. Basta comprar o utilizadores.
headset.
ATA Custo por porta Para ambientes que terão muitas
relativamente baixo. extensões torna-se oneroso configurar
muitos equipamentos, ou seja, uso
restrito ou residencial.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 138

[ 138 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Gateways FXS Menos custo por porta Caso ele falhe, diversas extensões
quando forem necessárias ficaram sem comunicação.
extensões analógicas.
Menos equipamento para
proceder com a gestão.
Telefone IP Aparelhos com boa Custo de aquisição impede que sejam
qualidade e aparência. adquiridos muitos.

Geralmente esses equipamentos possuem interfaces gráficas amigáveis e fáceis de


configurar. Exceto os softphones em versões gratuitas, os demais podem ser
provisionados; isso que dizer que as configurações são buscadas por TFTP, HTTP ou FTP
em um único local. Podemos gerar ficheiros comuns para serem usados por vários
equipamentos e os específicos com configurações direcionadas para cada um, não sendo
necessário configurar individualmente todos eles.

Configurar Extensões Telefonicas com o SIP.CONF

Mão à Obra – Hands On Dez


Descrição: realizar as primeiras configurações em nosso Servidor Asterisk.
Objetivo: Criar utilizadores SIP.
Tempo Máximo: 15 minutos.
Instruções: A configuração das extensões que utilizarem o protocolo SIP é feita no ficheiro
/etc/asterisk/sip.conf. Cada extensão terá uma sessão no ficheiro, nessa seção poderão ser
definidos os parâmetros específicos de cada extensão. Os parâmetros mais utilizados na
sessão general do sip.conf estão informados na tabela abaixo (os parâmetros que não
forem definidos receberão o seu valor padrão).

Parâmetro Descrição Padrão


allow=<codec> Habilita um codec, usado abaixo do -
“disallow”.
disallow=all Desabilita todos os codecs, liberar cada -
codec com o parâmetro “allow”.

allowguest=yes/no Permite ou rejeita chamadas de Yes


“guests”, peers não configurados.

bindaddr=<IP> IP que o Asterisk ira escutar requisições 0.0.0.0


SIP. (todas as
interfaces)

bindport=<porta> Porta que o Asterisk irá escutar 5060


requisições SIP.

callerid=<texto> Informação do número de origem asterisk


quando nada vier especificado.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 139

[ 139 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
canreinvite=yes/no/nonat/updat Definição referente ao fluxo de média yes(direto)
e entre dois clientes SIP (direto entre eles
ou pelo Asterisk.

compactheaders=yes/no Define se o Asterisk deve enviar as no


mensagens SIP em modo abreviado
(compacto).

contexto=<nome contexto> Define o contexto padrão quando esse -


parâmetro não for especificado na
extensão.

domain=<domínios> Lista de domínios que o Asterisk é -


responsável.

dtmfmode=inband/info/rfc2833 Configura qual o modo de DTMF que rfc2833


será interpretado

externip=<ip>/<hostname> Endereço que será colocado nas -


mensagens SIP quando atrás de NAT.
Usando quando conectando a hosts
externos.

Localnet=<ip>/<máscara> Informação que indica as redes da rede -


interna. Importante configurar quando
estiver atrás de NAT.

fromdomain=<domínio> Seta o valor que será colocado no -


campo FROM em mensagens SIP.
Usando quando conectando a hosts
externos.

nat=yes/no Indica se o servidor está atrás de NAT. no


Usando quando conectando a hosts
externos.

qualify=yes/no/tempo(ms) Verifica se o cliente está acessível. no


Semelhante a pings enviados a cada 60
segundos.

srvlookup=yes/no Executa consultas em DNS SRV. yes

tos=<valor> Seta valores de QoS. -

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 140

[ 140 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Alguns desses parâmetros podem ser usados também nas configurações de cada peer,
assim como existem alguns específicos para configurações dos clientes que não se aplicam
na seção [gerenal] do sip.conf, os mais comuns são:

Parâmetro Descrição Padrão


accountcode=<texto> Seta o valor accountcode para ser -
usado no CDR.
call-limit=<numero> Configura o número de chamadas -
simultâneas que o peer poderá
efetuar.

callgroup=<numero> Define o grupo de chamadas ao qual -


pertence a extensão.

pickupgroup=<numero> Define o grupo de captura ao qual -


pertence a extensão.

host=dynamic/<hostname>/<ip> Define qual o endereço ou hostname dynamic


será aceito para essa extensão se
registrar.

secret=<palavra_passe> Palavra passe que será configurada no -


dispositivo IP para registrar na conta.

type=user/peer/friend Configura se a extensão poderá -


somente fazer (user), somente
receber (peer) ou fazer e receber
(friend) chamadas.

username=<username> Utilizador configurado no dispositivo -


IP.

Criar as extensões SIP. Edite o ficheiro /etc/asterisk/sip.conf e adicione as linhas a seguir:

[root@pbxip asterisk]# vim sip.conf

[general]
context=default
allowoverlap=no
udpbindaddr=0.0.0.0
bindport=5060
bindaddr=0.0.0.0
tcpenable=no
tcpbindaddr=0.0.0.0
srvlookup=yes
maxexpiry=600

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 141

[ 141 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
defaultexpiry=300
disallow=all
allow=gsm
allow=ulaw
allow=alaw
language=pt
dtmfmode=rfc2833

;---------------OUTBOUND SIP REGISTRATIONS ------------------------


; Asterisk can register as a SIP user agent to a SIP proxy (provider)
; Format for the register statement is:
;register=>[peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension
][~e;xpiry]
;
;
register=>user_sapo:password_sapo@sapo.pt:5060/contexto_sapo
;
;---------------SIP DOMAIN SUPPORT---------------------------------
;
; domain=sip.seu_dominio.pt
; domain=seu_ip_publico “208.67.222.222“
; domain=seu_ip_local “192.168.0.254“
;
;---------------AUTENTICATION--------------------------------------
;

[authentication]

[basic-options](!) ; a template
dtmfmode=rfc2833
context=from-office
type=friend

[natted-phone](!,basic-options) ; another template inheriting basic-options


nat=yes
directmedia=no
host=dynamic

[public-phone](!,basic-options) ; another template inheriting basic-options


nat=no
directmedia=yes

[my-codecs](!) ; a template for my preferred codecs


disallow=all
allow=alaw
allow=ulaw
allow=gsm

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 142

[ 142 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
allow=ilbc
allow=g729
allow=g723

[ulaw-phone](!) ; and another one for ulaw-only


disallow=all
allow=ulaw

[grupoexterno](!)
type=friend
qualify=yes
nat=yes
host=dynamic
disallow=all
allow=gsm
allow=ulaw
allow=alaw
context=externo
canreinvite=no
musicclass=moh
qualify=1000
dtmfmode=rfc2833
language=pt
call-limit=1

[grupointerno](!)
type=friend
qualify=yes
nat=yes
host=dynamic
disallow=all
allow=gsm
allow=ulaw
allow=alaw
context=interno
canreinvite=no
musicclass=moh
qualify=1000
dtmfmode=rfc2833
language=pt
call-limit=1

[pap2](!)
type=friend
qualify=yes
nat=yes
host=dynamic

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 143

[ 143 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
disallow=all
allow=gsm
allow=ulaw
allow=alaw
context=externo
canreinvite=no
musicclass=moh
qualify=1000
dtmfmode=rfc2833
language=pt
call-limit=1

;[contexto_sapo]
;username=user_sapo
;type=peer
;secret=senha_sapo
;reinvite=no
;canreinvite=no
;qualify=yes
;port=5060
;nat=yes
;insecure=very
;host=sapo.pt
;fromuser=user_sapo
;fromdomain=sapo.pt
;externrefresh=15
;dtmfmode=rfc2833
;context=externo
;disallow=all
;allow=gsm
;allow=ulaw
;allow=alaw
;insecure=port,invite

[2000](grupoexterno)
username=2000
callerid=2000 <Delphini>
secret=12345678
mailbox=2000
callgroup=1
pickupgroup=1,2,3

[2001](grupoexterno)
username=2001
callerid=2001 <Dell>
secret=12345678

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 144

[ 144 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
mailbox=2001
callgroup=2
pickupgroup=2

[2002](grupoexterno)
username=2002
callerid=2002 <Angelo>
secret=12345678
mailbox=2002
callgroup=3
pickupgroup=3
;
;--------------------------------------------------------------------

[root@pbxip asterisk]# rasterisk -x "reload"

[root@pbxip asterisk]# rasterisk -x "sip show users"


Username Secret Accountcode Def.Context ACL NAT
2002 $tr31n4m3nt0$ externo No Always
2001 $tr31n4m3nt0$ externo No Always
2000 $tr31n4m3nt0$ externo No Always
[root@pbxip asterisk]#

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 145

[ 145 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Configure a extensão 2000 (SIP) no aparelho IP que lhe foi presenteado pela formação
Asterisk.

Configure a extensão 2001 (SIP) no softphone 3CX para isto siga os passos abaixo:

Faça o download do softphone, para instalar e utilizar no seu servidor IP PBX.


http://www.3cx.com/downloads/3CXPhone6.msi

Inicie a instalação do 3CXPhone, nesta tela clique no botão “Next >”.

Figura Hands On Dez 10.01: Bem-vindos do 3CXPhone.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 146

[ 146 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Vamos aceitar a licença e clicar no botão “Next >”.

Figura Hands On Dez 10.02: Licença de uso do 3CXPhone.

Vamos aceitar o caminho padrão da instalação clicando no botão “Next >”.

Figura Hands On Dez 10.03: Pasta onde será instalado o 3CXPhone.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 147

[ 147 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Finalmente a janela de instalação vamos fazer instalação no botão “Install”

Figura Hands On Dez 10.04: Iniciar a cópia dos ficheiros Pasta onde será instalado o
3CXPhone.

Progresso da instalação, sem ação para o utilizador.

Figura Hands On Dez 10.05: Progresso da instalação do 3CXPhone.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 148

[ 148 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
É a janela de finalização da instalação do 3CXPhone, clique no botão “Finish”.

Figura Hands On Dez 10.06: Finalização da instalação do 3CXPhone.

Quando executar o 3CXPhone pela primeira vez ele irá abrir automaticamente a tela de
configuração da extensão telefónica. Configure igual a “Figura 7.13”, logo abaixo, lembre-
se que colocamos a palavra-chave “12345678”, e clique no botão “OK”.

Figura Hands On Dez 10.07: Configurando extensão no 3CXPhone.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 149

[ 149 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Nesta imagem vimos o nosso softphone conectado “On Hook”.

Figura Hands On Dez 10.08: 3CXPhone ativo e conectado.

Observe que logo abaixo do menu de ícones do softphone 3CXPhone tem um botão, tal
qual o Apple iPhone, click nele para irmos as preferências do mesmo, então teremos a
imagem abaixo, a da “Figura 7.15”.

Figura Hands On Dez 10.09: 3CXPhone menu pessoal.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 150

[ 150 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Agora iremos clicar no botão (ícone) “Preferences”.

Figura Hands On Dez 10.10: Botão (ícone) Preferences.

Em preferences iremos clicar no botão “Download others”.

Figura Hands On Dez 10.11: Botão Download others.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 151

[ 151 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Iremos selecionar o idioma “Portuguese (Portuguese translation)”, e clicar no botão
“Install”.

Figura Hands On Dez 10.12: Language updates.

Janela com a informação que a instalação foi bem-sucedida, clique no botão “OK”.

Figura Hands On Dez 10.13: Instalação realizada com sucesso.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 152

[ 152 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Observe que no campo “Language:” já esta “Portuguese (3CXLi...”, agora clique no botão
“OK”.

Figura Hands On Dez 10.14: Ativando novos recursos no 3CXPhone.

Finalmente no softphone já em Português.

Figura Hands On Dez 10.15: 3CXPhone traduzido para nosso idioma.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 153

[ 153 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Execute testes e funcionalidades.

[root@pbxip /]# rasterisk -x "reload"


[root@pbxip /]# rasterisk -x "sip show peers"
Name/username Host Dyn Nat ACL Port Status
2000/2000 192.168.1.78 D N 2607 OK (101 ms)
2001/2001 192.168.1.99 D N 25854 OK (101 ms)
2002/2002 (Unspecified) D N 5060 UNKNOWN
3 sip peers [Monitored: 2 online, 1 offline Unmonitored: 0 online, 0 offline]
[root@pbxip /]#

Agora vamos instalar o softphone X-Lite 3 e configurar a extensão “2002”, ao executar o


instalador na tela de boas vindas clique no botão “Next >”.

Figura Hands On Dez 10.16: Boas vindas a instalação do X-Lite.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 154

[ 154 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Iremos aceitar a licença e clicar no botão “Next >”.

Figura Hands On Dez 10.17: Licença de uso do X-Lite.

Iremos aceitar o caminho padrão da instalação, clique em “Next >”.

Figura Hands On Dez 10.18: Pasta padrão para instalação do X-Lite.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 155

[ 155 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Iremos deixar esta janela com o padrão da instalação clique no botão “Next >”.

Figura Hands On Dez 10.19: Configuração padrão para instalação do X-Lite.

Progresso da instalação.

Figura Hands On Dez 10.20: Progresso da instalação do X-Lite.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 156

[ 156 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Este aplicativo ainda é para Windows 98 SE, por isto selecione “No, I will restart the
computer later” e clique no botão “Finish”.

Figura Hands On Dez 10.21: Final da instalação do X-Lite.

Quando executado pela primeira vez o softphone ira abrir a configuração da extensão,
clique no botão “Add...”

Figura Hands On Dez 10.22: Final da instalação do X-Lite.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 157

[ 157 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Proceda a configuração como o da imagem abaixo, e clique no botão “Aplicar” e depois no
botão “OK”.

Figura Hands On Dez 10.23: Configurar extensão no X-Lite.

Pronto esta configurar a nossa extensão “2002”, clique no botão “Close”.

Figura Hands On Dez 10.24: Extensão já configurada no X-Lite.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 158

[ 158 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Agora o X-Lite está conectado.

Figura Hands On Dez 10.25: Extensão conectada através do no X-Lite.

Execute testes e funcionalidades.

[root@pbxip /]# rasterisk -x "reload"


[root@pbxip /]# rasterisk -x "sip show peers"
Name/username Host Dyn Nat ACL Port Status
2000/2000 192.168.1.78 D N 2607 OK (101 ms)
2001/2001 192.168.1.99 D N 25854 OK (101 ms)
2002/2002 192.168.1.99 D N 21825 OK (101 ms)
3 sip peers [Monitored: 3 online, 0 offline Unmonitored: 0 online, 0 offline]
[root@pbxip /]#

Nota: O parâmetro contexto nas configurações de cada extensão indica a qual contexto no
plano de marcação pertence esta extensão e não qual contexto deverá ser usado para
chamá-lo.

Após configurar e salvar o ficheiro, a cesse a consola do Asterisk (lembrete: rasterisk -


vvvvgci) e digite o comando *CLI> sip reload para atualizar as configurações
carregadas no sistema.

Para configurar dispositivos IP você deverá colocar no parâmetro proxy o endereço IP de


seu servidor. Em Username (Secret ou Password, dependendo da sua configuração)
configure com os valores que estiverem nos parâmetros homônimos configurados no
sip.conf. É possível utilizar softphones como o X-Lite ou o Zoiper que são livres e facilmente
configuráveis para efetuar testes.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 159

[ 159 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

Configurar Extensões Telefonicas com o IAX.CONF

Mão à Obra – Hands On Onze


Descrição: primeiras configurações em nosso Servidor Asterisk.
Objetivo: Criar utilizadores IAX.
Tempo Máximo: 15 minutos.
Instruções: Como já sabemos a função do protocolo IAX é interligar servidores Asterisk.
Extensões IAX podem ser configuradas apesar da pouca oferta de dispositivos que
trabalhem com esse protocolo. Os parâmetros de configuração das extensões IAX são bem
semelhantes aos presentes no sip.conf. Uma das vantagens do protocolo IAX em relação
ao SIP é o jitter buffer mais maduro.

Para configurá-lo existem alguns parâmetros que devem ser adicionados no ficheiro
iax.conf:

Parâmetro Descrição Padrão


jitterbuffer=yes/no Define se será usado ou no
não o Jitter Buffer.

forcejitterbuffer=yes/no Força o Jitter Buffer pelo no


Asterisk inclusive em
canais estabelecidos.

maxjitterbuffer=<numero> Tamanho máximo do -


buffer para impedir que ele
cresça demais quando
ocorrerem situações
extremas.

resyncthreshold=<numero> Faz uma ressincronizarão -


quando o jitter buffer
identifica uma alteração
significativa no atraso por
vários pacotes.
Maxjitterinterps=<numero> Usado quando os clientes -
não indicam que está
sendo enviado silêncio. Os
pacotes que forem
perdidos serão substituídos
por outros que foram
recebidos
susceptivelmente.

Outra grade vantagem do protocolo IAX é seu uso no modo trunk que traz grande
economia de banda quando estamos interligados servidores através dele. Para configurá-lo
podemos colocar os parâmetros na sessão [general].

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 160

[ 160 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Parâmetro Descrição Padrão
trunkfreq=<numero> Frequência em 20
milissegundos que serão
enviadas mensagens de
trunk.

trunktimestamps=yes/no Envia os timestamps de yes


cada frame. Ambas as
pontas devem suportar
essa função para poder
funcionar.

Deve ser adicionado o parâmetro trunk=yes em cada um dos peers que serão trunks. Caso
esse parâmetro não for septado ou for septado com o valor no, o entroncamento
funcionará igual a um entroncamento SIP, ou seja, não fará proveito desse recurso. Em
extensões IAX esse parâmetro não faz sentido.

Criar as extensões IAX. Edite o ficheiro /etc/asterisk/iax.conf e adicione as linhas a seguir:

[root@pbxip /]# vim /etc/asterisk/iax.conf

[general]
bindport=4569
bindaddr=0.0.0.0
disal ow=lpc10
disal ow=all
allow=gsm ; Always al ow GSM its cool
language=pt
jitterbuffer=no
forcejitterbuffer=no
maxjitterbuffer=500
maxexcessjitterbuffer=100
autokil =yes

[grupoexterno](!)
type=friend
context=externo
host=dynamic
allow=all

[grupointerno](!)
type=friend
context=interno
host=dynamic
allow=all

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 161

[ 161 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
[2003](grupoexterno)
username=2003
secret=12345678
callerid=2003 <2003>
mailbox=2003
qualify=yes

[2004](grupoexterno)
username=2004
secret=12345678
callerid=2004 <2004>
mailbox=2004
qualify=yes

[root@pbxip /]# rasterisk -x "reload"


[root@pbxip /]# rasterisk -x "iax2 show users"
Username Secret Authen Def.Context A/C Codec Pref
2004 12345678 000000000000003 externo No Host
2003 12345678 000000000000003 externo No Host
[root@pbxip /]#

Configure a extensão 2003 (IAX) no softphone Zoiper. Para isto siga os passos abaixo:
Fazer o download do softphone, para instalar e utilizar no seu servidor IP PBX.
http://www.zoiper.com/download_list.php

Passos da instalação:
Execute o Zoiper Communicator Setup application

Figura Hands On Onze 11.01: Executando a instalação do Zoiper Lite

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 162

[ 162 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Siga o Setup Wizard

Figura Hands On Onze 11.02: Executando a instalação do Zoiper Lite

Inicie o Zoiper Communicator

Figura Hands On Onze 11.03: Executando o Zoiper Lite

Depois que o Zoiper estiver iniciado:

Figura Hands On Onze 11.04: Sistray do Zoiper Lite

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 163

[ 163 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Vamos configurar o nosso utilizador IAX2003. Depois de instalado vamos no menu Zoiper
e escolhemos Preferences, Create New IAX account e criamos um nome para a conta.

Figura Hands On Onze 11.05: Nova conta no Zoiper

Na guia IAX2003 que acabamos de criar inserimos os dados da conta que foi definida no
ficheiro iax.conf.

Figura Hands On Onze 11.06: Preferences da conta no Zoiper

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 164

[ 164 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Se tudo está correto, na aba da conta aparecerá: IAX2003 (Registrado) (IAX). Agora
podemos fazer chamadas internas e externas. Ainda que não existam muitos provedores
VoIP que trabalham com IAX, esse é um protocolo mais voltado para interligação de
servidores Asterisk. Execute testes e funcionalidades.

Assim como para configurações no sip.conf, após qualquer alteração no ficheiro iax.conf
deve ser executado o comando *CLI> iax2 reload na linha de comando.

Provavelmente o softphone mais utilizado para extensões IAX seja o Zoiper. Ele é um dos
únicos disponíveis no mercado que trabalham com esse protocolo e é facilmente
configurado.

O Dial Plan
O Asterisk se diferencia dos demais PBXs IP existentes no mercado principalmente devido à
sua flexibilidade. É possível configurá-lo ao gosto do cliente, limitado somente à
criatividade de quem adota a solução.

Um dos principais fatores que permite tal poder de customização é a forma sob a qual o
plano de marcação do Asterisk é descrito e que como ele faz a gestão de seus aplicativos.
Estes, por sua vez, são desenvolvidos para permitirem que seu uso não seja muito restrito.
No entanto, nem sempre é possível e por vezes o recurso fica atrelado a um funcionamento
predeterminado, mas em muitas outras é possível fazer o que se deseja combinando um
conjunto de aplicativos e variáveis no próprio plano de marcação ou ainda utilizando AGIs
(scripts que podem ser desenvolvidos em várias linguagens de programação e estender
ainda mais a gama de recursos oferecidos).

A Sintaxe
A sintaxe
O plano de marcação é, por padrão, escrito em detalhes no ficheiro extensions.conf e sua
estrutura é dividida em sessões chamadas contextos. Os contextos são definidos entre
parentes retos e contêm os padrões de marcação aos quais cada extensão terá acesso
dentro do plano de marcação, ou seja, permite dar permissões a determinadas rotas ou
aplicativos através do reconhecimento dos dígitos que foram informados.

As regras de marcação, conhecidas como extens ou extensões, seguem a seguinte sintaxe:

exten => <padrão>,<prioridade>,<aplicativo>

Onde <padrão> é o conjunto de dígitos que serão reconhecidos por aquela extensão,
<prioridade> é o número da sequência dos aplicativos que serão executados e
<aplicativo> é o aplicativo que será executado naquele momento. Por exemplo:

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 165

[ 165 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
[teste]
exten => _600,1,Answer()
exten => _600,2,Playback(hello-world)
exten => _600,3,HangUp()

No exemplo anterior é definido o contexto teste que reconhece o padrão _600 somente.
Quando um utilizador que tiver acesso a esse contexto marcar _600 a chamada será
inicialmente atendido pelo aplicativo Answer(), depois será encaminhada para a prioridade
2 onde é executado o áudio hello-word pelo aplicativo Playback() e por último na prioridade
3 a chamada é desligada pelo aplicativo HangUp().

Para cada novo padrão reconhecido deve-se ter a prioridade 1. Veja:

[teste]
exten => _600,1,Answer()
exten => _600,2,Playback(hello-world)
exten => _600,3,HangUp()

exten => _2XXX,1,Answer()


exten => _2XXX,2,Dial(SIP/${EXTEN},60,wWrtT)
exten => _2XXX,3,NoOp(${DIALSTATUS})
exten => _2XXX,4,HangUp()

Existem diversos aplicativos para serem executados no plano de marcação. Vejamos a


relação de alguns, os quais são os mais utilizados na tabela 01 abaixo:

Aplicação Descrição
Dial(tech/numero,timeout,opções) Executa uma marcação. Onde “tech” é o
tipo do canal que será usado (SIP, IAX2,
DAHDI, etc); “timeout” é o tempo que a
aplicação ficará chamando o destino antes
de considerar como não atendida; e
“opções” são parâmetros adicionados à
aplicação.

Playback(áudio) Toca um ficheiro do tipo áudio.

Background(áudio) Toca um ficheiro do tipo áudio e permite


que sejam recebidos marcações durante sua
execução.

WaitExten(timeout) Espera que sejam recebidos dígitos


marcados pelo utilizador.

Goto([[contexto,]extensão,]prioridade) “Salta” dentro do plano de marcação para


uma prioridade em uma extensão em um
contexto.

GotoIf(condição?verdadeiro:[falso]) Vai para o ponto indicado em “verdadeiro”

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 166

[ 166 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
se a condição assim for ou vai para “falso”
se estiver definido, caso “falso” for vazio
pula para a próxima prioridade.

GotoIfTime(condição do Se estiver dentro das condições de tempo


tempo?[[contexto,]extensão,]prioridade) vai para o ponto especificado no plano de
marcação

Authenticate(senha[,opções[,dígitos]]) Autentica um utilizador de acordo com os


Authenticate(ficheiros de palavras parâmetros passados.
passe[,opções[,dígitos]])
Authenticate(astdb,d[opções[,digitos]])
System(comando) Executa um comando na Shell do
GNU/Linux.

Answer() Atende uma chamada.

Busy() Indica canal ocupado.

HangUp() Desliga um canal

NoOp(texto) Imprime o texto na consola se estiver com o


verbose ativado. Ajuda para fins de
depuração.

Set(variável=valor) Seta valores a variáveis de canal (ou


ambiente).

SayDigits(números) Informa os dígitos dos números.

SayNumber(número) Informa o número completo.

ChanSpy([canal],[opções]) Espiona um canal ativo.

Monitor(ficheiro,opções) Gravação de chamadas.

Record(ficheiro,opções) Grava um ficheiro de áudio.

MeetMe(conferência,opções) Entre em uma sala de conferência.

VoiceMail(caixa postal[,opções]) Encaminha a chamada para a caixa postal


configurada.

VoiceMailMain(caixa postal) Entra na administração da caixa postal.

Queue(fila,opções) Envia a chamada para a fila de


atendimento.

AgentLogin(agente,opções) Faz login de um agente na fila de


atendimento.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 167

[ 167 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

(Un)PauseQueueMemeber(agente) Coloca/Tira de pausa um agente.

Existem diversas outras aplicações disponíveis, para ver quais são, qual a sua sintaxe e
utilização consulte na consola do Asterisk através do comando “core show applications”
para ter uma listagem completa e uma descrição abreviada de cada uma. Para maiores
detalhes digitem o comando “core show applcation <aplicativo>”.

Criando o Dial Plan EXTENSIONS.CONF

Mão à Obra – Hands On Donze


Descrição: fazer a configuração do nosso plano demarcação.
Objetivo: implemetar o plano de marcação para comunicação entre as extensões.
Tempo Máximo: 15 minutos.
Instruções: vamos iniciar a configuração de nosso plano de marcação. Para isso faça como
anteriormente o procedimetno de backup e proceda instruções abaixo:

Criar a estrutura de nosso PBX IP.

[root@pbxip /]# cd /etc/asterisk/


[root@pbxip /]# mkdir pbxip
[root@pbxip /]# > general.conf
[root@pbxip /]# > globals.conf
[root@pbxip /]# > recursos.conf

Edite o ficheiro /etc/asterisk/pbxip/general.conf e adicione as linhas a seguir:

[root@pbxip /]# vim /etc/asterisk/pbxip/general.conf

;--------------------------------------------------
; “general.conf” do Dial Plan do PBX IP Asterisk
;
[general]
static=yes
writeprotect=no
priorityjumping=no
autofallthrough=yes
clearglobalvars=no
;
;---------------------------------------------------

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 168

[ 168 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Edite o ficheiro /etc/asterisk/pbxip/globals.conf e adicione as linhas a seguir:

[root@pbxip /]# vim /etc/asterisk/pbxip/globals.conf

;--------------------------------------------------
; “globals.conf” do Dial Plan do PBX IP Asterisk
;
[globals]
CONSOLE=Console/dsp ; Interface do console para demonstracao
IAXINFO=guest ; IAXtel nome de usuario e senha
TRUNKMSD=1 ; Digitos MSD para descascar(normalmente 1 ou 0)
FIXO=/DAHDI/G1
MOVEL=/DAHDI/g2
ACH1=SIP/2000
ACH2=SIP/2001&SIP/2002
ACH3=SIP/2003&SIP/2004
ACH4=SIP/2000&SIP/2001&SIP/2002&SIP/2003&SIP/2004
;
;---------------------------------------------------

Edite o ficheiro /etc/asterisk/extensions.conf e adicione as linhas a seguir:

[root@pbxip /]# vim /etc/asterisk/extensions.conf

;--------------------------------------------------
; "extensions.conf" Dial Plan do PBX IP Asterisk;
;--------------------------------------------------
; Includes do Dial Plan do Asterisk
;
#include pabx/general.conf
#include pabx/globals.conf
#include pabx/recursos.conf
;---------------------------------------------------
; Configurações das extensões
;
[interno]
Include = local

[externo]
include = local
include = nacional
include = internacional

[local]
;Faz chamadas entre as extensoes.
exten => _20XX,1,Dial(SIP/${EXTEN},15,rTt)
exten => _20XX,n,GotoIf($["${LIMIT}"="1"]?busy)

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 169

[ 169 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
exten => _20XX,n(busy),Congestion(3000)
exten => _20XX,n,HangUp()

[nacional]

[internacional]
;
;---------------------------------------------------

Edite o ficheiro /etc/asterisk/pbxip/recursos.conf

;--------------------------------------------------
; "recursos.conf" do Dial Plan do PBX IP Asterisk;
;--------------------------------------------------
; Recursos do PBX IP Asterisk
;
[recursos]
;Hello World
exten => _600,1,Answer()
exten => _600,2,Playback(hello-world)
exten => _600,3,Hangup()

;Teste de Echo ativado.


exten => _601,1,Answer()
exten => _601,2,Playback(demo-echotest)
exten => _601,3,Echo()
exten => _601,4,Playback(demo-echodone)
exten => _601,5,Hangup()
;
;---------------------------------------------------

[root@pbxip /]# rasterisk -x "reload"


[root@pbxip /]#

Execute testes e funcionalidades.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 170

[ 170 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

Entendendo Melhor o Dial Plan EXTENSIONS.CONF


O plano de marcação (dialplan) é verdadeiramente o coração de qualquer sistema Asterisk,
já que define como o Asterisk manipula as chamadas que são recebidas e originadas. Em
resumo, o plano de marcação (dialplan) consiste de uma lista de instruções ou passos que
o Asterisk irá seguir. Estes passos são totalmente personalizáveis.

Sintaxe do Plano de Marcação (dialpan)

O plano de marcação do Asterisk é especificado no ficheiro de configuração chamado de


/etc/asterisk/extensions.conf. O plano de marcação é composto de quatro partes principais:
 Contextos;
 Extensões;
 Prioridades;
 Aplicações.

Contextos

O plano de marcação é dividido em seções chamadas de contexto, tais contextos evitam


que partes diferentes do plano de marcação interajam umas com as outras. Assim, uma
extensão (as funções de um grupo) definida em um contexto é completamente isolada das
extensões de outro contexto, a não ser que a interação seja especificamente permitida.

Os contextos são denotados pela colocação do nome de contexto dentro de parentes retos
[], por exemplo, [interno]. Todas as instruções colocadas depois da definição de um
contexto fazem parte do contexto até que seja definido outro contexto.

Um dos mais importantes usos de contextos é garantir a segurança. Pelo uso correto dos
contextos, é possível permitir a determinadas pessoas acesso a algumas funções que não
serão disponibilizadas a outras.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 171

[ 171 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Extensões

Uma extensão é uma instrução que o Asterisk irá seguir e é incluída dentro de cada
contexto. A extensão é acionada por uma chamada de entrada ou por dígitos sendo
marcados em um canal. Então as extensões especificam o que acontece às chamadas
enquanto seguem seu caminho pelo plano de marcação.

A sintaxe para uma extensão é a palavra “exten” seguida por uma seta formada pelo sinal
de igual e de maior que (exten =>).

Uma extensão completa é formada pelos seguintes componentes:


 O nome (ou número) da extensão;
 A prioridade, na qual cada extensão pode incluir vários passos a ser executado na chamada;
 Aplicação (ou comando) que executa alguma ação na chamada.

Esses três componentes são separados por vírgulas, da seguinte forma:


exten => nome,prioridade,aplicação()

Um simples exemplo:
exten => 123,1,Answer()

Neste exemplo, o nome da extensão é 123, a prioridade é 1 e a aplicação é Answer().

O nome da extensão. Quando lidamos com sistemas telefônicos, temos a tendência de usar
números que devemos digitar para fazer outro telefone tocar, mas no Asterisk é possível
fazer muito mais, tal como colocar nomes.

Prioridades

Cada extensão pode ter vários passos, chamados de prioridades. Cada prioridade é
numerada sequencialmente e cada prioridade executa uma aplicação específica. Por
exemplo, a seguinte extensão pode responder a uma chamada (na prioridade 1) e então
desligar (na prioridade 2):

exten => 123,1,Answer()


exten => 123,2,Hangup()

Atenções as prioridades devem iniciar em 1 e são numeradas consecutivamente. Caso uma


prioridade fique fora de ordem numérica o Asterisk não continua depois dela.

As versões mais recentes do Asterisk, a partir da 1.2, é possível usar um truque para
enumerar as prioridades, como por exemplo usar o “n” que indica a próxima, ou seja, cada
vez que o Asterisk achar um “n” ele pega o número da prioridade anterior e acrescenta
mais 1. Por exemplo:

exten => 123,1,Answer()


exten => 123,n,faça alguma coisa

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 172

[ 172 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
exten => 123,n,faça outra coisa
exten => 123,n,Hangup()

É possível ainda acrescentar textos as prioridades, por exemplo:

exten => 123,n(texto),faça algo.

Aplicações

As aplicações são os cavalos de batalha do plano de marcação. Cada aplicação executa


uma ação específica no canal em questão, tal como emitir um som, aceitar uma entrada
toque, tom ou desligar a chamada. Algumas aplicações precisam de argumentos a serem
passados juntos com as aplicações para determinar como devem executar suas ações. Para
passar argumentos às aplicações, coloque-os entre os parênteses curvos que se seguem ao
nome da aplicação, separados por vírgulas.
Um simples exemplo de plano de marcação

Vamos criar um plano de marcação simples para entender como este funciona. Em nosso
exemplo iremos criar um plano de marcação para que quando a chamada chegar, o
Asterisk irá responder à chamada, tocar um ficheiro de áudio e então desligar a chamada.
Antes de iniciar o plano de marcação, nós devemos explicar sobre uma extensão especial
chamada de extensão “s”, quando as chamadas entram num contexto sem uma extensão
específica de destino (por exemplo, uma linha FXO chamado), elas são automaticamente
manipuladas pela extensão “s”. O “s” indica início (start).

Nosso plano de marcação irá iniciar com a extensão “s” e executaremos três ações:
responder, tocar um ficheiro de áudio e desligar:

[entrada]
exten => s,1,Answer()
exten => s,2,Playback(hello-world)
exten => s,3,Hangup()

A aplicação Answer() É utilizada para responder a um canal que está chamando, isso
faz a configuração inicial do canal que recebe a chamada que está entrando, Answer() não
tem argumentos.

A aplicação Playback() é utilizada para tocar um ficheiro de áudio previamente


gravado sobre um canal. Ao utilizar a aplicação Playback() a entrada do utilizador é
simplesmente ignorada. Para utilizar o Playback(), especifique um nome de ficheiro
sem extensão como argumento, por exemplo, Playback(musica) que fará tocar
musica.gsm. O Asterisk vem com muitos ficheiros de áudio profissionalmente gravados,
que podem ser encontrados na pasta de áudio que usualmente é
/var/lib/asterisk/sounds.

A aplicação Hangup() desliga o canal ativo e quem está chamando recebe uma indicação
que a chamada foi desligada, deve-se utilizar essa aplicação ao final do contexto quando

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 173

[ 173 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
quiser terminar a atual ligação para assegurar que o plano de marcação não continuará
sendo utilizado. Essa aplicação não tem argumento.

O plano de marcação até agora não tem muita utilidade é mais para entender a teoria e
testes, caso os canais estejam configurados é possível testá-lo. Vamos tornar o plano de
marcação mais dinâmico.

Aplicações Background() e Goto()

Uma chave importante para montar sistemas Asterisk interativos é aplicação


Background(), que funciona da mesma forma que a Playback(), mas na Background()
quando o chamador pressionar uma tecla, ou uma série de teclas, em seu telefone, ela
interrompe a música (ou um som qualquer, exemplo um menu de voz) e vai para a
extensão que corresponder ao(s) dígito(s) pressionado(s) . Se o chamador pressiona o 5,
por exemplo, o Asterisk irá para de tocar o arquivo de som e enviar o controle da chamada
para a primeira prioridade de extensão 5.

exten =>123,1,Background(hello-world)

O uso mais comum da aplicação Background() é criar menus de vozes ,


frequentemente chamados de Auto tendentes). Muitas empresas criam menus de vozes
para dirigir as chamadas para as extensões adequadas, aliviando, assim suas operadoras a
cada chamada.

Outra aplicação útil é Goto(), que é usada para enviar a chamada para outro
contexto, extensão e prioridade. A aplicação Goto() torna fácil se mover
programaticamente uma chamada entre duas partes diferentes do plano de
marcação. A sintaxe para a aplicação Goto() nos pede que passemos os argumentos do
contexto, da extensão e da prioridade para a aplicação, da seguinte forma:

exten => 123,1,Goto(contexto,extensão,prioridade)

Neste próximo exemplo, iremos tocar o ficheiro de amostra de áudio chamado de vm-
enter-num-to-call.gsm. E depois adicionar duas extensões que serão acionadas pelo
chamador ao inserir 1 ou 2 no telefone.

[entrada]
exten => s,1,Answer()
exten => s,2,Background(vm-enter-num-to-call)
exten => 1,1,Playback(digits/1)
exten => 1,2,Goto(incoming,s,1)
exten => 2,1,Playback(digits/2)
exten => 2,2,Goto(incoming,s,1)

Então quando os utilizadores chamam nosso plano de marcação, eles vão ouvir uma
saudação, e devem inserir um dígito, se eles pressionarem 1, irão ouvir o número 1 e, se
pressionarem o número 2, irão ouvir o número 2. E o Goto() irá fazer tudo ser repetido.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 174

[ 174 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

Manipulando entradas inválidas e tempos decorridos

Bem com os exemplos anteriores temos um menu de voz, mas é preciso controlar algumas
anomalias, a primeira é a entrada inválida de um utilizador, tal função é feita pela extensão
“i”.

Outra situação é quando o utilizador não digita uma entrada a tempo (o tempo provisório é
de 10 segundos), estas chamadas devem ser tratadas pela extensão “ t” se o chamador
demorar a

Pressionar um digito depois que Background() tiver terminado de tocar o arquivo de som.

[entrada]
exten => s,1,Answer()
exten => s,2,Background(vm-enter-num-to-call)
exten => 1,1,Playback(digits/1)
exten => 1,2,Goto(incoming,s,1)
exten => 2,1,Playback(digits/2)
exten => 2,2,Goto(incoming,s,1)
exten => i,1,Playback(pbx-invalid)
exten => i,2,Goto(incoming,s,1)
exten => t,1,Playback(vm-goodbye)
exten => t,2,Hangup()

Uso da aplicação Dial()

Uma das mais importantes características do Asterisk é sua habilidade para conectar
diferentes chamadores, uns com os outros. Isso é especialmente útil se os chamadores
aplicarem diferentes métodos de comunicação (SIP, H.323, PSTN, etc).

A sintaxe da aplicação Dial() é um pouco mais complexa que as das outras aplicações, já
que utiliza 4 argumentos.

O primeiro argumento é o destino que está tentando chamar, que é feito de uma
tecnologia por meio do qual será feita a chamada, uma barra normal e o recurso remoto
(normalmente um nome ou número de canal). Exemplo:

exten => 123,1,Dial(DAHDI/1)

Neste exemplo assumimos que queremos chamar um canal DAHDI chamando DAHDI/1,
que é um canal FXS com um fone analógico conectado. A tecnologia é “DAHDI” e o recurso
é “1”, e o 123 indica que o Asterisk deve chamar o canal DAHDI/1 quando forem
digitados 123.

Também é possível chamar vários canais ao mesmo tempo:

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 175

[ 175 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
exten => 123,1,Dial(DAHDI/1&DAHDI/2&DAHDI/3)

A aplicação Dial() irá ligar a chamada a aquele que atender primeiro. O segundo
argumento da aplicação Dial() é o tempo decorrido, especificado em segundos. Se não for
especificado um tempo, o telefone irá continuar tocando até alguém atender ou que a
pessoa chamando desista.

exten => 123,1,Dial(DAHDI/1,10)

Se a chamada for atendida antes do tempo decorrido, os canais são ligados e o plano de
marcação será concluído. Se o destino simplesmente não responder, Dial() vai para a
próxima prioridade na extensão. Se, entretanto, o canal de destino estiver ocupado, Dial()
irá para a prioridade n+101 , se a prioridade existir (onde n é a prioridade onde a
aplicação Dial() foi chamada). Isso nos permite manipular chamadas não respondidas de
maneira diferente das chamadas cujos destinos estavam ocupados.

exten => 123,1,Dial(DAHDI/1,10)


exten => 123,2,Playback(vm-nobodavail)
exten => 123,3,Hangup()
exten => 123,102,Playback(tt-allbusy)
exten => 123,103,hangup()

O terceiro argumento de Dial() é uma sequência opcional, que pode conter um ou


mais caracteres que modificam o comportamento da aplicação Dial(), esta lista é muito
grande, então iremos ver apenas a letra “ r” que é a mais usada, esta opção indica que a
pessoa que fez a chamada irá ouvir um tom de chamada enquanto o canal de destino
estiver sendo notificado que está sendo chamado, mas nem sempre isto é necessário,
pois o Asterisk pode automaticamente fazer tal tom.

exten => 123,1,Dial(DAHDI/1,10,r)

Vamos fazer agora um plano de marcação que permita que falemos com John e Jane.

[entrada]
exten => s,1,Answer()
exten => s,2,Background(enter-ext-of-person)
exten => 101,1,Dial(DAHDI/1,10)
exten => 101,2,Playback(vm-nobodyavail)
exten => 101.3,Hangup()
exten => 101,102,Playback(tt-allbusy)
exten => 102,1,Dial(SIP/Jane,10)
exten => 102,2,Playback(vm-nobodyavail)
exten => 102,3,Hangup()
exten => 102,102,Playback(tt-allbusy)
exten => 102,103,Hangup()
exten => i,1,Playback(pbx-invalid)
exten => i,2,Goto(entrada,s,1)

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 176

[ 176 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
exten => t,1,Playback(vm-goodbye)
exten => t,2,Hangup()

O quarto e último argumento da aplicação Dial() é um URL, assim, se o canal de destino


tem a capacidade de receber um URL no momento da chamada, a URL especificada será
enviada, este argumento é raramente utilizado. Qualquer um desses argumento de Dial()
podem ser deixados em branco.

exten => 123,1,Dial(DAHDI/1,,r)

Contexto para tratar as chamadas internas

Bem depois de entender como funciona basicamente o plano de marcação iremos entender
como criar mais de um contexto e fazer estes interagirem, lembre que é essa uma das
funções do plano de marcação. Então vamos criar um contexto chamado (extensões)
internas e configurar a capacidade dessas duas extensões para ligar uma para a outra, este
novo contexto vai se chamar [interno]. Nós iremos deduzir que já esteja configurado um
canal FXS DAHDI (DAHDI/1) e um canal FXO (DAHDI/4) que utilizam o canal [entrada] e
um ou mais canal SIP (SIP/jane), que está configurado no contexto [interno].

Nosso plano de marcação vai ser da seguinte forma:

[entrada]
exten => s,1,Answer()
exten => s,2,Background(enter-ext-of-person)
exten => 101,1,Dial(DAHDI/1,10)
exten => 101,2,Playback(vm-nobodyavail)
exten => 101,3,Hangup()
exten => 101,102,Playback(tt-allbusy)
exten => 101,103,Hangup()
exten => 102,1,Dial(SIP/jane,10)
exten => 102,2,Playback(vm-nobodyavail)
exten => 102,3,Hangup()
exten => 102,102,Playback(tt-allbusy)
exten => 102,103,Hangup()
exten => i,1,Playback(pbx-invalid)
exten => i,2,Goto(entrada,s,1)
exten => t,1,Playback(vm-goodbye)
exten => t,2,Hangup()

[interno]
exten => 101,1,Dial(DAHDI/1,,r)
exten => 102,1,Dial(SIP/jane,,r)

Neste exemplo, foi adicionado duas novas extensões ao contexto [interno]. Dessa forma,
a pessoa que estiver utilizando o canal DAHDI/1 pode pegar o fone e chamar a pessoa que

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 177

[ 177 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
está no canal SIP/Jane digitando 102. Pela mesma razão, o telefone registrado como
SIP/Jane pode chamar DAHDI/1 digitando 101.

Até agora só foi usado três dígitos, mas é possível utilizar até 80 caracteres, ou seja,
também é possível usar letras, é claro que o terminal vai ter de suportar caracteres.

[interno]
exten => 101,1,Dial(DAHDI/1,,r)
exten => john,1,Dial(DAHDI/1,,r)
exten => 102,1,Dial(SIP/jane,,r)
exten => jane,1,Dial(SIP/jane,,r)
Uso de variáveis

As variáveis podem ser utilizadas em um plano de marcação do Asterisk para ajudar a


reduzir a digitação, melhorar a clareza ou acrescentar lógica ao plano de marcação. No
Asterisk existem duas formas de referenciar uma variável. Para referenciar o nome da
variável, é necessário digitar simplesmente o nome da variável, tal como JOHN. Se, por
outro lado for necessário a cessar o valor da variável, deve-se digitar um símbolo de dólar,
abrir uma chaveta, o nome da variável e fechar a chaveta. Exemplo ${JOHN}.

JOHN=DAHDI/1
exten => 555,1,Dial(${JOHN},,r)

Que é igual á:

exten => 555,1,Dial(DAHDI/1,,r)

Existem três tipos de variáveis no Asterisk: globais, de canal e de ambiente.

Variáveis globais: Se aplicam a todas as extensões em todos os contextos, assim, é


possível utilizar as variáveis globais em qualquer lugar do plano de marcação. As variáveis
globais podem ser declaradas no contexto [globals] no início do ficheiro extensions.conf.
Ou podem ser definidas programaticamente, usando-se a aplicação SetGlobalVar().

[globals]
JOHN=DAHDI/1
Ou
[interno]
exten => 123,1,SetGlobalVar(JOHN=DAHDI/1)

Variáveis de Canal: É uma variável que é somente associada a uma chamada em


particular, ou seja, são definidas somente na duração da chamada atual e estão disponíveis
somente para o canal que está participando dessa chamada.
As variáveis de canal são definidas por meio da aplicação Set()

exten => 123,1,Set(MAGICNUNBER=42)

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 178

[ 178 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Variáveis de Ambiente: são uma forma de acesso as variáveis do ambiente UNIX de
dentro do Asterisk. E são referenciadas na forma de ${ENV(variável)}, onde variável é o
nome da variável UNIX.

Adaptação de modelos

Será impossível acrescentar cada possível extensão ao plano de marcação, especialmente o


caso das chamadas para fora. Imagine um plano de marcação com uma extensão para
todos os números que se pode marcar? Impossível não é! Felizmente, o Asterisk tem uma
forma para solucionar isso: adaptação de modelos, que permite que se utilize uma seção
de código para muitas extensões diferentes.
Sintaxe da adaptação de modelos

Ao utilizar a adaptação de modelos, é necessário utilizar letras e símbolos para representar


os possíveis dígitos que queremos adaptar. Os modelos sempre começam com um
sublinhado (_). Isso diz ao Asterisk que estamos adaptando sobre um modelo, e não um
nome de extensão.

Depois do sublinhado, deve-se utilizar um ou mais dos seguintes caracteres:

X Adapta qualquer dígito de 0 a 9.


Z Adapta qualquer dígito de 1 a 9.
N Adapta qualquer dígito de 2 a 9.

[17] Adapta qualquer dígito na faixa indicada. No caso do 1 ao 7.

Para utilizar a adaptação de modelos no plano de marcação, simplesmente é necessário


colocar no lugar do nome ou número da extensão a adaptação:

exten => _NXX,1,Playback(auth-thankyou)

Neste exemplo, o modelo deve adaptar quaisquer extensões de 3 dígitos de 200 a 999
(lembre-se o N adapta qualquer dígito entre 2 e 9, e cada X entre 0 e 9. Isto que dizer que
se um utilizador marcou qualquer extensão de 3 dígitos entre 200 a 999 nesse contexto,
ele deverá ouvir o ficheiro de áudio atuth-tahkyou.gsm.

Se tiver mais do que um modelo que se adapte a chamada (a extensão marcada) o


Asterisk utilizará o mais específico. Digamos que tenha-se digitado 5551212:

exten => _555XXXX,1,Playback(digits/1)


exten => _55512,1,Playback(digits/2)

Neste caso, o utilizador ouvirá o digito 2

Uso de variável de canal $(EXTEN)

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 179

[ 179 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Bem e se tivermos que saber quais números foram discados em uma adaptação de
contexto? Bem neste caso o Asterisk define a variável de canal ${EXTEN} para os dígitos
que foram marcados. Nós podemos usar uma aplicação chamada SayDigits() para testar
esta funcionalidade.

exten => _XXX,1,SayDigits(${EXTEN})

Frequentemente, é útil se manipular o ${EXTEN} removendo um certo número de dígitos


da frente da extensão. Isto é feito usando-se a sintaxe ${EXTEN:x}, onde x; e o número de
dígitos que quer se remover.

Por exemplo, se o valor de EXTEN é 95551212, então ${EXTEN:1} é 5551212.

exten => _XXX,1,SayDigits(${EXTEN:1})

Se o x for negativo será obtido os últimos dígitos x da extensão marcada.

exten => _XXX,1,SayDigits(${EXTEN:-1})

Habilitações de marcação de ligações externas

Agora que já foi apresentado a adaptação de modelos, podemos fazer ligações externas.
Então podemos acrescentar uma variável ao contexto [globals] para definir quais canais
serão utilizados para fazer ligações externas:

[globals]
JOHN=DAHDI/1
JANE=SIP/jane
OUTBOUNDTRUNK=DAHDI/4

Vamos criar um contexto para ligações externas, isto é necessário para colocar um pouco
de segurança, regular e controlar as ligações externas (quem pode fazer ligações
externas). Então vamos criar um contexto chamado [saídas-local]. Vamos usar o número 9
no início, de forma que os utilizadores deveram usar o 9 para chamar um número externo.

[saidas-local]
exten => _9NXXXXXX,1,Dial(${OUTBOUNDTRUNK}/${EXTEN:1})
exten => _9NXXXXXX,2,Congestion()
exten => _9NXXXXXX,102,Congestion()

Então neste contexto anterior, nós acrescentamos uma variável global chamada
OUTBOUNDTRUNK, que irá controlar qual extensão será utilizada para fazer ligações
externas.

Nós também adicionamos um contexto para ligações externas locais. Na prioridade 1, nós
pegamos a extensão marcada, eliminando o 9 com a sintaxe ${EXTEN:1} e então
tentamos discar aquele número no canal significando pela variável OUTBOUNDTRUNK.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 180

[ 180 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

Se a chamada funcionar, o chamador é ligado ao canal de saída. Se a chamada falhar, por


que o canal está ocupado, ou porque o número não pode ser discado por qualquer razão, a
aplicação Congestion() é chamada e toca um “sinal de ocupado”, para permitir que o
chamador saiba que sua chamada falhou.

Ao discar o 9 não será fornecido realmente uma linha externa como em um sistema PABX
tradicional, mas sim aparecerá um silêncio, caso queira-se um tom de marcação adicione
ao contexto:

ignorepat => 9
Que diz ao Asterisk para continuar a tocar o tom de marcação mesmo depois de o
chamador discar o 9. É sempre interessante permitir que o plano de marcação possa
marcar para números de emergência:

[saidas-local]
exten => _9NXXXXXX,1,Dial(${OUTBOUNDTRUNK}/${EXTEN:1})
exten => _9NXXXXXX,2,Congestion()
exten => _9NXXXXXX,102,Congestion()
exten => 190,1,Dial(${OUTBOUNDTRUNK}/190)

Inclusos

O Asterisk permite que utilizemos um contexto dentro de outro contexto por meio da
diretiva include. Assim o include é utilizado para fornecer acesso a diferentes seções do
plao de marcação. Nós utilizaremos a funcionalidade include para permitir que o utilizador
do contexto [interno] (da rede local) tenham a capacidade de fazer chamadas para
telefones externos (rede PSTN, no nosso caso).

Estrutura do include

A definição de include toma a seguinte forma, em que context é o nome do contexto


remoto que gostaríamos de incluir no contexto atual:

include => context

Quando existirem contextos dentro do contexto atual, é necessário observar a ordem em


que estamos incluindo os contextos, já que o Asterisk irá primeiro tentar corresponder a
extensão do contexto atual, se este falhar o Asterisk chamará o primeiro que aparecer e se
der errado o próximo e assim por diante, na ordem que forem incluídos.

Vamos ao último exemplo usando os inclusos:

[globals]
JOHN=DAHDI/1
JANE=SIP/jane
OUTBOUNDTRUNK=DAHDI/4

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 181

[ 181 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

[entrada]
exten => s,1,Answer()
exten => s,2,Background(enter-ext-of-person)
exten => 101,1,Dial(DAHDI/1,10)
exten => 101,2,Playback(vm-nobodyavail)
exten => 101,3,Hangup()
exten => 101,102,Playback(tt-allbusy)
exten => 101,103,Hangup()
exten => 102,1,Dial(SIP/jane,10)
exten => 102,2,Playback(vm-nobodyavail)
exten => 102,3,Hangup()
exten => 102,102,Playback(tt-allbusy)
exten => 102,103,Hangup()
exten => i,1,Playback(pbx-invalid)
exten => i,2,Goto(entrada,s,1)
exten => t,1,Playback(vm-goodbye)
exten => t,2,Hangup()

[interno]
include => saidas-local
exten => 101,1,Dial(DAHDI/1,,r)
exten => 102,1,Dial(SIP/jane,,r)

[saidas-local]
exten => _9NXXXXXX,1,Dial(${OUTBOUNDTRUNK}/${EXTEN:1})
exten => _9NXXXXXX,2,Congestion()
exten => _9NXXXXXX,102,Congestion()
exten => 190,1,Dial(${OUTBOUNDTRUNK}/190)

O include possibilita que utilizadores do contexto [interno] façam chamadas externas.


Vamos aqui aproveitar e falar que alem das mascaras existem quatro extensões especiais:

t (timeout): é utilizada quando o um aplicativo que espera a entrada de dígitos pelo


utilizador (geralmente o WaitExten) e não é digitado nada, por exemplo, em um IVR no
caso de uma mensagem de “aguarde para ser atendido”. Entrou em desuso na versão 1.6
do Asterisk;

i (invalid): é utilizado no mesmo aplicativo anterior, porém o utilizador digita um número


inválido, por exemplo, na IVR existem as opções 1, 2 e 3, mas o utilizador digita qualquer
outra coisa diferente disso;

s (start): é utilizada quando não é necessário o reconhecimento de dígitos, normalmente


utilizada em macros, por exemplo;

h (hangup): toda vez que uma chamada é desligada no plano de marcação pelo aplicativo
HangUp() é encaminhada para a extensão h, se houver, no mesmo contexto.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 182

[ 182 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

Configurações de IVRs
Qualquer tipo de atendimento automático pode ser configurado no plano de marcação do
Asterisk.
 IVR é a abreviatura de Interactive Voice Response. Trate-se de um sistema utilizado por
empresas de call center (atendimento) para que possam ser marcado opções no
atendimento eletrônico.

 De uma forma geral, um IVR é um microcomputador convencional, ao qual se agrega um


Hardware específico para realizar as tarefas de telefonia (tais como atender, marcar,
desligar, reconhecer marcação, falar, etc), e um Software que controle este hardware de
forma a atender a objetivos específicos.

 As placas variam de acordo com a quantidade de canais que se deseja atender


simultaneamente, o tipo de linha telefônica a que se destina (analógicas ou digitais) e à
funcionalidades específicas, tais como fax, reconhecimento de fala, reconhecimento de
pulsos analógicos, e outros.

 Reconhecimento de fala, a partir do final da década de 90, a tecnologia de reconhecimento


de fala passou a ser confiável e comercialmente alcançável por muitas organizações. Ainda
que permaneça um recurso que implica custos altos, muitas vezes o retorno obtido com o
investimento indica o seu uso.

 A tecnologia consiste em reconhecer na fala do utilizador palavras-chave que funcionam


como marcadores de desvio no fluxo seguido pelo IVR. O caso mais simples é o
reconhecimento de dígitos isolados, quando um cliente ao invés de digitar ou discar os
dígitos no telefone pode-se falar estes dígitos (“um”, “sete”, “nove”, “quatro” por exemplo).

 Um caso intermediário é o reconhecimento de números compostos, letras e certas palavras-


chaves tais como “setecentos e quatorze”, “L”, “Z”, “SIM”, “NÃO”. O caso mais complexo é o
reconhecimento de “fala natural”, quando se pode extrair dados a partir de um discurso
mais complexo, tal como “aplicar mil e duzentos dólares na minha conta de previdência
privada”. Como “fala natural” entenda-se discursos limitados de gramática conhecida em
determinado contexto do fluxo do IVR.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 183

[ 183 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

Criando Facilidades

Mão à Obra – Hands On Treze


Descrição: vamos agregar recursos ao Asterisk, criando facilidades.
Objetivo: facilidades.
Tempo Máximo: 30 minutos.
Instruções: em seu aparelho IP marque com a viva voz ativada para a extensão 600,
observe que o prompts (áudio) esta em Inglês. Iremos agora alterar o prompts (áudio)
para português.

Copie o diretório do prompts em português fornecido pelo instrutor para o diretório


/var/lib/asterisk/sounds/.

Figura Hands On Treze 13.01: Cópia de ficheiros com o WinSCP.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 184

[ 184 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Segure o diretório pt do lado esquerdo e solte sobre o diretório sounds do lado direito. Vai
abrir a tela de cópia clique no botão “Copy”.

Figura Hands On Treze 13.02: Cópia de ficheiros com o WinSCP.

Janela de progresso.

Figura Hands On Treze 13.03: Cópia de ficheiros com o WinSCP.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 185

[ 185 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Agora que o diretório de prompts em português está em nosso Servidor Asterisk, faça o
“reload” no servidor:

Figura Hands On Treze 13.04: Cópia de ficheiros com o WinSCP.

[root@pbxip asterisk]# rasterisk -x "reload"


[root@pbxip asterisk]#

Agora ligue do seu telefone IP para a extensão 600, se tudo deu certo o prompts do nosso
Servidor Asterisk estará em português. Caso queira realize os mesmos procedimentos para
prompts “br”.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 186

[ 186 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

Criando Variaveis Globais

Mão à Obra – Hands On Quatorze


Descrição: Neste laboratório nós iremos configurar variável global para utilizar no contexto
do Asterisk e um IVR com controlo de horário de atendimento.
Objetivo: Configurando variável global e IVR.
Tempo Máximo: 15 minutos.
Instruções: vamos realizar algumas inovações em nosso Servidor Asterisk.

Hora Certa: vamos criar uma variável global para nossa extensão Hora Certa:

[root@pbxip /]# vim /etc/asterisk/pbxip/globals.conf

;--------------------------------------------------
; “globals.conf” do Dial Plan do PBX IP Formacao Asterisk
; [globals]
CONSOLE=Console/dsp ;Interface do console para demonstracao
IAXINFO=guest ;IAXtel nome de utilizador e palavra passe
TRUNKMSD=1 ;Digitos MSD para descascar (normalmente 1 ou 0)
FIXO=/DAHDI/G1
MOVEL=/DAHDI/G2
ACH1=SIP/2000
ACH2=SIP/2001&SIP/2002
ACH3=SIP/2003&SIP/2004
ACH3=SIP/2000&SIP/2001&SIP/2002&SIP/2003&SIP/2004
HORA=602
;
;----------------------------------------------------

Salve e saia: :wq

Agora no ficheiro “recursos.conf” adicione o contexto da hora.

[root@pbxip /]# vim /etc/asterisk/pbxip/recursos.conf

;--------------------------------------------------
; "recursos.conf" do Dial Plan do PBX IP do Asterisk;
;--------------------------------------------------
; Recursos do PBX IP Asterisk
;
[recursos]
;Hello Word
exten => _600,1,Answer()

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 187

[ 187 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
exten => _600,2,Playback(hello-word)
exten => _600,3,Hangup()

;Teste de Echo ativado.


exten => _601,1,Answer()
exten => _601,2,Playback(demo-echotest)
exten => _601,3,Echo()
exten => _601,4,Playback(demo-echodone)
exten => _601,5,Hangup()

;Hora certa
exten => ${HORA},1,Answer
exten => ${HORA},n,Wait(1)
exten => ${HORA},n,Set(NumLoops=0)
exten => ${HORA},n(start),Set(FutureTime=$[${EPOCH} + 11],.hours.)
exten => ${HORA},n,Playback(at-tone-time-exactly)
exten => ${HORA},n,GotoIf($["${TIMEFORMAT}" = "kM"]?hr24format)
exten => ${HORA},n,SayUnixTime(${FutureTime},,IM .and. S .seconds. p)
exten => ${HORA},n,Goto(waitloop)
exten => ${HORA},n(hr24format),SayUnixTime(${FutureTime},,k .hours. .and. M.
minutes.)
exten => ${HORA},n(waitloop),Set(TimeLeft=$[${FutureTime} - ${EPOCH}])
exten => ${HORA},n,GotoIf($[${TimeLeft} < 1]?playbeep)
exten => ${HORA},n,Wait(1)
exten => ${HORA},n,Goto(waitloop)
exten => ${HORA},n(playbeep),Playback(beep)
exten => ${HORA},n,Wait(5)
exten => ${HORA},n,Set(NumLoops=$[${NumLoops} + 1])
exten => ${HORA},n,GotoIf($[${NumLoops} < 5]?start)
exten => ${HORA},n,Playback(goodbye)
exten => ${HORA},n,Hangup
;
;---------------------------------------------------

Salve e saia: :wq

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 188

[ 188 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

Para montar nossa IVR iremos copiar os prompts fornecido pelo instrutor no seguinte
caminho “/var/lib/asterisk/sounds/pt/custom/”.

Figura Hands On Quatorze 14.01: Cópia de ficheiros com o WinSCP.

[root@pbxip ~]# rasterisk -x "reload"


[root@pbxip ~]#

Agora iremos criar nosso ficheiro de Atendimento Automático de Chamadas (AAC) um


modelo simples de IVR. Siga os procedimentos abaixo descritos:

[root@pbxip /]# vim /etc/asterisk/pbxip/atendimento.conf

;-------------------------------------------------------------
; "atendimento.conf"->“extensions.conf” do Dial Plan do PBX IP Asterisk
;-------------------------------------------------------------
; Configuracao de AAC chamadas com controlo de horario
;[atendimento]
exten => s,1,Answer()
exten => s,n,Set(ARQGRAVA=${CDR(uniqueid)})
exten => s,n,MixMonitor(${ARQGRAVA}.wav,ba)
exten => s,n,GotoIfTime(19:00-23:59,*,*,*?boanoite)
exten => s,n,GotoIfTime(00:00-05:59,*,*,*?boanoite)
exten => s,n,GotoIfTime(06:00-07:59,*,*,*?bomdia)
exten => s,n,GotoIfTime(08:00-11:59,*,*,*?bomdiaam)
exten => s,n,GotoIfTime(12:00-12:59,*,*,*?meiodia)

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 189

[ 189 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
exten => s,n,GotoIfTime(13:00-17:59,*,*,*?boatarde)
exten => s,n,GotoIfTime(18:00-18:59,*,*,*?boatardepm)
; Bom dia
exten => s,n(bomdia),Wait(3)
exten => s,n,BackGround(br/custom/melodia)
exten => s,n,BackGround(br/custom/bomdia)
exten => s,n,BackGround(br/custom/atendimento)
exten => s,n,BackGround(br/custom/tenhabomdia)
exten => s,n,HangUp()
exten => s,n,Goto(reload)

; Bom dia AM
exten => s,n(bomdiaam),Wait(3)
exten => s,n,BackGround(br/custom/melodia)
exten => s,n,BackGround(br/custom/bomdia)
exten => s,n,BackGround(br/custom/atendimento)
exten => s,n,BackGround(br/custom/tenhabomdia)
exten => s,n,HangUp()
exten => s,n,Goto(reload)

; Meio dia
exten => s,n(meiodia),Wait(3)
exten => s,n,BackGround(br/custom/melodia)
exten => s,n,BackGround(br/custom/bomdia)
exten => s,n,BackGround(br/custom/atendimento)
exten => s,n,BackGround(br/custom/tenhabomdia)
exten => s,n,HangUp()
exten => s,n,Goto(reload)

; Boa tarde
exten => s,n(boatarde),Wait(3)
exten => s,n,BackGround(br/custom/melodia)
exten => s,n,BackGround(br/custom/boatarde)
exten => s,n,BackGround(br/custom/atendimento)
exten => s,n,BackGround(br/custom/tenhaboatarde)
exten => s,n,HangUp()
exten => s,n,Goto(reload)

; Boa tarde PM
exten => s,n(boatardepm),Wait(3)
exten => s,n,BackGround(br/custom/melodia)
exten => s,n,BackGround(br/custom/boatarde)
exten => s,n,BackGround(br/custom/atendimento)
exten => s,n,BackGround(br/custom/tenhaboatarde)
exten => s,n,HangUp()
exten => s,n,Goto(reload)
; Boa Noite

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 190

[ 190 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
exten => s,n(boanoite),Wait(3)
exten => s,n,BackGround(br/custom/melodia)
exten => s,n,BackGround(br/custom/boanoite)
exten => s,n,BackGround(br/custom/atendimento)
exten => s,n,BackGround(br/custom/tenhaboanoite)
exten => s,n,HangUp()
exten => s,n,Goto(reload)

; FIM (reload)
exten => s,n(reload),NoOp(!!! Recarregando o menu !!!)
;
;-----------------------------------------------------

Salve o ficheiro e saia: :wq

Agora vamos realizar o include ficheiro no extensions.conf e o include do contexto no


contexto [local]:

[root@pbxip /]# vim /etc/asterisk/extensions.conf



#include pabx/atendimento.conf

[interno]

[local]
;Teste do IVR (AAC)
include => dahdi-00-00

[nacional]

[internacional]
;
;---------------------------------------------------------------------
; Configuracao Recebimento de chamadas pela Placa Digium
[dahdi-00-00]
exten => _30XX,1,Answer()
exten => _30XX,n,Set(ARQGRAVA=${CDR(uniqueid)})
exten => _30XX,n,MixMonitor(${ARQGRAVA}.wav,ba)
exten => _30XX,n,Goto(atendimento,s,1)
exten => _30XX,n,HangUp()
;
;----------------------------------------------------------------------
Salve o ficheiro e saia: :wq
[root@pbxip /]# rasterisk -x "reload"
[root@pbxip /]#

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 191

[ 191 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Agora realize o reload no Servidor Asterisk e faça o teste marcando para o contexto 3000,
tudo ocorrendo bem deverá ouvir nossa IVR.

Vamos nos aventurar neste metodo, vamos fazer nossa rota de entrada consultar números
de atendimento diferenciados. Os numeros correspondente a um departamento. Caso o
número não seja os da condição o atendimento procede no IVR “atendimento.conf”.
Quando a condição for os númeors do outro departamento (que chamaremos de
corretores) o procedimento de atendimento será no IVR “corretores.conf”.

Vamos realizar os procedimentos descritos abaixo:

[root@pbxip /]# vim /etc/asterisk/pbxip/corretores.conf

Ou ainda pode copiar o ficheiro atendimento.conf para corretores.conf e realizar as


mudanças como esta descrita abaixo:

[root@pbxip /]# cd /etc/asterisk/pbxip/


[root@pbxip /]# cp -a atendimento.conf corretores.conf
[root@pbxip pbxip]# vim corretores.conf
;-------------------------------------------------------------
; "corretores.conf"->“extensions.conf” - Plano de marcação do Asterisk
;-------------------------------------------------------------
; Configuracao de AAC com controlo de horario
;
[corretores]
exten => s,1,GotoIfTime(19:00-23:59,*,*,*?boanoite)
exten => s,n,GotoIfTime(00:00-05:59,*,*,*?boanoite)
exten => s,n,GotoIfTime(06:00-07:59,*,*,*?bomdia)
exten => s,n,GotoIfTime(08:00-11:59,*,*,*?bomdiaam)
exten => s,n,GotoIfTime(12:00-12:59,*,*,*?meiodia)
exten => s,n,GotoIfTime(13:00-17:59,*,*,*?boatarde)
exten => s,n,GotoIfTime(18:00-18:59,*,*,*?boatardepm)

; Bom dia
exten => s,n(bomdia),Wait(2)
exten => s,n,NoOp(Bloco Bom Dia)
exten => s,n,BackGround(br/custom/melodia)
exten => s,n,BackGround(br/custom/bomdia)
exten => s,n,BackGround(br/custom/foradehora)
exten => s,n,HangUp()
exten => s,n,Goto(reload)

; Bom dia AM
exten => s,n(bomdiaam),Wait(2)
exten => s,n,NoOp(Bloco Bom Dia AM)
exten => s,n,BackGround(br/custom/melodia)
exten => s,n,BackGround(br/custom/bomdia)

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 192

[ 192 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
exten => s,n,BackGround(br/custom/dentrodahora)
exten => s,n,Goto(trydial)

; Meio dia
exten => s,n(meiodia),Wait(2)
exten => s,n,NoOp(Bloco Meio Dia)
exten => s,n,BackGround(br/custom/melodia)
exten => s,n,BackGround(br/custom/bomdia)
exten => s,n,BackGround(br/custom/dentrodahora)
exten => s,n,Goto(trydial)

; Boa tarde
exten => s,n(boatarde),Wait(2)
exten => s,n,NoOp(Bloco Boa Tarde)
exten => s,n,BackGround(br/custom/melodia)
exten => s,n,BackGround(br/custom/boatarde)
exten => s,n,BackGround(br/custom/dentrodahora)
exten => s,n,Goto(trydial)

; Boa tarde PM
exten => s,n(boatardepm),Wait(2)
exten => s,n,NoOp(Bloco Boa Tarde PM)
exten => s,n,BackGround(br/custom/melodia)
exten => s,n,BackGround(br/custom/boatarde)
exten => s,n,BackGround(br/custom/dentrodahora)
exten => s,n,Goto(trydial)

; Boa Noite
exten => s,n(boanoite),Wait(2)
exten => s,n,NoOp(Bloco Boa Noite)
exten => s,n,BackGround(br/custom/melodia)
exten => s,n,BackGround(br/custom/boanoite)
exten => s,n,BackGround(br/custom/foradehora)
exten => s,n,HangUp()
exten => s,n,Goto(reload)

; Trydial
exten => s,n(trydial),Dial(${ACH1},60,rTt)
exten => s,n,GotoIf($["${DIALSTATUS}"="ANSWER"]?reload)
exten => s,n,Dial(${ACH2},55,rTt)
exten => s,n,GotoIf($["${DIALSTATUS}"="ANSWER"]?reload)
exten => s,n,Dial(${ACH3},50,rTt)
exten => s,n,Goto(reload)

; FIM (reload)
exten => s,n(reload),NoOp(!!! Recarregando o menu !!!)

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 193

[ 193 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
;
;---------------------------------------------------------------

Salve o ficheiro e saia: :wq

Agora iremos realizar alteração na rota de entradada dahdi-00-00, vamos deixar assim:

[root@pbxip pbxip]# cd ..
[root@pbxip asterisk]# vim extensions.conf
;
;---------------------------------------------------------------------
; Configuracao Recebimento de chamadas pela Placa E1 da Digium
;
[dahdi-00-00]
exten => _30XX,1,Answer()
exten => _30XX,n,Set(ARQGRAVA=${CDR(uniqueid)})
exten => _30XX,n,Set(NUMENTRADA=${EXTEN})
exten => _30XX,n,MixMonitor(${ARQGRAVA}.wav,ba)
exten =>
_30XX,n,GotoIf($[$["${NUMENTRADA}"="3031"]|$["${NUMENTRADA}"="3032"]]?nop)
exten => _30XX,n,Goto(atendimento,s,1)
exten => _30XX,n(nop),Goto(corretores,s,1)
exten => _30XX,n,HangUp()
;
;---------------------------------------------------------------------
Salve o ficheiro e saia: :wq

Agora realize o seguinte procedimento:

[root@pbxip asterisk]# vim extensions.conf

;---------------------------------------------------------------------
; Include PBX IP - Formação Asterisk
;
#include pabx/general.conf
#include pabx/globals.conf
#include pabx/facilidades.conf
#include pabx/atendimento.conf
#include pabx/corretores.conf
;---------------------------------------------------------------------
Salve o ficheiro e saia: :wq

[root@pbxip asterisk]# rasterisk -x "reload"

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 194

[ 194 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
O correto para este contexto funcionar em uma placa Digium é como o descrito abaixo:
;--------------------------------------------------
; Configuracao Recebimento de chamadas pela Placa E1 da Digium
;[dahdi-00-00]
;exten => _X.,1,Answer()
;exten => _X.,n,Set(ARQGRAVA=${CDR(uniqueid)})
;exten => _X.,n,Set(NUMENTRADA=${EXTEN})
;exten => _X.,n,AGI(blacklist_entrante.php,${CALLERID})
;exten => _X.,n,MixMonitor(${ARQGRAVA}.wav,ba)
;exten =>
_X.,n,GotoIf($[$["${NUMENTRADA}"="0531"]|$["${NUMENTRADA}"="8397"]]?nop)
;exten => _X.,n,Goto(telemarketing,s,1)
;exten => _X.,n(nop),Goto(corretores,s,1)
;exten => _X.,n,HangUp()
;
;-------------------------------------------------
; Configuracao De Entrada Placa GSM da Digium canal 00
;[dahdi-01-00]
;exten => s,1,Answer()
;exten => s,n,Set(ARQGRAVA=${CDR(uniqueid)})
;exten => s,n,MixMonitor(${ARQGRAVA}.wav,ba)
;exten => s,n,Goto(atendimento,s,1)
;exten => s,n,HangUp()
;
;-------------------------------------------------
; Configuracao De Entrada Placa GSM da Digium Canal 01
;[dahdi-01-01]
;exten => s,1,Answer()
;exten => s,n,Set(ARQGRAVA=${CDR(uniqueid)})
;exten => s,n,MixMonitor(${ARQGRAVA}.wav,ba)
;exten => s,n,Goto(atendimento,s,1)
;exten => s,n,HangUp()
;
;-------------------------------------------------
; Configuracao De Entrada Placa GSM Digium Canal 02
;[dahdi-01-02]
;exten => s,1,Answer()
;exten => s,n,Set(ARQGRAVA=${CDR(uniqueid)})
;exten => s,n,MixMonitor(${ARQGRAVA}.wav,ba)
;exten => s,n,Goto(atendimento,s,1)
;exten => s,n,HangUp()
;
;-------------------------------------------------
; Configuracao De Entrada Placa GSM Digium Canal 03
;[dahdi-01-03]
;exten => s,1,Answer()
;exten => s,1,Set(ARQGRAVA=${CDR(uniqueid)})

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 195

[ 195 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
;exten => s,2,MixMonitor(${ARQGRAVA}.wav,ba)
;exten => s,3,Goto(atendimento,s,1)
;exten => s,4,HangUp()
;
;-------------------------------------------------
; Configuracao De Entrada Placa GSM Digium Canal 00
;[dahdi-02-00]
;exten => s,1,Answer()
;exten => s,n,Set(ARQGRAVA=${CDR(uniqueid)})
;exten => s,n,MixMonitor(${ARQGRAVA}.wav,ba)
;exten => s,n,Goto(atendimento,s,1)
;exten => s,n,HangUp()
;
;-------------------------------------------------
; Configuracao De Entrada Placa GSM Digium Canal 01
;[dahdi-02-01]
;exten => s,1,Answer()
;exten => s,n,Set(ARQGRAVA=${CDR(uniqueid)})
;exten => s,n,MixMonitor(${ARQGRAVA}.wav,ba)
;exten => s,n,Goto(atendimento,s,1)
;exten => s,n,HangUp()
;
;-------------------------------------------------
; Configuracao De Entrada Placa GSM Digium Canal 02
;[dahdi-02-02]
;exten => s,1,Answer()
;exten => s,n,Set(ARQGRAVA=${CDR(uniqueid)})
;exten => s,n,MixMonitor(${ARQGRAVA}.wav,ba)
;exten => s,n,Goto(atendimento,s,1)
;exten => s,n,HangUp()
;
;-------------------------------------------------
; Configuracao De Entrada Placa GSM Digium Canal 03
;[dahdi-02-03]
;exten => s,1,Answer()
;exten => s,1,Set(ARQGRAVA=${CDR(uniqueid)})
;exten => s,2,MixMonitor(${ARQGRAVA}.wav,ba)
;exten => s,3,Goto(atendimento,s,1)
;exten => s,4,HangUp()
;
;---------------------------------------------------

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 196

[ 196 ]
Asterisk InProprietário, A Telefonia Hoje! 2014

Entendendo Melhor o IVR


Vamos escrever um IVR simples, porém que tem grande utilização em diversas empresas.
Vamos supor que será configurado um PBX IP para uma empresa que presta serviços de
TI. Once a extensão 2000 atende o suporte para o sistema operativo GNU/Linux, o 2001 é
da área comercial e o 2002 é da telefonista.

A IVR deve ter o menu principal “Você ligou para a empresa XPTO. Digite 1 para Suporte
ao GNU/Linux, 2 para Comercial ou 9 para falar com a telefonista”. Caso seja digitado mais
de 3 vezes uma opção incorreta ou não for digitado nada a chamada deverá ser
direcionada para a telefonista. Antes de direcionar para a extensão correspondente deve
ser tocada a mensagem “Por favor aguarde estamos transferindo sua chamada”.

Inicialmente vamos criar duas extensões no contexto [local] para efetuar a gravação das
mensagens e uma exten para acessar o IVR para os testes funcionais.

[root@pbxip /]# vim /etc/asterisk/extensions.conf

;--------------------------------------------------
; "extensions.conf" o Dial Plan do PBX IP Asterisk;
;--------------------------------------------------
; Includes PBX IP Asterisk
;
#include pabx/general.conf
#include pabx/globals.conf
#include pabx/recursos.conf
#include pabx/atendimento.conf
;---------------------------------------------------
; Configurações das extensões
;
[interno]
Include => local

[externo]
include => local
include => nacional
include => internacional

[local]
;Teste do IVR (AAC)
include => dahdi-00-00

;Faz chamadas entre as extensoes.


exten => _20XX,1,Dial(SIP/${EXTEN},15,rTt)
exten => _20XX,n,GotoIf($["${LIMIT}"="1"]?busy)
exten => _20XX,n(busy),Playback(is-curntly-unavail)

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 197

[ 197 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
exten => _20XX,n,HangUp()

exten => *99,1,Record(saudacao)


exten => *99,n,Wait(1)
exten => *99,n,Playback(saudacao)
exten => *99,n,HangUp()

exten => *98,1,Record(aguarde)


exten => *98,n,Wait(1)
exten => *98,n,Playback(aguarde)
exten => *98,n,HangUp()

exten => *97,1,Goto(ivrinput,s,1)

[nacional]

[internacional]
;
;---------------------------------------------------------------------
; Configuracao Recebimento de chamadas pela Placa Digium
[dahdi-00-00]
exten => _30XX,1,Answer()
exten => _30XX,n,Set(ARQGRAVA=${CDR(uniqueid)})
exten => _30XX,n,MixMonitor(${ARQGRAVA}.wav,ba)
exten => _30XX,n,Goto(atendimento,s,1)
exten => _30XX,n,HangUp()
;
;---------------------------------------------------

Salve o ficheiro e saia: :wq


[root@pbxip /]# rasterisk -x "reload"
[root@pbxip /]#

Quando for digitidado *99 ou *98 você vai ouvir um bip; após o qual você deve falar a
mensagem. Quando terminar pressione # (sustenido), após 1 segundo será reproduzido a
mensagem de áudio que você gravou. Repita a operação, quantas vezes achar necessário.

Agora vamos configurar a IVR propriamente dita. Crie em /etc/asterisk/pabx/ um ficheiro


com o nome ivrimput.conf

[root@pbxip /] # vim /etc/asterisk/pbxip/ivrimput.conf

;-------------------------------------------------------
; IVRIMPUT do Dial Plan do PBX IP Asterisk
[ivrimput]
exten => s,1,Answer()
exten => s,n,Set(CONTADOR=0)

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 198

[ 198 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
exten => s,n(inicio), Background(saudacao)
exten => s,n,WaitExten(3)
exten => s,n,Goto(i,1)

exten => 1,1,Playback(aguarde)


exten => 1,n,Dial(SIP/2000,15,wWtT)

exten => 2,1,Playback(aguarde)


exten => 2,n,Dial(SIP/2001,15,wWtT)

exten => 9,1,Playback(aguarde)


exten => 9,n,Dial(SIP/2002,16,wWtT)

exten => i,1,Set(CONTADOR=${CONTADOR}+1)


exten => i,n,GotoIf($[${CONTADOR} < 3]?s,inicio)
exten => i,n,Dial(SIP/2002,15,wWtT)
;
;----------------------------------------------------------

Salve o ficheiro e saia: :wq

Agora retornamos ao ficheiro extensions.conf e procedemos com o include do ficheiro


ivrimput.conf;

[root@pbxip /]# vim /etc/asterisk/extensions.conf

;--------------------------------------------------
; "extensions.conf" - O plano de marcação do Asterisk;
;--------------------------------------------------
; Includes PBX IP – Formacao Asterisk
;
#include pbxip/general.conf
#include pbxip/globals.conf
#include pbxip/recursos.conf
#include pbxip/atendimento.conf
#include pbxip/corretores.conf
#include pbxip/ivrimput.conf
;---------------------------------------------------
; Configurações das extensões
;
[interno]
Include => local

[externo]
include => local
include => nacional
include => internacional

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 199

[ 199 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
[local]
;Teste do IVR (AAC)
include => dahdi-00-00

;Teste do IVRIMPUT
include => ivrimput

;Faz chamadas entre as extensoes.


exten => _20XX,1,Dial(SIP/${EXTEN},15,rTt)
exten => _20XX,n,GotoIf($["${LIMIT}"="1"]?busy)
exten => _20XX,n(busy),Playback(is-curntly-unavail)
exten => _20XX,n,HangUp()

exten => *99,1,Record(saudacao)


exten => *99,n,Wait(1)
exten => *99,n,Playback(saudacao)
exten => *99,n,HangUp()

exten => *98,1,Record(aguarde)


exten => *98,n,Wait(1)
exten => *98,n,Playback(aguarde)
exten => *98,n,HangUp()

exten => *97,1,Goto(ivrinput,s,1)

[nacional]

[internacional]
;
;---------------------------------------------------------------------
; Configuracao Recebimento de chamadas pela Placa Digium
[dahdi-00-00]
exten => _30XX,1,Answer()
exten => _30XX,n,Set(ARQGRAVA=${CDR(uniqueid)})
exten => _30XX,n,MixMonitor(${ARQGRAVA}.wav,ba)
exten => _30XX,n,Goto(atendimento,s,1)
exten => _30XX,n,HangUp()
;
;---------------------------------------------------

Salve o ficheiro e saia: :wq


[root@pbxip /]# rasterisk -x "reload"
[root@pbxip /]#

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 200

[ 200 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Consideração sobre a configuração da IVR

Na IVR utilizamos a extensão especial “s” pois não havia dígitos que necessitassem serem
reconhecidos para iniciar seu fluxo. Foi criado o código *97 no contexto [local] para
encaminhar a chamada para o IVRIMPUT. Com o “Set” setamos a variável ${CONTADOR}
que servirá como controle das repetições. Em “s,n(inicio)” é tocada a mensagem de
saudação com o aplicativo Background() pois não queremos que o utilizador tenha de
esperar até o final da mensagem para digitar a opção desejada.

Com “s,n,WaitExten()” esperamos por 3 segundos o utilizador digitar algo se anda não o
tiver feito. Caso nada seja digitado até o limite de 3 segundos, o script irá para a linha
seguinte que direciona para o incremento da variável ${CONTADOR}.

Caso seja pelo utilizador marcado 1, a chamada irá então para a extensão 2000.
Caso seja pelo utilizador marcado 2, a chamada irá então para a extensão 2001.
Caso seja pelo utilizador marcado 3, a chamada irá então para a extensão 2002.

Se for digitado pelo utilizador algo diferente de 1, 2 e 9 a chamada cairá na extensão


especial “i”, onde é feito o incremento da variável ${CONTADOR}. Em seguida é verificado
se o valor que está na variável ${CONTADOR} é menor que 3; se positivo o script volta
para a extensão “s,n(inicio)” e o processo é retomado; caso negativo envia a chamada para
a telefonista (2002).

Teste o funcionamento da IVR marcando o código *97 do seu softphone. Seguindo esse
modelo você estará apto a criar IVRs com diversos níveis sem a necessidade de qualquer
módulo externo. Pesquise sobre os aplicativos disponíveis no Asterisk para configurar
estruturas cada vez mais elaboradas.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 201

[ 201 ]
Asterisk InProprietário, A Telefonia Hoje! 2014
Configuração de Hardware

Tipos de Placas de Comutação

Texto do livro.

Importante: Para novos capítulos, copie e cole o título de acordo com a formatação acima.
Isso garantirá que o índice seja refeito de forma automática.

Ao terminar o livro, vá ao índice, clique com o botão direito do mouse e selecione a opção
de atualizar.

A verdadeira arte do conhecimento é compartilhar o conhecimento! Página 202

[ 202 ]

Vous aimerez peut-être aussi