Mudanças entre as edições de "Tópicos Avançados em Telefonia (técnico) (diário 2009-2)"
(177 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
− | == | + | =Cronograma= |
− | + | * Vide [http://docs.google.com/View?id=dhg8njgs_357dpxxdxdz plano de ensino]. | |
− | ==02/09: Protocolos de VoIP== | + | =Capítulo 6= |
+ | ==26/08 (4): O que é VoIP?== | ||
+ | * Tópicos: Internet como meio de transmissão, redes convergentes e comunicações unificadas. | ||
+ | |||
+ | ==02/09 (2): Protocolos de VoIP== | ||
* Tópicos: H.323, SIP, SDP, XMPP, RTP e RTCP. | * Tópicos: H.323, SIP, SDP, XMPP, RTP e RTCP. | ||
+ | * Material auxiliar: [[Guia básico de VoIP com Asterisk]]. | ||
− | ==09/09: Plataformas de VoIP== | + | ==09/09 (2): Plataformas de VoIP== |
* Tópicos: ''hardware'' e ''software''. [http://www.asterisk.org Asterisk] como exemplo de ''soft'' PBX, instalação de Asterisk. | * Tópicos: ''hardware'' e ''software''. [http://www.asterisk.org Asterisk] como exemplo de ''soft'' PBX, instalação de Asterisk. | ||
+ | * Material auxiliar: [[Gerência de Redes de Computadores (técnico) - comandos *nix|comandos *nix]]. | ||
+ | |||
+ | ==Intervalo de 1 semana== | ||
− | ==23/09: Visão geral de um soft PBX== | + | ==23/09 (2): Visão geral de um soft PBX== |
* Tópicos: visão geral do ''soft'' PBX Asterisk, o protocolo SIP (arquitetura e primeiros canais), a primeira ligação entre dois canais. | * Tópicos: visão geral do ''soft'' PBX Asterisk, o protocolo SIP (arquitetura e primeiros canais), a primeira ligação entre dois canais. | ||
− | ==30/09: Sinalização de Mídia== | + | =Capítulo 7= |
− | * Tópicos: o protocolo SIP (trocas de mensagens e cabeçalhos, | + | ==30/09 (4): Sinalização de Mídia== |
+ | * Tópicos: o protocolo SIP (trocas de mensagens e cabeçalhos). | ||
+ | * Exemplo de uma ligação sem sucesso entre origem e destino (as duas primeiras figuras) e uma ligação com sucesso (última figura). | ||
+ | {| | ||
+ | | [[Imagem:SIP_origemComFalha.png|thumb|200px|SIP: falha no estabelecimento da chamada (origem)]] | ||
+ | | [[Imagem:SIP_destinoComFalha.png|thumb|200px|SIP: falha no estabelecimento da chamada (destino)]] | ||
+ | | [[Imagem:SIP_origemComSucesso.png|thumb|200px|SIP: sucesso no estabelecimento da chamada (origem)]] | ||
+ | |} | ||
+ | |||
+ | === Entroncamento entre dois ''soft'' PBXs=== | ||
+ | * Cenário: dois ''soft'' PBXs contendo 3 canais SIP para uso local: telefone+ATA, telefone IP e ''softphone'' ([http://ekiga.net Ekiga]). | ||
+ | * Ideia: interligar os dois PBXs para permitir as ligações diretas entre quaisquer UACs usando apenas SIP. | ||
+ | <graphviz> | ||
+ | digraph DoisPBXs | ||
+ | { | ||
+ | |||
+ | Norte [shape=record,label="Norte|IP=10.1.1.1",URL="http://wiki.sj.ifsc.edu.br/index.php/T%C3%B3picos_Avan%C3%A7ados_em_Telefonia_%28t%C3%A9cnico%29_%28di%C3%A1rio_2009-2%29#PBX_Norte"] | ||
+ | ATA_N [shape=plaintext] | ||
+ | Softphone_N [shape=plaintext] | ||
+ | TelefoneIP_N [shape=plaintext] | ||
+ | |||
+ | Sul [shape=record,label="Sul|10.20.30.40",URL="http://wiki.sj.ifsc.edu.br/index.php/T%C3%B3picos_Avan%C3%A7ados_em_Telefonia_%28t%C3%A9cnico%29_%28di%C3%A1rio_2009-2%29#PBX_Sul"] | ||
+ | ATA_S [shape=plaintext] | ||
+ | Softphone_S [shape=plaintext] | ||
+ | TelefoneIP_S [shape=plaintext] | ||
+ | |||
+ | ATA_N -> Norte:0 | ||
+ | Softphone_N -> Norte:0 | ||
+ | TelefoneIP_N -> Norte:0 | ||
+ | |||
+ | ATA_S -> Sul:0 | ||
+ | Softphone_S -> Sul:0 | ||
+ | TelefoneIP_S -> Sul:0 | ||
− | + | Norte:0 -> Sul:0 | |
− | + | } | |
+ | </graphviz> | ||
− | == | + | =====PBX Norte===== |
− | * | + | * Arquivo <tt>sip.conf</tt>: |
+ | [general] | ||
+ | ... | ||
+ | # | ||
+ | # Registrando o UAC Norte no UAS Sul | ||
+ | register => Norte@10.20.30.40 | ||
− | == | + | ... |
− | + | # Definição dos "Ramais" internos | |
− | + | [ATA_N] | |
− | + | type=friend | |
+ | username=ATA_N | ||
+ | host=dynamic | ||
+ | insecure=port,invite | ||
+ | context=ligacoesLocais | ||
+ | allow=alaw | ||
+ | allow=ulaw | ||
+ | qualify=yes | ||
+ | # | ||
+ | [TelefoneIP_N] | ||
+ | type=friend | ||
+ | username=TelefoneIP_N | ||
+ | host=dynamic | ||
+ | insecure=port,invite | ||
+ | context=ligacoesLocais | ||
+ | allow=alaw | ||
+ | allow=ulaw | ||
+ | qualify=yes | ||
+ | # | ||
+ | [Softphone_N] | ||
+ | type=friend | ||
+ | username=softphone_N | ||
+ | host=dynamic | ||
+ | insecure=port,invite | ||
+ | context=ligacoesLocais | ||
+ | allow=alaw | ||
+ | allow=ulaw | ||
+ | qualify=yes | ||
− | ==25/11: Projeto final (desenvolvimento)== | + | # Definição do UAC Norte |
+ | [Norte] | ||
+ | type=peer | ||
+ | username=Norte | ||
+ | host=10.20.30.40 | ||
+ | insecure=port,invite | ||
+ | context=ligacoesLocais | ||
+ | allow=alaw | ||
+ | allow=ulaw | ||
+ | qualify=yes | ||
+ | |||
+ | * Arquivo <tt>extensions.conf</tt>: | ||
+ | ... | ||
+ | [ligacoesLocais] | ||
+ | # | ||
+ | # "Ramais" internos | ||
+ | exten => 100,1,Dial(SIP/ATA_N) | ||
+ | exten => 101,1,Dial(SIP/TelefoneIP_N) | ||
+ | exten => 102,1,Dial(SIP/Softphone_N) | ||
+ | |||
+ | # Ligando para a outra central e, na sequência, o "ramal" de destino | ||
+ | exten => _0.,1,Dial(SIP/Norte/${EXTEN:1}) | ||
+ | |||
+ | =====PBX Sul===== | ||
+ | * Arquivo <tt>sip.conf</tt>: | ||
+ | [general] | ||
+ | ... | ||
+ | |||
+ | # Definição dos "Ramais" internos | ||
+ | [ATA_S] | ||
+ | type=friend | ||
+ | username=ATA_S | ||
+ | host=dynamic | ||
+ | insecure=port,invite | ||
+ | context=somenteLocal | ||
+ | allow=alaw | ||
+ | allow=ulaw | ||
+ | qualify=yes | ||
+ | # | ||
+ | [TelefoneIP_S] | ||
+ | type=friend | ||
+ | username=TelefoneIP_S | ||
+ | host=dynamic | ||
+ | insecure=port,invite | ||
+ | context=somenteLocal | ||
+ | allow=alaw | ||
+ | allow=ulaw | ||
+ | qualify=yes | ||
+ | # | ||
+ | [Softphone_S] | ||
+ | type=friend | ||
+ | username=softphone_S | ||
+ | host=dynamic | ||
+ | insecure=port,invite | ||
+ | context=somenteLocal | ||
+ | allow=alaw | ||
+ | allow=ulaw | ||
+ | qualify=yes | ||
+ | |||
+ | # Definição do UAC Norte | ||
+ | [Norte] | ||
+ | type=friend | ||
+ | username=Norte | ||
+ | host=dynamic | ||
+ | insecure=port,invite | ||
+ | context=somenteLocal | ||
+ | allow=alaw | ||
+ | allow=ulaw | ||
+ | qualify=yes | ||
+ | |||
+ | * Arquivo <tt>extensions.conf</tt>: | ||
+ | ... | ||
+ | [somenteLocal] | ||
+ | # | ||
+ | # "Ramais" internos | ||
+ | exten => 210,1,Dial(SIP/ATA_S) | ||
+ | exten => 211,1,Dial(SIP/TelefoneIP_S) | ||
+ | exten => 212,1,Dial(SIP/Softphone_S) | ||
+ | |||
+ | # Ligando para a outra central e, na sequência, o "ramal" de destino | ||
+ | exten => _0.,1,Dial(SIP/Norte/${EXTEN:1}) | ||
+ | |||
+ | ==Intervalo de 1 semana== | ||
+ | * Leitura recomendada: [http://www.skype.com/intl/pt/business/products/pbx-systems/asterisk/ Skype & Asterisk]. | ||
+ | |||
+ | ==14/10 (2): Descrição de Mídia== | ||
+ | * Tópicos: o protocolo SDP e ''vocoders''. | ||
+ | * Referências externas: | ||
+ | ** ALMEIDA, A. B. de. [http://www.bibliotecadigital.puc-campinas.edu.br/tde_arquivos/10/TDE-2009-07-22T134807Z-1549/Publico/Adenilson%20Boccato%20de%20Almeida.pdf Medição de qualidade de voz em ''wireless'' utilizando codecs G711, G729, G723 e GSM]. Campinas: PUC, 2008. | ||
+ | ** [https://developer.skype.com/silk Silk (Skype)] | ||
+ | |||
+ | ==21/10 (2): Exercícios com Codecs== | ||
+ | * Configure dois canais com os codecs gsm, alaw, e ulaw. Qual codec é escolhido na ligação? Por quê? | ||
+ | * Configure dois canais com apenas um codec, o mesmo para ambos. As mensagens SDP mudaram? E as mensagens SIP? | ||
+ | * Configure dois canais com apenas um codec, sendo G711a para um e G711u para outros. O que acontece? É possível realizar a transcodificação? Como e onde isso é feito? | ||
+ | |||
+ | Identifique as mensagens SDP associadas às mensagens SIP no controle remoto do Asterisk: | ||
+ | > sip set debug peer CANAL | ||
+ | ou | ||
+ | > sip set debug on | ||
+ | e os atributos das liagções correntes: | ||
+ | > core show channel CANAL/ID_DA_LIGAÇÃO | ||
+ | |||
+ | Dica: realize primeiro com os canais-ramais de um mesmo ''soft'' PBX. Em seguida, façam os testes utilizando entroncamentos SIP. O que muda? Atenção: que codecs estão ativados no entroncamento? É possível combinar os codecs dos canais-ramais com os canais-entroncamentos? Faça os testes de combinação com codecs iguais e diferentes... | ||
+ | |||
+ | ==28/10 (2): Transmissão de Mídia== | ||
+ | * Tópicos: os protocolos RTP e RTCP, qualidade de serviços e mecanismos de controle (protocolos, compensações, descartes, ''jitter'', etc.), problemas do TCP/IP e alternativas. | ||
+ | * Testes: | ||
+ | ** [sip:2@boidacarapreta.homeunix.net Correio de voz] | ||
+ | ** [sip:9@boidacarapreta.homeunix.net Teste de eco] | ||
+ | * Referência externa: [http://wiki.wireshark.org/VoIP_calls Wireshark]. | ||
+ | |||
+ | ==04/10 (2): Plano de numeração== | ||
+ | * Tópicos: plano de numeração, URA/AA. | ||
+ | |||
+ | ==11/11 (4): Plano de numeração (cont.)== | ||
+ | * Tópicos: plano de numeração. | ||
+ | ** Numeração "clássica": [http://www.itu.int/rec/T-REC-E.123/en E.123], [http://www.itu.int/rec/T-REC-E.164/en E.164], [http://en.wikipedia.org/wiki/List_of_country_calling_codes lista dos países]. | ||
+ | ** Numeração VoIP: [http://enum.org/what.html ENUM] | ||
+ | ** URI genérica: RFC 2396 | ||
+ | *** URI para ligações telefônicas: RFC 2806 | ||
+ | *** URI para SIP[S]: RFC 3261 | ||
+ | * Aplicações: | ||
+ | ** URA/AA | ||
+ | ** ''[[Tópicos Avançados em Telefonia (técnico) (diário 2009-1)#Callback|Callback]]'' | ||
+ | |||
+ | =Capítulo 8= | ||
+ | ==18/11 (4): Projeto final (apresentação e desenvolvimento)== | ||
+ | * Tópicos: definição das equipes e temas, leitura dos trabalhos do [[Tópicos Avançados em Telefonia (técnico) (diário 2009-1)#Projeto Final|semestre anterior]], desenvolvimento do projeto final. | ||
+ | |||
+ | ===Propostas a escolher=== | ||
+ | * Segurança em VoIP: segurança na sinalização (SIP sobre TLS), segurança na transmissão de mídia (SRTP). | ||
+ | ** Proteger as mensagens SIP e/ou a mídia transmitida. Apresentar, ao final, ferramentas e soluções que implementam segurança sobre SIP, SDP e/ou RTP. | ||
+ | * XMPP para sinalização e descrição de mídia, comunicações unificadas. | ||
+ | ** Utilizar mensagens XMPP como "BINA": informando na tela do usuário (2) quem está chamando (1). | ||
+ | ** Se o destinatário não atender à ligação (3), a ligação é passada ao correio de voz. Uma vez gravada a mensagem, o sistema deverá enviar um email (4) com o áudio, em formato MP3, e uma mensagem XMPP (5) informando o email enviado - incluindo o nome de quem ligou. | ||
+ | <center><graphviz> | ||
+ | digraph FluxoMsg | ||
+ | { | ||
+ | Asterisk [shape=Mrecord] | ||
+ | subgraph clusterUsuario | ||
+ | { | ||
+ | label="Usuário" | ||
+ | VoIP | ||
+ | Email | ||
+ | XMPP | ||
+ | } | ||
+ | Asterisk -> VoIP [label=1] | ||
+ | Asterisk -> XMPP [label=2] | ||
+ | VoIP -> Asterisk [label=3] | ||
+ | Asterisk -> Email [label=4] | ||
+ | Asterisk -> XMPP [label=5] | ||
+ | } | ||
+ | </graphviz></center> | ||
+ | * Telefonia analógica ou digital + VoIP via placas de conversão. | ||
+ | ** Implementar a sinalização R2D (R2 Digital) em duas placas E1 diretamente conectadas (fabricantes distintos). | ||
+ | ** Realizar pelo menos 3 ligações simultâneas entre terminais SIP via esse enlace E1. | ||
+ | <center><graphviz> | ||
+ | graph E1 | ||
+ | { | ||
+ | rankdir=LR | ||
+ | Esquerdo [shape=Mrecord] | ||
+ | Direito [shape=Mrecord] | ||
+ | 1 -- Esquerdo [label=SIP] | ||
+ | 2 -- Esquerdo [label=SIP] | ||
+ | 3 -- Esquerdo [label=SIP] | ||
+ | Esquerdo -- Direito [label=E1] | ||
+ | Direito -- 4 [label=SIP] | ||
+ | Direito -- 5 [label=SIP] | ||
+ | Direito -- 6 [label=SIP] | ||
+ | } | ||
+ | </graphviz></center> | ||
+ | * Implementação de ''gateways'' de redes VoIP: Google Talk, Skype, [[Fone@RNP]] e outros. | ||
+ | ** Concentração de várias redes VoIP em um ponto: o ''soft'' PBX. O mesmo canal SIP escolherá o caminho de saída das ligações. | ||
+ | ** Pelo menos 10 salas de conferências entre as pessoas das várias redes. | ||
+ | <center><graphviz> | ||
+ | digraph gateway | ||
+ | { | ||
+ | rankdir=LR | ||
+ | Asterisk [shape=Mrecord] | ||
+ | subgraph clusterSdC | ||
+ | { | ||
+ | label="Salas de Conferência" | ||
+ | 01 [shape=plaintext] | ||
+ | 02 [shape=plaintext] | ||
+ | 03 [shape=plaintext] | ||
+ | 04 [shape=plaintext] | ||
+ | 05 [shape=plaintext] | ||
+ | 06 [shape=plaintext] | ||
+ | 07 [shape=plaintext] | ||
+ | 08 [shape=plaintext] | ||
+ | 09 [shape=plaintext] | ||
+ | 10 [shape=plaintext] | ||
+ | } | ||
+ | "Skype (opcional)" -> Asterisk | ||
+ | Google_Talk -> Asterisk | ||
+ | "fone@RNP" -> Asterisk | ||
+ | "Ramais" -> Asterisk | ||
+ | Asterisk -> "01" | ||
+ | Asterisk -> "02" | ||
+ | Asterisk -> "03" | ||
+ | Asterisk -> "04" | ||
+ | Asterisk -> "05" | ||
+ | Asterisk -> "06" | ||
+ | Asterisk -> "07" | ||
+ | Asterisk -> "08" | ||
+ | Asterisk -> "09" | ||
+ | Asterisk -> "10" | ||
+ | } | ||
+ | </graphviz></center> | ||
+ | * URA/AA com filas de atendimento e ligação de retorno (''callback''). | ||
+ | ** Cliente liga para a central de atendimento, que conta com 3 atendentes. Se todos os atendentes estiverem ocupados, o cliente poderá esperar por até 1min (com música ao fundo). Passando desse limite, é agendada uma ligação de retorno assim que alguém ficar livre (invertendo o sentido da ligação original). | ||
+ | <center><graphviz> | ||
+ | digraph Fluxo | ||
+ | { | ||
+ | Asterisk [shape=Mrecord] | ||
+ | subgraph clusterAtendentes | ||
+ | { | ||
+ | label=Atendentes | ||
+ | 1 | ||
+ | 2 | ||
+ | 3 | ||
+ | } | ||
+ | Cliente -> Asterisk | ||
+ | Asterisk -> Fila | ||
+ | Fila -> 1 | ||
+ | Fila -> 2 | ||
+ | Fila -> 3 | ||
+ | } | ||
+ | </graphviz></center> | ||
+ | |||
+ | ====Obrigatório a todos os projetos==== | ||
+ | * As ligações funcionam apenas em horário comercial. Demais ligações devem ser encaminhadas diretamente ao correio de voz. | ||
+ | * Todos os PBXs deverão estar interconectados, gerando uma malha fechada (cada um conecta-se a todos os outros), permitindo a comunicação entre quaisquer ramais. | ||
+ | * Definição dos ''codecs'' utilizados para cada canal. | ||
+ | * Os testes serão realizados pelos canais SIP das outras equipes (sorteadas no momento da apresentação). | ||
+ | |||
+ | === Equipes e Propostas Escolhidas === | ||
+ | A seguir, uma descrição mais detalhada no cenário a ser montado como projeto final da disciplina. | ||
+ | |||
+ | ==== Equipe 1 ==== | ||
+ | * Integrantes: Caroline, Edgar, Fabio e Maykon. | ||
+ | * Propostas escolhidas: XMPP e redes VoIP. | ||
+ | * Funcionalidades do sistema: | ||
+ | ** Entroncamento SIP com as outras equipes. | ||
+ | ** Controle de horário para ligar aos "ramais" internos: apenas horário comercial. Fora desse horário, fica livre apenas o correio de voz. | ||
+ | ** Política de uso de ''codecs'' conforme o canal/enlace estabelecido e equipamento terminal (ATA, telefone IP, etc.). Consulte a documentação de cada terminal para habilitar '''apenas''' os ''codecs'' aceitos por ele. | ||
+ | ** Correio de voz para todos os "ramais" internos. | ||
+ | ** Pelo menos 10 salas de conferência com controle de acesso (através de senha) feito pelo primeiro canal que se conectar. | ||
+ | ** Qualquer canal, de qualquer origem, pode se conectar a qualquer sala de conferência. | ||
+ | ** Pode-se ligar, com um ramal interno, para qualquer usuário de qualquer rede. Será preciso definir, antes, o plano de numeração para identificar os "troncos" de saída. | ||
+ | ** Servidor interno de ''email'' e mensagem instantânea. | ||
+ | ** Envio de mensagens instantâneas para recebimento de chamadas e gravação de mensagens de voz. | ||
+ | ** Identificação dos usuário com um único endereço: o seu email. | ||
+ | ** Localização dos usuário por agenda Web: | ||
+ | <center> | ||
+ | {| width="90%" style="background-color: #FFFFF0; font-family:Verdana, Arial, Helvetica, sans-serif; font-size: 100%; border: 1px solid #B1CDEB; text-align: center; padding-left: 7px; -moz-border-radius:10px" | ||
+ | | '''Pessoa''' || '''''Email'' (SMTP)''' || '''Mensagem (XMPP)''' || '''VoIP (SIP)''' | ||
+ | |- | ||
+ | | João || [mailto:joao@tat.edu.br mailto:joao@tat.edu.br] || [xmpp:joao@tat.edu.br xmpp:joao@tat.edu.br]|| [sip:joao@tat.edu.br sip:joao@tat.edu.br] | ||
+ | |- | ||
+ | | Maria || [mailto:maria@tat.edu.br mailto:maria@tat.edu.br] || [xmpp:maria@tat.edu.br xmpp:maria@tat.edu.br]|| [sip:maria@tat.edu.br sip:maria@tat.edu.br] | ||
+ | |- | ||
+ | | José || [mailto:jose@tat.edu.br mailto:jose@tat.edu.br] || [xmpp:jose@tat.edu.br xmpp:jose@tat.edu.br]|| [sip:jose@tat.edu.br sip:jose@tat.edu.br] | ||
+ | |} | ||
+ | </center> | ||
+ | |||
+ | ==== Equipe 2 ==== | ||
+ | * Integrantes: Claudir, Cleiton, Diego, Lucas e Gabriel. | ||
+ | * Propostas escolhidas: telefonia digital com placa de conversão ou ''call parking'' e central de atendimento. | ||
+ | * Funcionalidades do sistema: | ||
+ | ** Entroncamento SIP com as outras equipes. | ||
+ | ** Controle de horário para ligar aos "ramais" internos: apenas horário comercial. Fora desse horário, fica livre apenas o correio de voz. | ||
+ | ** Correio de voz para todos os "ramais" internos. | ||
+ | ** Fila de atendimento com música ao fundo e tempo limite de 1min. | ||
+ | ** Caso o tempo limite estoure, a ligação deve ser encerrada e agendada uma ligação de retorno (''callback''), com o sentido contrário da original. | ||
+ | ** Para liberar os canais de atendimento, não é possível realizar uma ligação entre ramais da fila de atendimento. | ||
+ | ** Política de uso de ''codecs'' conforme o canal/enlace estabelecido e equipamento terminal (ATA, telefone IP, etc.). Consulte a documentação de cada terminal para habilitar '''apenas''' os ''codecs'' aceitos por ele. | ||
+ | ** Se for Placa de conversão: (ABANDONADO) | ||
+ | *** Conexão entre ''soft'' PBXs usando apenas enlace E1 com sinalização R2 digital. | ||
+ | *** Definição de um plano de numeração suportada pela sinalização R2D. | ||
+ | ** Se for ''call parking'': (ESCOLHIDO PELA EQUIPE) | ||
+ | *** Estabelecimento de ''call parking'' para os outros ramais fora da fila de atendimento. | ||
+ | |||
+ | ==25/11 (4): Projeto final (desenvolvimento)== | ||
* Tópicos: canais e plano de numeração, desenvolvimento do projeto final. | * Tópicos: canais e plano de numeração, desenvolvimento do projeto final. | ||
− | ==02/12: Projeto final (desenvolvimento)== | + | ==02/12 (4): Projeto final (desenvolvimento)== |
* Tópicos: serviços adicionais (correio de voz, sala de conferência, etc.), desenvolvimento do projeto final. | * Tópicos: serviços adicionais (correio de voz, sala de conferência, etc.), desenvolvimento do projeto final. | ||
− | ==09/12: Projeto final (desenvolvimento)== | + | ==09/12 (4): Projeto final (desenvolvimento)== |
− | * Tópicos: automatização (''callback'', etc.), desenvolvimento do projeto final | + | * Tópicos: automatização (''callback'', etc.), desenvolvimento do projeto final. |
− | |||
− | |||
− | |||
+ | ==16/12 (4): Projeto final (apresentação)== | ||
+ | * Tópicos: '''apresentação do projeto final''' e '''recuperação da avaliação escrita'''. | ||
+ | ** [http://docs.google.com/Doc?id=dhg8njgs_505gwntx3d3 Apresentação do projeto final]. | ||
+ | ** Entrega de todos os arquivos de configuração em formato digital - para publicação neste ''wiki''. | ||
+ | *** [[Media:TAT_2009-2_Equipe1.zip|Equipe 1]] | ||
− | + | {{Voltar|Tópicos Avançados em Telefonia (técnico) (página)|página principal da disciplina}} |
Edição atual tal como às 23h27min de 4 de fevereiro de 2010
Cronograma
- Vide plano de ensino.
Capítulo 6
26/08 (4): O que é VoIP?
- Tópicos: Internet como meio de transmissão, redes convergentes e comunicações unificadas.
02/09 (2): Protocolos de VoIP
- Tópicos: H.323, SIP, SDP, XMPP, RTP e RTCP.
- Material auxiliar: Guia básico de VoIP com Asterisk.
09/09 (2): Plataformas de VoIP
- Tópicos: hardware e software. Asterisk como exemplo de soft PBX, instalação de Asterisk.
- Material auxiliar: comandos *nix.
Intervalo de 1 semana
23/09 (2): Visão geral de um soft PBX
- Tópicos: visão geral do soft PBX Asterisk, o protocolo SIP (arquitetura e primeiros canais), a primeira ligação entre dois canais.
Capítulo 7
30/09 (4): Sinalização de Mídia
- Tópicos: o protocolo SIP (trocas de mensagens e cabeçalhos).
- Exemplo de uma ligação sem sucesso entre origem e destino (as duas primeiras figuras) e uma ligação com sucesso (última figura).
Entroncamento entre dois soft PBXs
- Cenário: dois soft PBXs contendo 3 canais SIP para uso local: telefone+ATA, telefone IP e softphone (Ekiga).
- Ideia: interligar os dois PBXs para permitir as ligações diretas entre quaisquer UACs usando apenas SIP.
<graphviz> digraph DoisPBXs {
Norte [shape=record,label="Norte|IP=10.1.1.1",URL="http://wiki.sj.ifsc.edu.br/index.php/T%C3%B3picos_Avan%C3%A7ados_em_Telefonia_%28t%C3%A9cnico%29_%28di%C3%A1rio_2009-2%29#PBX_Norte"] ATA_N [shape=plaintext] Softphone_N [shape=plaintext] TelefoneIP_N [shape=plaintext]
Sul [shape=record,label="Sul|10.20.30.40",URL="http://wiki.sj.ifsc.edu.br/index.php/T%C3%B3picos_Avan%C3%A7ados_em_Telefonia_%28t%C3%A9cnico%29_%28di%C3%A1rio_2009-2%29#PBX_Sul"] ATA_S [shape=plaintext] Softphone_S [shape=plaintext] TelefoneIP_S [shape=plaintext]
ATA_N -> Norte:0 Softphone_N -> Norte:0 TelefoneIP_N -> Norte:0
ATA_S -> Sul:0 Softphone_S -> Sul:0 TelefoneIP_S -> Sul:0
Norte:0 -> Sul:0 } </graphviz>
PBX Norte
- Arquivo sip.conf:
[general] ... # # Registrando o UAC Norte no UAS Sul register => Norte@10.20.30.40
... # Definição dos "Ramais" internos [ATA_N] type=friend username=ATA_N host=dynamic insecure=port,invite context=ligacoesLocais allow=alaw allow=ulaw qualify=yes # [TelefoneIP_N] type=friend username=TelefoneIP_N host=dynamic insecure=port,invite context=ligacoesLocais allow=alaw allow=ulaw qualify=yes # [Softphone_N] type=friend username=softphone_N host=dynamic insecure=port,invite context=ligacoesLocais allow=alaw allow=ulaw qualify=yes
# Definição do UAC Norte [Norte] type=peer username=Norte host=10.20.30.40 insecure=port,invite context=ligacoesLocais allow=alaw allow=ulaw qualify=yes
- Arquivo extensions.conf:
... [ligacoesLocais] # # "Ramais" internos exten => 100,1,Dial(SIP/ATA_N) exten => 101,1,Dial(SIP/TelefoneIP_N) exten => 102,1,Dial(SIP/Softphone_N)
# Ligando para a outra central e, na sequência, o "ramal" de destino exten => _0.,1,Dial(SIP/Norte/${EXTEN:1})
PBX Sul
- Arquivo sip.conf:
[general] ... # Definição dos "Ramais" internos [ATA_S] type=friend username=ATA_S host=dynamic insecure=port,invite context=somenteLocal allow=alaw allow=ulaw qualify=yes # [TelefoneIP_S] type=friend username=TelefoneIP_S host=dynamic insecure=port,invite context=somenteLocal allow=alaw allow=ulaw qualify=yes # [Softphone_S] type=friend username=softphone_S host=dynamic insecure=port,invite context=somenteLocal allow=alaw allow=ulaw qualify=yes
# Definição do UAC Norte [Norte] type=friend username=Norte host=dynamic insecure=port,invite context=somenteLocal allow=alaw allow=ulaw qualify=yes
- Arquivo extensions.conf:
... [somenteLocal] # # "Ramais" internos exten => 210,1,Dial(SIP/ATA_S) exten => 211,1,Dial(SIP/TelefoneIP_S) exten => 212,1,Dial(SIP/Softphone_S)
# Ligando para a outra central e, na sequência, o "ramal" de destino exten => _0.,1,Dial(SIP/Norte/${EXTEN:1})
Intervalo de 1 semana
- Leitura recomendada: Skype & Asterisk.
14/10 (2): Descrição de Mídia
- Tópicos: o protocolo SDP e vocoders.
- Referências externas:
- ALMEIDA, A. B. de. Medição de qualidade de voz em wireless utilizando codecs G711, G729, G723 e GSM. Campinas: PUC, 2008.
- Silk (Skype)
21/10 (2): Exercícios com Codecs
- Configure dois canais com os codecs gsm, alaw, e ulaw. Qual codec é escolhido na ligação? Por quê?
- Configure dois canais com apenas um codec, o mesmo para ambos. As mensagens SDP mudaram? E as mensagens SIP?
- Configure dois canais com apenas um codec, sendo G711a para um e G711u para outros. O que acontece? É possível realizar a transcodificação? Como e onde isso é feito?
Identifique as mensagens SDP associadas às mensagens SIP no controle remoto do Asterisk:
> sip set debug peer CANAL
ou
> sip set debug on
e os atributos das liagções correntes:
> core show channel CANAL/ID_DA_LIGAÇÃO
Dica: realize primeiro com os canais-ramais de um mesmo soft PBX. Em seguida, façam os testes utilizando entroncamentos SIP. O que muda? Atenção: que codecs estão ativados no entroncamento? É possível combinar os codecs dos canais-ramais com os canais-entroncamentos? Faça os testes de combinação com codecs iguais e diferentes...
28/10 (2): Transmissão de Mídia
- Tópicos: os protocolos RTP e RTCP, qualidade de serviços e mecanismos de controle (protocolos, compensações, descartes, jitter, etc.), problemas do TCP/IP e alternativas.
- Testes:
- Referência externa: Wireshark.
04/10 (2): Plano de numeração
- Tópicos: plano de numeração, URA/AA.
11/11 (4): Plano de numeração (cont.)
- Tópicos: plano de numeração.
- Numeração "clássica": E.123, E.164, lista dos países.
- Numeração VoIP: ENUM
- URI genérica: RFC 2396
- URI para ligações telefônicas: RFC 2806
- URI para SIP[S]: RFC 3261
- Aplicações:
- URA/AA
- Callback
Capítulo 8
18/11 (4): Projeto final (apresentação e desenvolvimento)
- Tópicos: definição das equipes e temas, leitura dos trabalhos do semestre anterior, desenvolvimento do projeto final.
Propostas a escolher
- Segurança em VoIP: segurança na sinalização (SIP sobre TLS), segurança na transmissão de mídia (SRTP).
- Proteger as mensagens SIP e/ou a mídia transmitida. Apresentar, ao final, ferramentas e soluções que implementam segurança sobre SIP, SDP e/ou RTP.
- XMPP para sinalização e descrição de mídia, comunicações unificadas.
- Utilizar mensagens XMPP como "BINA": informando na tela do usuário (2) quem está chamando (1).
- Se o destinatário não atender à ligação (3), a ligação é passada ao correio de voz. Uma vez gravada a mensagem, o sistema deverá enviar um email (4) com o áudio, em formato MP3, e uma mensagem XMPP (5) informando o email enviado - incluindo o nome de quem ligou.
digraph FluxoMsg { Asterisk [shape=Mrecord] subgraph clusterUsuario { label="Usuário" VoIP Email XMPP } Asterisk -> VoIP [label=1] Asterisk -> XMPP [label=2] VoIP -> Asterisk [label=3] Asterisk -> Email [label=4] Asterisk -> XMPP [label=5] }
</graphviz>- Telefonia analógica ou digital + VoIP via placas de conversão.
- Implementar a sinalização R2D (R2 Digital) em duas placas E1 diretamente conectadas (fabricantes distintos).
- Realizar pelo menos 3 ligações simultâneas entre terminais SIP via esse enlace E1.
graph E1 { rankdir=LR Esquerdo [shape=Mrecord] Direito [shape=Mrecord] 1 -- Esquerdo [label=SIP] 2 -- Esquerdo [label=SIP] 3 -- Esquerdo [label=SIP] Esquerdo -- Direito [label=E1] Direito -- 4 [label=SIP] Direito -- 5 [label=SIP] Direito -- 6 [label=SIP] }
</graphviz>- Implementação de gateways de redes VoIP: Google Talk, Skype, Fone@RNP e outros.
- Concentração de várias redes VoIP em um ponto: o soft PBX. O mesmo canal SIP escolherá o caminho de saída das ligações.
- Pelo menos 10 salas de conferências entre as pessoas das várias redes.
digraph gateway { rankdir=LR Asterisk [shape=Mrecord] subgraph clusterSdC { label="Salas de Conferência" 01 [shape=plaintext] 02 [shape=plaintext] 03 [shape=plaintext] 04 [shape=plaintext] 05 [shape=plaintext] 06 [shape=plaintext] 07 [shape=plaintext] 08 [shape=plaintext] 09 [shape=plaintext] 10 [shape=plaintext] } "Skype (opcional)" -> Asterisk Google_Talk -> Asterisk "fone@RNP" -> Asterisk "Ramais" -> Asterisk Asterisk -> "01" Asterisk -> "02" Asterisk -> "03" Asterisk -> "04" Asterisk -> "05" Asterisk -> "06" Asterisk -> "07" Asterisk -> "08" Asterisk -> "09" Asterisk -> "10" }
</graphviz>- URA/AA com filas de atendimento e ligação de retorno (callback).
- Cliente liga para a central de atendimento, que conta com 3 atendentes. Se todos os atendentes estiverem ocupados, o cliente poderá esperar por até 1min (com música ao fundo). Passando desse limite, é agendada uma ligação de retorno assim que alguém ficar livre (invertendo o sentido da ligação original).
digraph Fluxo { Asterisk [shape=Mrecord] subgraph clusterAtendentes { label=Atendentes 1 2 3 } Cliente -> Asterisk Asterisk -> Fila Fila -> 1 Fila -> 2 Fila -> 3 }
</graphviz>Obrigatório a todos os projetos
- As ligações funcionam apenas em horário comercial. Demais ligações devem ser encaminhadas diretamente ao correio de voz.
- Todos os PBXs deverão estar interconectados, gerando uma malha fechada (cada um conecta-se a todos os outros), permitindo a comunicação entre quaisquer ramais.
- Definição dos codecs utilizados para cada canal.
- Os testes serão realizados pelos canais SIP das outras equipes (sorteadas no momento da apresentação).
Equipes e Propostas Escolhidas
A seguir, uma descrição mais detalhada no cenário a ser montado como projeto final da disciplina.
Equipe 1
- Integrantes: Caroline, Edgar, Fabio e Maykon.
- Propostas escolhidas: XMPP e redes VoIP.
- Funcionalidades do sistema:
- Entroncamento SIP com as outras equipes.
- Controle de horário para ligar aos "ramais" internos: apenas horário comercial. Fora desse horário, fica livre apenas o correio de voz.
- Política de uso de codecs conforme o canal/enlace estabelecido e equipamento terminal (ATA, telefone IP, etc.). Consulte a documentação de cada terminal para habilitar apenas os codecs aceitos por ele.
- Correio de voz para todos os "ramais" internos.
- Pelo menos 10 salas de conferência com controle de acesso (através de senha) feito pelo primeiro canal que se conectar.
- Qualquer canal, de qualquer origem, pode se conectar a qualquer sala de conferência.
- Pode-se ligar, com um ramal interno, para qualquer usuário de qualquer rede. Será preciso definir, antes, o plano de numeração para identificar os "troncos" de saída.
- Servidor interno de email e mensagem instantânea.
- Envio de mensagens instantâneas para recebimento de chamadas e gravação de mensagens de voz.
- Identificação dos usuário com um único endereço: o seu email.
- Localização dos usuário por agenda Web:
Pessoa | Email (SMTP) | Mensagem (XMPP) | VoIP (SIP) |
João | mailto:joao@tat.edu.br | xmpp:joao@tat.edu.br | sip:joao@tat.edu.br |
Maria | mailto:maria@tat.edu.br | xmpp:maria@tat.edu.br | sip:maria@tat.edu.br |
José | mailto:jose@tat.edu.br | xmpp:jose@tat.edu.br | sip:jose@tat.edu.br |
Equipe 2
- Integrantes: Claudir, Cleiton, Diego, Lucas e Gabriel.
- Propostas escolhidas: telefonia digital com placa de conversão ou call parking e central de atendimento.
- Funcionalidades do sistema:
- Entroncamento SIP com as outras equipes.
- Controle de horário para ligar aos "ramais" internos: apenas horário comercial. Fora desse horário, fica livre apenas o correio de voz.
- Correio de voz para todos os "ramais" internos.
- Fila de atendimento com música ao fundo e tempo limite de 1min.
- Caso o tempo limite estoure, a ligação deve ser encerrada e agendada uma ligação de retorno (callback), com o sentido contrário da original.
- Para liberar os canais de atendimento, não é possível realizar uma ligação entre ramais da fila de atendimento.
- Política de uso de codecs conforme o canal/enlace estabelecido e equipamento terminal (ATA, telefone IP, etc.). Consulte a documentação de cada terminal para habilitar apenas os codecs aceitos por ele.
- Se for Placa de conversão: (ABANDONADO)
- Conexão entre soft PBXs usando apenas enlace E1 com sinalização R2 digital.
- Definição de um plano de numeração suportada pela sinalização R2D.
- Se for call parking: (ESCOLHIDO PELA EQUIPE)
- Estabelecimento de call parking para os outros ramais fora da fila de atendimento.
25/11 (4): Projeto final (desenvolvimento)
- Tópicos: canais e plano de numeração, desenvolvimento do projeto final.
02/12 (4): Projeto final (desenvolvimento)
- Tópicos: serviços adicionais (correio de voz, sala de conferência, etc.), desenvolvimento do projeto final.
09/12 (4): Projeto final (desenvolvimento)
- Tópicos: automatização (callback, etc.), desenvolvimento do projeto final.
16/12 (4): Projeto final (apresentação)
- Tópicos: apresentação do projeto final e recuperação da avaliação escrita.
- Apresentação do projeto final.
- Entrega de todos os arquivos de configuração em formato digital - para publicação neste wiki.