Trabalho_Servidor_Asterix

SERVIDOR ASTERISK

TRABALHO INTERDISCIPLINAR

FUNDAMENTOS DE TELECOMUNICAÇÕES

SEGMENTOS DE REDES DE COMPUTADORES

COMPUTAÇÃO DISTRIBUÍDA

LEGISLAÇÃO E ÉTICA EM TELECOMUNICAÇÕES

Docentes:

Prof. Vladimir Romanelli

Prof. Luiz A. Pagani

Prof. Glauber Soares Pereira

Discentes (3º período):

Bruno Schissatti

Fabiano Fernandes

Marcos Roberto

Rogério Rui

Saulo Bolete

Escopo do trabalho:

a) A máquina dos servidores.

b) As placas de adaptação dos ramais analógicos e entroncamentos.

c) Detalhar a programação e categorização de cada terminal do arquivo digivoice.conf

d) Efetuar o levantamento de alternativas para aumentar a disponibilidade e desempenho do sistema e indicar, justificando, qual a melhor opção.

Conteúdo
A. Especificação de hardware para os servidores 1

1. O Hardware escolhido 1

i) Especificação 1

2. Sistema Operacional 2

3. Versão do Asterisk 2

B. Estrutura de conexão Tronco x Ramais 3

2. Por que escolhemos o Astribank? 3

3. Modularidade 3

4. Interface USB 3

5. Funcionamento 4

B. Configuração do sistema 7

1. etc/zaptel.conf 7

2. etc/asterisk/extensions.conf 7

3. etc/asterisk/zapata.conf 8

4. etc/asterisk/sip.conf 8

C. Disponibilidade e desempenho 9

1. Cluster Asterisk utilizando o DNS Round-Robin e DUNDi 9

i) DNS Round-Robin 9

ii) DUNDi 9

2. Cluster Asterisk utilizando Heartbeat 11

i) Como o Heartbeat trabalha? 11

ii) csync2 Configuration 12

iii) Versionamento do Heartbeat 13

3. Qual solução a ser utilizada? 13

Bibliografia 14


A. Especificação de hardware para os servidores
Para que o ambiente tenha alta disponibilidade com excelente desempenho, e ter ainda um end-life mais longo que demais ambientes optamos por trabalhar com servidores de maior porte.

1. O Hardware escolhido
Foi escolhido para esta implementação o servidor IBM® System x3550 (Figura 1), já que estamos aplicando uma solução onde poderá ocorrer expansão. Todas as características citadas tornam o x3550 o Hardware ideal para aqueles serviços que buscam desempenho e disponibilidade, oferece alta tecnologia com superior desempenho a baixos custos. O servidor x3550 permite a utilização de até dois discos SATA ou SAS com a mesma controladora onboard, mas não simultaneamente. As duas opções são hot-swap, ou seja, permitem a troca dos discos com a máquina ligada pela parte frontal do servidor. O que facilita a manutenção preventiva.

Figura-1.JPG

Figura 1

i) Especificação

Características principais:
  • Processador: Intel Quad-Core Xeon E5420 (2.5GHz/1333)
  • Cache Processador L2: 12MB
  • Quantidade de Processador Suportado: 2
  • Memória Padrão: 2x1GB
  • Memória Máxima: 32GB
  • Interface Memória: PC2-5300 ECC DDR2 FBDIMM 667MHz
  • Disco Padrão: Opcional
  • Disco Máximo: 1500GB SATA / 600GB SAS
  • Interface Disco: SATA / SAS Hot-Swap LFF
  • Controladora: SAS
  • Placa de Rede: Dual Gigabit integrada
  • Mídia Óptica: CDRW/DVD ROM Combo Drive (48/32/48/16 X )
  • Drive de 1.44MB: Opcional
  • Fonte de Alimentação: Suporta 2ª Fonte (Redundante)
  • Placa de Vídeo: 16MB
  • Porta USB: 4
  • Porta Paralela: Não
  • Slot PCI-X: 1 (Vide Observação Abaixo )
  • Slot PCI Express (PCI-E): 2
  • Gabinete: Rack / 1U
  • Controladora SAS Integrada suporta RAID-0, 1, 3 e 5

