Mestrado Integrado em Engenharia Electrotécnica e de Computadores
Serviços de Comunicações
2014/2015
TP5 – ASTERISK
Bruno Rafael Ribeiro Costa
201005303
Eduardo Nuno Moreira Soares de Almeida
201000641
Professor: João Manuel Couto das Neves
FEUP – MIEEC | Serviços de Comunicações
2014/2015
INTRODUÇÃO
A utilização dos serviços de vídeo-telefonia sobre IP tem vindo a aumentar significativamente
ao longo dos últimos anos, tanto a nível doméstico como empresarial. A importância crescente
deste tipo de serviços deve-se a vários factores, nomeadamente a possibilidade de instalação,
configuração e manutenção do serviço a um custo reduzido, bem como as novas funcionalidades
oferecidas por estes sistemas, comparativamente com o serviço tradicional da rede PSTN. A
nível empresarial, a existência de várias filiais distribuídas por áreas geográficas distintas, bem
como a necessidade das novas funcionalidades presentes nestes serviços (tais como a
mobilidade dos utilizadores, videochamadas, conferências, entre outros), contribui para o
crescente número de migrações dos serviços da rede PSTN para a rede VoIP. Apesar dos custos
iniciais decorrentes da migração, esta permite uma redução de custos significativos a longo
prazo, sendo também uma solução facilmente escalável, o que permite a expansão do serviço
de acordo com o crescimento da empresa, sem necessidade de alterações de fundo.
O Asterisk é uma implementação em software open-source de um Private Branch Exchange
(PBX), com suporte a VoIP. Este serviço permite uma implementação e gestão simples de um
PBX VoIP, que pode ser implementado a nível empresarial.
Neste trabalho laboratorial pretende-se implementar um serviço de vídeo-telefonia sobre IP,
utilizando o PBX Asterisk, explorando as funcionalidades oferecidas pelo mesmo.
Eduardo Almeida & Bruno Costa
Asterisk
2
FEUP – MIEEC | Serviços de Comunicações
2014/2015
CONFIGURAÇÃO DA REDE
ESQUEMA DA REDE
Para implementar o sistema VoIP, foi utilizado o esquema da rede apresentado na imagem
abaixo. Para facilitar a gestão e implementação dos servidores Asterisk, foram criadas 2
máquinas virtuais (VM) no mesmo PC, em modo bridge na rede 192.168.109.0/24, contendo,
cada uma, um dos servidores. Os endereços IP dos dispositivos da rede podem ser consultados
na tabela abaixo.
Figura 1 – Esquema de implementação da rede.
Dispositivo
Endereço IP
Asterisk 1 (PBX 1)
Asterisk 1 (PBX 1)
Softphones (terminais VoIP)
192.168.109.223
192.168.109.224
Atribuído por DHCP
Tabela 1 – Lista de extensões criadas em ambos os PBX.
Eduardo Almeida & Bruno Costa
Asterisk
3
FEUP – MIEEC | Serviços de Comunicações
2014/2015
CONFIGURAÇÃO DO ASTERISK
APPLIANCE
Para facilitar a instalação dos serviços fundamentais constituintes do Asterisk, foi utilizado a
appliance “AsteriskNow IP PBX”. Esta appliance consiste numa imagem pronta a ser instalada
num PC / VM, contendo 2 componentes fundamentais: uma distribuição de Linux (CentOS),
juntamente com uma aplicação para a gestão do Asterisk via web-browser (FreePBX).
EXTENSÕES
Por forma a testar o funcionamento do Asterisk, foram criadas várias extensões em ambos os
PBX. A tabela seguinte apresenta as extensões criadas, juntamente com o seu nome (display
name).
Nome
Extensão
PBXy-Ext001
PBXy-Ext002
PBXy-Ext003
PBXy-Ext007
PBXy-Ext008
PBXy-IRV
PBX1-Conferência
001
002
003
007
008
010
100
Tabela 2 – Lista de extensões criadas em ambos os PBX (onde y representa o número do PBX).
O processo de criação das extensões envolveu vários passos descritos em seguida. Em primeiro
lugar, a cada extensão criada foram associados novos utilizadores, protegidas com uma
password para evitar o uso indevido das mesmas. Por outro lado, foi também activado o
voicemail para essa extensão, protegido com uma password.
TRUNKS
Para que ambos os PBX possam comunicar entre si (para encaminhar chamadas entre si), é
necessário configurar trunks. Existem essencialmente 2 tipos de trunks: SIP e IAX / IAX2. Como
ambos os PBX são Asterisk, optou-se por configurar trunks IAX2, já que reduz significativamente
a largura de banda consumida e consegue facilmente contornar NATs / firewalls.
Eduardo Almeida & Bruno Costa
Asterisk
4
FEUP – MIEEC | Serviços de Comunicações
2014/2015
Figura 2 – Esquema de ligação trunk entre ambos os PBX.
As configurações dos trunks em ambos os PBX podem ser consultados nas tabelas seguintes, de
onde se destacam os seguintes parâmetros:


“Outbound CallerID”, que permite identificar facilmente a origem das chamadas
recebidas.
“context=from-trunk”, para permitir que todas as chamadas sejam processadas pelas
regras definidas nas rotas.
PBX 1:
General Settings:
Trunk Name: trunk_pbx2
Outbound CallerID: pbx1
Outgoing settings:
Trunk name: trunk_pbx2
PEER details:
username=trunk_pbx1
secret=qwe123
host=192.168.109.224
type=peer
context=from-trunk
Incoming settings:
User context: trunk_pbx2
USER details:
secret=qwe123
context=from-trunk
type=peer
Figura 3 – Configuração do trunk IAX2 no PBX 1 [192.168.109.223].
Eduardo Almeida & Bruno Costa
Asterisk
5
FEUP – MIEEC | Serviços de Comunicações
2014/2015
PBX 2:
General Settings:
Trunk Name: trunk_pbx1
Outbound CallerID: pbx2
Outgoing settings:
Trunk name: trunk_pbx1
PEER details:
username=trunk_pbx2
secret=qwe123
host=192.168.109.223
type=peer
context=from-trunk
Incoming settings:
User context: trunk_pbx1
USER details:
secret=qwe123
context=from-trunk
type=user
Figura 4 – Configuração do trunk IAX2 no PBX 2 [192.168.109.224].
ROTAS
Em complemento à configuração dos trunks, é também necessário configurar as rotas de saída
e de entrada.
Outbound routes:
As rotas de saída são responsáveis por analisar as tentativas de estabelecimento de chamadas
efectuadas no PBX e, caso o número de destino (dialled number) corresponder a um
determinado padrão definido, encaminhá-las para um determinado trunk.
Deste modo, em ambos os PBX foram configuradas rotas de saída que permitam contactar
extensões registadas no outro PBX. Para isso, foi configurado um prefixo de chamada que os
utilizadores deverão acrescentar antes da extensão de destino da chamada. Dado que a
topologia da rede apenas contempla 2 PBX que comunicam exclusivamente entre si, adoptouse o mesmo prefixo em ambos os PBX (10), como indicativo de chamada externa (ao PBX). No
entanto, num cenário de utilização genérico, deverá ser configurado um prefixo distinto para
cada PBX de saída (por exemplo, outras filiais da empresa) havendo também um prefixo
genérico para chamadas para a rede PSTN.
Um extracto das configurações mais importantes pode ser consultado na figura abaixo:
Eduardo Almeida & Bruno Costa
Asterisk
6
FEUP – MIEEC | Serviços de Comunicações
2014/2015
Figura 5 – Extracto das configurações da rota de saída configurada em ambos os PBX.
Inbound routes:
No caso do PBX 2, para implementar a funcionalidade de Interactive Voice Response (IVR) é
também necessário configurar uma rota de entrada, que permita activar o serviço IVR através
de um Direct Inward Dial (DID) criado para o efeito. Assim, foi definida a extensão 010 (no PBX
2) como DID para o serviço IVR, que será explicado na secção seguinte.
Um extracto das configurações mais importantes pode ser consultado na figura abaixo:
Figura 6 – Extracto das configurações da rota de saída configurada no PBX 2.
TERMINAIS VoIP
Para que o sistema ficasse totalmente configurado, e para testar o seu funcionamento, foi
também necessário configurar os terminais VoIP. Deste modo, foram utilizados diferentes
softphones instalados em PC (Zoiper e X-Lite) e em smartphones Android (Zoiper), uma vez que
cada um fornece funcionalidades diferentes. Com efeito, o Zoiper permite várias extensões
registadas simultaneamente ao passo que o X-Lite permite a realização de videochamadas sem
a necessidade de um upgrade do software.
Desta forma, os softphones foram configurados de acordo com as definições da extensão e do
respectivo PBX (i.e., endereço IP do PBX, extensão e respectiva password).
Eduardo Almeida & Bruno Costa
Asterisk
7
FEUP – MIEEC | Serviços de Comunicações
2014/2015
FUNCIONALIDADES IMPLEMENTADAS
Para explorar as possibilidades e vantagens oferecidas pelo Asterisk, foram configuradas várias
funcionalidades neste sistema. Dada a vasta quantidade de funcionalidades disponíveis e o
prazo definido para a conclusão do trabalho, optou-se por implementar as funcionalidades
essenciais no contexto empresarial, bem como em sistemas similares.
Os detalhes de implementação de cada funcionalidade implementada são apresentados nas
secções seguintes.
CHAMADA DE VOZ
A funcionalidade fundamental num sistema de comunicações VoIP consiste na realização de
chamadas de voz entre extensões do mesmo PBX ou de PBX diferentes. Para a implementar,
foram criadas várias extensões em ambos os PBX, juntamente com a configuração dos trunks e
rotas de saída, tal como indicado na secção anterior.
Para validar a correcta configuração dos sistemas, foi realizada uma chamada de uma extensão
do PBX 2 para uma extensão do PBX 1. De referir que, tal como indicado na secção anterior, para
realizar a chamada para uma extensão externa, foi necessário acrescentar o prefixo de saída
(10) antes da extensão de destino.
A notificação de chamada recebida no PBX 1 é apresentada na figura seguinte.
Figura 7 – Notificação de chamada recebida da extensão do PBX 2.
Eduardo Almeida & Bruno Costa
Asterisk
8
FEUP – MIEEC | Serviços de Comunicações
2014/2015
Logs / estatísticas:
Outra funcionalidade do Asterisk consiste em registar todas as acções dos utilizadores em logs,
tal como informações relevantes ao funcionamento do sistema. Posteriormente, com base nesta
informação, é possível fazer uma análise ao sistema por forma a reconhecer padrões de
utilização, nomeadamente ao nível do volume de chamadas por unidade de tempo (e.g., dia,
hora) e duração média das chamadas.
A figura seguinte apresenta um gráfico com algumas estatísticas de chamadas do PBX
implementado neste trabalho.
Figura 8 – Gráfico de barras da distribuição do número de chamadas efectuadas por dia, juntamente com a duração média das
chamadas de cada dia.
Para confirmar o correcto processamento da chamada, foram consultados os logs do Asterisk.
Nas figuras seguintes são apresentados os logs de uma tentativa de realização de chamada com
rejeição do destino; e o estabelecimento de uma chamada com sucesso.
Figura 9 – Extracto do log do PBX 1 durante a tentativa de realização de uma chamada rejeitada.
Figura 10 – Extracto do log do PBX 1 durante a realização de uma chamada aceite atendida.
Em qualquer momento é possível consultar a lista dos utilizadores registados no sistema, além
dos peers IAX2, acedendo ao menu “Reports”.
Eduardo Almeida & Bruno Costa
Asterisk
9
FEUP – MIEEC | Serviços de Comunicações
2014/2015
Figura 11 – Visualização dos utilizadores registados no sistema, juntamente com os peers IAX2.
ON HOLD MUSIC
Durante o estabelecimento de uma chamada ou enquanto a chamada activa se encontra em
espera, é ouvida uma música no terminal VoIP (i.e., on hold music).
Figura 12 – Configuração de On Hold Music.
REENCAMINHAMENTO DE CHAMADAS
Outra funcionalidade configurada no PBX 2 foi o reencaminhamento de chamadas. De facto,
sempre que for realizada uma chamada destinada à extensão PBX2-008, e se esta a rejeitar ou
estiver ocupada, a chamada será reencaminhada para a extensão PBX2-007.
A configuração desta funcionalidade é realizada no menu de configuração da respectiva
extensão, tal como apresentado na figura seguinte.
Eduardo Almeida & Bruno Costa
Asterisk
10
FEUP – MIEEC | Serviços de Comunicações
2014/2015
Figura 13 – Extracto de configuração da funcionalidade de reencaminhamento de chamadas na extensão PBX2-008.
CONFERÊNCIA
A configuração de uma conferência é equivalente à criação de uma nova extensão no PBX. De
facto, um método de configuração de conferências consiste em criar uma extensão dedicada
para alojar a conferência, ao qual os utilizadores acedem através de uma chamada normal para
a extensão indicada. Outro método consiste em adicionar novos utilizadores a uma chamada
activa.
Nesta conferência podem ser definidas várias configurações, nomeadamente uma password de
acesso, a notificação de entrada / saída de utilizadores na conferência juntamente com uma
gravação da sua identificação e ainda limitação do número máximo de utilizadores simultâneos
na conferência.
Para efeitos de teste foi criada uma conferência na extensão 100 do PBX 1, onde se juntaram 3
utilizadores de ambos os PBX.
A configuração da conferência pode ser consultada na figura seguinte.
Eduardo Almeida & Bruno Costa
Asterisk
11
FEUP – MIEEC | Serviços de Comunicações
2014/2015
Figura 14 – Extracto das configurações da conferência no PBX 1.
VÍDEOCHAMADA
O suporte a videochamadas foi outra das funcionalidades implementadas neste trabalho. No
entanto, dada a limitação da largura de banda disponível (potenciado pelo excessivo número de
utilizadores na rede), além dos codecs utilizados para as videochamadas, a sua qualidade é
bastante limitada.
A configuração deste serviço é realizada activando as seguintes opções “Settings” -> “Asterisk
IAX settings” -> “Video support: enabled” e “Settings” -> “Asterisk SIP settings” -> “Chan SIP” ->
“Video support: enabled” -> “max bit rate = 100000 kb/s”. A lista dos codecs utilizados nas
chamadas pode ser consultado na figura abaixo.
Para comprovar a correcta configuração desta funcionalidade é apresentado um screenshot de
um smartphone Android a realizar uma videochamada através do Zoiper.
Eduardo Almeida & Bruno Costa
Asterisk
12
FEUP – MIEEC | Serviços de Comunicações
2014/2015
Figura 15 – Screenshot de um smartphone Android a realizar
uma videochamada através do Zoiper.
Figura 16 – Configuração dos codecs utilizados nas
chamadas.
INTERACTIVE VOICE RESPONSE (IVR)
Tal como referido na secção “Inbound Routes”, para configurar o serviço de Interactive Voice
Response (IVR), foi definido um DID específico no PBX 2 para o efeito (010).
Para este trabalho, o serviço foi configurado consiste na apresentação de uma lista telefónica
interactiva, onde são anunciadas as extensões disponíveis que o “chamador” pode contactar
(através de uma gravação automática personalizada), bastando marcar o número
correspondente à extensão (i.e., 1 = Ext001). Assim, os 3 primeiros algarismos reencaminham a
chamada para as extensões correspondentes. No caso do valor introduzido ser incorrecto é
apresentada uma mensagem de erro (gravação automática personalizada) e o recomeço do
processo. De realçar que este serviço só se encontra disponível para chamadas com origem em
PBX externos (i.e., PBX 1), já que a sua activação requere o processamento das chamadas pelas
regras definidas na inbound route.
Este serviço pode ser utilizado pelas empresas quando não é pretendido que determinadas
extensões estejam acessíveis directamente de fora, obrigando a passar pela “central de
distribuição” automática. No entanto, outra utilização frequente deste tipo de serviço consiste
em disponibilizar informações e/ou realizar acções automaticamente sem a necessidade de uma
intervenção humana.
Os extractos relevantes das configurações do IVR e das gravações automáticas (i.e.,
announcements) podem ser consultados nas figuras seguintes.
Eduardo Almeida & Bruno Costa
Asterisk
13
FEUP – MIEEC | Serviços de Comunicações
2014/2015
Figura 17 – Configuração do IVR.
Figura 18 – Configuração dos announcements contendo as gravações utilizadas no serviço IVR.
Eduardo Almeida & Bruno Costa
Asterisk
14
FEUP – MIEEC | Serviços de Comunicações
2014/2015
VOICE-MAIL:
Outra funcionalidade importante implementada é o voicemail. Este serviço permite, a quem liga,
deixar uma mensagem de voz na caixa de correio de voz da extensão contactada, caso a
chamada seja rejeitada ou não atendida. Estas mensagens poderão ser ouvidas posteriormente
pelo utilizador da extensão, através da marcação da extensão *98 – para o seu voicemail – ou
*97 – para a consulta de qualquer extensão registada no PBX. Em ambos os casos, o acesso ao
serviço está protegido por uma password.
A configuração deste serviço é realizada no menu de configuração da respectiva extensão,
bastando activar a opção de voicemail. De realçar a activação das opções:


“Require from same extension”, que obriga a introdução da password.
“Play envelope”, que anuncia a data da mensagem antes do seu conteúdo.
A demonstração da configuração do voicemail da extensão 001, bem como um extracto das
extensões do PBX com voicemail configurado são apresentados nas figuras seguintes.
O Asterisk permite o envio da mensagem de voicemail recebida para um dado endereço de email. Apesar desta funcionalidade não ter sido demonstrada na aula, a sua configuração é
apresentada na figura seguinte.
Figura 19 – Extracto de configuração do voicemail da
extensão 001.
Eduardo Almeida & Bruno Costa
Asterisk
Figura 20 – Extracto das extensões com voicemail activo, incluindo o
número de mensagens novas na respectiva caixa de correio.
15
FEUP – MIEEC | Serviços de Comunicações
2014/2015
CONCLUSÃO
Com a realização deste trabalho, foi possível implementar um sistema de vídeo-telefonia sobre
IP com as funcionalidades mais requisitadas em contextos empresariais, que muito ultrapassam
uma simples chamada de voz entre 2 extensões. Com efeito, todas as configurações realizadas
tiveram em mente a aplicação desta solução em cenários reais, tal como foi possível verificar ao
longo do relatório.
Deste modo, a realização do trabalho permitiu o contacto com um sistema real de vídeotelefonia sobre IP, o que permitiu adquirir conhecimentos fulcrais sobre o funcionamento e
implementação destes serviços em ambientes de utilização reais.
Eduardo Almeida & Bruno Costa
Asterisk
16
FEUP – MIEEC | Serviços de Comunicações
2014/2015
BIBLIOGRAFIA
Neves, João. 2013.Video Telephony over IP. Portugal: INESCPorto.
Asterisk. 2014. Asterisk. http://www.asterisk.org/ (acedido em 17 de Dezembro de 2014).
Asterisk. 2014. Dashboard - Asterisk Project Wiki. https://wiki.asterisk.org/ (acedido em 17 de
Dezembro de 2014).
FreePBX. 2014. The Free Stands for Freedom - FreePBX. http://www.freepbx.org/ (acedido em
17 de Dezembro de 2014).
Wiki FreePBX. 2014. Dashboard – Documentation. http://wiki.freepbx.org/ (acedido em 17 de
Dezembro de 2014).
Wiki FreePBX. 2014. Connecting Two FreePBX-Asterisk Systems Together Over the Internet FreePBX Modules - Documentation.
http://wiki.freepbx.org/pages/viewpage.action?pageId=4161588 (acedido em 17 de Dezembro
de 2014).
Voip-Info. 2014. Asterisk - documentation of application commands - voip-info.org.
http://www.voip-info.org/wiki/view/Asterisk+-+documentation+of+application+commands
(acedido em 17 de Dezembro de 2014).
Asterisk Docs. 2014. Connecting Two Asterisk Boxes Together via IAX.
http://www.asteriskdocs.org/en/2nd_Edition/asterisk-book-html-chunk/I_sect14_tt670.html
(acedido em 17 de Dezembro de 2014).
Aosabook. 2014. The Architecture of Open Source Applications Asterisk.
http://www.aosabook.org/en/asterisk.html (acedido em 17 de Dezembro de 2014).
Asterisk - The Open Source Telephony Project. 2014. Asterisk Architecture Overview.
http://doxygen.asterisk.org/trunk/AsteriskArchitecture.html (acedido em 17 de Dezembro de
2014).
Asterisk Docs. 2014. Chapter 2. Asterisk Architecture.
http://www.asteriskdocs.org/en/3rd_Edition/asterisk-book-html-chunk/asterisk-Arch.html
(acedido em 17 de Dezembro de 2014).
Yakko. 2014. Asterisk Presentation.
https://yakko.cs.wmich.edu/~drclaw/asterisk/presentation/slide15.html (acedido em 17 de
Dezembro de 2014).
Wikipedia. 2014. Asterisk (PBX). https://en.wikipedia.org/wiki/Asterisk_(PBX) (acedido em 17
de Dezembro de 2014).
Eduardo Almeida & Bruno Costa
Asterisk
17
FEUP – MIEEC | Serviços de Comunicações
2014/2015
ExcITingIP. 2014. Asterisk – The Open Source Telephony/Communications Platform.
http://www.excitingip.com/4112/asterisk-the-open-source-telephonycommunicationsplatform/ (acedido em 17 de Dezembro de 2014).
Harding. 2014. Lecture 4: Lines trunks pbx key telephone.
http://www.harding.edu/white/classes_old/engr475/lectures/lecture_4_lines_trunks_pbx_ke
y_telephone.ppt (acedido em 17 de Dezembro de 2014).
Ingate. 2014. PBX presentation engate itexpoeast2014.
http://www.ingate.com/files/ITEXPO_Miami_2014/pbx_presentation_ingate_itexpoeast2014.
pptx (acedido em 17 de Dezembro de 2014).
Eduardo Almeida & Bruno Costa
Asterisk
18
Download

TP5 – ASTERISK