Capa_A4_Portugues_LAR_4aG#

 

 

 

 

 

 

 

 

Como construir e configurar um PABX com software livre

Abordando a versão 1.4

 

Flavio E. Gonçalves

Quarta Geração

1º. Edição/Dezembro/2008

rev. 9

 

 

 

Florianópolis-SC-Brasil/2006

Copyright 2005© por Flavio E. Gonçalves

Todos os direitos reservados

 

Capa: Karla Braga

Revisão: Guilherme Waltrick Goes

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Atendimento: oops@asteriskguide.com

Todos os direitos reservados. É proibida a reprodução total ou parcial deste livro.


Prefácio

Esta é a quarta geração do eBook Asterisk Guia de Configuração, a primeira foi lançada em março de 2005. Fiz o teste do dCAP da Digium em Maio de 2006 e tive o privilégio de passar na primeira tentativa, o livro ajudou bastante, apenas dois dos vinte alunos do Asterisk Bootcamp passaram no dCAP. O material contido neste livro tem quase tudo referente ao teste. O principal objetivo desta revisão foi a atualização para a versão 1.4, contudo o leitor pode se deparar com exemplos referentes às versões anteriores.

 A forma de comercialização do livro também mudou, privilegiando os eBooks. Estes possuem diversas vantagens, a primeira é ecológica, evitar o uso do papel. Outros pontos que posso citar são a facilidade de transporte e pesquisa associada ao documento eletrônico armazenado dentro de um “laptop” ou “pendrive”. A parte ruim fica por conta da pirataria, que tento minimizar com uma tarja cinza como fundo do livro. Sei que é difícil combater a pirataria e vai da consciência de cada um.

O Asterisk PBX é revolucionário nas áreas de telefonia IP e PABX baseado em software. Durante anos, o mercado de telefonia foi ligado a equipamentos proprietários, fabricados por grandes companhias.  A convergência de dados e voz, em pouco tempo vai fazer com que a telefonia seja apenas mais uma aplicação das redes, tornando os atuais equipamentos PABX obsoletos. Com a entrada do Asterisk, mais e mais empresas poderão experimentar recursos como URA - Unidade de Resposta Audível, DAC – Distribuição Automática de Chamadas, mobilidade, correio de voz e conferência, antes restritas a poucos usuários.

Não tive a pretensão de ensinar tudo que existe sobre o Asterisk, pois isto seria muito difícil. Minha proposta neste material é proporcionar ao leitor acesso aos principais recursos e a partir deles descobrir e implantar recursos mais avançados. Eu espero que vocês se divirtam tanto, aprendendo o Asterisk quanto eu me diverti escrevendo sobre ele.

 

Flávio Eduardo de Andrade Gonçalves

Diretor Geral

V.Office Networks

flavio@asteriskguide.com


Agradecimentos

Além de agradecer minha família que tem sempre me apoiado, gostaria de agradecer a todos os colaboradores do livro ao longo destes três anos e abro aqui uma lista dos principais:

Ana Cristina Gonçalves – Logística

Karla Braga – Fotos e Capa

Guilherme W. Góes, dCAP – Texto e Revisão

Luis F. Gonçalves – Revisão da versão em Inglês

Oswaldo Fueyo – Versão em espanhol

Hector Kee – Revisão em espanhol

Felipe Pasa, dCAP – Revisão e testes no R2 digital e DAC

Paulo Benatto – Contribuição nos capítulos de interface gráfica

Marcas registradas

Várias designações são marcas registradas. Onde as encontramos e pudemos identificar elas começam com letras maiúsculas. As marcas Digium, Asterisk, IAX e DUNDi, são marcas registradas da Digium Inc. Este trabalho não é patrocinado nem endossado pela Digium Inc.

Críticas sugestões erros de grafia