Recursos comuns
  • Reduz a energia com barramento frontal mais rápido no processador e na memória.
  • Gerenciamento de energia otimizado com novas ferramentas integradas.
  • Melhor desempenho do aplicativo com filtros snoop.

2. Sistema Operacional
Embora o Asterisk funcione também na plataforma Windows, recomendamos a utilização de sistemas operacionais baseados na plataforma UNIX como o FreeBSD (onde originalmente foi concebida a rede Zapata) ou distribuições Linux como o CentOS que é a distribuição oficial para testes pelo Asterisk ou o Red Hat Enterprise que é similar ao CentOS mas que possui contrato de suporte.

3. Versão do Asterisk
O Asterisk é produzido sob licença GPL, a versão mais recente disponível para download no site www.asterisk.org é a 1.6.0.3-rc1

B. Estrutura de conexão Tronco x Ramais
Para a configuração proposta, a melhor opção encontrada foi o Astribank XORCOM, equipamento USB que substitui o uso de placas internas.


2. Por que escolhemos o Astribank?
Astribank se demonstrou a melhor opção para conectar um servidor Asterisk ao mundo da telefonia tradicional por ser um channel bank inteligente para o Asterisk PBX. Conecta-se ao servidor Asterisk através de um conector USB-2. O Astribank tem uma arquitetura que foi projetada para facilitar a integração. Quando utilizado com a distribuição do Xorcom Rapid ou Xorcom TS-1 é praticamente “Plug & Play”, não como outras soluções do mercado.

3. Modularidade
O Astribank funciona de forma modular de fácil instalação, tendo padrão de 19” para uso em rack's e também em bandejas, diferente das placas que necessitam do barramento PCI, dos servidores sendo limitado pela quantidade de barramento. O Astribank facilita no processo de manutenção, como as ligações dos equipamentos são feitas através de cabo USB, podem ser desligados sem a necessidade de para o funcionamento do servidor, o mesmo não acontece com as placas, qualquer tipo de manutenção a ser feita deverá ser feito o desligamento. Múltiplas unidades de Astribank podem ser conectadas a um único servidor Asterisk usando diferentes portas USB, hubs USB ou placas PCI USB. Como as conexões do Astribank são tipo RJ, a implementação em uma rede de cabeamento estruturado fica fácil e prática, usando apenas cabos do tipo patch Cord RJ/RJ. O Astribank é a solução ideal na migração de centrais de telefonia com ramais analógicos para o Asterisk.

4. Interface USB
A relação do USB 2.0 fornece uma velocidade teórica de 480.000.000 bits por segundo. Uso descomprimido típicos de uma conversa telefônica aproximadamente 64.000 bits por segundo em um sentido, mais algumas despesas gerais; no total menos de 200.000 bits por segundo, a chamada de telefone é usada. Assim, o número simultâneo teórico de conversações que a relação do USB 2.0 pode segurar é 480.000.000 bits divididos por 200.000 bits: aproximadamente 2.400 chamadas para um único ponto do USB 2.0. Este é um número teórico, naturalmente, e o processador de anfitrião típico não poderá segurar esta quantidade de chamadas simultâneas, mas dá uma resposta desobstruída à pergunta: "Pode o ponto do USB suportar o tráfego pesado da telefonia com Astribanks múltiplos?" Que conecta Astribank unidades múltiplas a um único ponto do USB 2.0 é fácil: usa simplesmente um cabo do USB 2.0 para conectar muitas unidades de Astribank.

5. Funcionamento
A linha XR0000 do Astribank oferece uma vasta combinação de portas FXS, FXO, BRI ISDN e de entrada e saída. Astribank é solução líder em sistemas Asterisk de alta densidade, como os usados em hotéis, condomínios, etc. Hoje Astribank é testado com versões Linux Debian, CentOS 5 e Trixbox (CentOS 4).
O driver do Xorcom para o Astribank agora é oficialmente parte do Zaptel. Digium anunciou a versão do Zaptel 1.2.4 para o Asterisk na metade do mês de fevereiro, fazendo integração do Astribank com sistemas Asterisk. Dentre as modificações e implementações, eles listaram o novo driver para o Astribank-8 (o primeiro membro da família Astribank) e para os futuros modelos do Astribank.
Para a configuração do Xorcom é necessário instalar os pacotes: fxload e libusb-deb, para isso será utilizado o gerenciador de pacotes APT.
Astribank-8 - 8 FXO (Foreign eXchange Office) (Figura 2) é um banco de canais com 8 portas FXO analógica onde será feito a conexão dos troncos da concessionária de telefonia.

