Upgrade 3CX to v18 and get it hosted free!

Trabalho_Servidor_Asterix

Author image

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.

Trabalho_Servidor_Asterix - Voip.info.org

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.

Trabalho_Servidor_Asterix - Voip.info.org - 1

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.

Trabalho_Servidor_Asterix - Voip.info.org - 2

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.

Trabalho_Servidor_Asterix - Voip.info.org - 3

Figura 4

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

Trabalho_Servidor_Asterix - Voip.info.org - 4

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.

Trabalho_Servidor_Asterix - Voip.info.org - 5

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?

Trabalho_Servidor_Asterix - Voip.info.org - 6

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:

Trabalho_Servidor_Asterix - Voip.info.org - 7

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:

Trabalho_Servidor_Asterix - Voip.info.org - 8

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
  • https://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

 

Related Posts:

Get 3CX - Absolutely Free!
Link up your team and customers Phone System Live Chat Video Conferencing

Hosted or Self-managed. Up to 10 users free forever. No credit card. Try risk free.

3CX
A 3CX Account with that email already exists. You will be redirected to the Customer Portal to sign in or reset your password if you've forgotten it.