Todas as pessoas que eu conheço detestam ser criticadas. Eu não me excluo desse grupo, mas gostando ou não, as críticas, quando construtivas, são a melhor forma de evolução e melhoria constante. Este livro e o curso no qual se baseia tiveram uma boa retroalimentação de alunos e leitores durante os anos de 2005 e 2006. Os capítulos de bilhetagem e uma abordagem mais profunda de AMI e AGI contida no capítulo quatorze foram sugestões de usuários. Outra sugestão acatada foi o uso de placas Digium e configuração real nos cursos.

Por mais que nos esforcemos, sempre existem erros de grafia e conteúdo. Ficamos agradecidos a qualquer um que os aponte e nos permita corrigir. Quaisquer erros podem ser comunicados em:

oops@asteriskguide.com


Sumário

Introdução ao Asterisk. 1

Objetivos do capítulo.. 1

Definições e conceitos básicos. 1

O que é o AsteriskNOW... 2

Qual o papel da Digium?. 2

O projeto Zapata. 3

Porque o AsteriskNOW?. 3

Sistema aberto. 3

Redução de custos. 3

Controle Total 4

Melhoria da Produtividade. 4

Melhoria no Atendimento. 4

Roda no Linux e é código aberto. 4

Principais objeções ao Asterisk. 4

A participação de mercado do Asterisk é muito pequena?. 4

Se é  gratuito como o fabricante sobrevive?. 5

Como encontro suporte técnico?. 5

O Asterisk não suporta mais de 200 ramais?. 5

Só “nerds” conseguem instalar o Asterisk! 5

E se o servidor falhar?. 5

Nossa empresa não usa software livre! 5

Usar a CPU do PC para processar o áudio é condenável! 5

Arquitetura do Asterisk. 6

Canais. 6

Codecs e Conversões de CODEC. 7

Protocolos. 8

Aplicações. 8

Visão geral do Asterisk. 8

Diferenças entre o velho e o novo mundo. 9

Telefonia usando o velho modelo de PABX/Softswitch. 9

Telefonia do jeito Asterisk. 10

Construindo um sistema de testes. 10

Um FXO, Um FXS. 11

Provedor de serviço VoIP, softfone ou ATA. 11

Placa clone FXO, softfone ou ATA. 11

Cenários de uso do Asterisk. 11

IP PBX. 11

Atualização de PABX existente para suportar VoIP. 12

Interligação de filiais através de VoIP. 12

Servidor de aplicações (URA, Conf., Voicemail) 13

Media Gateway. 14

Plataforma para central de atendimento. 15

Encontrando informações e documentação.. 15

Resumo.. 16

Questionário.. 17

Baixando e instalando o Asterisk. 19

Objetivos do capítulo.. 19

Hardware Mínimo.. 19

Montando o seu sistema. 20

Questões de compartilhamento de IRQ.. 20

Escolhendo uma distribuição do Linux. 21

Requisitos do Linux. 21

Pacotes necessários. 21

Instalando o Linux para atender ao Asterisk. 21

Preparando o Debian para o Asterisk. 22

Obtendo e compilando o Asterisk. 23

Obtendo os fontes do Asterisk. 23

Compilando o driver DAHDI 23

Compilando o Asterisk. 25

Iniciando e parando o Asterisk. 25

Parâmetros de linha de comando do Asterisk. 25

Abaixo os parâmetros disponíveis. 25

Diretórios de instalação do Asterisk. 26

Arquivos de log do Asterisk e rotação de logs, 26

Iniciando o Asterisk usando um usuário diferente de root. 28

Considerações sobre a instalação do Asterisk. 29

Sistemas em produção. 29

2.11.2 Considerações sobre a rede. 29

Resumo.. 29

Questionário.. 30

Primeiros passos usando Asterisk. 31

Objetivos do capítulo.. 31

Gramática dos arquivos de configuração.. 31

Grupo simples. 32

Formato de objeto com herança de opções. 32

Objeto entidade complexa. 32

Configurando uma interface com a rede pública.. 33