Figura-2.jpg

Figura 2

Astribank 32-32 FXS (Foreign eXchange Station) (Figura 3) é um banco de canais com 32 portas FXS analógicas onde será feito a conexão dos ramais internos.

Figura-3.gif

Figura 3

Para demonstrar a modularidade da solução proposta, expressamos na figura 4 a estrutura lógica de funcionamento de uma rede de telefonia baseada no Asterisk e Astribank.

Figura-4.jpg

Figura 4

Um exemplo de como os equipamentos podem ser instalados em rack encontra-se na figura 5.

Figura-5.jpg

Figura 5

B. Configuração do sistema

A configuração do Astribank Xorcom requer o uso dos arquivos zaptel.conf, extensions.conf e zapata.conf, estes arquivo são responsáveis por indicar ao Asterisk como funcionará cada uma das portas dos equipamentos (FXO e FXS), permitindo ao software gerenciar as configurações de telefonia escolhidas. Já a configuração dos ramais digitais é feita no arquivo sip.conf.
Abaixo está um exemplo de como configurar cada um destes arquivos para atender à proposta do trabalho.

1. /etc/zaptel.conf
fxosks=1-3 ; Configura o Astribank FXO para 3 linhas analógicas.
fxsks=9-38 ; Configura o Astribank FXS para os 30 ramais analógicos.
loadzone=br ; Carrega a zona brasileira para tons multifrequenciais de sinalização
defaultzone=br ; Define a zona brasileira de tons como padrão

2. /etc/asterisk/extensions.conf
"phones-zap"
exten => _6XXX,1,Dial(ZAP/${EXTEN:1}) ; Define o número dos ramais analógicos para 6001 em diante e informa que para usar este ramal, será suprimido o primeiro número “6” para que a ligação vá para o ramal (Ex.: 6015 será 15).

"phones-sip"
exten => _7XXX,1,Dial(SIP/${EXTEN}) ; Define o número dos ramais digitais para 7001 em diante e informa que para usar este ramal, o número será inteiro (Ex.: 7015 será 7015).

"trunk"
exten => _0.,1,Dial(Zap/g0/${EXTEN:1}) ; Define que para efetuar ligações externas os usuários deverão discar o 0, este será suprimido ao ser enviado para a concessionária de telefonia.

"from-internal"
include => phones-zap ; Define os ramais analógicos no contexto from-internal do extensions.conf
include => phones-sip ; Define os ramais digitais no contexto from-internal do extensions.conf
include => trunk ; Define os as ligações externas no contexto from-internal do extensions.conf

"from-pstn"
exten => s,1,Dial(Zap/9) ; Define que as ligações recebidas da rede pública serão direcionadas para o primeiro ramal analógico.

3. /etc/asterisk/zapata.conf
"channels"
;Configuração para 32-FXS/8-FXO
echocancel=yes ; Configura o cancelamento de eco para as linhas

;FXS
signalling=fxo_ks ; Define a sinalização da porta
context=from-internal ; Define o contexto pré-definido no arquivo extensions.conf
channel => 9-38 ; determina que a partir do canal 9 até o 38 haverá 30 ramais analógicos

;FXO
signalling=fxs_ks ; Define a sinalização da porta
context=from-pstn ; Define o contexto pré-definido no arquivo extensions.conf
channel => 1-3 ; Determina que a partir do canal 1 até o 3 haverá 3 linhas analógicas

4. /etc/asterisk/sip.conf
"general"
context=from-internal ; Define o uso do contexto pré-definido no arquivo extensions.conf
allowguest=no ; Não permite ligações não autenticadas
allow=all ; Permite o uso de qualquer codec

