tp5 asteriskjneves/feup/2014-2015/scom/asterisk/g2-r.pdf · feup – mieec | serviços de...
TRANSCRIPT
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
Eduardo Almeida & Bruno Costa 2 Asterisk
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.
FEUP – MIEEC | Serviços de Comunicações 2014/2015
Eduardo Almeida & Bruno Costa 3 Asterisk
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) 192.168.109.223
Asterisk 1 (PBX 1) 192.168.109.224
Softphones (terminais VoIP) Atribuído por DHCP Tabela 1 – Lista de extensões criadas em ambos os PBX.
FEUP – MIEEC | Serviços de Comunicações 2014/2015
Eduardo Almeida & Bruno Costa 4 Asterisk
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 001
PBXy-Ext002 002
PBXy-Ext003 003
PBXy-Ext007 007
PBXy-Ext008 008
PBXy-IRV 010
PBX1-Conferência 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.
FEUP – MIEEC | Serviços de Comunicações 2014/2015
Eduardo Almeida & Bruno Costa 5 Asterisk
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].
FEUP – MIEEC | Serviços de Comunicações 2014/2015
Eduardo Almeida & Bruno Costa 6 Asterisk
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, adoptou-
se 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:
FEUP – MIEEC | Serviços de Comunicações 2014/2015
Eduardo Almeida & Bruno Costa 7 Asterisk
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).
FEUP – MIEEC | Serviços de Comunicações 2014/2015
Eduardo Almeida & Bruno Costa 8 Asterisk
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.
FEUP – MIEEC | Serviços de Comunicações 2014/2015
Eduardo Almeida & Bruno Costa 9 Asterisk
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”.
FEUP – MIEEC | Serviços de Comunicações 2014/2015
Eduardo Almeida & Bruno Costa 10 Asterisk
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.
FEUP – MIEEC | Serviços de Comunicações 2014/2015
Eduardo Almeida & Bruno Costa 11 Asterisk
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.
FEUP – MIEEC | Serviços de Comunicações 2014/2015
Eduardo Almeida & Bruno Costa 12 Asterisk
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.
FEUP – MIEEC | Serviços de Comunicações 2014/2015
Eduardo Almeida & Bruno Costa 13 Asterisk
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.
FEUP – MIEEC | Serviços de Comunicações 2014/2015
Eduardo Almeida & Bruno Costa 14 Asterisk
Figura 17 – Configuração do IVR.
Figura 18 – Configuração dos announcements contendo as gravações utilizadas no serviço IVR.
FEUP – MIEEC | Serviços de Comunicações 2014/2015
Eduardo Almeida & Bruno Costa 15 Asterisk
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 e-
mail. 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.
Figura 20 – Extracto das extensões com voicemail activo, incluindo o
número de mensagens novas na respectiva caixa de correio.
FEUP – MIEEC | Serviços de Comunicações 2014/2015
Eduardo Almeida & Bruno Costa 16 Asterisk
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ídeo-
telefonia sobre IP, o que permitiu adquirir conhecimentos fulcrais sobre o funcionamento e
implementação destes serviços em ambientes de utilização reais.
FEUP – MIEEC | Serviços de Comunicações 2014/2015
Eduardo Almeida & Bruno Costa 17 Asterisk
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).
FEUP – MIEEC | Serviços de Comunicações 2014/2015
Eduardo Almeida & Bruno Costa 18 Asterisk
ExcITingIP. 2014. Asterisk – The Open Source Telephony/Communications Platform.
http://www.excitingip.com/4112/asterisk-the-open-source-telephonycommunications-
platform/ (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).