Instalando a placa X100P clone. 33

Configuração dos telefones IP. 34

Configuração direta nos Arquivos SIP. 35

Seção [general] 35

Opções para cada telefone. 35

Introdução ao plano de discagem... 36

Extensões. 36

Prioridades. 37

Aplicações. 37

Contextos. 38

Criando um ambiente de testes. 39

Criando um plano de discagem simples. 40

Exemplo básico. 41

Um exemplo mais útil 41

Interligando canais com a aplicação dial().. 42

Laboratório.. 43

Ligando entre telefones. 43

Ligando para a rede pública usando a placa zaptel 43

Recebendo ligações usando auto-atendimento. 43

Resumo.. 44

Questionário.. 45

Canais Analógicos. Erro! Indicador não definido.

Objetivos. Erro! Indicador não definido.

Conceitos básicos. Erro! Indicador não definido.

Sinalização de supervisão. Erro! Indicador não definido.

Sinalização de endereçamento. Erro! Indicador não definido.

Sinalização de informação. Erro! Indicador não definido.

Interfaces de acesso a rede pública.. Erro! Indicador não definido.

Usando Interfaces FXS, FXO e E+M... Erro! Indicador não definido.

Interfaces FX (Foreign eXchange) Erro! Indicador não definido.

FXO (Foreign eXchange Office) Erro! Indicador não definido.

FXS (Foreign eXchange Station) Erro! Indicador não definido.

Interfaces E & M... Erro! Indicador não definido.

Sinalização nos troncos. Erro! Indicador não definido.

Configurando um canal de telefonia no Asterisk. Erro! Indicador não definido.

Procedimentos gerais de configuração válidos nos dois casos. Erro! Indicador não definido.

Exemplo 1 - Instalação de uma porta FXO e outra FXS. Erro! Indicador não definido.

Opções de configuração do arquivo chan_dahdi.conf. Erro! Indicador não definido.

Opções gerais, independentes do tipo de canal Erro! Indicador não definido.

Identificação do assinante em linhas analógicas. Erro! Indicador não definido.

Enviando CallerID para portas FXS. Erro! Indicador não definido.

Chamada em Espera. Erro! Indicador não definido.

Opções de qualidade de áudio.. Erro! Indicador não definido.

Utilitário FXOTUNE. Erro! Indicador não definido.

Utilitário DAHDI_MONITOR. Erro! Indicador não definido.

Cancelamento de Eco. Erro! Indicador não definido.

Opções de bilhetagem.. Erro! Indicador não definido.

Opções de acompanhamento da chamada. Erro! Indicador não definido.

Opções para telefones ligados a linhas FXS. Erro! Indicador não definido.

Resumo.. Erro! Indicador não definido.

Questionário.. Erro! Indicador não definido.

Canais digitais T1/E1. Erro! Indicador não definido.

Objetivos. Erro! Indicador não definido.

Conceitos básicos. Erro! Indicador não definido.

De linhas analógicas para digitais. Erro! Indicador não definido.

Multiplexação por Divisão de Tempo. Erro! Indicador não definido.

Codificação de linha T1/E1. Erro! Indicador não definido.

Sinalização CAS e CCS. Erro! Indicador não definido.

Sinalização “Robbed bit”. Erro! Indicador não definido.

Sinalização CAS-R2. Erro! Indicador não definido.

ISDN-PRI ou RDSI Erro! Indicador não definido.

Escolhendo uma placa de telefonia para seu Asterisk. Erro! Indicador não definido.

Barramento a ser usado. Erro! Indicador não definido.

Uso de cancelamento de eco por hardware. Erro! Indicador não definido.

Tipo de sinalização. Erro! Indicador não definido.

Zaptel e Dahdi Erro! Indicador não definido.

Configurando um canal de telefonia no Asterisk. Erro! Indicador não definido.

Opções de configuração do arquivo chan_dahdi.conf. Erro! Indicador não definido.