"7001"
secret=senha ; Define a senha do ramal
host=dynamic ; Permite que o endereço IP do guest seja dinâmico

"7002" ... "7019" ; As configurações devem ser repetidas em todos os ramais
secret=senha
host=dynamic

"7020"
secret=senha ; Define a senha do ramal
host=dynamic ; Permite que o endereço IP do guest seja dinâmico


C. Disponibilidade e desempenho
1. Cluster Asterisk utilizando o DNS Round-Robin e DUNDi

i) DNS Round-Robin

O DNS Round-Robin é a capacidade que o servidor DNS tem de atribuir dois ou mais endereços IP para um mesmo nome. Com isso pode-se realizar um balanceamento de carga simples.
Seu funcionamento consiste em dividir as conexões entre os servidores. Essa divisão é feita a partir do primeiro endereço cadastrado no arquivo até o ultimo.
Algo importante sobre o DNS Round-Robin é que ele não é uma solução de redundância. Se um dos servidores parar de funcionar, o DNS Round-Robin continuará mandando requisições para esse servidor.

ii) DUNDi

O DUNDi é um sistema que foi feito pelo próprio criador do Asterisk. DUNDi é um sistema peer-to-peer para localização de gateways Internet para serviços de telefonia em um Cluster Asterisk. Diferente dos serviços centralizados tradicionais (como o padrão ENUM consideravelmente simples e conciso), o DUNDi é completamente distribuído sem nenhuma hierarquia centralizada.
Com o DUNDi é possível localizar uma extensão em qualquer um dos servidores do Cluster. Para isso pode-se usar um servidor de consultas, que será responsável por fazer todas as consultas, ou ligar os servidores do Cluster diretamente. O servidor de consultas será responsável por procurar a extensão nos servidores de registro. Se um dos servidores de registro falhar, ele continuará procurando em outros servidores pela extensão.
O DUNDi também pode ser integrado ao Asterisk Realtime. Este é um sistema que permite ter a configuração do Asterisk num Banco de dados SQL. Com isso é possível realizar alterações no plano de discagem sem ter de reiniciar o Asterisk (e perder as chamadas correntes). Outra utilidade é que se um dos servidores do Cluster DUNDi parar de funcionar, o Asterisk Realtime pode localizar e ligar essa extensão mesmo que ela não esteja registrada (se ela for um ramal ou serviço que apenas se registrava no servidor).
Existe também a Rede DUNDi, ao qual participam algumas empresas do Brasil e do mundo. O seu objetivo facilitar a interligação dos sistemas Asterisk, além de facilitar a interconexão com a PSTN.

Figura-6.JPG

Figura 6

Nesse caso, o DNS Round-Robin atua como se fosse um servidor proxy. Ele receberá a requisição dos ramais para registro e enviará para um dos PABX, balanceando as requisições dos mesmos. O DUNDi permitirá a esses ramais se localizarem como se estivessem todos na mesma central.
Supondo que o usuário do ramal 9901, que está registrado no PABX1 deseja falar com o usuário do ramal 2010, que está no PABX2, o usuário do ramal 9901 discará: 2010.
O PABX1 verificará se o ramal 2010 está registrado nele para realizar a chamada. Ao verificar que ele não se encontra registrado, fará uma consulta DUNDi ao PABX2 para saber se o ramal está registrado nele. Nesse caso receberá uma resposta afirmativa do PABX2. A partir desse ponto os dois PABX estabelecem um canal IAX para a chamada. Então ela transcorre no PABX2 normalmente.


2. Cluster Asterisk utilizando Heartbeat

O Heartbeat é uma parte de software que foi escrito para o projeto Linux-HA. A sua função é detectar a morte-do-nó, prover comunicações e a gerência do cluster em um processo. O programa do Heartbeat é um dos componentes do núcleo do Linux-HA (High-Availability Linux). O Heartbeat é altamente portátil e funciona na plataforma Linux, FreeBSD e Solaris. A compatibilidade com outros sistemas operacionais esta em desenvolvimento.

i) Como o Heartbeat trabalha?

