Mudanças entre as edições de "PJI4-2018-1"
Linha 248: | Linha 248: | ||
sip set debug off<br/> | sip set debug off<br/> | ||
− | sip reload: Reload No arquivo: sip.conf<br/> | + | '''sip reload''': Reload No arquivo: sip.conf<br/> |
− | sip show channels: Visualizar canais ativos do Tipo SIP<br/> | + | '''sip show channels:''' Visualizar canais ativos do Tipo SIP<br/> |
− | sip show channel: Detalhar 1 determinado canal ativo SIP<br/> | + | '''sip show channel''': Detalhar 1 determinado canal ativo SIP<br/> |
− | sip show inuse: Listar todos os canais/peer existentes no Asterisk<br/> | + | '''sip show inuse''': Listar todos os canais/peer existentes no Asterisk<br/> |
− | sip show peers: Visualizar os pares que registraram ou não no Asterisk usando SIP<br/> | + | '''sip show peers''': Visualizar os pares que registraram ou não no Asterisk usando SIP<br/> |
− | sip show registry: Visualizar status do Registro SIP. (Quando o asterisk registra um cliente utilizando SIP)<br/> | + | '''sip show registry''': Visualizar status do Registro SIP. (Quando o asterisk registra um cliente utilizando SIP)<br/> |
− | sip show users: Visualizar Dispositivos SIP, Plano de Discagem e Senha<br/> | + | '''sip show users''': Visualizar Dispositivos SIP, Plano de Discagem e Senha<br/> |
− | sip show channelstats: Visualizar estatísticas de buffer e jitter na rede e nas chamadas SIP ativas<br/> | + | '''sip show channelstats''': Visualizar estatísticas de buffer e jitter na rede e nas chamadas SIP ativas<br/> |
Linha 266: | Linha 266: | ||
iax2 set debug off<br/> | iax2 set debug off<br/> | ||
− | iax2 show channels: Visualizar canais ativos do Tipo IAX<br/> | + | '''iax2 show channels''': Visualizar canais ativos do Tipo IAX<br/> |
− | iax2 show netstats: Visualizar estatisticas de buffer e jitter na rede e nas chamadas IAX ativas<br/> | + | '''iax2 show netstats''': Visualizar estatisticas de buffer e jitter na rede e nas chamadas IAX ativas<br/> |
− | iax2 show peers: Visualizar os pares que registraram ou não no Asterisk usando IAX<br/> | + | '''iax2 show peers''': Visualizar os pares que registraram ou não no Asterisk usando IAX<br/> |
− | iax2 show registry: Visualizar status do Registro SIP. (Quando o asterisk registra um cliente utilizando IAX)<br/> | + | '''iax2 show registry''': Visualizar status do Registro SIP. (Quando o asterisk registra um cliente utilizando IAX)<br/> |
− | iax2 show stats: Visualizar estatisticas do IAX<br/> | + | '''iax2 show stats''': Visualizar estatisticas do IAX<br/> |
− | iax2 show users: Visualizar Dispositivos IAX, Plano de Discagem e Senha<br/> | + | '''iax2 show users''': Visualizar Dispositivos IAX, Plano de Discagem e Senha<br/> |
− | iax show channels: Visualizar canais ativos do Tipo IAX<br/> | + | '''iax show channels''': Visualizar canais ativos do Tipo IAX<br/> |
Linha 278: | Linha 278: | ||
− | restart now: Restart Asterisk imediatamente<br/> | + | '''restart now''': Restart Asterisk imediatamente<br/> |
− | restart when convenient: Aguarda inatividade no Asterisk para restartar o Asterisk em seguida<br/> | + | '''restart when convenient''': Aguarda inatividade no Asterisk para restartar o Asterisk em seguida<br/> |
− | reload: Reload nas configurações<br/> | + | '''reload''': Reload nas configurações<br/> |
− | stop now: Shut down no Asterisk imediatamente<br/> | + | '''stop now:''' Shut down no Asterisk imediatamente<br/> |
− | dialplan reload: Reload nos arquivos de configurações do plano de discagem extensions.conf<br/> | + | '''dialplan reload''': Reload nos arquivos de configurações do plano de discagem extensions.conf<br/> |
− | modules show: Lista os módulos carregados no sistema<br/> | + | '''modules show''': Lista os módulos carregados no sistema<br/> |
− | core show uptime: Visualizar o tempo do Asterisk no Ar<br/> | + | '''core show uptime''': Visualizar o tempo do Asterisk no Ar<br/> |
− | core show version: Visualizar informações sobre a versão do Asterisk<br/> | + | '''core show version''': Visualizar informações sobre a versão do Asterisk<br/> |
Linha 291: | Linha 291: | ||
− | dialplan show: visualizar informações sobre um contexto<br/> | + | '''dialplan show''': visualizar informações sobre um contexto<br/> |
− | core show queues: visualizar as filas criadas no Asterisk<br/> | + | '''core show queues''': visualizar as filas criadas no Asterisk<br/> |
− | soft hangup: derrubar uma chamada ativa no Asterisk<br/> | + | '''soft hangup''': derrubar uma chamada ativa no Asterisk<br/> |
− | core show applications: visualizar informação sobre as aplicações disponíveis<br/> | + | '''core show applications''': visualizar informação sobre as aplicações disponíveis<br/> |
− | core show application: “Aplicação”: detalhar informação sobre determinada aplicação<br/> | + | '''core show application''': “Aplicação”: detalhar informação sobre determinada aplicação<br/> |
Linha 336: | Linha 336: | ||
− | bindaddr: Endereço IP onde o Asterisk irá esperar pelas conexões SIP. O comportamento padrão é esperar em todas as interfaces e endereços secundários. | + | '''bindaddr''': Endereço IP onde o Asterisk irá esperar pelas conexões SIP. O comportamento padrão é esperar em todas as interfaces e endereços secundários. |
− | Context: Configura o contexto padrão onde todos os clientes serão colocados, a menos que seja sobrescrito na definição da entidade. | + | '''Context''': Configura o contexto padrão onde todos os clientes serão colocados, a menos que seja sobrescrito na definição da entidade. |
− | Allow: Permite que um determinado codec seja usado. | + | '''Allow''': Permite que um determinado codec seja usado. |
− | Disallow: Proíbe um determinado codec. | + | '''Disallow''': Proíbe um determinado codec. |
− | Bindport: Porta que o Asterisk deve esperar por conexões de entrada SIP. O padrão é 5060. | + | '''Bindport''': Porta que o Asterisk deve esperar por conexões de entrada SIP. O padrão é 5060. |
− | maxexpirey: Tempo máximo para registro em segundos. | + | '''maxexpirey''': Tempo máximo para registro em segundos. |
− | Defaultexpirey: Tempo padrão para registro em segundos. | + | '''Defaultexpirey''': Tempo padrão para registro em segundos. |
− | [name]: Quando um dispositivo SIP conecta-se ao Asterisk, ele utiliza a parte username do SIP URI para encontrar o peer/user. | + | '''[name]''': Quando um dispositivo SIP conecta-se ao Asterisk, ele utiliza a parte username do SIP URI para encontrar o peer/user. |
− | Type: Configura a classe de conexão, as opções são peer, user e friend. | + | '''Type''': Configura a classe de conexão, as opções são peer, user e friend. |
− | Peer: Entidade para a qual o Asterisk envia chamadas. | + | '''Peer''': Entidade para a qual o Asterisk envia chamadas. |
− | User: Entidade que faz chamadas através do Asterisk. | + | '''User''': Entidade que faz chamadas através do Asterisk. |
− | Friend: Os dois ao mesmo tempo. | + | '''Friend''': Os dois ao mesmo tempo. |
− | Host: Configura o endereço IP ou o nome do host. Pode-se usar também a opção ‘dynamic’ onde se espera que o host faça o registro, é a opção mais comum. | + | '''Host''': Configura o endereço IP ou o nome do host. Pode-se usar também a opção ‘dynamic’ onde se espera que o host faça o registro, é a opção mais comum. |
− | Secret: Senha usada para autenticar o peer ou user fazendo uma chamada. | + | '''Secret''': Senha usada para autenticar o peer ou user fazendo uma chamada. |
− | Qualify: caso esteja yes, o asterisk enviará um comando regularmente para verificar se o dispositivo ainda está online. | + | '''Qualify''': caso esteja yes, o asterisk enviará um comando regularmente para verificar se o dispositivo ainda está online. |
Linha 408: | Linha 408: | ||
− | Answer – Atende uma chamada<br/> | + | '''Answer''' – Atende uma chamada<br/> |
− | PlayBack(arquivo) – Reproduz arquivo de som especificado. Os arquivos de som ficam em /var/lib/asterisk/sounds<br/> | + | '''PlayBack(arquivo)''' – Reproduz arquivo de som especificado. Os arquivos de som ficam em /var/lib/asterisk/sounds<br/> |
− | BackGround(arquivo) – Mesma coisa, mais permite a interação com o usuário durante a execução<br/> | + | '''BackGround(arquivo)''' – Mesma coisa, mais permite a interação com o usuário durante a execução<br/> |
− | HangUp – Encerra uma chamada<br/> | + | '''HangUp''' – Encerra uma chamada<br/> |
− | Dial – Disca ou conecta dois canais de comunicação<br/> | + | '''Dial''' – Disca ou conecta dois canais de comunicação<br/> |
− | Goto(contexto,extensão,prioridade) – Muda a ordem para o contexto, extensão e prioridade especificados<br/> | + | '''Goto(contexto,extensão,prioridade)''' – Muda a ordem para o contexto, extensão e prioridade especificados<br/> |
− | Gosub(contexto,extensão,prioridade) – Mesma coisa, mas salva a posição de retorno<br/> | + | '''Gosub(contexto,extensão,prioridade)''' – Mesma coisa, mas salva a posição de retorno<br/> |
− | NooP – imprime na cli do asterisk o termo<br/> | + | '''NooP''' – imprime na cli do asterisk o termo<br/> |
<b>Exercício</b> | <b>Exercício</b> |
Edição das 16h25min de 27 de fevereiro de 2018
Projeto Integrador IV
Professores: Ederson Luiz de Souza Santos (ederson.luiz@ifsc.edu.br) e Mayara de Sousa (mayara.sousa@ifsc.edu.br)
Encontros: 3a feira/19:00, 6a feira/19:00
Atendimento paralelo: 3a, 4a, 5a e 6a feira 17:30 h
Coordenadoria pedagógica (Graciane): graciane@ifsc.edu.br (3381-2890, 3381-2842)
Objetivo Geral
- Implantar um PABX IP integrado com serviços de telefonia fixa e móvel convencionais.
- Prover a infraestrutura de rede necessária para o adequado funcionamento deste PABX IP.
- Integrar os serviços de telefonia com outros serviços de rede.
Links interessantes
- VoIP Hacking Techniques
- Asterisk não é um SIP proxy
- FoneRNP
- SwitchVox: PBX virtual
- Net Fone da Embratel é VoIP, mas não usa SIP
- Estatísticas sobre VoIP no mundo
- Sinalização R2 (E1)
Provedores VoIP no Brasil
Resumo de comandos da CLI para o Asterisk
- O Asterisk pode ser carregado de duas formas:
- foreground: utilizado para depurar problemas na inicialização do Asterisk, quando ele não puder ser inicializado.
- background: modo padrão de inicialização
- Conectar à CLI do Asterisk carregado
asterisk -r rasterisk
- Comandos na CLI
- Saindo da CLI sem interromper o processo
exit
- Carrega canais SIP previamente registrados
sip reload
- Mostra canais SIP registrados
sip show peers
- Carrega plano de discagem
dialplan reload
- Mostra a extensão criada no plano de discagem
dialplan show default
- Finalizando processo no Asterisk
sudo core stop now
- Ver aplicações disponíveis no Asterisk
core show applications
- Saindo da CLI sem interromper o processo
- Iniciando Asterisk em modo Background
sudo service asterisk start
- Carregar o Asterisk em modo ForeGround
sudo asterisk -gc
16/02/2018: Apresentação da disciplina
Aula 1 |
---|
Arquivo apresentação da disciplinaApresentação da disciplina 2018-1 Projeto Integrador IVO foco do Projeto Integrador IV está na oferta de serviços ao usuário final e na convergência de serviços de telecomunicações, incluindo a integração dos serviços de telefonia fixa, móvel e VoIP. Além disso, também tem como objetivo a integração destes serviços de telecomunicações com outros serviços de rede como servidores Web, Email, Telefonia IP, administração de sistemas e usuários, compartilhamento de recursos, DNS, etc.
PBX IPUm PBX IP funciona como uma central telefônica, porém intermediando chamadas VoIP. Com isso, as chamadas são feitas de um telefone IP em direção ao PBX IP, que a encaminha ao telefone IP de destino de acordo com suas regras de discagem. A figura abaixo ilustra como funciona uma chamada VoIP típica através de um PBX IP.
PBX IP Asterisk
Características Básicas: faz tudo que um PABX pequeno e simples faz e pouco mais
|
20/02/2018: Conceitos gerais, preparação do servidor e instalação do Asterisk e banco de dados
Aula 2 |
---|
Telefonia IP ou VoIP: O que é? A Comunicação de Voz em Redes IP, chamada de VoIP, consiste no uso das redes de dados que utilizam o conjunto de protocolos das redes IP (TCP/UDP/IP) para a transmissão de sinais de Voz em tempo real na forma de pacotes de dados. A sua evolução natural levou ao aparecimento da Telefonia IP, que consiste no fornecimento de serviços de telefonia utilizando a rede IP para o estabelecimento de chamadas e comunicação de Voz. Nessas redes são implementados protocolos adicionais de sinalização de chamadas e transporte de Voz que permitem a comunicação com qualidade próxima àquela fornecida pelas redes convencionais dos sistemas públicos de telefonia comutada ou de telefonia móvel. Digitalização de Sinais de Voz Nos sistemas tradicionais o sinal de Voz utiliza uma banda de 4 kHz, e é digitalizado com uma taxa de amostragem de 8 kHz para ser recuperado adequadamente (Princípio de Nyquist). Como cada amostra é representada por um byte (8 bits, com até 256 valores distintos), cada canal de Voz necessita de uma banda de 64 kbit/s (8.000 amostras x 8 bits). Esta forma de digitalização do sinal de Voz atende a recomendação ITU-T G.711 - Pulse code modulation (PCM) of voice frequencies. Nos sistema de transmissão de Voz sobre IP, onde a demanda por banda é crítica, torna-se necessário utilizar também algoritmos de compressão do sinal de Voz. Esses algoritmos têm papel relevante pela economia de banda que proporcionam. O seu uso tem sido possível graças ao desenvolvimento dos processadores de sinais digitais (DSP’s), cuja capacidade de processamento tem crescido vertiginosamente. Estas necessidades incentivaram o desenvolvimento de tecnologias mais complexas para a digitalização e compressão de Voz, e que foram registradas através de recomendações do ITU-T. Estas recomendações são apresentadas na tabela abaixo, com algumas características relevantes. Asterisk O Asterisk é a implementação de uma central telefônica PBX (Private Branch eXchange) em software, criado por Mark Spencer em 1999, e distribuído pela Digium livremente seguindo a licençaGPL (GNU General Public License – GPL), ou através de código proprietário. O nome Asterisk vem do símbolo ‘*’, muito comum no mundo da telefonia. O Asterisk foi originalmente desenvolvido para Linux, mas atualmente podeser instalado e executado em uma grande variedade de sistemas operacionais, incluindo NetBSD, OpenBSD, FreeBSD, Mac OS X, Solaris e até mesmo Microsoft Windows, onde é conhecido por Asterisk Win32. Características do Asterisk O Asterisk é um software, baseado na licença GPL (GNU General Public License), que executa todas as funções de uma central telefônica convencional através das principais tecnologias de comunicação existentes no mercado, como por exemplo: linhas telefônicas analógicas, links de telefonia digital via placas de comunicação TDM (Time-Division Multplexing, ou Multiplexaçã ,o por divisão detempo), VoIP (Voice over IP, ou Voz sobre IP) através dos protocolos SIP, H.323, IAX2, MGCP, Skinny,GoogleTalk, Skype, entre outros. Através do Asterisk é possível estabelecer uma chamada entre qualquer um desses protocolos. O Asterisk é o que chamamos de B2B User Agent, ou melhor, Back-to-Back User Agent, ele estabelece uma chamada telefônica, separando cada “perna” da chamada entre origem e destino, e monitora todo o tráfego de áudio entre esses pontos. Por isso, caso esses pontos estejam utilizando CODECs diferentes, o Asterisk consegue transcodificar o áudio sem qualquer problema. Pode-se dizer que o Asterisk possui todas as funcionalidades das chamadas centrais telefônicas convencionais, como URAs, correio de voz, conferência, distribuição automática de chamadas, entre outras, e caso seja necessário, é possível acrescentar novas funcionalidades ao sistema através do próprio plano de discagem do Asterisk, módulos customizados escritos em C, ou ainda através de scripts escritos em Asterisk Gateway Interface (AGI). *Fonte: Construindo um PBX IP na pratica (Alexandre Keller) Codecs Um dos componentes necessários para transmissão de voz numa rede de dados é o Áudio CODEC (Codificador-Decodificador). Este componente é o responsável por transformar a voz humana (um sinal analógico) em uma seqüência de bits (um sinal digital) para transmissão numa rede de dados, fazendo amostragens periódicas no sinal de voz. Em equipamentos do tipo gateways VoIP, esses CODECs são implementados através de um componente chamado DSP (Digital Signal Processor). A introdução dos microprocessadores no final dos anos 70 e início dos anos 80 tornou possível usar técnicas de processamento digital de sinais (Digital Signal Processing) em um range muito maior de aplicações. Durante os anos 80 a importância crescente do processamento digital de sinais levou vários fabricantes importantes (como Texas Instruments, Analog Devices e Motorola) a desenvolverem os chips DSP, ou seja, microprocessadores especializados com arquiteturas projetadas especificamente para os tipos de operações requeridas ao processamento digital de sinais. Como um microprocessador de uso geral, um DSP é um dispositivo programável, com seu próprio conjunto de instruções nativas. O uso desses chips associados a algoritmos de compressão permitiu a implementação de diversas tecnologias de CODEC’s. Exemplos de chips DSP são o DSP542 e DSP549 fabricados pela Texas Instruments e usados pela CISCO Systems em seus gateways VoIP [CISCO-CODEC1]. Cada CODEC provê certa qualidade de voz. A medida de qualidade da voz transmitida é uma resposta subjetiva de um ouvinte. Uma medida comum usada para determinar a qualidade do som produzido pelos CODECs específicos é o MOS (Mean Opinion Score). Com o uso do MOS, um amplo range de ouvintes julgam a qualidade de uma amostra de voz (correspondendo a um CODEC particular) numa escala de 1 a 5. A partir desses resultados, é calculada a média dos scores para atribuir o MOS para aquela amostra [CISCO-CODEC2]. Na tabela 1 são apresentados alguns scores MOS para os CODECs mais usados. Na Tabela 2 são descritos os scores MOS.
Neste semestre iremos trabalhar com o Asterisk versão 11.1.1, o LibPRI 1.4, que é uma biblioteca Libpri será instalada para que tenhamos suporte aos canais PRI( ISDN, E1, T1 ), e o DAHDI, que é um pacote (Digium Asterisk Hardware Device Interface) nos permite carregar os drivers e configurar diversos tipos de placas de telefonia (para conectar telefones analógicos, linhas telefônicas, linhas digitais e outros). Antes de qualquer coisa, devemos atualizar o sistema via console de comando: #apt-get update #apt-get upgrade Também devemos instalar algumas dependências: # apt-get install -y make wget libssl-dev ncurses-dev libnewt-dev libxml2-dev linux-headers-generic g++ libsqlite3-dev # apt-get install -y mysql-server libmysqld-dev Para baixar os arquivos do Asterisk, DAHDI e LibPRI, seguem os links abaixo: Asterisk 11.1.1 Campos para o banco de dados: CREATE TABLE cdr (
calldate datetime NOT NULL default '0000-00-00 00:00:00', |
23/02/2018: Comandos e configurações do Asterisk. Criação de ramais
Aula 3 |
---|
Comandos Asterisk Para iniciarmos a utilização do Asterisk, devemos conhecer alguns comandos que serão utilizados no decorrer da disciplina.
sip set debug on sip reload: Reload No arquivo: sip.conf
iax2 set debug on iax2 show channels: Visualizar canais ativos do Tipo IAX
Preparar o servidor para liberar portas
Iniciando a configuração dos ramais
Context: Configura o contexto padrão onde todos os clientes serão colocados, a menos que seja sobrescrito na definição da entidade. Allow: Permite que um determinado codec seja usado. Disallow: Proíbe um determinado codec. Bindport: Porta que o Asterisk deve esperar por conexões de entrada SIP. O padrão é 5060. maxexpirey: Tempo máximo para registro em segundos. Defaultexpirey: Tempo padrão para registro em segundos.
[name]: Quando um dispositivo SIP conecta-se ao Asterisk, ele utiliza a parte username do SIP URI para encontrar o peer/user. Type: Configura a classe de conexão, as opções são peer, user e friend. Peer: Entidade para a qual o Asterisk envia chamadas. User: Entidade que faz chamadas através do Asterisk. Friend: Os dois ao mesmo tempo. Host: Configura o endereço IP ou o nome do host. Pode-se usar também a opção ‘dynamic’ onde se espera que o host faça o registro, é a opção mais comum. Secret: Senha usada para autenticar o peer ou user fazendo uma chamada. Qualify: caso esteja yes, o asterisk enviará um comando regularmente para verificar se o dispositivo ainda está online.
Plano de discagem O plano de discagem é um conjunto de instruções. A extensão executa uma ação quando uma chamada é efetuada. Sintaxe de um comando extension:
[general]
static e writeprotect – permite salvar o plano de discagem a partir da linha de comando. Também devemos criar um contexto que já foi pré definido no ramal criado. No nosso caso se chamará default:
As aplicações mais comuns no Asterisk são:
Exercício
Crie também um plano de discagem que permita a ligação entre todos os ramais.
|
27/02/2018: Plano de discagem e máscaras
Aula 4 |
---|
Plano de discagemO plano de discagem define como o Asterisk irá gerenciar as chamadas. Ele consiste de uma lista de instruções ou passos que o Asterisk deveria seguir. Essas instruções são disparadas a partir dos dígitos recebidos de um canal ou aplicação. O extensions.conf pode ser separado em quatro partes:
ContextosOs contextos definem o escopo e permitem separar diferentes partes do plano de discagem, recebem o seu nome dentro de chaves ([]). No início do arquivo extensions.conf existe um contexto chamado [globals] onde as variáveis globais são definidas e podem ser usadas por todo o plano de discagem. E o contexto [general] que é utilizado para definir alguns parâmetros gerais. Os contextos estão ligados diretamente aos canais. Quando uma ligação entra no Asterisk por um canal ela é processada dentro do contexto deste canal. Ex: [gerentes] [visitantes]
ExtensõesO plano de discagem é um conjunto de instruções. A extensão executa uma ação quando uma chamada é efetuada. Sintaxe de um comando extension: exten=> number (name), {priority|label{+|-}offset}[(alias)],application Exemplo: exten => 9001,1,Dial(SIP/9001,20) ; Extensão 9001, prioridade 1, disca para o ramal 9001 pelo protocolo SIP, tempo de resposta em segundos. Dentro de uma extensão, podemos ter as chamadas variáveis de canal, como abaixo: exten =>2001,2,DIAL(SIP/${RAMAL}) Neste exemplo acima, criamos a variável “RAMAL” em tempo de execução, ou seja, na criação do Canal, ou da chamada. As variáveis de canais são as mais utilizadas normalmente, para trazer informação dos canais normalmente, como nome do canal , nome do contexto, extensão, etc. Vejamos abaixo algumas das variáveis mais usadas: ${CALLERID} Identificador da chamada (nome ou número)
exten => _20XX,1,Dial(SIP/${EXTEN})
Aplicações básicas do AsteriskAnswer – Atende uma chamada. Para verificar as aplicações no asterisk, basta digitar n cli do mesmo o seguinte comando: # ubuntu-server*cli> core show applications Caso queira uma explicação detalhada de uma aplicação, utilize o comando: # ubuntu-server*cli> core show application nome_da_aplicacao Onde o termo nome_da_aplicacao corresponde a aplicação a qual queremos os detalhes.
8000 – numérica Máscaras _ - início de uma máscaras Prioridades Prioridades são passos numerados na execução de cada extensão. Cada prioridade chama uma aplicação especifica. Se os números das prioridades não forem sequenciais o Asterisk aborta a execução. A partir da versão 1.2 do Asterisk, tornou-se comum o uso da prioridade “n”, no lugar da associação manual de números, assim como a possibilidade da utilização de labels e aliases.
|