Opções gerais, independentes do tipo de canal Erro! Indicador não definido.

Opções para conexões com rede ISDN.. Erro! Indicador não definido.

Opções de identificador de chamadas (Caller ID). Erro! Indicador não definido.

Opções de qualidade de áudio. Erro! Indicador não definido.

Configurando MFC/R2. Erro! Indicador não definido.

Entendendo o problema. Erro! Indicador não definido.

Explorando protocolo MFC/R2. Erro! Indicador não definido.

Seqüência de uma chamada MFC/R2. Erro! Indicador não definido.

Como usar o driver libopenR2. Erro! Indicador não definido.

Debugando a chamada com OpenR2. Erro! Indicador não definido.

Código dos países. Erro! Indicador não definido.

ANI e DNIS. Erro! Indicador não definido.

Nomenclatura dos canais ZAP. Erro! Indicador não definido.

Resumo.. Erro! Indicador não definido.

Questionário.. Erro! Indicador não definido.

Projetando redes com voz sobre IP. Erro! Indicador não definido.

Objetivos. Erro! Indicador não definido.

Arquitetura do Asterisk e voz sobre IP. Erro! Indicador não definido.

VoIP e o Modelo OSI Erro! Indicador não definido.

Como escolher um protocolo de sessão.. Erro! Indicador não definido.

SIP (Session Initiated Protocol) Erro! Indicador não definido.

IAX (Inter Asterisk eXchange) Erro! Indicador não definido.

MGCP (Media Gateway Control Protocol) Erro! Indicador não definido.

H.323. Erro! Indicador não definido.

Tabela de comparação entre os protocolos. Erro! Indicador não definido.

Peers, Users e Friends. Erro! Indicador não definido.

Codecs e conversão de Codecs. Erro! Indicador não definido.

Como escolher um CODEC. Erro! Indicador não definido.

Overhead causado pelos cabeçalhos. Erro! Indicador não definido.

Engenharia de tráfego.. Erro! Indicador não definido.

Matriz de interesse de tráfego. Erro! Indicador não definido.

Simplificações. Erro! Indicador não definido.

Método Erlang B. Erro! Indicador não definido.

Estratégias de redução do uso de banda passante. Erro! Indicador não definido.

Compressão de cabeçalho RTP (cRTP) Erro! Indicador não definido.

5.11.2 Modo IAX Trunked. Erro! Indicador não definido.

5.11.3 Aumentando a Carga de Voz. Erro! Indicador não definido.

Resumo.. Erro! Indicador não definido.

Questionário.. Erro! Indicador não definido.

O Protocolo IAX. Erro! Indicador não definido.

Objetivos do Capítulo.. Erro! Indicador não definido.

Teoria de operação.. Erro! Indicador não definido.

Uso de banda passante. Erro! Indicador não definido.

Nomenclatura dos canais. Erro! Indicador não definido.

Formato de uma conexão de saída. Erro! Indicador não definido.

Exemplo de canais de saída. Erro! Indicador não definido.

Formato de uma conexão de entrada. Erro! Indicador não definido.

Exemplo de canais de entrada. Erro! Indicador não definido.

Cenários de uso.. Erro! Indicador não definido.

Conectando um softfone IAX ao Asterisk. Erro! Indicador não definido.

Conectando-se a um provedor baseado em IAX2. Erro! Indicador não definido.

Laboratório – Conectando-se ao FreeWorldDialup usando IAX. Erro! Indicador não definido.

Interligando dois Asterisk com o IAX em modo trunk. Erro! Indicador não definido.

Autenticação no IAX. Erro! Indicador não definido.

Conexões de entrada. Erro! Indicador não definido.

Restrições baseadas em endereço IP. Erro! Indicador não definido.

Conexões de saída. Erro! Indicador não definido.

Interligando dois servidores Asterisk (forma simplificada) Erro! Indicador não definido.

Configuração do arquivo iax.conf. Erro! Indicador não definido.

Configuração do endereçamento. Erro! Indicador não definido.

Seleção dos codecs: Erro! Indicador não definido.

Buffer de Jitter Erro! Indicador não definido.

Marcação de pacotes. Erro! Indicador não definido.

Comandos de depuração do IAX2. Erro! Indicador não definido.

Resumo.. Erro! Indicador não definido.

Questionário.. Erro! Indicador não definido.

O protocolo SIP. Erro! Indicador não definido.

Objetivos. Erro! Indicador não definido.

Visão geral. Erro! Indicador não definido.

Teoria da Operação do SIP. Erro! Indicador não definido.

Processo de Registro do SIP. Erro! Indicador não definido.

Operação do SIP em modo Proxy. Erro! Indicador não definido.

Operação em modo de redirect. Erro! Indicador não definido.

Como o Asterisk trata o SIP. Erro! Indicador não definido.

Reinvites (re-convidando) Erro! Indicador não definido.

Mensagens SIP. Erro! Indicador não definido.

SDP (Protocolo de descrição da sessão) Erro! Indicador não definido.

Cenários avançados na utilização do SIP. Erro! Indicador não definido.

Conexão de um servidor Asterisk a um provedor SIP. Erro! Indicador não definido.

Conectando dois servidores Asterisk utilizando SIP. Erro! Indicador não definido.

O suporte do Asterisk a domínios. Erro! Indicador não definido.

Configurações Avançadas. Erro! Indicador não definido.

Configuração do codec a ser utilizado. Erro! Indicador não definido.

Opções de DTMF. Erro! Indicador não definido.

Opções de marcação de pacotes para QoS. Erro! Indicador não definido.

Autenticação das chamadas SIP. Erro! Indicador não definido.

Opções do RTP. Erro! Indicador não definido.

SIP NAT Traversal. Erro! Indicador não definido.

Full Cone (Cone Completo) Erro! Indicador não definido.

Restricted Cone (Cone Restrito) Erro! Indicador não definido.

Port Restricted Cone (Cone restrito por porta) Erro! Indicador não definido.

Simétrico. Erro! Indicador não definido.

Resumo dos tipos de NAT. Erro! Indicador não definido.

Sinalização SIP e trafego RTP através do NAT. Erro! Indicador não definido.

Asterisk atrás do NAT. Erro! Indicador não definido.

Limitações do SIP. Erro! Indicador não definido.

Textos de discagem utilizados com o SIP. Erro! Indicador não definido.

Comandos de console relacionados a SIP. Erro! Indicador não definido.

Resumo.. Erro! Indicador não definido.

7.10 Questionário.. Erro! Indicador não definido.

Básico do Plano de discagem... Erro! Indicador não definido.

Objetivos do capítulo.. Erro! Indicador não definido.

Estrutura do arquivo extensions.conf. Erro! Indicador não definido.

Seção [general] Erro! Indicador não definido.

Seção [globals] Erro! Indicador não definido.

Contextos. Erro! Indicador não definido.

Extensões. Erro! Indicador não definido.

Literais. Erro! Indicador não definido.

Padrões. Erro! Indicador não definido.

Extensões especiais. Erro! Indicador não definido.

Variáveis. Erro! Indicador não definido.

Variáveis globais. Erro! Indicador não definido.

Variáveis de canal Erro! Indicador não definido.

Variáveis de ambiente. Erro! Indicador não definido.

Variáveis específicas de aplicações. Erro! Indicador não definido.

Variáveis específicas para Macros. Erro! Indicador não definido.

Expressões. Erro! Indicador não definido.

Operadores. Erro! Indicador não definido.

Laboratório – Expressões Regulares. Erro! Indicador não definido.

Funções. Erro! Indicador não definido.

Comprimento da String. Erro! Indicador não definido.

Substrings. Erro! Indicador não definido.

Concatenação de Strings. Erro! Indicador não definido.

Aplicações.