Figura-7.JPG

Figura 7

  • Os servidores são padronizados com a configuração active/standby.
  • Todos os recursos (os endereços IP) são configurados pelo Heartbeat que são utilizados por clientes, neste caso seria 10.0.10.10.
  • A aplicação Heartbeat em ambos os servidores comunica-se um com o outro enviando pacotes broadcast ou unicast através do Ethernet.

Quando o nó ativo falhar:

Figura-8.JPG

Figura 8
  • O Server 2 Standby identifica que o nó ativo falhou porque para de receber pacotes heartbeats do Server 1
  • Todos os recursos, incluindo o IP address, são ativados no Server 2 e todos os serviços são inicializados.
  • Dentro de segundos todos os serviços estão funcionando corretamente no Server 2.

Quando o Active Server (Server1) retorna:

Figura-9.JPG

Figura 9

  • Dependendo da configuração, o Server 1 pode agora assumir o papel de Standby
  • Se desejado, o cluster pode ser configurado para que, quando o Server 1 retornar, todos os serviços sejam transferidos em background.

O que é preciso para termos essa solução?
  • No mínimo 2 servidores Linux (de preferência com hardware idênticos)
  • Aplicação Heartbeat
  • Configuração csync2 para a replicação do cluster
  • Servidor Asterisk


ii) csync2 Configuration
  • A fim assegurar para que a replicação dos dados e a configuração seja feita corretamente, um arquivo chamado HBmaster é criado no Active Server
  • O job abaixo é configurado em ambos servidores
  • /5 * * * * "-f /tmp/.HB-master" && /usr/local/sbin/csync2 -xv >/dev/null 2>/dev/null
  • A replicação ocorrerá somente quando o arquivo HBmaster existir



iii) Versionamento do Heartbeat
O Heartbeat versão 1 é utilizada para configuração de um simples cluster de Asterisk, para um ambiente mais complexo devemos utilizar o Heartbeat versão 2.
O que há de diferente na versão 2?
  • Melhorias no núcleo de infra-estrurua:
  • Reconhecimento de mensagens e controle de fluxo de mensagens

  • Logon assíncrono
  • Versões 1.x (2-node) clusters suportados inteiramente
  • Multi-nó suportados (até 16 conjuntos do nó testados)
  • Suporte para agentes OCF (Open Cluster Framework)
  • Suporte para recursos complexos (grupos e clones)
  • Suporte a localização de recursos e ordem de restrição de recursos
  • Ferramenta de conversão para arquivos haresources (arquivos indispensáveis para o Heartbeat) existentes.
  • Suporte a requisições de monitoramento de recursos
  • Modo de manutenção de recursos
  • Ferramenta de monitoramento de configuração e de status para cluster simples

3. Qual solução a ser utilizada?
O Heartbeat monitora 2 ou mais nós em um ambiente e, em caso de detecção de falha, redireciona o serviço para outro servidor de forma transparente para o serviço Asterisk. Esta flexibilidade de alternar as funções Active e Standby entre os servidores do cluster em Heartbeat, permite rodízio de servidores garantindo o funcionamento do cluster de forma simples o que, conseqüentemente, melhor se identifica com o conceito de alta disponibilidade.


Bibliografia

  • http://www.xorcom.com/images/stories/techdocs/XR1000-Manual.pdf
  • http://www.digium.com/asterisk_handbook/zapata.conf.pdf
  • http://docs.tzafrir.org.il/README.Astribank.html
  • http://www.voip-info.org
  • http://voip-info.capatres.com
  • http://www.disc-os.org/e107/request.php?13
  • http://200.152.208.135/ipcommunications2007/media/pub/08.11.2007/08.11%20Sala8%20Alexandre%20Keller%2012h00.pdf
  • http://www.linux-ha.org/Heartbeat

Created by: fernandesdeoliveira, Last modification: Fri 05 of Nov, 2010 (23:41 UTC) by admin


Please update this page with new information, just login and click on the "Edit" or "Discussion" tab. Get a free login here: Register Thanks! - Find us on Google+

Page Changes | Comments

 

Featured -

Search: