Mudanças entre as edições de "Tópicos Avançados em Telefonia (técnico) (diário 2009-1)"
(77 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 52: | Linha 52: | ||
** Modificar o plano de numeração para atender ao novo cenário. | ** Modificar o plano de numeração para atender ao novo cenário. | ||
− | == 05/05: == | + | == 05/05: integração entre PBXs (cont.) == |
+ | * Tópicos: continuação da aula anterior. | ||
+ | = Projeto Final = | ||
== 12/05: apresentação do projeto final == | == 12/05: apresentação do projeto final == | ||
− | + | Como a disciplina está dividida em dois grandes temas, para a tema VoIP (encontros das 3as.-feiras) haverá uma única avaliação ao longo do semestre: um projeto final englobando todo o conteúdo trabalhado em sala. | |
− | * | + | |
− | ** 1 | + | Este projeto tem itens obrigatórios, os quais deverão ser preenchidos por todas as equipes e, além disso, subtemas escolhidos pelas próprias equipes. A seguir, a descrição de cada um deles. |
− | ** 2 | + | |
− | ** 3 | + | === Obrigatório a todas as equipes === |
− | * | + | * '''URA/AA''': atendimento automático para receber ligações externas (troncos) e permitir, em seguida, o redirecionamento das chamadas para ramais internos. Interessante: oferecer teste de eco e, quando for o caso, informar os números das salas de conferência. |
+ | * '''Codecs''': oferta de pelo menos 3 codecs para os canais SIP. Apresentar, no dia da apresentação do projeto final, dois cenários onde haverá a escolha dinâmica do codec mais apropriado para a ligação em questão. | ||
+ | * '''Entroncamento SIP''': interligação da central com outra, remota, via entroncamento SIP. | ||
+ | |||
+ | === Escolhidos por cada Equipe === | ||
+ | * '''Equipe 1''' (Gilmar, Maicon, Felipe e Fábio) | ||
+ | ** ''Callback'': para ligações definidas por um certo padrão X, desligar e ligar de volta - retornando o pedido original. Interessante: informar um terceiro canal (diretor, gerente, etc.) de que houve essa ligação de retorno. | ||
+ | ** Filas de atendimento: criar pelo menos uma fila de atendimento para um certo ramal. Interessante: utilizar música de espera e aplicar tempos limitando tal espera. | ||
+ | ** Correio de voz: quando o endereço de destino estiver ocupado/fora, pode-se deixar uma mensagem de voz. Interessante: enviar a mensagem de voz por email. | ||
+ | |||
+ | * '''Equipe 2''' (Aládio, Lucas, Nádio e Odair) | ||
+ | ** Conversão de texto em voz: conversão de texto em voz, tendo obrigatoriamente duas funções: vocalização de todos os usuários online (integrando à URA) e previsão do tempo em tempo real (informando cidade e dia). Interessante: permitir o envio da previsão do tempo em formato MP3 por email. | ||
+ | |||
+ | * '''Equipe 3''' (Gustavo, Diony, Rafael e Volnei) | ||
+ | ** Problemas de rede: estudo sobre formas de implementar QoS (em ambas as direções), efeitos do uso de codecs e como o jitter auxilia na instabilidade da latência da rede. | ||
+ | ** Esquema URI: utilização de endereços URI para efetuar chamadas. Interessante: utilizar estrutura DNS e páginas Web para implementar esquemas URI. | ||
+ | ** Sala de conferência: implementação de 5 salas de conferência. Interessante: controle de acesso às salas (primeiro canal ligado à sala pode banir/expulsar outros canais) | ||
+ | ** ''Callback'': para ligações definidas por um certo padrão X, desligar e ligar de volta - retornando o pedido original. Interessante: informar um terceiro canal (diretor, gerente, etc.) de que houve essa ligação de retorno. | ||
+ | |||
+ | === Método de Avaliação === | ||
+ | A avaliação será feita mediante apresentação do ''soft'' PBX em funcionamento, onde um ou mais alunos serão escolhidos para explicar os arquivos de configuração em cada um dos itens (obrigatórios e escolhidos). | ||
+ | |||
+ | Cada equipe terá, no máximo, meia hora para apresentar e defender a solução final. Tanto para os itens obrigatórios quanto para os escolhidos, o conceito mínimo será C - para compor o conceito final: | ||
+ | * Trabalhos implementados com sucesso e devidamente explicados, para testes bidirecionais, serão considerados A. | ||
+ | * Trabalhos implementados em parte com sucesso, onde funcionará apenas em um sentido (efetua chamada mas não recebe, por exemplo), serão B. | ||
+ | * Trabalhos implementados com sucesso, porém mal explicados (o aluno não defendeu a proposta ou não soube como foi implementado), serão C. | ||
+ | * Trabalhos implementados sem sucesso (qualquer sentido), e com deficiência na explicação, serão D. | ||
+ | |||
+ | == 19/05: NÃO HOUVE == | ||
+ | |||
+ | == 26/05: definição do ambiente do projeto == | ||
+ | * '''Equipe 1''' (_") | ||
+ | ** Servidor Asterisk: 192.168.2.107 (M7) | ||
+ | ** ATA: 192.168.2.115 | ||
+ | ** Telefone IP: 192.168.2.114 | ||
+ | ** Ramais: Fábio (101) e João (102) | ||
+ | * '''Equipe 2''' (.I) | ||
+ | ** Servidor Asterisk: 192.168.2.109 (M9) | ||
+ | ** ATA: 192.168.2.119 | ||
+ | ** Telefone IP: 192.168.2.111 | ||
+ | ** Ramais: Aládio (123) e Lucas (125) | ||
+ | * '''Equipe 3''' (.o') | ||
+ | ** Servidor Asterisk: 192.168.2.116 (M2) | ||
+ | ** ATA: 192.168.2.110 | ||
+ | ** Telefone IP: 192.168.2.203 | ||
+ | ** Ramais: Diony (171) e Gustavo (190) | ||
+ | |||
+ | == 02/06: dicas para os trabalhos == | ||
+ | * [http://blog.gramels.info/blog/index.php?/archives/21-simple-fixed-asterisk-callback-configuration.html ''Callback''] | ||
+ | |||
+ | * [http://www.voip-info.org/wiki/view/Asterisk+festival+installation Conversão de texto em voz] | ||
+ | |||
+ | * URI | ||
+ | ** Teste: ligando para [sip:diony@192.168.2.116 Diony] | ||
+ | |||
+ | == 09/06: andamento dos trabalhos == | ||
+ | * Tópico: projeto final. | ||
+ | |||
+ | == 16/06: andamento dos trabalhos == | ||
+ | * Tópico: projeto final. | ||
+ | |||
+ | == 23/06: dicas para os trabalhos == | ||
+ | === ''Callback'' === | ||
+ | Ideia básica: o canal <tt>joao</tt> liga para <tt>maria</tt>. A central cancela essa chamada e cria uma nova, convidando ambas as partes para uma nova ligação - mas provavelmente com tarifação diferenciada, uma vez que muda o sentido da ligação (antes: joao->Asterisk->maria; depois Asterisk->joao + Asterisk->maria). Então, quando chega uma ligação com estes parâmetros (origem=joao e destino=maria), o que se faz é agendar uma nova ligação e na sequência cancelar a atual: | ||
+ | [default] | ||
+ | ; O formato maria/joao (destino/origem) significa que maria recebeu um convite (INVITE) de joao. | ||
+ | exten => maria/joao,1,System(cp /etc/asterisk/de_joao_para_maria.call /var/spool/asterisk/outgoing) | ||
+ | exten => maria/joao,n,HangUp | ||
+ | |||
+ | [callback] | ||
+ | exten => s,1,Answer() | ||
+ | exten => s,n,Dial(SIP/joao) | ||
+ | exten => s,n,HangUp() | ||
+ | onde esta nova ligação partirá, inicialmente, de Asterisk para o canal SIP/maria para, na sequência, conectar este último ao canal SIP/joao - de certa forma invertendo o sentido da chamada. O arquivo <tt>/etc/asterisk/de_joao_para_maria.call</tt> deve informar, portanto, a primeira ponta a ser chamada: | ||
+ | Channel: SIP/maria | ||
+ | Context: callback | ||
+ | Extension: s | ||
+ | MaxRetries: 2 | ||
+ | RetryTime: 1 | ||
+ | CallerID: Asterisk | ||
+ | e o contexto <tt>callback</tt> se encarrega de definir a segunda ponta da ligação, SIP/joao. | ||
+ | |||
+ | Para mais informações, veja esta [[#02/06: dicas para os trabalhos|página de exemplo]]. | ||
+ | |||
+ | === Conversão de texto em voz === | ||
+ | A conversão de qualquer texto em voz pode ser feita de várias maneiras. Uma delas é compor a frase, externamente ao Asterisk, para, depois convertê-la em voz via [http://www.cstr.ed.ac.uk/projects/festival/ Festival]. Usando AGI, tem-se um vasto leque de comandos e linguagens de programação, como por exemplo ''script shell''. No caso abaixo, é criada uma variável de nome FRASE para ser "lida" pelo Asterisk. | ||
+ | * Arquivo <tt>/etc/asterisk/frase.sh</tt>: | ||
+ | #!/bin/sh | ||
+ | echo 'SET VARIABLE FRASE "Welcome to Asterisk!"' | ||
+ | Esta frase será, então, lida pelo Asterisk (assumindo o contexto <tt>default</tt> e canal <tt>200</tt>): | ||
+ | [default] | ||
+ | exten => 200,n,AGI(/etc/asterisk/frase.sh) | ||
+ | exten => 200,n,Festival(${FRASE}) | ||
+ | |||
+ | Obs.: lembre-se de manter o servidor Festival rodando em paralelo ao Asterisk: | ||
+ | festival --server & | ||
+ | |||
+ | === Filas de atendimento === | ||
+ | * Leitura do [http://www.shopvoip.com.br livro sobre Asterisk], de autoria de Flávio Gonçalves ([http://www.voffice.com.br Voffice]). | ||
+ | |||
+ | ===''Codec''=== | ||
+ | * Leitura das páginas 193 a 196 do livro [http://cdn.oreilly.com/books/9780596510480.pdf Asterisk: the Future of Telephony]. | ||
+ | ** Se preciso, faça uso de um [http://translate.google.com/?hl=pt-BR# tradutor]. | ||
+ | |||
+ | == 30/06: apresentação do projeto final == | ||
+ | * Teste de ''callback'': | ||
+ | ** Para ramal: sip:diony | ||
+ | ** Para número externo via entroncamento SIP: | ||
+ | ** Previsão do tempo: | ||
+ | ** Sala de conferência: | ||
+ | ===Perguntas=== | ||
+ | * Obrigatório: entroncamento SIP | ||
+ | ** mostrar configuração | ||
+ | |||
<center><small>[[Tópicos Avançados em Telefonia (técnico) (página)|Página principal da disciplina]]</small></center> | <center><small>[[Tópicos Avançados em Telefonia (técnico) (página)|Página principal da disciplina]]</small></center> |
Edição atual tal como às 17h41min de 11 de novembro de 2009
Cronograma
- Vide plano de ensino.
Capítulo 6: O que é VoIP
10/02: VoIP, tecnologias e mercado
- Tópicos: VoIP, convergência, compartilhamento dos meios de transmissão.
17/02: NÃO HOUVE
03/03: protocolos de VoIP
- Tópicos: arquiteturas de redes TCP/IP, protocolos SIP, H.323 e RTP/RTCP, URI e URL.
10/03: soft PBX e ambiente de servidor
- Tópicos: Asterisk, Linux, interfaces de acesso local e remoto, comandos *nix.
- Início dos trabalhos na confecção do Guia prático de Asterisk.
Capítulo 7: Sinalização e Transmissão de Mídia
17/03: Asterisk e primeiros canais
- Tópicos: canais, contextos.
- Arquivos manipulados: sip.conf e extensions.conf - vide exemplos.
24/03: NÃO HOUVE
Capítulo 8: Soft PBX
31/03: Telefones IP
- Tópicos: canais, contextos, telefones IP.
- Arquivos manipulados: sip.conf e extensions.conf - vide exemplos.
- Tarefa:
- Criar dois canais SIP, e respectivo plano de numeração (numérico), para permitir ligações entre si em ambos os sentidos.
- Configurar dois ATAs como UACs.
- Verificar, junto ao Asterisk, o estado dos canais em uso e registros SIP.
07/04: Telefones IP e mensagens SIP
- Tópicos: entendendo a sinalização SIP do exercício anterior - através da interface de administração do Asterisk para os métodos:
- REGISTER;
- INVITE;
- ACK;
- BYE;
- OPTIONS.
14/04: URI
- Tópicos: URI como endereço dos usuários, caminhos alternativos (aliases) via plano de numeração.
21/04: NÃO HOUVE
28/04: integração entre PBXs
- Tópicos: integração de PBXs utilizando entroncamento SIP.
- Arquivos manipulados: sip.conf e extensions.conf - vide exemplos.
- Tarefa:
- Crias canais SIP para serem utilizados como troncos entre PBXs.
- Configurar o software Asterisk como UAS e UAC.
- Modificar o plano de numeração para atender ao novo cenário.
05/05: integração entre PBXs (cont.)
- Tópicos: continuação da aula anterior.
Projeto Final
12/05: apresentação do projeto final
Como a disciplina está dividida em dois grandes temas, para a tema VoIP (encontros das 3as.-feiras) haverá uma única avaliação ao longo do semestre: um projeto final englobando todo o conteúdo trabalhado em sala.
Este projeto tem itens obrigatórios, os quais deverão ser preenchidos por todas as equipes e, além disso, subtemas escolhidos pelas próprias equipes. A seguir, a descrição de cada um deles.
Obrigatório a todas as equipes
- URA/AA: atendimento automático para receber ligações externas (troncos) e permitir, em seguida, o redirecionamento das chamadas para ramais internos. Interessante: oferecer teste de eco e, quando for o caso, informar os números das salas de conferência.
- Codecs: oferta de pelo menos 3 codecs para os canais SIP. Apresentar, no dia da apresentação do projeto final, dois cenários onde haverá a escolha dinâmica do codec mais apropriado para a ligação em questão.
- Entroncamento SIP: interligação da central com outra, remota, via entroncamento SIP.
Escolhidos por cada Equipe
- Equipe 1 (Gilmar, Maicon, Felipe e Fábio)
- Callback: para ligações definidas por um certo padrão X, desligar e ligar de volta - retornando o pedido original. Interessante: informar um terceiro canal (diretor, gerente, etc.) de que houve essa ligação de retorno.
- Filas de atendimento: criar pelo menos uma fila de atendimento para um certo ramal. Interessante: utilizar música de espera e aplicar tempos limitando tal espera.
- Correio de voz: quando o endereço de destino estiver ocupado/fora, pode-se deixar uma mensagem de voz. Interessante: enviar a mensagem de voz por email.
- Equipe 2 (Aládio, Lucas, Nádio e Odair)
- Conversão de texto em voz: conversão de texto em voz, tendo obrigatoriamente duas funções: vocalização de todos os usuários online (integrando à URA) e previsão do tempo em tempo real (informando cidade e dia). Interessante: permitir o envio da previsão do tempo em formato MP3 por email.
- Equipe 3 (Gustavo, Diony, Rafael e Volnei)
- Problemas de rede: estudo sobre formas de implementar QoS (em ambas as direções), efeitos do uso de codecs e como o jitter auxilia na instabilidade da latência da rede.
- Esquema URI: utilização de endereços URI para efetuar chamadas. Interessante: utilizar estrutura DNS e páginas Web para implementar esquemas URI.
- Sala de conferência: implementação de 5 salas de conferência. Interessante: controle de acesso às salas (primeiro canal ligado à sala pode banir/expulsar outros canais)
- Callback: para ligações definidas por um certo padrão X, desligar e ligar de volta - retornando o pedido original. Interessante: informar um terceiro canal (diretor, gerente, etc.) de que houve essa ligação de retorno.
Método de Avaliação
A avaliação será feita mediante apresentação do soft PBX em funcionamento, onde um ou mais alunos serão escolhidos para explicar os arquivos de configuração em cada um dos itens (obrigatórios e escolhidos).
Cada equipe terá, no máximo, meia hora para apresentar e defender a solução final. Tanto para os itens obrigatórios quanto para os escolhidos, o conceito mínimo será C - para compor o conceito final:
- Trabalhos implementados com sucesso e devidamente explicados, para testes bidirecionais, serão considerados A.
- Trabalhos implementados em parte com sucesso, onde funcionará apenas em um sentido (efetua chamada mas não recebe, por exemplo), serão B.
- Trabalhos implementados com sucesso, porém mal explicados (o aluno não defendeu a proposta ou não soube como foi implementado), serão C.
- Trabalhos implementados sem sucesso (qualquer sentido), e com deficiência na explicação, serão D.
19/05: NÃO HOUVE
26/05: definição do ambiente do projeto
- Equipe 1 (_")
- Servidor Asterisk: 192.168.2.107 (M7)
- ATA: 192.168.2.115
- Telefone IP: 192.168.2.114
- Ramais: Fábio (101) e João (102)
- Equipe 2 (.I)
- Servidor Asterisk: 192.168.2.109 (M9)
- ATA: 192.168.2.119
- Telefone IP: 192.168.2.111
- Ramais: Aládio (123) e Lucas (125)
- Equipe 3 (.o')
- Servidor Asterisk: 192.168.2.116 (M2)
- ATA: 192.168.2.110
- Telefone IP: 192.168.2.203
- Ramais: Diony (171) e Gustavo (190)
02/06: dicas para os trabalhos
- URI
- Teste: ligando para Diony
09/06: andamento dos trabalhos
- Tópico: projeto final.
16/06: andamento dos trabalhos
- Tópico: projeto final.
23/06: dicas para os trabalhos
Callback
Ideia básica: o canal joao liga para maria. A central cancela essa chamada e cria uma nova, convidando ambas as partes para uma nova ligação - mas provavelmente com tarifação diferenciada, uma vez que muda o sentido da ligação (antes: joao->Asterisk->maria; depois Asterisk->joao + Asterisk->maria). Então, quando chega uma ligação com estes parâmetros (origem=joao e destino=maria), o que se faz é agendar uma nova ligação e na sequência cancelar a atual:
[default] ; O formato maria/joao (destino/origem) significa que maria recebeu um convite (INVITE) de joao. exten => maria/joao,1,System(cp /etc/asterisk/de_joao_para_maria.call /var/spool/asterisk/outgoing) exten => maria/joao,n,HangUp [callback] exten => s,1,Answer() exten => s,n,Dial(SIP/joao) exten => s,n,HangUp()
onde esta nova ligação partirá, inicialmente, de Asterisk para o canal SIP/maria para, na sequência, conectar este último ao canal SIP/joao - de certa forma invertendo o sentido da chamada. O arquivo /etc/asterisk/de_joao_para_maria.call deve informar, portanto, a primeira ponta a ser chamada:
Channel: SIP/maria Context: callback Extension: s MaxRetries: 2 RetryTime: 1 CallerID: Asterisk
e o contexto callback se encarrega de definir a segunda ponta da ligação, SIP/joao.
Para mais informações, veja esta página de exemplo.
Conversão de texto em voz
A conversão de qualquer texto em voz pode ser feita de várias maneiras. Uma delas é compor a frase, externamente ao Asterisk, para, depois convertê-la em voz via Festival. Usando AGI, tem-se um vasto leque de comandos e linguagens de programação, como por exemplo script shell. No caso abaixo, é criada uma variável de nome FRASE para ser "lida" pelo Asterisk.
- Arquivo /etc/asterisk/frase.sh:
#!/bin/sh echo 'SET VARIABLE FRASE "Welcome to Asterisk!"'
Esta frase será, então, lida pelo Asterisk (assumindo o contexto default e canal 200):
[default] exten => 200,n,AGI(/etc/asterisk/frase.sh) exten => 200,n,Festival(${FRASE})
Obs.: lembre-se de manter o servidor Festival rodando em paralelo ao Asterisk:
festival --server &
Filas de atendimento
- Leitura do livro sobre Asterisk, de autoria de Flávio Gonçalves (Voffice).
Codec
- Leitura das páginas 193 a 196 do livro Asterisk: the Future of Telephony.
- Se preciso, faça uso de um tradutor.
30/06: apresentação do projeto final
- Teste de callback:
- Para ramal: sip:diony
- Para número externo via entroncamento SIP:
- Previsão do tempo:
- Sala de conferência:
Perguntas
- Obrigatório: entroncamento SIP
- mostrar configuração