Mudanças entre as edições de "TIP-IntTel (2020.1)"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
m (Cleber.amaral moveu TIP-IntTel para TIP-IntTel (2020.1): Nome reservado para matriz curricular)
 
(212 revisões intermediárias por um outro usuário não estão sendo mostradas)
Linha 22: Linha 22:
 
<br /> ''Link alternativo para Material de Apoio da disciplina'': http://www.sj.ifsc.edu.br/~casagrande/TIP
 
<br /> ''Link alternativo para Material de Apoio da disciplina'': http://www.sj.ifsc.edu.br/~casagrande/TIP
  
=Resultados das Avaliações=
+
=Avaliações=
  
;Critérios
+
;Critérios de Avaliação
: Os alunos serão avaliados da seguinte forma:
+
#Os estudantes serão avaliados da seguinte forma:<br>
:: - 2 Avaliações parciais A1 e PI (Projeto Integrador). A avaliação parcial A1 contará com uma '''PROVA ESCRITA''' de 2HA de conteúdos preferencialmente associados as teorias e práticas da disciplina os quais representam 60% da NOTA FINAL; Os outros 40% de dessa avaliação parcial é relativa a média das notas atribuídas a aptidão e qualidade das atividades práticas e teóricas correspondentes, atividades extras e avaliação individual. A avaliação parcial PI representa 60% do valor atribuído segundo os critérios do '''projeto integrador final''' da turma e os outros 40% representa a média das notas atribuídas a aptidão e qualidade das atividades práticas e avaliação individual correspondentes. <br />
+
#:-Duas Avaliações parciais '''A1''' e '''PI''' (Projeto Integrador) que representam ponderadamente 70% e 30% respectivamente do valor da MÉDIA FINAL, assim determinadas:  <br>
:: - Avaliação Individual (AI1, AIPI) é uma nota atribuída pelo professor que representa o mérito de assiduidade, participação em sala e em equipe, cumprimento de tarefas adicionais como atribuições do PI, relatórios e listas de exercícios.<br />
+
#::*A avaliação parcial '''NF A1''' resulta da média ponderada de duas notas: a) '''Prova A1''' representando 50% do total sendo uma '''PROVA ESCRITA''' (2HA) de conteúdos preferencialmente associados as teorias e práticas da disciplina e b) Outros 50% resultado da média das notas atribuídas a aptidão e qualidade das atividades práticas e teóricas através de Atividades Extras (AE) e Avaliações Individuais (AI) correspondentes. <br>
:: - Todas as notas parciais serão valoradas de 0 à 10,0 em passos de 0,1 pontos e convertidas em conceitos conforme abaixo:
+
#::*A avaliação parcial '''NF PI''' representa 70% do valor atribuído segundo os critérios do '''projeto integrador final''' da turma e os outros 30% representam a média das notas atribuídas a aptidão e qualidade das atividades práticas e Avaliações Extras ou Individuiais (AE ou AI) correspondentes. <br>
::* Se '''NOTA FINAL (NF)''' OU '''PROVA ESCRITA''' da avaliação parcial '''< 6,0''' é OBRIGATÓRIO realizar a recuperação dos conteúdos da respectiva avaliação parcial <br />
+
#:-Avaliação Individual (AI, AIPI se existir) é uma nota atribuída pelo professor que representa o mérito de assiduidade, participação em sala e em equipe, cumprimento de tarefas adicionais como atribuições do PI, relatórios e listas de exercícios.<br>
::* Se '''NOTA FINAL''' E '''PROVA ESCRITA''' da avaliação parcial '''>= 6,0''' a recuperação de conteúdos é opcional<br />- '''Para a aprovação na disciplina''' é necessário atingir no mínimo a nota '''6,0''' na MÉDIA final ponderada em carga horária de todas as avaliações parciais e 75% de participação em sala de aula;<br />- Conforme restrições do sistema de registro de notas do SIGAA, a NOTA FINAL sempre tem arredondamento para o valor inteiro mais baixo da unidade (exemplo: Nota 5,9 é considerado NOTA FINAL 5). Arredondamentos para valores inteiros mais altos da NOTA FINAL só serão permitidos mediante tolerância do professor diante da evolução do discente ao longo do semestre.
+
#Todas as notas de avaliações parciais serão valoradas de 0 à 10,0 em passos de 0,1 pontos e convertidas em conceitos conforme abaixo:<br>
:: - As datas de recuperação das avaliações parciais serão realizadas no último dia letivo da disciplina, mas podem ser decididas em comum acordo com a turma. <br />
+
#:- Se a nota calculada de '''qualquer avaliação parcial''' for '''< 6,0'''é OBRIGATÓRIO realizar a recuperação dos conteúdos da respectiva avaliação parcial <br>
{| border="1" cellspacing="0" cellpadding="5"
+
#:- Se '''MEDIA FINAL''' E '''todas as avaliações parciais''' forem '''>= 6,0''' a recuperação de conteúdos é opcional.<br>
 +
#'''Para a aprovação na disciplina''' é necessário atingir no mínimo a nota '''6,0''' na MÉDIA FINAL ponderada em carga horária de todas as avaliações parciais e 75% de participação em sala de aula;<br>
 +
#:- Conforme restrições do sistema de registro de notas do SIGAA, a NOTA FINAL sempre tem arredondamento para o valor inteiro mais baixo da unidade (exemplo: '''Nota 5,9 é considerado NOTA FINAL 5'''). Arredondamentos para valores inteiros mais altos da NOTA FINAL só serão permitidos mediante tolerância do professor diante da evolução do(a) estudante ao longo do semestre E SEMPRE DEFINIDAS SOMENTE APÓS OS CONSELHOS DE CLASSE FINAIS.<br>
 +
#As datas de recuperação das avaliações parciais serão realizadas em data específica do plano de ensino e/ou decididas em comum acordo com a turma. <br>
 +
;QUADRO GERAL DE RESULTADOS DAS AVALIAÇÕES <br>
 +
{| border="1" cellpadding="2" cellspacing="1" style="text-align: center;"
 +
! style="background: #dcdcdc;" | ESTUDANTE
 +
! style="background: #dcdcdc;" | AE1
 +
! style="background: #dcdcdc;" | AE2
 +
! style="background: #dcdcdc;" | AE3
 +
! style="background: #dcdcdc;" | AE4
 +
! style="background: #dcdcdc;" | AI1
 +
! style="background: #dcdcdc;" | AI2
 +
! style="background: #dcdcdc;" | AI3
 +
! style="background: #dcdcdc;" | AI4
 +
! style="background: #dcdcdc;" | Prova A1
 +
! style="background: #dcdcdc;" | REC A1
 +
! style="background: #00ffff;" | NF A1
 +
! style="background: #dcdcdc;" | AIPI
 +
! style="background: #dcdcdc;" | PI
 +
! style="background: #00ffff;" | NF PI
 +
! style="background: #dcdcdc;" | MÉDIA FINAL
 +
! style="background: #00FFFF;" | NOTA FINAL
 +
! style="background: #dcdcdc;" | Situação
 +
|-
 +
|-
 +
|'''1620013231'''|| style="background: #60FF60;" | 10,0|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 6,7|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 8,6|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 9|| style="background: #60FF60;" | 10|| style="background: #FFFFFF;" | -|| style="background: #00FFFF;" | 9,6|| style="background: #60FF60;" | 9|| style="background: #60FF60;" | 10|| style="background: #00FFFF;" | 9,7|| style="background: #60FF60;" | 9,6|| style="background: #00FFFF;" | '''10'''|| style="background: #60FF60;" | APROVADO
 +
|-
 +
|'''1620007053'''|| style="background: #60FF60;" | 10,0|| style="background: #60FF60;" | 9|| style="background: #60FF60;" | 8,7|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 8,6|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 8|| style="background: #60FF60;" | 9,5|| style="background: #60FF60;" | 8,7|| style="background: #FFFFFF;" | -|| style="background: #00FFFF;" | 9,0|| style="background: #60FF60;" | 9|| style="background: #60FF60;" | 8|| style="background: #00FFFF;" | 8,3|| style="background: #60FF60;" | 8,8|| style="background: #00FFFF;" | '''9'''|| style="background: #60FF60;" | APROVADO
 
|-
 
|-
!DISCENTE
+
|'''1620029758'''|| style="background: #60FF60;" | 10,0|| style="background: #60FF60;" | 9|| style="background: #60FF60;" | 9,8|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 9,5|| style="background: #60FF60;" | 7,3|| style="background: #FFFFFF;" | -|| style="background: #00FFFF;" | 8,5|| style="background: #60FF60;" | 8|| style="background: #60FF60;" | 10|| style="background: #00FFFF;" | 9,4|| style="background: #60FF60;" | 8,8|| style="background: #00FFFF;" | '''9'''|| style="background: #60FF60;" | APROVADO
!AE1
 
!AE2
 
!AE3
 
!AE4
 
!AI1
 
!Prova A1
 
!REC A1
 
! style="background: #00ffff;" colspan="2"|NF A1
 
!AE5
 
!AE6
 
!AI2
 
!PI
 
!NF PI
 
! style="background: #00ffff;" colspan="2"|NF PI
 
!MÉDIA PONDERADA
 
! style="background: #F0F000;" colspan="2"|NOTA FINAL
 
!Situação
 
 
|-
 
|-
|'''Augusto'''
+
|'''1620016486'''|| style="background: #60FF60;" | 10,0|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 9,3|| style="background: #60FF60;" | 10|| style="background: #FF6060;" | 0|| style="background: #60FF60;" | 9|| style="background: #60FF60;" | 8,5|| style="background: #FFFFFF;" | -|| style="background: #00FFFF;" | 8,5|| style="background: #60FF60;" | 8|| style="background: #60FF60;" | 10|| style="background: #00FFFF;" | 9,4|| style="background: #60FF60;" | 8,8|| style="background: #00FFFF;" | '''9'''|| style="background: #60FF60;" | APROVADO
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0
 
|0
 
|0
 
| 
 
|0,0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0,0
 
| style="background: #F0F000;" colspan="2"|'''0'''
 
| style="background: #AA0000;" colspan="2"|REPROVADO
 
 
|-
 
|-
|'''Brenda'''
+
|'''1620008718'''|| style="background: #60FF60;" | 10,0|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 9,7|| style="background: #60FF60;" | 9|| style="background: #60FF60;" | 9,3|| style="background: #FF6060;" | 0|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 9,5|| style="background: #60FF60;" | 8|| style="background: #FFFFFF;" | -|| style="background: #00FFFF;" | 8,2|| style="background: #60FF60;" | 8|| style="background: #60FF60;" | 9|| style="background: #00FFFF;" | 8,7|| style="background: #60FF60;" | 8,4|| style="background: #00FFFF;" | '''8'''|| style="background: #60FF60;" | APROVADO
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0
 
|0
 
|0
 
| 
 
|0,0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0,0
 
| style="background: #F0F000;" colspan="2"|'''0'''
 
| style="background: #AA0000;" colspan="2"|REPROVADO
 
 
|-
 
|-
|'''Bruna'''
+
|'''1620014882'''|| style="background: #60FF60;" | 10,0|| style="background: #FF6060;" | 0|| style="background: #60FF60;" | 8,7|| style="background: #FF6060;" | 0|| style="background: #60FF60;" | 10|| style="background: #FF6060;" | 0|| style="background: #FF6060;" | 0|| style="background: #FF6060;" | 0|| style="background: #FF6060;" | 0|| style="background: #FFFFFF;" | -|| style="background: #00FFFF;" | 1,8|| style="background: #FF6060;" | 0|| style="background: #FF6060;" | 0|| style="background: #00FFFF;" | 0,0|| style="background: #FFFF60;" | 1,3|| style="background: #00FFFF;" | '''1'''|| style="background: #FF6060;" | REPROVADO
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0
 
|0
 
|0
 
| 
 
|0,0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0,0
 
| style="background: #F0F000;" colspan="2"|'''0'''
 
| style="background: #AA0000;" colspan="2"|REPROVADO
 
 
|-
 
|-
|'''Bruno'''
+
|'''1620050170'''|| style="background: #60FF60;" | 10,0|| style="background: #FF6060;" | 0|| style="background: #60FF60;" | 9,3|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 6,7|| style="background: #FF6060;" | 0|| style="background: #60FF60;" | 8|| style="background: #60FF60;" | 9|| style="background: #60FF60;" | 8,7|| style="background: #FFFFFF;" | -|| style="background: #00FFFF;" | 7,7|| style="background: #60FF60;" | 8|| style="background: #60FF60;" | 9|| style="background: #00FFFF;" | 8,7|| style="background: #60FF60;" | 8,0|| style="background: #00FFFF;" | '''8'''|| style="background: #60FF60;" | APROVADO
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0
 
|0
 
|0
 
| 
 
|0,0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0,0
 
| style="background: #F0F000;" colspan="2"|'''0'''
 
| style="background: #AA0000;" colspan="2"|REPROVADO
 
 
|-
 
|-
|'''Enzo'''
+
|'''1620032570'''|| style="background: #60FF60;" | 10,0|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 7,3|| style="background: #60FF60;" | 9|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 9,5|| style="background: #60FF60;" | 8,3|| style="background: #FFFFFF;" | -|| style="background: #00FFFF;" | 8,9|| style="background: #60FF60;" | 9|| style="background: #60FF60;" | 10|| style="background: #00FFFF;" | 9,7|| style="background: #60FF60;" | 9,1|| style="background: #00FFFF;" | '''9'''|| style="background: #60FF60;" | APROVADO
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0
 
|0
 
|0
 
| 
 
|0,0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0,0
 
| style="background: #F0F000;" colspan="2"|'''0'''
 
| style="background: #AA0000;" colspan="2"|REPROVADO
 
 
|-
 
|-
|'''Fernanda'''
+
|'''1620006685'''|| style="background: #60FF60;" | 10,0|| style="background: #60FF60;" | 9|| style="background: #60FF60;" | 9,7|| style="background: #60FF60;" | 8|| style="background: #60FF60;" | 6,7|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 9|| style="background: #60FF60;" | 9,7|| style="background: #FFFFFF;" | -|| style="background: #00FFFF;" | 9,4|| style="background: #60FF60;" | 8|| style="background: #60FF60;" | 7|| style="background: #00FFFF;" | 7,3|| style="background: #60FF60;" | 8,8|| style="background: #00FFFF;" | '''9'''|| style="background: #60FF60;" | APROVADO
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0
 
|0
 
|0
 
| 
 
|0,0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0,0
 
| style="background: #F0F000;" colspan="2"|'''0'''
 
| style="background: #AA0000;" colspan="2"|REPROVADO
 
 
|-
 
|-
|'''Guilherme'''
+
|'''1620009064'''|| style="background: #60FF60;" | 10,0|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 8,7|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 9,5|| style="background: #60FF60;" | 10|| style="background: #FFFFFF;" | -|| style="background: #00FFFF;" | 9,9|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 10|| style="background: #00FFFF;" | 10,0|| style="background: #60FF60;" | 9,9|| style="background: #00FFFF;" | '''10'''|| style="background: #60FF60;" | APROVADO
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0
 
|0
 
|0
 
| 
 
|0,0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0,0
 
| style="background: #F0F000;" colspan="2"|'''0'''
 
| style="background: #AA0000;" colspan="2"|REPROVADO
 
 
|-
 
|-
|'''Isabella'''
+
|'''1620029723'''|| style="background: #60FF60;" | 10,0|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 9,3|| style="background: #60FF60;" | 9|| style="background: #60FF60;" | 9,3|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 9|| style="background: #60FF60;" | 9,3|| style="background: #FFFFFF;" | -|| style="background: #00FFFF;" | 9,4|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 8|| style="background: #00FFFF;" | 8,6|| style="background: #60FF60;" | 9,2|| style="background: #00FFFF;" | '''9'''|| style="background: #60FF60;" | APROVADO
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0
 
|0
 
|0
 
| 
 
|0,0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0,0
 
| style="background: #F0F000;" colspan="2"|'''0'''
 
| style="background: #AA0000;" colspan="2"|REPROVADO
 
 
|-
 
|-
|'''Jennifer'''
+
|'''1620017830'''|| style="background: #60FF60;" | 10,0|| style="background: #60FF60;" | 9|| style="background: #60FF60;" | 9,8|| style="background: #60FF60;" | 7|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 9,5|| style="background: #60FF60;" | 7,3|| style="background: #FFFFFF;" | -|| style="background: #00FFFF;" | 8,4|| style="background: #60FF60;" | 9|| style="background: #60FF60;" | 9|| style="background: #00FFFF;" | 9,0|| style="background: #60FF60;" | 8,6|| style="background: #00FFFF;" | '''9'''|| style="background: #60FF60;" | APROVADO
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0
 
|0
 
|0
 
|0
 
|0,0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0,0
 
| style="background: #F0F000;" colspan="2"|'''0'''
 
| style="background: #AA0000;" colspan="2"|REPROVADO
 
 
|-
 
|-
|'''João Pedro'''
+
|'''1620017725'''|| style="background: #60FF60;" | 10,0|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 9,3|| style="background: #60FF60;" | 9|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 9|| style="background: #60FF60;" | 9,3|| style="background: #FFFFFF;" | -|| style="background: #00FFFF;" | 9,5|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 10|| style="background: #00FFFF;" | 10,0|| style="background: #60FF60;" | 9,7|| style="background: #00FFFF;" | '''10'''|| style="background: #60FF60;" | APROVADO
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0
 
|0
 
|0
 
|0
 
|0,0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0,0
 
| style="background: #F0F000;" colspan="2"|'''0'''
 
| style="background: #AA0000;" colspan="2"|REPROVADO
 
 
|-
 
|-
|'''Lilia'''
+
|'''1620009870'''|| style="background: #60FF60;" | 10,0|| style="background: #60FF60;" | 9|| style="background: #60FF60;" | 9,3|| style="background: #60FF60;" | 9|| style="background: #60FF60;" | 7,9|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 9|| style="background: #60FF60;" | 9,3|| style="background: #FFFFFF;" | -|| style="background: #00FFFF;" | 9,3|| style="background: #60FF60;" | 8|| style="background: #60FF60;" | 7|| style="background: #00FFFF;" | 7,3|| style="background: #60FF60;" | 8,7|| style="background: #00FFFF;" | '''9'''|| style="background: #60FF60;" | APROVADO
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0
 
|0
 
|0
 
|0
 
|0,0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0,0
 
| style="background: #F0F000;" colspan="2"|'''0'''
 
| style="background: #AA0000;" colspan="2"|REPROVADO
 
 
|-
 
|-
|'''Lucas Castro'''
+
|'''1520063997'''|| style="background: #60FF60;" | 10,0|| style="background: #60FF60;" | 9|| style="background: #60FF60;" | 9,8|| style="background: #60FF60;" | 9|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 9|| style="background: #60FF60;" | 9,5|| style="background: #60FF60;" | 8,7|| style="background: #FFFFFF;" | -|| style="background: #00FFFF;" | 9,1|| style="background: #60FF60;" | 8|| style="background: #60FF60;" | 9|| style="background: #00FFFF;" | 8,7|| style="background: #60FF60;" | 9,0|| style="background: #00FFFF;" | '''9'''|| style="background: #60FF60;" | APROVADO
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0
 
|0
 
|0
 
|0
 
|0,0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0,0
 
| style="background: #F0F000;" colspan="2"|'''0'''
 
| style="background: #AA0000;" colspan="2"|REPROVADO
 
 
|-
 
|-
|'''Lucas Fontes'''
+
|'''1620066408'''|| style="background: #60FF60;" | 10,0|| style="background: #FF6060;" | 0|| style="background: #60FF60;" | 9,8|| style="background: #60FF60;" | 9|| style="background: #60FF60;" | 9,3|| style="background: #FF6060;" | 0|| style="background: #FF6060;" | 0|| style="background: #60FF60;" | 9,5|| style="background: #60FF60;" | 7,5|| style="background: #FFFFFF;" | -|| style="background: #00FFFF;" | 6,7|| style="background: #60FF60;" | 8|| style="background: #60FF60;" | 8|| style="background: #00FFFF;" | 8,0|| style="background: #60FF60;" | 7,1|| style="background: #00FFFF;" | '''7'''|| style="background: #60FF60;" | APROVADO
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0
 
|0
 
|0
 
|0
 
|0,0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0,0
 
| style="background: #F0F000;" colspan="2"|'''0'''
 
| style="background: #AA0000;" colspan="2"|REPROVADO
 
 
|-
 
|-
|'''Manuela'''
+
|'''1620029421'''|| style="background: #60FF60;" | 10,0|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 9,3|| style="background: #60FF60;" | 9|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 9,5|| style="background: #60FF60;" | 9,8|| style="background: #FFFFFF;" | -|| style="background: #00FFFF;" | 9,8|| style="background: #60FF60;" | 8|| style="background: #60FF60;" | 10|| style="background: #00FFFF;" | 9,4|| style="background: #60FF60;" | 9,7|| style="background: #00FFFF;" | '''10'''|| style="background: #60FF60;" | APROVADO
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0
 
|0
 
|0
 
|0
 
|0,0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0,0
 
| style="background: #F0F000;" colspan="2"|'''0'''
 
| style="background: #AA0000;" colspan="2"|REPROVADO
 
 
|-
 
|-
|'''Mateus Seemann'''
+
|'''1620007134'''|| style="background: #60FF60;" | 10,0|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 9,8|| style="background: #60FF60;" | 9|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 8|| style="background: #60FF60;" | 9,5|| style="background: #60FF60;" | 7,9|| style="background: #FFFFFF;" | -|| style="background: #00FFFF;" | 8,7|| style="background: #60FF60;" | 9|| style="background: #60FF60;" | 10|| style="background: #00FFFF;" | 9,7|| style="background: #60FF60;" | 9,0|| style="background: #00FFFF;" | '''9'''|| style="background: #60FF60;" | APROVADO
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0
 
|0
 
|0
 
|0
 
|0,0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0,0
 
| style="background: #F0F000;" colspan="2"|'''0'''
 
| style="background: #AA0000;" colspan="2"|REPROVADO
 
 
|-
 
|-
|'''Matheus Santana'''
+
|'''1620032317'''|| style="background: #60FF60;" | 10,0|| style="background: #60FF60;" | 9|| style="background: #60FF60;" | 9,8|| style="background: #60FF60;" | 7|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 9,5|| style="background: #60FF60;" | 8,3|| style="background: #FFFFFF;" | -|| style="background: #00FFFF;" | 8,9|| style="background: #60FF60;" | 9|| style="background: #60FF60;" | 8|| style="background: #00FFFF;" | 8,3|| style="background: #60FF60;" | 8,7|| style="background: #00FFFF;" | '''9'''|| style="background: #60FF60;" | APROVADO
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0
 
|0
 
|0
 
|0
 
|0,0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0,0
 
| style="background: #F0F000;" colspan="2"|'''0'''
 
| style="background: #AA0000;" colspan="2"|REPROVADO
 
 
|-
 
|-
|'''Nathaly'''
+
|'''1620006774'''|| style="background: #60FF60;" | 10,0|| style="background: #60FF60;" | 9|| style="background: #60FF60;" | 8,3|| style="background: #60FF60;" | 8|| style="background: #60FF60;" | 9,3|| style="background: #FF6060;" | 0|| style="background: #FF6060;" | 0|| style="background: #60FF60;" | 8|| style="background: #60FF60;" | 8,7|| style="background: #FFFFFF;" | -|| style="background: #00FFFF;" | 7,6|| style="background: #60FF60;" | 8|| style="background: #60FF60;" | 8|| style="background: #00FFFF;" | 8,0|| style="background: #60FF60;" | 7,7|| style="background: #00FFFF;" | '''8'''|| style="background: #60FF60;" | APROVADO
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0
 
|0
 
|0
 
|0
 
|0,0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0,0
 
| style="background: #F0F000;" colspan="2"|'''0'''
 
| style="background: #AA0000;" colspan="2"|REPROVADO
 
 
|-
 
|-
|'''Pedro'''
+
|'''1620014980'''|| style="background: #60FF60;" | 10,0|| style="background: #60FF60;" | 9|| style="background: #FF6060;" | 0|| style="background: #FF6060;" | 0|| style="background: #60FF60;" | 10|| style="background: #FF6060;" | 0|| style="background: #60FF60;" | 10|| style="background: #FF6060;" | 0|| style="background: #FF6060;" | 0|| style="background: #FFFFFF;" | -|| style="background: #00FFFF;" | 2,4|| style="background: #FF6060;" | 0|| style="background: #FF6060;" | 0|| style="background: #00FFFF;" | 0,0|| style="background: #FFFF60;" | 1,7|| style="background: #00FFFF;" | '''2'''|| style="background: #FF6060;" | REPROVADO
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0
 
|0
 
|0
 
|0
 
|0,0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0,0
 
| style="background: #F0F000;" colspan="2"|'''0'''
 
| style="background: #AA0000;" colspan="2"|REPROVADO
 
 
|-
 
|-
|'''Thiago'''
+
|'''1620010437'''|| style="background: #60FF60;" | 10,0|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 9,5|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 10|| style="background: #60FF60;" | 9,5|| style="background: #60FF60;" | 10|| style="background: #FFFFFF;" | -|| style="background: #00FFFF;" | 9,9|| style="background: #60FF60;" | 9|| style="background: #60FF60;" | 9|| style="background: #00FFFF;" | 9,0|| style="background: #60FF60;" | 9,6|| style="background: #00FFFF;" | '''10'''|| style="background: #60FF60;" | APROVADO
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0
 
|0
 
|0
 
|0
 
|0,0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0,0
 
| style="background: #F0F000;" colspan="2"|'''0'''
 
| style="background: #AA0000;" colspan="2"|REPROVADO
 
 
|-
 
|-
|'''Vinícius'''
+
|}
|0
+
;ATENÇÃO - MÉDIA FINAL = 70% NF A1 + 30% NF PI; '''NOTA FINAL''' – SOMENTE APÓS CONSELHOS DE CLASSE <br>
|0
+
{| border="1" cellpadding="5" cellspacing="5" style="text-align: center;"
|0
+
|+ Escala das Notas
|0
 
|0
 
|0
 
|0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0
 
|0
 
|0
 
|0
 
|0,0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0,0
 
| style="background: #F0F000;" colspan="2"|'''0'''
 
| style="background: #AA0000;" colspan="2"|REPROVADO
 
 
|-
 
|-
|'''Wesley'''
+
! style="background: #FF6060;" | =0,0 Atividade NÃO executada
|0
+
! style="background: #FFFF60;" | <6,0 Prejudicando MÉDIA FINAL
|0
+
! style="background: #60FF60;" | >=6,0 Quanto maior, melhor!
|0
+
! style="background: #00FFFF;" | Principais Notas -> SIGAA
|0
 
|0
 
|0
 
|0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0
 
|0
 
|0
 
|0
 
|0,0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0,0
 
| style="background: #F0F000;" colspan="2"|'''0'''
 
| style="background: #AA0000;" colspan="2"|REPROVADO
 
 
|-
 
|-
|'''Yasmin'''
 
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
|0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0
 
|0
 
|0
 
|0
 
|0,0
 
| style="background: #00ffff;" colspan="2"|0,0
 
|0,0
 
| style="background: #F0F000;" colspan="2"|'''0'''
 
| style="background: #AA0000;" colspan="2"|REPROVADO
 
 
|}
 
|}
;ATENÇÃO - MÉDIA PONDERADA = 50% NF A1 +50% NF PI NOTA FINAL – APÓS CONSELHOS DE CLASSE <br />
+
;LEGENDA - DESCRIÇÃO E CRONOGRAMA DAS AVALIAÇÕES (Conforme nosso [https://wiki.sj.ifsc.edu.br/index.php/TIP-IntTel#Di.C3.A1rio_de_aulas_TIP60801_-_2020-1_-_Prof._Jorge_H._B._Casagrande DIÁRIO DE AULAS])
 +
* AE1: AULA PRESENCIAL de 17/02 - Atividade Extra WIKI: Funcionalidades de centrais automáticas.
 +
* AE2: ANP 30/03 - Atividade Extra WIKI: Uso do Asterisk como PBX entre Telefones IP e Softphones.
 +
* AE3: ANP 06/04 - Atividade Extra SIGAA: QUESTIONÁRIO sobre CODECs em PBX IP.
 +
* AE4: ANP 27/04 - Atividade Extra SIGAA: TAREFA de revisão SIP - SDP - RTP.
 +
* AI1: ANP 30/03 - Atividade SIGAA: QUESTIONÁRIO sobre uso do Asterisk como PABX.
 +
* AI2: ANP 27/04 - Atividade SIGAA - FÓRUM - RTP O protocolo da vida digital! (uma ou mais participações implica em nota 10 na atividade)
 +
* AI3: ANP 03/08 - Atividade SIGAA: TAREFA - Leitura e respostas de avaliaçao dos artigos da TELECO.       
 +
* AI4: ANP 17/08 - Atividade SIGAA - QUESTIONÁRIO - Lista de exercícios - REVISÃO PARA AVALIAÇÃO A1.
 +
* AIPI: Avaliação Individual conforme plano de ensino.
  
 
=Recados Importantes=
 
=Recados Importantes=
Linha 516: Linha 167:
  
 
;Slides utilizados durante algumas aulas
 
;Slides utilizados durante algumas aulas
:  
+
 
:*  
+
 
 +
::* [http://tele.sj.ifsc.edu.br/~msobral/rmu/slides/aula-25.pdf Slides de apoio (Professor Emerson Mello)]
 +
 
 +
 
: Manuais e outros
 
: Manuais e outros
 
::  
 
::  
 
::* [https://www.youtube.com/watch?v=mNkWP61GQVs vídeo sobre a atividade dos técnicos de telecomunicações]
 
::* [https://www.youtube.com/watch?v=mNkWP61GQVs vídeo sobre a atividade dos técnicos de telecomunicações]
 +
::* Livro [[media:Asterisk_FlavioGonçalves.pdf | de Flávio Gonçalves.]]
 +
 
==Bibliografia Básica==
 
==Bibliografia Básica==
  
Linha 542: Linha 198:
 
:::* [https://www.sejda.com/pdf-editor editor de PDF]:
 
:::* [https://www.sejda.com/pdf-editor editor de PDF]:
 
:::* [https://www.postscapes.com/internet-of-things-protocols/ Padrões diversos de protocolos para IoT]
 
:::* [https://www.postscapes.com/internet-of-things-protocols/ Padrões diversos de protocolos para IoT]
 +
:::* [https://wiki.sj.ifsc.edu.br/index.php/Guia_b%C3%A1sico_de_VoIP_com_Asterisk guia básico para instalação do Asterisk]
 +
:::* [http://www.asterisk.org Site oficial do Asterisk]
 +
:::* [http://www.asteriskguru.com/ Asterisk Guru]
 +
:::* [http://www.asteriskdocs.org/ Livro online gratuito sobre Asterisk]
 +
:::* [http://www.packetizer.com/ipmc/sip/papers/understanding_sip_voip/ Introdução a VoIP e SIP]
  
=Diário de aulas TIP60801 - 2020-1 - Prof. Jorge H. B. Casagrande=
+
=Diário de aulas TIP60801 - 2020-1- conforme Plano de Ensino presencial - Prof. Jorge H. B. Casagrande=
{{Collapse top |10/02 - Apresentação da Disciplina e discussão sobre o PI}}
 
  
==10/02 - Apresentação da Disciplina e discussão sobre o PI==
+
;LEGENDA DAS CORES NO DIÁRIO:
  
::::  
+
{|  border="1" cellpadding="5" cellspacing="5"
::::* Apresentação da disciplina e plano de ensino;
+
|+ '''A primeira data à esquerda refere-se ao plano de ensino original previsto presencialmente'''
::::* Remontando a história da Telefonia;
+
|-
 +
! colspan="2" style="background: #ccffcc;" | Aulas realizadas presencialmente
 +
|-
 +
! colspan="2" style="background: #00ff00;" | Aulas realizadas em ANP para cumprir o plano de ensino original, presencial
 +
|-
 +
! colspan="2" style="background: #ffd700;" | Aulas previstas presencialmente mas não realizadas para atender o plano de ensino original, presencial
 +
|-
 +
! colspan="2" style="background: #dcdcdc;" | Aulas previstas em ANP mas não realizadas para atender o plano de ensino baseado totalmente em ANP
 +
|-
 +
! colspan="2" style="background: #00ffff;" | Aulas realizadas em ANP para atender o novo plano de ensino baseado totalmente em ANP
 +
|-
 +
|}
 +
 
 +
 
 +
{{Collapse top |10/02 - Apresentação da Disciplina e discussão sobre o PI}}
 +
 
 +
==10/02 - Apresentação da Disciplina e discussão sobre o PI==
 +
 
 +
::::  
 +
::::* Apresentação da disciplina e plano de ensino;
 +
::::* Remontando a história da Telefonia;
  
  
 
{{Collapse bottom}}
 
{{Collapse bottom}}
  
{{Collapse top |17/02 - <math>\blacklozenge</math> Resgatando bases da Telefonia Analógica e Digital}}
+
{{Collapse top |17/02 - <math>\blacklozenge</math> AE1- Resgatando bases da Telefonia Analógica e Digital}}
  
==17/02 - <math>\blacklozenge</math> Resgatando bases da Telefonia Analógica==
+
==17/02 - <math>\blacklozenge</math> AE1 Resgatando bases da Telefonia Analógica==
 
===Vamos dar uma situada sobre a Telefonia IP===
 
===Vamos dar uma situada sobre a Telefonia IP===
  
Linha 961: Linha 641:
 
Entre centrais telefônicas e entre centrais e PABXs normalmente os enlaces são realizados por troncos [http://en.wikipedia.org/wiki/E-carrier E1] (ou hierarquias destes troncos). Nestes sistemas os canais digitais são multiplexados no tempo ([http://en.wikipedia.org/wiki/Multiplexing#Time-division_multiplexing ver aqui]).
 
Entre centrais telefônicas e entre centrais e PABXs normalmente os enlaces são realizados por troncos [http://en.wikipedia.org/wiki/E-carrier E1] (ou hierarquias destes troncos). Nestes sistemas os canais digitais são multiplexados no tempo ([http://en.wikipedia.org/wiki/Multiplexing#Time-division_multiplexing ver aqui]).
  
Em uma ligação telefônica que passa por várias etapas, toda a sinalização é repassada de forma digitalizada por canais adicionais no E1 (ou uma variante disto). O chaveamento de circuito é espacial e temporal, ou seja um determinado slot de tempo de uma linha física é mapeado em outro slot de tempo em outra linha física. Com todo mapeamento realizado, a conexão entre dois telefones interligados por várias centrais se passa como se fossem dois fios de uma ponta a outra entre origem e destino da ligação telefônica.
+
Em uma ligação telefônica que passa por várias etapas, toda a sinalização é repassada de forma digitalizada por canais adicionais no E1 (ou uma variante disto). O chaveamento de circuito
  
===Redes com chaveamento por pacotes versus chaveadas por circuitos===
+
<!--
  
Um ponto chave da rede PSTN é que, sendo baseada em chaveamento de circuitos, a rede proporciona uma ligação permanente entre dois terminais telefônicos até que ela seja encerrada. Mesmo que um usuário não fale nada, os recursos estão alocados para a comunicação. Esta abordagem tem vantagem e desvantagem. A vantagem é a qualidade da comunicação: os recursos estão lá e não são disputados por ninguém. A desvantagem é o desperdício de recursos. Se o usuário não conversa com seu interlocutor, ele desperdiça um recurso valioso (e caro! $).
+
==Aula Dia 23/04/2013==
  
As redes de pacotes seguem uma abordagem diferente. A informação a ser transportada (qualquer que seja), é organizada na forma de pacotes de bits. Estes pacotes, pelo menos naquelas sem conexão, possuem endereço de destino e de fonte. Todos os enlaces de conexão entre "centrais" são multiplexados em termos de pacotes. Em uma mesma linha, podem seguir pacotes de diferentes origens/destinos. As centrais na realidade são chamadas de roteadores, que chaveiam pacotes para outros enlaces conforme o destino do pacote e a informação de uma tabela de roteamento.
+
== Apresentação do novo professor ==
  
<!-- [http://www.visualland.net/AnimationView.php?d=data/published/0_502_2.1%20Routing%20with%20IP%20address.ae.anm&protocol=Routing%20-%20for%20beginners&title=2.1%20Routing%20with%20IP%20address.ae Exemplo 1]
+
* [[Marcelo_Maia_Sobral|Marcelo Maia Sobral]]
 +
* '''Email:''' msobral@ifsc.edu.br
 +
* '''Atendimento paralelo:''' 2a de 8:20 às 9:10 h, 4a de 13:30 a 14:30
 +
* '''Grupo no Facebook:''' TIP (primeiro [http://www.facebook.com/Marcelo.Sobral.Ifsc me adicionem])
  
[http://www.visualland.net/AnimationView.php?d=data/published/0_502_2.2%20Routing%20with%20network%20address.ae.anm&protocol=Routing%20-%20for%20beginners&title=2.2%20Routing%20with%20network%20address.ae Exemplo 2] -->
+
==Objetivos==
  
===Uso de redes de pacotes (Internet) para a transmissão de mídias diversas===
+
* Realizar chamadas entre telefones IP e softphones por meio de um PBX IP Asterisk
 +
* Analisar a sinalização dessas chamadas
  
Originalmente a Internet foi concebida para a transmissão de dados que não tinham requisitos fortes de tempo.
+
== Chamadas feitas usando PBX IP ==
  
  Por exemplo, o envio de um email pode demorar alguns minutos até chegar no seu destino.  
+
Um 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.
  
Entretanto, com os avanços em todos os campos das telecomunicações e da computação, conseguiu-se meios de transmissão com altíssima capacidade de transmissão bem como roteadores com grande velocidade de chaveamento. Tudo isto possibilitou que se começasse a usar a Internet para o transporte para outras mídias, tal como a voz e vídeo em tempo real.
+
[[imagem:Voip-call.png|500px]]
  
  Surge uma nova área que é a '''Telefonia IP''. Todos os serviços até então construídos sobre as PSTNs começam a ser construídos sobre a
 
  Internet.
 
  
Um sério problema ainda não resolvido na transmissão de voz digital em tempo real (e vídeo também) é a questão da qualidade de serviço. Pacotes podem sofrer atrasos, corrompidos, duplicados ou perdidos. Não é possível ainda garantir qualidade na transmissão. O que se faz é colocar recursos de sobra para não se ter problemas...
+
Nas nossas aulas faremos uso de um PBX IP [http://www.asterisk.org/ Asterisk], que é um software desenvolvido pela [http://www.digium.com/ Digium]. O Asterisk roda em computadores do tipo PC que possuem sistema operacional baseado em Linux. Sua licença é livre, o que significa que não há custo de licenciamento para utilizá-lo.
 +
* [http://www.asterisk.org/get-started Uma visão geral sobre Asterisk]
  
 +
== PBX IP Asterisk ==
  
{{collapse bottom}}
+
* [http://tele.sj.ifsc.edu.br/~msobral/rmu/slides/aula-25.pdf Transparências]
 +
* [http://www.asterisk.org Site oficial do Asterisk]
 +
* [http://www.asteriskguru.com/ Asterisk Guru]
 +
* [http://www.voip-info.org/wiki Dicas sobre Asterisk]
 +
* [http://www.asteriskdocs.org/ Livro online gratuito sobre Asterisk]
 +
* [http://www.packetizer.com/ipmc/sip/papers/understanding_sip_voip/ Introdução a VoIP e SIP]
 +
* Livro [http://www.voffice.com.br/index.php/pt/noticiasgrupovoffice/voffice-treinamento/96-voffice-lanca-quinta-geracao-do-guia-de-configuracao-para-o-asterisk- ''Asterisk: Guia de Configuração - 5a geração''], de Flávio Gonçalves.
  
{{collapse top |02/03 - Introdução a VoIP, protocolo SIP e softphones}}
 
  
==02/03 - Introdução a VoIP, protocolo SIP e softphones==
+
'''Asterisk:''' uma solução completa de PABX baseado em software, permitindo ligar o mundo IP ao mundo da rede pública de telefonia comutada.
  
===Objetivos===
+
'''Características Básicas:''' faz tudo que um PABX pequeno e simples faz e pouco mais
 +
*ˆ Transferência, música de espera, siga-me, etc.
 +
* Conferência, correio de voz, URA, fila de chamadas, monitoramento de chamadas, integração com o Jabber (Google talk)
  
Ao final da aula o aluno deverá:
 
*reconhecer a necessidade de um protocolo para sinalização para uso em aplicações de telefonia na Internet;
 
*se familiarizar com protocolo  SIP como protocolo de sinalização na Internet;
 
*identificar as principais troca de mensagens do protocolo SIP utilizado entre dois terminais (softphones);
 
  
===O que é preciso para efetivar Voz sobre redes IP (VoIP)?===
+
[[imagem:Asterisk-ex1.png|400px]]
 +
<br>''Exemplo de cenário de uso do Asterisk''
  
'''Pelo menos um''' ou mais protocolos de sinalização e '''um''' ou mais protocolos para transportar a mídia.
 
  
  '''Em adição, é conveniente comprimir a voz para que ela use menos banda e, se necessário, forneça algum sigilo na comunicação.'''
+
<!-- [[imagem:Asterisk-arch.png|500px]]
 +
<br>''Arquitetura modular do Asterisk'' --->
  
Para sinalização tem-se várias opções. A principal hoje é o Protocolo de Iniciação de Sessão ou '''protocolo SIP'''. Para o transporte da voz utiliza-se normalmente o Protocolo de Transporte em Tempo Real sobre o Protocolo de Datagrama de Usuário '''RTP/UDP.'''
+
=== Plano de discagem ===
  
  Além disto, para que a transição do antigo para o novo aconteça, é conveniente interconectar a PSTN (sistema legado) com o sistema de voz sobre IP.
+
O plano de discagem define como cada chamada deve ser processada. As instruções de processamento residem no arquivo de configuração ''/etc/asterisk/extensions.conf''. O fluxo de processamento de chamadas pode ser visto resumidamente abaixo:
  
===A sinalização na Internet===
+
[[imagem:Asterisk-fluxo.png|400px]]
  
A sinalização na telefonia sobre IP é necessária para:
 
*chamar um usuário com quem se deseja comunicar;
 
*negociar parâmetros de comunicação para a sessão a ser estabelecida;
 
*renegociar parâmetros de comunicação durante uma sessão em andamento;
 
*finalizar uma sessão.
 
  
Outras funções avançadas são realizadas pelo protocolo de sinalização, mas por enquanto nos concentraremos nas funções acima.
+
Um exemplo de plano de discagem simples pode ser visto abaixo:
  
Existem vários protocolos de sinalização, mas o SIP é um dos mais utilizados, sendo inclusive adotado nos sistemas celulares 3G e 4G.
+
<syntaxhighlight lang=text>
 +
[alunos]; o nome deste contexto
  
===O protocolo SIP===
+
# Chamadas para o número 101 são feitas via SIP para o canal "maria"
 +
exten=>101,1,Dial(SIP/maria)
 +
same=>n,Hangup()
  
O SIP é um protocolo de sinalização para comunicação multimedia, que se utiliza de mensagens textos (similar ao http) e de '''endereços similares ao de um email'''. Como no HTTP, ele se utiliza de um modelo de transações do '''tipo requisição/resposta'''. Um cliente gera uma requisição a um servidor. O servidor recebe a requisição, invoca um determinado método, e responde ao cliente. A lista de métodos possíveis pode ser encontrada [http://en.wikipedia.org/wiki/List_of_SIP_request_methods aqui].
+
# Chamadas para "teste" serão atendidas com um som de beep, seguido
 +
# da reprodução do arquivo de som "hello-world", em seguida outro beep e
 +
# enfim se encerra a chamada.
 +
exten=>teste,1,Playback(beep)
 +
same=>n,Wait(1)
 +
same=>n,Playback(hello-world)
 +
same=>n,Wait(1)
 +
same=>n,Playback(beep)
 +
same=>n,Hangup
 +
</syntaxhighlight>
  
  Um cliente tipicamente gera uma requisição INVITE para solicitar uma sessão para um servidor. Se aceito, o servidor responde com 200 OK.
+
A estrutura do plano de discagem é composta por ''extensões'' (um termo específico do Asterisk). Cada extensão identifica um número (ou usuário) que  pode ser chamado, e como essa chamada deve ser processada. A sintaxe pode ser vista abaixo:
  
No vocabulário SIP, uma requisição é gerada por '''User Agent Client (UAC)''' e a resposta é dada por um '''User Agent Server (UAS)'''.
+
<syntaxhighlight lang=text>
+
exten=>identificador,prioridade,aplicação
  NOTE que um telefone IP ou um softphone SIP funciona tanto como UAS como UAC pois ora gera requisições ora aceita requisições.
+
</syntaxhighlight>
  
O endereço SIP ou '''SIP URI é utilizado como identificador único de um usuário''', funcionando da mesma forma que um número telefônico. Como agora estamos falando de sinalização na Internet, este endereço se utiliza de conceitos associados a esta rede. Note também que a sinalização SIP pode seguir caminhos diferentes do transporte da mídia.
+
* '''identificador''': o número ou usuário chamado
 +
* '''prioridade''': a prioridade da extensão. Isso determina a ordem de execução das extensões que tratam do mesmo identificador.
 +
* '''aplicação''': uma ação a ser realizada quando a extensão for processada. Por exemplo, a aplicação ''Dial'' determina que deve ser encaminhada a outro canal.
  
A forma mais simples de usar um SIP URI é simplesmente:
+
Como o processamento de uma chamada usualmente envolve uma sequência de extensões, existe uma sintaxe opcional para simplificar a declaração:
 +
 
 +
<syntaxhighlight lang=text>
 +
exten=>identificador,prioridade,aplicação
 +
same=>prioridade,aplicação
 +
</syntaxhighlight>
 +
 
 +
*'''same''': declara uma nova extensão com mesmo identificador da extensão imediatamente anterior
 +
é espacial e temporal, ou seja um determinado slot de tempo de uma linha física é mapeado em outro slot de tempo em outra linha física. Com todo mapeamento realizado, a conexão entre dois telefones interligados por várias centrais se passa como se fossem dois fios de uma ponta a outra entre origem e destino da ligação telefônica.
 +
 
 +
===Redes com chaveamento por pacotes versus chaveadas por circuitos===
  
  usuario@<endereço_ip>
+
Um ponto chave da rede PSTN é que, sendo baseada em chaveamento de circuitos, a rede proporciona uma ligação permanente entre dois terminais telefônicos até que ela seja encerrada. Mesmo que um usuário não fale nada, os recursos estão alocados para a comunicação. Esta abordagem tem vantagem e desvantagem. A vantagem é a qualidade da comunicação: os recursos estão lá e não são disputados por ninguém. A desvantagem é o desperdício de recursos. Se o usuário não conversa com seu interlocutor, ele desperdiça um recurso valioso (e caro! $).
  
ou
+
As redes de pacotes seguem uma abordagem diferente. A informação a ser transportada (qualquer que seja), é organizada na forma de pacotes de bits. Estes pacotes, pelo menos naquelas sem conexão, possuem endereço de destino e de fonte. Todos os enlaces de conexão entre "centrais" são multiplexados em termos de pacotes. Em uma mesma linha, podem seguir pacotes de diferentes origens/destinos. As centrais na realidade são chamadas de roteadores, que chaveiam pacotes para outros enlaces conforme o destino do pacote e a informação de uma tabela de roteamento.
  
  usuario@<nome_dns_maquina>
+
<!-- [http://www.visualland.net/AnimationView.php?d=data/published/0_502_2.1%20Routing%20with%20IP%20address.ae.anm&protocol=Routing%20-%20for%20beginners&title=2.1%20Routing%20with%20IP%20address.ae Exemplo 1]
  
Por exemplo, na figura abaixo ''Joao'' chama ''Maria'' que se encontra em PC de endereço IP 200.200.200.1 na rede 200.200.200.0/24. A URI usada é simplesmente '''maria@200.200.200.1'''. A mensagem de sinalização é enviada para o IP indicado usando o sistema de roteamento da Internet. Por default, as mensagens são transportadas pelo protocolo UDP e a '''porta de destino default é 5060'''.
+
[http://www.visualland.net/AnimationView.php?d=data/published/0_502_2.2%20Routing%20with%20network%20address.ae.anm&protocol=Routing%20-%20for%20beginners&title=2.2%20Routing%20with%20network%20address.ae Exemplo 2] -->
  
Joao      INVITE maria@200.200.200.1      Maria
+
===Uso de redes de pacotes (Internet) para a transmissão de mídias diversas===
      ---------------------------------->
 
                  TRYING                 
 
      <----------------------------------
 
                  RINGING                 
 
      <---------------------------------- 
 
                  200 OK                 
 
      <----------------------------------
 
                    ACK                   
 
      ---------------------------------->
 
                                       
 
      <--------- conversação ----------->
 
                                       
 
                    BYE                     
 
      <----------------------------------
 
                  200 OK                 
 
      ---------------------------------->
 
  
 +
Originalmente a Internet foi concebida para a transmissão de dados que não tinham requisitos fortes de tempo.
  
===Experimento 1: Comunicação direta entre dois terminais (softphones)===
+
  Por exemplo, o envio de um email pode demorar alguns minutos até chegar no seu destino.
  
Neste experimento faremos dois terminais (softphones) estabelecerem uma sessão de comunicação através de uma sinalização direta (sem servidores SIP intermediários). Isto nos permitirá analisar as mensagens básicas de estabelecimento de chamada (INVITE) e de finalização da sessão (BYE).
+
Entretanto, com os avanços em todos os campos das telecomunicações e da computação, conseguiu-se meios de transmissão com altíssima capacidade de transmissão bem como roteadores com grande velocidade de chaveamento. Tudo isto possibilitou que se começasse a usar a Internet para o transporte para outras mídias, tal como a voz e vídeo em tempo real.
  
====Recursos utilizados====
+
  Surge uma nova área que é a '''Telefonia IP''. Todos os serviços até então construídos sobre as PSTNs começam a ser construídos sobre a
 +
  Internet.
  
*softfone Twinkle instalado no Ubuntu. Ver aqui o manual do [http://mfnboer.home.xs4all.nl/twinkle  twinkle].
+
Um sério problema ainda não resolvido na transmissão de voz digital em tempo real (e vídeo também) é a questão da qualidade de serviço. Pacotes podem sofrer atrasos, corrompidos, duplicados ou perdidos. Não é possível ainda garantir qualidade na transmissão. O que se faz é colocar recursos de sobra para não se ter problemas...
*wireshark/tcpdump. Ver [http://www.wireshark.org/docs/wsug_html_chunked/ aqui] o manual do Wireshark;
 
  
====Softphone Twinkle====
 
Neste experimento usaremos o softphone Twinkle como terminal de comunicação. O Twinkle é um softphone para VOIP e comunicações de messagens instantâneas usando o SIP. Ele permite a conexão direta fone-fone ou através do uso de uma rede de servidores SIP.
 
  
====Roteiro PARTE 1 - Comunicação entre um hospedeiro e uma máquina virtual====
+
{{collapse bottom}}
  
=====Terminal chamador no hospedeiro=====
+
{{collapse top |02/03 - Introdução a VoIP, protocolo SIP e softphones}}
  
#Coloque o twinkle em execução da seguinte forma: Abra um terminal e chame: ''twinkle &''
+
==02/03 - Introdução a VoIP, protocolo SIP e softphones==
#Quando executado pela primeira vez, o twinkle solicita a criação de um perfil de usuário. Ele suporta múltiplos perfis. Neste experimento vamos criar algo simples. Selecione a criação do perfil através do ''Wizard''
+
 
#Entre com o nome do perfil (identificação do perfil) '''equipe1p1''' OBS: ajuste o nome para sua equipe. O '''p1''' é para identificar o perfil 1. Vários poderão ser criados.
+
===Objetivos===
#O twinkle abre o wizard que deve ser preenchido conforme o exemplo abaixo (adaptado a sua equipe):
 
*[[imagem:TelaPerfilTwinkle.jpg|500px|center]]
 
*em Sip server provider coloque NONE, pois faremos comunicação direta
 
*em nome do usuário, coloque o nome completo
 
*em ''user name'' coloque um identificador de usuário (sem espaço);
 
*em ''domain'' coloque o endereço IP do seu computador (verifique com o comando ''ifconfig'').
 
  
=====Terminal chamado na máquina virtual=====
+
Ao final da aula o aluno deverá:
 +
*reconhecer a necessidade de um protocolo para sinalização para uso em aplicações de telefonia na Internet;
 +
*se familiarizar com protocolo  SIP como protocolo de sinalização na Internet;
 +
*identificar as principais troca de mensagens do protocolo SIP utilizado entre dois terminais (softphones);
  
#abra uma máquina virtual (Aplicativos/Sistema/Oracle VM VirtualBox) e execute uma máquina gráfica disponível;
+
===O que é preciso para efetivar Voz sobre redes IP (VoIP)?===
#verifique o IP da MV com ''ifconfig'' e certifique-se que ela está em modo '''bridge''' na configuração de opções de rede;
 
#coloque o ''twinkle'' em execução e crie um perfil diferente, por exemplo, '''equipe1p2'''. Caso o twinkle não esteja instalado, é só instalar com ''apt-get install twinkle''.
 
  
=====Capturando pacotes com wireshark no HOSPEDEIRO=====
+
'''Pelo menos um''' ou mais protocolos de sinalização e '''um''' ou mais protocolos para transportar a mídia.
  
No hospedeiro faça:
+
  '''Em adição, é conveniente comprimir a voz para que ela use menos banda e, se necessário, forneça algum sigilo na comunicação.'''
  
#execute o wireshark em ''background'': ''wireshark &''
+
Para sinalização tem-se várias opções. A principal hoje é o Protocolo de Iniciação de Sessão ou '''protocolo SIP'''. Para o transporte da voz utiliza-se normalmente o Protocolo de Transporte em Tempo Real sobre o Protocolo de Datagrama de Usuário '''RTP/UDP.'''
#entre na tela de opções de captura: [[imagem:TelaConfiguracaoOpcoesCaptura.jpg|400px|center]]
 
#configure a captura de pacotes pela eth0 com filtro centrado no IP da máquina virtual e no protocolo UDP porta 5060: [[imagem:TelaConfiguracaoInterfaceWireshark.jpg|500px|center]]
 
#Tecle ''start''.
 
  
=====Fazendo uma chamada a partir do hospedeiro=====
+
  Além disto, para que a transição do antigo para o novo aconteça, é conveniente interconectar a PSTN (sistema legado) com o sistema de voz sobre IP.
  
#Coloque o endereço do terminal chamado no ''twinkle'' e chame o usuário:
+
===A sinalização na Internet===
[[imagem:TelaTwinkleChamar.jpg|600px|center]]
 
  
=====Atendendo a chamada no Twinkle da Máquina Virtual=====
+
A sinalização na telefonia sobre IP é necessária para:
 +
*chamar um usuário com quem se deseja comunicar;
 +
*negociar parâmetros de comunicação para a sessão a ser estabelecida;
 +
*renegociar parâmetros de comunicação durante uma sessão em andamento;
 +
*finalizar uma sessão.
  
#atenda a chamada teclando em ANSWER e logo em seguida termine a chamada com BYE;
+
Outras funções avançadas são realizadas pelo protocolo de sinalização, mas por enquanto nos concentraremos nas funções acima.
  
'''Importante!''' Nosso foco é a sinalização. O áudio não nos importa no momento.
+
Existem vários protocolos de sinalização, mas o SIP é um dos mais utilizados, sendo inclusive adotado nos sistemas celulares 3G e 4G.
  
=====Parando a captura no wireshark e analisando os pacotes=====
+
===O protocolo SIP===
  
#No wireshark pare a captura de pacotes;
+
O SIP é um protocolo de sinalização para comunicação multimedia, que se utiliza de mensagens textos (similar ao http) e de '''endereços similares ao de um email'''. Como no HTTP, ele se utiliza de um modelo de transações do '''tipo requisição/resposta'''. Um cliente gera uma requisição a um servidor. O servidor recebe a requisição, invoca um determinado método, e responde ao cliente. A lista de métodos possíveis pode ser encontrada [http://en.wikipedia.org/wiki/List_of_SIP_request_methods aqui].
#Identifique o fluxo da sinalização entre os softphones que ocorre similarmente como descrevemos no exemplo da ligação entre João e Maria.
 
  
====Roteiro PARTE 2 - Comunicação entre usando hospedeiros da rede do Laboratório====
+
  Um cliente tipicamente gera uma requisição INVITE para solicitar uma sessão para um servidor. Se aceito, o servidor responde com 200 OK.
  
#Informe o seu SIP URI para o grupo ao lado, e teste a realização de chamadas.
+
No vocabulário SIP, uma requisição é gerada por '''User Agent Client (UAC)''' e a resposta é dada por um '''User Agent Server (UAS)'''.
 +
 +
  NOTE que um telefone IP ou um softphone SIP funciona tanto como UAS como UAC pois ora gera requisições ora aceita requisições.
  
====Roteiro PARTE 3 - Desafios====
+
O endereço SIP ou '''SIP URI é utilizado como identificador único de um usuário''', funcionando da mesma forma que um número telefônico. Como agora estamos falando de sinalização na Internet, este endereço se utiliza de conceitos associados a esta rede. Note também que a sinalização SIP pode seguir caminhos diferentes do transporte da mídia.
  
#Criar mais um perfil no twinkle da Máquina Virtual.
+
A forma mais simples de usar um SIP URI é simplesmente:
#Teste uma chamada para este novo usuário.
 
  
{{collapse bottom}}
+
  usuario@<endereço_ip>
  
{{collapse top |09/03 - O protocolo SIP na comunicação direta entre Telefone IP - Softphone}}
+
ou
  
==09/03 - O protocolo SIP na comunicação direta entre Telefone IP - Softphone==
+
  usuario@<nome_dns_maquina>
  
; Comunicação direta Telefone IP - Softphone
+
Por exemplo, na figura abaixo ''Joao'' chama ''Maria'' que se encontra em PC de endereço IP 200.200.200.1 na rede 200.200.200.0/24. A URI usada é simplesmente '''maria@200.200.200.1'''. A mensagem de sinalização é enviada para o IP indicado usando o sistema de roteamento da Internet. Por default, as mensagens são transportadas pelo protocolo UDP e a '''porta de destino default é 5060'''.
  
===Recursos usados===
+
Joao      INVITE maria@200.200.200.1      Maria
 
+
      ---------------------------------->
*Telefone IP (ATA+telefone analógico);
+
                  TRYING                 
*PC com Linux e MV VirtualBox, ambos com twinkle;
+
      <----------------------------------
*acessórios: cabos ethernet, fonte de alimentação.
+
                  RINGING                 
 
+
      <---------------------------------- 
===O Telefone IP===
+
                  200 OK                 
 +
      <----------------------------------
 +
                    ACK                   
 +
      ---------------------------------->
 +
                                       
 +
      <--------- conversação ----------->
 +
                                       
 +
                    BYE                     
 +
      <----------------------------------
 +
                  200 OK                 
 +
      ---------------------------------->
  
Neste experimento utilizaremos de um telefone IP formado a partir de um dispositivo ATA e um telefone analógico normal.
 
  
O dispositivo ATA é dotado de uma porta FXS normal e uma porta LAN (ethernet). Normalmente o dispositivo deve ser alimentado externamente. O ATA implementa pelo menos um protocolo de sinalização e um protocolo de comunicação de mídia. Ao ser conectado a uma LAN o ATA pode aquirir um número IP dinamicamente ou ser configurado estaticamente. A partir deste ponto ele está apto a receber ou realizar chamadas VOIP.
+
===Experimento 1: Comunicação direta entre dois terminais (softphones)===
  
Serão utilizados os dispositivos ATA  GKM1000 ([http://www.intelbras.com.br/ecenter/downloads/manuais/manual_ata_gkm_1000t.zip manual]) ou o GKM2200 ([http://www.intelbras.com.br/ecenter/downloads/manuais/manual_ata_gkm_2200t.zip manual]). Estes dispositivos implementam o protocolo SIP.  
+
Neste experimento faremos dois terminais (softphones) estabelecerem uma sessão de comunicação através de uma sinalização direta (sem servidores SIP intermediários). Isto nos permitirá analisar as mensagens básicas de estabelecimento de chamada (INVITE) e de finalização da sessão (BYE).
  
===ETAPA 1 - Conexão física===
+
====Recursos utilizados====
  
#Olhando o manual do dispositivo, faça a conexão física dos dispositivos ATA e Telefone Analógico.
+
*softfone Twinkle instalado no Ubuntu. Ver aqui o manual do [http://mfnboer.home.xs4all.nl/twinkle  twinkle].
#Leia o manual e anote o IP do telefone.
+
*wireshark/tcpdump. Ver [http://www.wireshark.org/docs/wsug_html_chunked/ aqui] o manual do Wireshark;
#Faça um teste básico de conectividade para este endereço usando o comando ''ping''.
 
#Acesse os ATAs e configure um SIP ID com caracteres alfanuméricos. Nos Twinkle use somente números. Como sugestão use o último octal do número IP do seu PC hospedeiro ou PC virtual (ex.: 100, 101...). Isso vai permitir ser originar ligações a partir dos telefones analógicos instalados juntos aos ATA para qualquer Twinkle de qualquer PC.
 
  
Para fins de compreensão da rede que está se formando, anote esses dados:
+
====Softphone Twinkle====
*IP do terminal virtual, máscara, gateway default, servidor DNS;
+
Neste experimento usaremos o softphone Twinkle como terminal de comunicação. O Twinkle é um softphone para VOIP e comunicações de messagens instantâneas usando o SIP. Ele permite a conexão direta fone-fone ou através do uso de uma rede de servidores SIP.
*IP do hospedeiro, máscara, gateway default, servidor DNS;
 
*IP dos dispositivos ATA, máscara, gateway default, servidor DNS;
 
*Faça um esboço da rede para entender a disposição física e interligação de todos os equipamentos.
 
  
 +
====Roteiro PARTE 1 - Comunicação entre um hospedeiro e uma máquina virtual====
  
===ETAPA 2 - Análise da comunicação softphone - Telefone ===
+
=====Terminal chamador no hospedeiro=====
  
*Prepare o twinkle (sobre o hospedeiro) para comunicação IP direta;
+
#Coloque o twinkle em execução da seguinte forma: Abra um terminal e chame: ''twinkle &''
*Prepare o wireshark para captura de pacotes filtrando pacotes de fluxos originários/destinados ao telefone IP;
+
#Quando executado pela primeira vez, o twinkle solicita a criação de um perfil de usuário. Ele suporta múltiplos perfis. Neste experimento vamos criar algo simples. Selecione a criação do perfil através do ''Wizard''
*Capture os pacotes de sinalização SIP referentes a uma sessão. Chame a partir do softphone e imediatamente encerre a ligação a partir do telefone IP chamado.
+
#Entre com o nome do perfil (identificação do perfil) '''equipe1p1''' OBS: ajuste o nome para sua equipe. O '''p1''' é para identificar o perfil 1. Vários poderão ser criados.
 +
#O twinkle abre o wizard que deve ser preenchido conforme o exemplo abaixo (adaptado a sua equipe):
 +
*[[imagem:TelaPerfilTwinkle.jpg|500px|center]]
 +
*em Sip server provider coloque NONE, pois faremos comunicação direta
 +
*em nome do usuário, coloque o nome completo
 +
*em ''user name'' coloque um identificador de usuário (sem espaço);
 +
*em ''domain'' coloque o endereço IP do seu computador (verifique com o comando ''ifconfig'').
  
Para fins de compreensão do protocolo SIP em ação, anote esses dados:
+
=====Terminal chamado na máquina virtual=====
*Diagrama de troca de mensagens mostrando a primeira linha da mensagem e os campos FROM, TO, CONTACT e CALL-ID, STATUS-LINE. Ver o link http://www.siptutorial.net/SIP/relation.html e anote diagrama o que é o diálogo, a transação, o caller e o callee.
 
*Discuta o significado dos campos FROM, TO, CONTACT, CALL-ID e STATUS-LINE.
 
  
 +
#abra uma máquina virtual (Aplicativos/Sistema/Oracle VM VirtualBox) e execute uma máquina gráfica disponível;
 +
#verifique o IP da MV com ''ifconfig'' e certifique-se que ela está em modo '''bridge''' na configuração de opções de rede;
 +
#coloque o ''twinkle'' em execução e crie um perfil diferente, por exemplo, '''equipe1p2'''. Caso o twinkle não esteja instalado, é só instalar com ''apt-get install twinkle''.
  
{{collapse bottom}}
+
=====Capturando pacotes com wireshark no HOSPEDEIRO=====
  
{{collapse top |16/03 - <math>\blacklozenge</math>  Uso do Asterisk como PBX entre Telefones IP e Softphones}}
+
No hospedeiro faça:
  
==16/03 -<math>\blacklozenge</math>  Uso do Asterisk como PBX entre Telefones IP e Softphones==
+
#execute o wireshark em ''background'': ''wireshark &''
 +
#entre na tela de opções de captura: [[imagem:TelaConfiguracaoOpcoesCaptura.jpg|400px|center]]
 +
#configure a captura de pacotes pela eth0 com filtro centrado no IP da máquina virtual e no protocolo UDP porta 5060: [[imagem:TelaConfiguracaoInterfaceWireshark.jpg|500px|center]]
 +
#Tecle ''start''.
  
===Objetivos===
+
=====Fazendo uma chamada a partir do hospedeiro=====
  
* Realizar chamadas entre telefones IP e softphones por meio de um PBX IP Asterisk
+
#Coloque o endereço do terminal chamado no ''twinkle'' e chame o usuário:
* Analisar a sinalização dessas chamadas
+
[[imagem:TelaTwinkleChamar.jpg|600px|center]]
  
=== Chamadas feitas usando PBX IP ===
+
=====Atendendo a chamada no Twinkle da Máquina Virtual=====
  
Um 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.
+
#atenda a chamada teclando em ANSWER e logo em seguida termine a chamada com BYE;
  
[[imagem:Voip-call.png|500px]]
+
'''Importante!''' Nosso foco é a sinalização. O áudio não nos importa no momento.
  
 +
=====Parando a captura no wireshark e analisando os pacotes=====
  
Nas aulas que se seguem faremos uso de um PBX IP [http://www.asterisk.org/ Asterisk], que é um software desenvolvido pela [http://www.digium.com/ Digium]. O Asterisk roda em computadores do tipo PC que possuem sistema operacional baseado em Linux. Sua licença é livre, o que significa que não há custo de licenciamento para utilizá-lo.
+
#No wireshark pare a captura de pacotes;
* [http://www.asterisk.org/get-started Uma visão geral sobre Asterisk]
+
#Identifique o fluxo da sinalização entre os softphones que ocorre similarmente como descrevemos no exemplo da ligação entre João e Maria.
  
== PBX IP Asterisk ==
+
====Roteiro PARTE 2 - Comunicação entre usando hospedeiros da rede do Laboratório====
  
* [http://tele.sj.ifsc.edu.br/~msobral/rmu/slides/aula-25.pdf Transparências]
+
#Informe o seu SIP URI para o grupo ao lado, e teste a realização de chamadas.
* [http://www.asterisk.org Site oficial do Asterisk]
 
* [http://www.asteriskguru.com/ Asterisk Guru]
 
* [http://www.asteriskdocs.org/ Livro online gratuito sobre Asterisk]
 
* [http://www.packetizer.com/ipmc/sip/papers/understanding_sip_voip/ Introdução a VoIP e SIP]
 
* Livro [http://www.asterisk.xpg.com.br/asterisk/AsteriskLivro.pdf Asterisk: Guia de Configuração - 5a geração''], de Flávio Gonçalves.
 
  
 +
====Roteiro PARTE 3 - Desafios====
  
'''Asterisk:''' uma solução completa de PABX baseado em software, permitindo ligar o mundo IP ao mundo da rede pública de telefonia comutada. Trata-se de uma solução completa de PABX baseado em software, permitindo ligar o mundo IP ao mundo da rede pública de telefonia comutada - PSTN. ́E um software livre licenciado sob a GPL e roda em sistemas operacionais como o Linux.
+
#Criar mais um perfil no twinkle da Máquina Virtual.
 +
#Teste uma chamada para este novo usuário.
  
'''Características Básicas:''' faz tudo que um PABX pequeno e simples faz e pouco mais
+
{{collapse bottom}}
* Transferência, música de espera, siga-me, etc.
 
* Conferência, correio de voz, URA, fila de chamadas, monitoramento de chamadas, integração com o Jabber (Google talk)
 
  
 +
{{collapse top |09/03 - O protocolo SIP na comunicação direta entre Telefone IP - Softphone}}
  
[[imagem:Asterisk-ex1.png|400px]]
+
==09/03 - O protocolo SIP na comunicação direta entre Telefone IP - Softphone==
<br>''Exemplo de cenário de uso do Asterisk''
 
  
 +
; Comunicação direta Telefone IP - Softphone
  
<!-- [[imagem:Asterisk-arch.png|500px]]
+
===Recursos usados===
<br>''Arquitetura modular do Asterisk'' --->
 
  
=== Plano de discagem ===
+
*Telefone IP (ATA+telefone analógico);
 +
*PC com Linux e MV VirtualBox, ambos com twinkle;
 +
*acessórios: cabos ethernet, fonte de alimentação.
  
O plano de discagem define como cada chamada deve ser processada. As instruções de processamento residem no arquivo de configuração ''/etc/asterisk/extensions.conf''. O fluxo de processamento de chamadas pode ser visto resumidamente abaixo:
+
===O Telefone IP===
  
[[imagem:Asterisk-fluxo.png|400px]]
+
Neste experimento utilizaremos de um telefone IP formado a partir de um dispositivo ATA e um telefone analógico normal.
  
 +
O dispositivo ATA é dotado de uma porta FXS normal e uma porta LAN (ethernet). Normalmente o dispositivo deve ser alimentado externamente. O ATA implementa pelo menos um protocolo de sinalização e um protocolo de comunicação de mídia. Ao ser conectado a uma LAN o ATA pode aquirir um número IP dinamicamente ou ser configurado estaticamente. A partir deste ponto ele está apto a receber ou realizar chamadas VOIP.
  
Um exemplo de plano de discagem simples pode ser visto abaixo:
+
Serão utilizados os dispositivos ATA  GKM1000 ([http://www.intelbras.com.br/ecenter/downloads/manuais/manual_ata_gkm_1000t.zip manual]) ou o GKM2200 ([http://www.intelbras.com.br/ecenter/downloads/manuais/manual_ata_gkm_2200t.zip manual]). Estes dispositivos implementam o protocolo SIP.
 +
 
 +
===ETAPA 1 - Conexão física===
  
<syntaxhighlight lang=text>
+
#Olhando o manual do dispositivo, faça a conexão física dos dispositivos ATA e Telefone Analógico.
[alunos]; o nome deste contexto
+
#Leia o manual e anote o IP do telefone.
 +
#Faça um teste básico de conectividade para este endereço usando o comando ''ping''.
 +
#Acesse os ATAs e configure um SIP ID com caracteres alfanuméricos. Nos Twinkle use somente números. Como sugestão use o último octal do número IP do seu PC hospedeiro ou PC virtual (ex.: 100, 101...). Isso vai permitir ser originar ligações a partir dos telefones analógicos instalados juntos aos ATA para qualquer Twinkle de qualquer PC.
  
# Chamadas para o número 101 são feitas via SIP para o canal "maria"
+
Para fins de compreensão da rede que está se formando, anote esses dados:
exten=>101,1,Dial(SIP/maria)
+
*IP do terminal virtual, máscara, gateway default, servidor DNS;
same=>n,Hangup()
+
*IP do hospedeiro, máscara, gateway default, servidor DNS;
 +
*IP dos dispositivos ATA, máscara, gateway default, servidor DNS;
 +
*Faça um esboço da rede para entender a disposição física e interligação de todos os equipamentos.
  
# Chamadas para "teste" serão atendidas com um som de beep, seguido
 
# da reprodução do arquivo de som "hello-world", em seguida outro beep e
 
# enfim se encerra a chamada.
 
exten=>teste,1,Playback(beep)
 
same=>n,Wait(1)
 
same=>n,Playback(hello-world)
 
same=>n,Wait(1)
 
same=>n,Playback(beep)
 
same=>n,Hangup
 
</syntaxhighlight>
 
  
A estrutura do plano de discagem é composta por ''extensões'' (um termo específico do Asterisk). Cada extensão identifica um número (ou usuário) que  pode ser chamado, e como essa chamada deve ser processada. A sintaxe pode ser vista abaixo:
+
===ETAPA 2 - Análise da comunicação softphone - Telefone ===
  
<syntaxhighlight lang=text>
+
*Prepare o twinkle (sobre o hospedeiro) para comunicação IP direta;
exten=>identificador,prioridade,aplicação
+
*Prepare o wireshark para captura de pacotes filtrando pacotes de fluxos originários/destinados ao telefone IP;
</syntaxhighlight>
+
*Capture os pacotes de sinalização SIP referentes a uma sessão. Chame a partir do softphone e imediatamente encerre a ligação a partir do telefone IP chamado.
  
* '''identificador''': o número ou usuário chamado
+
Para fins de compreensão do protocolo SIP em ação, anote esses dados:
* '''prioridade''': a prioridade da extensão. Isso determina a ordem de execução das extensões que tratam do mesmo identificador.
+
*Diagrama de troca de mensagens mostrando a primeira linha da mensagem e os campos FROM, TO, CONTACT e CALL-ID, STATUS-LINE. Ver o link http://www.siptutorial.net/SIP/relation.html e anote diagrama o que é o diálogo, a transação, o caller e o callee.
* '''aplicação''': uma ação a ser realizada quando a extensão for processada. Por exemplo, a aplicação ''Dial'' determina que deve ser encaminhada a outro canal.
+
*Discuta o significado dos campos FROM, TO, CONTACT, CALL-ID e STATUS-LINE.
  
Como o processamento de uma chamada usualmente envolve uma sequência de extensões, existe uma sintaxe opcional para simplificar a declaração:
 
  
<syntaxhighlight lang=text>
+
{{collapse bottom}}
exten=>identificador,prioridade,aplicação
 
same=>prioridade,aplicação
 
</syntaxhighlight>
 
  
*'''same''': declara uma nova extensão com mesmo identificador da extensão imediatamente anterior
+
{{collapse top |16/03 (-> ANP em 30/03 - videoaula síncrona) - <math>\blacklozenge</math> AE2 - Uso do Asterisk como PBX entre Telefones IP e Softphones |bg=#00ff00}}
  
Por fim, a ''prioridade'' (que define a ordem com que as extensões são processadas) declarada com o valor ''n'' equivale à prioridade da extensão imediatamente anterior incrementada em uma unidade:
+
==16/03 (->  ANP em 30/03 - videoaula síncrona) - <math>\blacklozenge</math> AE2 - Uso do Asterisk como PBX entre Telefones IP e Softphones==
  
<syntaxhighlight lang=text>
+
===Objetivos===
exten=>101,1,Dial(SIP/101)
+
 
same=>n,Hangup; a prioridade aqui terá o valor 2
+
;Parte Teórica
</syntaxhighlight>
+
 
 +
;; Vídeo-aulas realizadas e anotações de aula (ATENÇÃO! OS VÍDEOS ESTÃO LONGOS PORQUE ESTÃO SEM CORTES! AVANCE PARA OS PONTOS DE INTERESSE!)
  
=== Canais SIP ===
+
* [https://drive.google.com/file/d/1e-UdOxNdEwHfsItvC4yrbZTha8yrpc7i '''Vídeo-aula de 30/03''' Implementação básica de um servidor SIP]: (assista a partir do minuto 8) Uso do Asterisk como PBX entre Telefones IP e Softphones;
  
Cada telefone SIP deve ter seu identificador cadastrado no Asterisk. O identificador pode tanto ser um número, análogo a um ramal, ou uma string alfanumérica. No terminologia do Asterisk, cada telefone SIP é chamado de ''canal SIP'', e deve estar declarado em /etc/asterisk/sip.conf:
+
* [[media:anotações_TIP3003.pdf | Anotações realizadas durante a Vídeo-aula de 30/03]]
  
<syntaxhighlight lang=text>
+
* '''AE2''' e Validação de conteúdo e presença da aula remota:  Questionário sobre a videoaula da ANP de 30/03 - Uso do Asterisk como PABX.
; Canal 2000 (um exemplo)
 
[2000]
 
username=2000 ; o nome do usuário para fins de autenticação
 
secret=kabrum
 
type=friend ; pode efetuar e receber chamadas
 
host=dynamic ; pode conectar-se a partir de qualquer endereço IP
 
insecure=port,invite ; a segurança está associada ao registro do canal (primeiro
 
passo),
 
                    ; assim como acontece em sessões Web
 
context=alunos ; o contexto padrão do João. O arquivo extensions.conf o definirá
 
disallow=all
 
allow=gsm ; habilita este codec para o João. Os vários codecs serão vistos em se
 
guida,
 
          ; já que cada um deles tem suas particularidades.
 
allow=alaw ; outro codec
 
allow=ulaw ; mais um codec
 
qualify=yes; mostra a qualidade, em ms, da conexão entre UAC e UAS.
 
  
; Canal joao (outro exemplo)
+
;Parte Prática
[joao]
+
 
username=joao ; o nome do usuário para fins de autenticação
+
* Realizar chamadas entre telefones IP e softphones por meio de um PBX IP Asterisk
secret=blabla
+
* Analisar a sinalização dessas chamadas
type=friend ; pode efetuar e receber chamadas
+
 
host=dynamic ; pode conectar-se a partir de qualquer endereço IP
+
=== Chamadas feitas usando PBX IP ===
insecure=port,invite ; a segurança está associada ao registro do canal (primeiro
 
passo),
 
                    ; assim como acontece em sessões Web
 
context=alunos ; o contexto padrão do João. O arquivo extensions.conf o definirá
 
disallow=all
 
allow=gsm ; habilita este codec para o João. Os vários codecs serão vistos em se
 
guida,
 
          ; já que cada um deles tem suas particularidades.
 
allow=alaw ; outro codec
 
allow=ulaw ; mais um codec
 
qualify=yes; mostra a qualidade, em ms, da conexão entre UAC e UAS.
 
</syntaxhighlight>
 
  
Como se pode notar, a declaração de um canal SIP envolve muitos parâmetros que envolvem autenticação, controle de acesso, localização na rede, codecs e possivelmente outras capacidades. Como os valores de alguns parâmetros podem ser iguais para vários canais, o Asterisk possibilita a declaração de perfis (''templates''):
+
Um 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.
  
<syntaxhighlight lang=text>
+
[[imagem:Voip-call.png|500px]]
; Perfil alunos
 
[alunos](!);  a sequência "(!)" define isto como um perfil
 
type=friend ; pode efetuar e receber chamadas
 
host=dynamic ; pode conectar-se a partir de qualquer endereço IP
 
insecure=port,invite ; a segurança está associada ao registro do canal (primeiro
 
passo),
 
                    ; assim como acontece em sessões Web
 
context=alunos ; o contexto padrão do João. O arquivo extensions.conf o definirá
 
disallow=all
 
allow=gsm ; habilita este codec para o João. Os vários codecs serão vistos em se
 
guida,
 
          ; já que cada um deles tem suas particularidades.
 
allow=alaw ; outro codec
 
allow=ulaw ; mais um codec
 
qualify=yes; mostra a qualidade, em ms, da conexão entre UAC e UAS.
 
  
; Canal 2000
 
[2000](alunos); a sequência "(alunos)" copia as definições do perfil "alunos"
 
username=2000 ; o nome do usuário para fins de autenticação
 
secret=kabrum
 
  
; Canal joao
+
Nas aulas que se seguem faremos uso de um PBX IP [http://www.asterisk.org/ Asterisk], que é um software desenvolvido pela [http://www.digium.com/ Digium]. O Asterisk roda em computadores do tipo PC que possuem sistema operacional baseado em Linux. Sua licença é livre, o que significa que não há custo de licenciamento para utilizá-lo.
[joao](alunos)
+
* [http://www.asterisk.org/get-started Uma visão geral sobre Asterisk]
username=joao ; o nome do usuário para fins de autenticação
 
secret=blabla
 
</syntaxhighlight>
 
  
=== Experimento: comunicação entre telefones IP ou softphones por meio de um PBX IP ===
+
=== PBX IP Asterisk ===
  
Para realizar esses exercícios você deve usar o Asterisk na máquina virtual ''rmu-asterisk''. Para testar as chamadas, use o softphone jitsy ou twinkle na máquina real, e um telefone IP.
+
* [http://tele.sj.ifsc.edu.br/~msobral/rmu/slides/aula-25.pdf Slides de apoio (Professor Emerson Mello)]
 +
* [https://wiki.sj.ifsc.edu.br/index.php/Guia_b%C3%A1sico_de_VoIP_com_Asterisk guia básico para instalação do Asterisk]
 +
* [http://www.asterisk.org Site oficial do Asterisk]
 +
* [http://www.asteriskguru.com/ Asterisk Guru]
 +
* [http://www.asteriskdocs.org/ Livro online gratuito sobre Asterisk]
 +
* [http://www.packetizer.com/ipmc/sip/papers/understanding_sip_voip/ Introdução a VoIP e SIP]
 +
* Livro [[media:Asterisk_FlavioGonçalves.pdf | de Flávio Gonçalves.]]
  
  
1. Criar as seguintes contas SIP:{{collapse top | sip.conf}}
+
'''Asterisk:''' uma solução completa de PABX baseado em software, permitindo ligar o mundo IP ao mundo da rede pública de telefonia comutada. Trata-se de uma solução completa de PABX baseado em software, permitindo ligar o mundo IP ao mundo da rede pública de telefonia comutada - PSTN. ́E um software livre licenciado sob a GPL e roda em sistemas operacionais como o Linux.
<syntaxhighlight lang=text>
 
[general]
 
  
[alunos](!)
+
'''Características Básicas:''' faz tudo que um PABX pequeno e simples faz e pouco mais
type=friend ; pode efetuar e receber chamadas
+
* Transferência, música de espera, siga-me, etc.
host=dynamic ; pode conectar-se a partir de qualquer endereço IP
+
* Conferência, correio de voz, URA, fila de chamadas, monitoramento de chamadas, integração com o Jabber (Google talk)
insecure=port,invite ; a segurança está associada ao registro do canal (primeiro passo),
 
                    ; assim como acontece em sessões Web
 
disallow=all
 
allow=gsm ; habilita este codec para o João. Os vários codecs serão vistos em seguida,
 
          ; já que cada um deles tem suas particularidades.
 
allow=alaw ; outro codec
 
allow=ulaw ; mais um codec
 
qualify=yes; mostra a qualidade, em ms, da conexão entre UAC e UAS.
 
context=alunos
 
 
[100](alunos)
 
username=100
 
secret=100
 
  
[101](alunos)
 
username=101
 
secret=101
 
</syntaxhighlight>
 
{{collapse bottom}}{{collapse top | extensions.conf}}
 
<syntaxhighlight lang=text>
 
[alunos]; contexto alunos
 
exten=>_10X,1,Dial(SIP/${EXTEN})
 
same=>n,Hangup
 
</syntaxhighlight>
 
{{collapse bottom}}
 
2. Crie um plano de discagem em que todos podem fazer chamadas para todos (isso é, 100 pode chamar 101, e vice-versa).
 
  
3. Execute o Jitsy ou Twinkle, configurando-o para registrar no Asterisk. Isso é feito especificando a conta SIP da seguinte forma (exemplo com o canal SIP 100): <syntaxhighlight lang=text>
+
[[imagem:Asterisk-ex1.png|400px]]
100@IP_do_PBX_Asterisk
+
<br>''Exemplo de cenário de uso do Asterisk''
</syntaxhighlight>
+
 
  
4. Instale um telefone IP, configurando-o apropriadamente para que registre sua conta SIP no PBX Asterisk. Isso vai depender do modelo de telefone IP (Voiper da Intelbras, ou o telefone da Khomp).
+
==== Instalação do Asterisk ====
  
5. A partir do softphone faça uma chamada para a conta do telefone IP. Verifique se o telefone IP acusou o recebimento de chamada. Caso isso não tenha ocorrido, verifique seu plano de discagem.
+
Pode-se fazer o experimento em casa, de forma a estudar a sinalização e stream de áudio das chamadas VoIP. Para isso precisa-se do Asterisk (PBX IP) e dois softphones (''twinkle'', ''jitsi'', ''linphone'', ou outro de sua preferência). O Asterisk roda somente no Linux, portanto deve-se ter esse sistema operacional no seu computador ou em uma máquina virtual Virtualbox. Para facilitar a realização desses experimentos, seguem algumas opções.
  
6. Execute o wireshark, e ponha-o em modo de captura em todas as interfaces (pseudo-interface ''any'').
+
==== Usando uma máquina virtual Virtualbox ====
  
7. Repita a chamada de um softphone ao telefone IP. No telefone IP atenda a chamada, e alguns segundos depois encerre-a.
+
Neste cenário, executa-se uma máquina virtual com o Asterisk, e os softphones na máquina real. A máquina real (sistema hospedeiro) pode ser tanto Linux quanto Windows, porém no primeiro caso funciona melhor. Os softphones podem também estar em outros computadores, laptops ou smartphones. Mas para fazer experimentos desta forma é necessário primeiro ter a máquina virtual, que pode ser obtida no link a seguir:
 +
* [http://tele.sj.ifsc.edu.br/~casagrande/TIP/Ubuntu-Servidor-18.04.ova Maquina virtual com Ubuntu Server Debian Mate 9 e Asterisk (1,3 GB)]
 +
* [http://tele.sj.ifsc.edu.br/~casagrande/TIP/Ubuntu-Grafico-18.04.ova Maquina virtual com Ubuntu Gráfico Debian Mate 9 e Asterisk (3.4 GB)]
  
8. No wireshark interrompa a captura, e em seguida acesse o menu ''Telephony->VoIP Calls''. Selecione uma chamada, e visualize o diagrama de mensagens SIP. Siga cada mensagem SIP (clique no diagrama), e observe a mensagem selecionada no painel de captura do wireshark. Identifique as transações (observe os códigos de resposta) e os diálogos. Você pode usar [[RMU-2013-1#Diagramas_de_chamadas|estes diagramas]] para se guiar.
+
Para instalá-la siga estes passos:
 +
# Execute o VirtualBox, e então selecione o menu "Arquivos" e a opção "Importar Appliance";
 +
# Essa nova MV aparece na lista. Execute-a para testá-la.
 +
# Entre com usuário ''aluno'' e senha ''aluno''.
 +
# O Asterisk deve estar em execução. Teste-o usando o comando ''sudo rasterisk -vvv''.
 +
# Veja os canais SIP (um para cada telefone IP ou softphone) que já estão definidos em ''/etc/asterisk/sip.conf''. São os mesmos que usamos em aula.
 +
# Observe o plano de discagem em ''/etc/asterisk/extensions.conf''. Ele possibilita chamadas entre os softphones, e também para o número especial ''999''' (experimente-o).
 +
# Saia da interface do ''rasterisk'' usando o comando ''quit'.
 +
# Ao terminar, não esqueça de encerrar a máquina virtual com o comando ''halt''.
  
'''Questões:'''
+
Os softphones podem ser o ''twinkle'', que usamos em aula, ou o ''jitsi'', que roda tanto no Linux quanto Windows.
# Que papel desempenhou o Asterisk para os softphones ? UAC, UAC ou algo diferente ?
+
* [http://tele.sj.ifsc.edu.br/~msobral/soft/jitsi_2.0-latest_i386.deb Jitsi 2.0 para Linux (20 MB)]
# Entre que agentes ocorreram os diálogos identificados ?
+
* [https://download.jitsi.org/jitsi/windows/jitsi-2.0-latest-x86.exe Jitsi 2.0 para Windows 32 bits(37 MB)]
# Como o Asterisk conseguiu identificar o telefone chamado (i.e. localizar onde ele estava na rede) ?
+
* [https://download.jitsi.org/jitsi/windows/jitsi-2.0-latest-x64.exe Jitsi 2.0 para Windows 64 bits(39 MB)]
 +
* [http://jitsi.org/ Site oficial do Jitsi]
 +
 
 +
Lembre que se houver dois softphones no mesmo computador, eles deverão usar ports UDP diferentes para o protocolo SIP. Experimente usar port 5060 em um softphone, e 5062 no outro.
  
=== Como testar as chamadas ===
+
==== Usando o Asterisk diretamente no seu computador (na máquina real) ====
  
Para testar as chamadas, são necessários um softphone e um telefone IP, além do Asterisk.
+
Você deve ter o Linux instalado no seu computador para rodar diretamente o Asterisk. Assumindo que seja o Ubuntu ou Debian Linux, siga estes passos:
# Em cada softphone ou telefone IP crie uma conta SIP, que deve ser identificada por ''ramal@IP_do_PBX'' (ex: se o PBX tiver IP 192.168.2.110, as contas de alunos podem ser 100@192.168.2.110 e 101@192.168.2.110).
+
# Instale o Asterisk: <syntaxhighlight lang=bash>
# Após definir as contas, verifique se os telefones indicaram que elas estão disponíveis (''online''). Você pode fazer essa verificação também no próprio Asterisk. Neste caso execute o seguinte comando para acessar o console do Asterisk: <syntaxhighlight lang=bash>
+
sudo apt-get istall asterisk
sudo rasterisk -vvv
 
host*CLI> sip show peers
 
host*CLI> sip show peers
 
Name/username              Host            Dyn Nat ACL Port    Status   
 
101/101                    192.168.2.10      D          11270    OK (6 ms)
 
102/102                    192.168.2.210      D          63169    OK (12 ms)
 
2 sip peers [Monitored: 2 online, 0 offline Unmonitored: 0 online, 0 offline]
 
 
</syntaxhighlight>
 
</syntaxhighlight>
# Se algum dos telefones não aparecer como ''OK'' no console do Asterisk, verifique se o número de ramal e a senha configuradas no telefone são os mesmos declarados em ''/etc/asterisk/sip.conf''. Outro teste que se pode fazer é acessar o console do Asterisk, e depois tentar ativar as contas SIP nos telefones (i.e. colocá-las para indisponível ou ''offline'', e depois reativá-las). O Asterisk irá mostrar algumas linhas informativas sobre os registros dos telefones (lembre que ao ativar uma conta SIP, ela é registrada no Asterisk usando uma mensagem SIP do tipo ''REGISTER'').
+
# Copie estes arquivos para dentro de ''/etc/asterisk'':
# Se as contas SIP estão devidamente registradas no Asterisk, mas ainda assim as chamadas não são realizadas, o problema deve estar no plano de discagem. Isso fica evidente se ao tentar fazer uma chamada obtém-se uma mensagem de erro do tipo ''404 not found''. Neste caso, acesse o console do Asterisk e tente novamente fazer a chamada. Veja se o Asterisk informa na tela o motivo para a chamada não ser realizada. Em seguida, confira se seu plano de discagem (''/etc/asterisk/extensions.conf'') possui uma extensão que satisfaça a chamada que se deseja realizar. Isso é, se você estiver tentando chamar o ramal SIP 101@192.168.2.110, deve haver uma extensão assim: <syntaxhighlight lang=text>
+
#* [http://tele.sj.ifsc.edu.br/~msobral/tip/sip.conf sip.conf]
exten=>101,1,Dial(SIP/101)
+
#* [http://tele.sj.ifsc.edu.br/~msobral/tip/extensions.conf extensions.conf]
same=>n,Hangup
+
# Reinicie o Asterisk: <syntaxhighlight lang=bash>
 +
sudo service asterisk restart
 +
</syntaxhighlight>
 +
# Use o ''rasterisk'' para acessar o console do Asterisk: <syntaxhighlight lang=bash>
 +
sudo rasterisk -vvv
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
# Inicie os softphones (''jitsi'' ou ''twinkle''). Configure-os para usarem as contas SIP ''100'' e ''101'', registrando-se no Asterisk que está no IP 127.0.0.1. Lembre de colocar os softphones em ports SIP diferentes (ex: 5062 e 5064).
 +
# Tente fazer chamadas, observando as mensagens de aviso na tela do ''rasterisk''.
  
;<math>\blacklozenge</math>  '''Entrega para a próxima aula 24/03 - atividade em dupla''' - enviar por email os códigos da configuração :
+
=== Plano de discagem ===
  
Criar as seguintes contas SIP e contextos:<br>
+
O plano de discagem define como cada chamada deve ser processada. As instruções de processamento residem no arquivo de configuração ''/etc/asterisk/extensions.conf''. O fluxo de processamento de chamadas pode ser visto resumidamente abaixo:
#alunos  Contas:  100 e 101
 
#professores  Contas:  200 e 201
 
#coordenacao  Contas:  300 e 3012
 
  
a) Criar um plano de discagem de forma que as contas SIP do contexto alunos so possam atingir outras contas SIP deste contexto.<br>
+
[[imagem:Asterisk-fluxo.png|400px]]
b) Faca o mesmo para o contexto professores.,br>
 
c) Contas SIP do contexto coordenacao poderao atingir, alem das contas SIP deste contexto, as contas dos contextos alunos e professores. <br>
 
d) Implementar caixa de correio de voz para cada extensao e criar uma extensao em cada contexto para permitir a consulta ao correio de voz.
 
  
{{collapse bottom}}
 
  
</--
+
Um exemplo de plano de discagem simples pode ser visto abaixo:
  
=Aula Dia 23/04/2013=
+
<syntaxhighlight lang=text>
 +
[alunos]; o nome deste contexto
  
== Apresentação do novo professor ==
+
# Chamadas para o número 101 são feitas via SIP para o canal "maria"
 +
exten=>101,1,Dial(SIP/maria)
 +
same=>n,Hangup()
  
* [[Marcelo_Maia_Sobral|Marcelo Maia Sobral]]
+
# Chamadas para "teste" serão atendidas com um som de beep, seguido
* '''Email:''' msobral@ifsc.edu.br
+
# da reprodução do arquivo de som "hello-world", em seguida outro beep e
* '''Atendimento paralelo:''' 2a de 8:20 às 9:10 h, 4a de 13:30 a 14:30
+
# enfim se encerra a chamada.
* '''Grupo no Facebook:''' TIP (primeiro [http://www.facebook.com/Marcelo.Sobral.Ifsc me adicionem])
+
exten=>teste,1,Playback(beep)
 +
same=>n,Wait(1)
 +
same=>n,Playback(hello-world)
 +
same=>n,Wait(1)
 +
same=>n,Playback(beep)
 +
same=>n,Hangup
 +
</syntaxhighlight>
  
==Objetivos==
+
A estrutura do plano de discagem é composta por ''extensões'' (um termo específico do Asterisk). Cada extensão identifica um número (ou usuário) que  pode ser chamado, e como essa chamada deve ser processada. A sintaxe pode ser vista abaixo:
  
* Realizar chamadas entre telefones IP e softphones por meio de um PBX IP Asterisk
+
<syntaxhighlight lang=text>
* Analisar a sinalização dessas chamadas
+
exten=>identificador,prioridade,aplicação
 +
</syntaxhighlight>
  
== Chamadas feitas usando PBX IP ==
+
* '''identificador''': o número ou usuário chamado
 +
* '''prioridade''': a prioridade da extensão. Isso determina a ordem de execução das extensões que tratam do mesmo identificador.
 +
* '''aplicação''': uma ação a ser realizada quando a extensão for processada. Por exemplo, a aplicação ''Dial'' determina que deve ser encaminhada a outro canal.
  
Um 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.
+
Como o processamento de uma chamada usualmente envolve uma sequência de extensões, existe uma sintaxe opcional para simplificar a declaração:
  
[[imagem:Voip-call.png|500px]]
+
<syntaxhighlight lang=text>
 +
exten=>identificador,prioridade,aplicação
 +
same=>prioridade,aplicação
 +
</syntaxhighlight>
  
 +
*'''same''': declara uma nova extensão com mesmo identificador da extensão imediatamente anterior
  
Nas nossas aulas faremos uso de um PBX IP [http://www.asterisk.org/ Asterisk], que é um software desenvolvido pela [http://www.digium.com/ Digium]. O Asterisk roda em computadores do tipo PC que possuem sistema operacional baseado em Linux. Sua licença é livre, o que significa que não há custo de licenciamento para utilizá-lo.
+
Por fim, a ''prioridade'' (que define a ordem com que as extensões são processadas) declarada com o valor ''n'' equivale à prioridade da extensão imediatamente anterior incrementada em uma unidade:
* [http://www.asterisk.org/get-started Uma visão geral sobre Asterisk]
 
  
== PBX IP Asterisk ==
+
<syntaxhighlight lang=text>
 +
exten=>101,1,Dial(SIP/101)
 +
same=>n,Hangup; a prioridade aqui terá o valor 2
 +
</syntaxhighlight>
  
* [http://tele.sj.ifsc.edu.br/~msobral/rmu/slides/aula-25.pdf Transparências]
+
=== Canais SIP ===
* [http://www.asterisk.org Site oficial do Asterisk]
 
* [http://www.asteriskguru.com/ Asterisk Guru]
 
* [http://www.voip-info.org/wiki Dicas sobre Asterisk]
 
* [http://www.asteriskdocs.org/ Livro online gratuito sobre Asterisk]
 
* [http://www.packetizer.com/ipmc/sip/papers/understanding_sip_voip/ Introdução a VoIP e SIP]
 
* Livro [http://www.voffice.com.br/index.php/pt/noticiasgrupovoffice/voffice-treinamento/96-voffice-lanca-quinta-geracao-do-guia-de-configuracao-para-o-asterisk- ''Asterisk: Guia de Configuração - 5a geração''], de Flávio Gonçalves.
 
  
 +
Cada telefone SIP deve ter seu identificador cadastrado no Asterisk. O identificador pode tanto ser um número, análogo a um ramal, ou uma string alfanumérica. No terminologia do Asterisk, cada telefone SIP é chamado de ''canal SIP'', e deve estar declarado em /etc/asterisk/sip.conf:
  
'''Asterisk:''' uma solução completa de PABX baseado em software, permitindo ligar o mundo IP ao mundo da rede pública de telefonia comutada.
+
<syntaxhighlight lang=text>
 +
; Canal 2000 (um exemplo)
 +
[2000]
 +
username=2000 ; o nome do usuário para fins de autenticação
 +
secret=kabrum
 +
type=friend ; pode efetuar e receber chamadas
 +
host=dynamic ; pode conectar-se a partir de qualquer endereço IP
 +
insecure=port,invite ; a segurança está associada ao registro do canal (primeiro
 +
passo),
 +
                    ; assim como acontece em sessões Web
 +
context=alunos ; o contexto padrão do João. O arquivo extensions.conf o definirá
 +
disallow=all
 +
allow=gsm ; habilita este codec para o João. Os vários codecs serão vistos em se
 +
guida,
 +
          ; já que cada um deles tem suas particularidades.
 +
allow=alaw ; outro codec
 +
allow=ulaw ; mais um codec
 +
qualify=yes; mostra a qualidade, em ms, da conexão entre UAC e UAS.
  
'''Características Básicas:''' faz tudo que um PABX pequeno e simples faz e pouco mais
+
; Canal joao (outro exemplo)
*ˆ Transferência, música de espera, siga-me, etc.
+
[joao]
* Conferência, correio de voz, URA, fila de chamadas, monitoramento de chamadas, integração com o Jabber (Google talk)
+
username=joao ; o nome do usuário para fins de autenticação
 
+
secret=blabla
 
+
type=friend ; pode efetuar e receber chamadas
[[imagem:Asterisk-ex1.png|400px]]
+
host=dynamic ; pode conectar-se a partir de qualquer endereço IP
<br>''Exemplo de cenário de uso do Asterisk''
+
insecure=port,invite ; a segurança está associada ao registro do canal (primeiro
 +
passo),
 +
                    ; assim como acontece em sessões Web
 +
context=alunos ; o contexto padrão do João. O arquivo extensions.conf o definirá
 +
disallow=all
 +
allow=gsm ; habilita este codec para o João. Os vários codecs serão vistos em se
 +
guida,
 +
          ; já que cada um deles tem suas particularidades.
 +
allow=alaw ; outro codec
 +
allow=ulaw ; mais um codec
 +
qualify=yes; mostra a qualidade, em ms, da conexão entre UAC e UAS.
 +
</syntaxhighlight>
  
 
+
Como se pode notar, a declaração de um canal SIP envolve muitos parâmetros que envolvem autenticação, controle de acesso, localização na rede, codecs e possivelmente outras capacidades. Como os valores de alguns parâmetros podem ser iguais para vários canais, o Asterisk possibilita a declaração de perfis (''templates''):
<!-- [[imagem:Asterisk-arch.png|500px]]
 
<br>''Arquitetura modular do Asterisk'' --->
 
 
 
=== Plano de discagem ===
 
 
 
O plano de discagem define como cada chamada deve ser processada. As instruções de processamento residem no arquivo de configuração ''/etc/asterisk/extensions.conf''. O fluxo de processamento de chamadas pode ser visto resumidamente abaixo:
 
 
 
[[imagem:Asterisk-fluxo.png|400px]]
 
 
 
 
 
Um exemplo de plano de discagem simples pode ser visto abaixo:
 
  
 
<syntaxhighlight lang=text>
 
<syntaxhighlight lang=text>
[alunos]; o nome deste contexto
+
; Perfil alunos
 +
[alunos](!);  a sequência "(!)" define isto como um perfil
 +
type=friend ; pode efetuar e receber chamadas
 +
host=dynamic ; pode conectar-se a partir de qualquer endereço IP
 +
insecure=port,invite ; a segurança está associada ao registro do canal (primeiro
 +
passo),
 +
                    ; assim como acontece em sessões Web
 +
context=alunos ; o contexto padrão do João. O arquivo extensions.conf o definirá
 +
disallow=all
 +
allow=gsm ; habilita este codec para o João. Os vários codecs serão vistos em se
 +
guida,
 +
          ; já que cada um deles tem suas particularidades.
 +
allow=alaw ; outro codec
 +
allow=ulaw ; mais um codec
 +
qualify=yes; mostra a qualidade, em ms, da conexão entre UAC e UAS.
  
# Chamadas para o número 101 são feitas via SIP para o canal "maria"
+
; Canal 2000
exten=>101,1,Dial(SIP/maria)
+
[2000](alunos); a sequência "(alunos)" copia as definições do perfil "alunos"
same=>n,Hangup()
+
username=2000 ; o nome do usuário para fins de autenticação
 +
secret=kabrum
  
# Chamadas para "teste" serão atendidas com um som de beep, seguido
+
; Canal joao
# da reprodução do arquivo de som "hello-world", em seguida outro beep e
+
[joao](alunos)
# enfim se encerra a chamada.
+
username=joao ; o nome do usuário para fins de autenticação
exten=>teste,1,Playback(beep)
+
secret=blabla
same=>n,Wait(1)
 
same=>n,Playback(hello-world)
 
same=>n,Wait(1)
 
same=>n,Playback(beep)
 
same=>n,Hangup
 
 
</syntaxhighlight>
 
</syntaxhighlight>
  
A estrutura do plano de discagem é composta por ''extensões'' (um termo específico do Asterisk). Cada extensão identifica um número (ou usuário) que  pode ser chamado, e como essa chamada deve ser processada. A sintaxe pode ser vista abaixo:
+
=== Experimento: comunicação entre telefones IP ou softphones por meio de um PBX IP ===
  
<syntaxhighlight lang=text>
+
Para realizar esses exercícios você deve usar o Asterisk na máquina virtual ''rmu-asterisk''. Para testar as chamadas, use o softphone jitsy ou twinkle na máquina real, e um telefone IP.
exten=>identificador,prioridade,aplicação
 
</syntaxhighlight>
 
  
* '''identificador''': o número ou usuário chamado
 
* '''prioridade''': a prioridade da extensão. Isso determina a ordem de execução das extensões que tratam do mesmo identificador.
 
* '''aplicação''': uma ação a ser realizada quando a extensão for processada. Por exemplo, a aplicação ''Dial'' determina que deve ser encaminhada a outro canal.
 
 
Como o processamento de uma chamada usualmente envolve uma sequência de extensões, existe uma sintaxe opcional para simplificar a declaração:
 
  
 +
1. Criar as seguintes contas SIP:{{collapse top | sip.conf}}
 
<syntaxhighlight lang=text>
 
<syntaxhighlight lang=text>
exten=>identificador,prioridade,aplicação
+
[general]
same=>prioridade,aplicação
 
</syntaxhighlight>
 
  
*'''same''': declara uma nova extensão com mesmo identificador da extensão imediatamente anterior
+
[alunos](!)
 
 
Por fim, a ''prioridade'' (que define a ordem com que as extensões são processadas) declarada com o valor ''n'' equivale à prioridade da extensão imediatamente anterior incrementada em uma unidade:
 
 
 
<syntaxhighlight lang=text>
 
exten=>101,1,Dial(SIP/101)
 
same=>n,Hangup; a prioridade aqui terá o valor 2
 
</syntaxhighlight>
 
 
 
=== Canais SIP ===
 
 
 
Cada telefone SIP deve ter seu identificador cadastrado no Asterisk. O identificador pode tanto ser um número, análogo a um ramal, ou uma string alfanumérica. No terminologia do Asterisk, cada telefone SIP é chamado de ''canal SIP'', e deve estar declarado em /etc/asterisk/sip.conf:
 
 
 
<syntaxhighlight lang=text>
 
; Canal 2000 (um exemplo)
 
[2000]
 
username=2000 ; o nome do usuário para fins de autenticação
 
secret=kabrum
 
 
type=friend ; pode efetuar e receber chamadas
 
type=friend ; pode efetuar e receber chamadas
 
host=dynamic ; pode conectar-se a partir de qualquer endereço IP
 
host=dynamic ; pode conectar-se a partir de qualquer endereço IP
insecure=port,invite ; a segurança está associada ao registro do canal (primeiro
+
insecure=port,invite ; a segurança está associada ao registro do canal (primeiro passo),
passo),
 
 
                     ; assim como acontece em sessões Web
 
                     ; assim como acontece em sessões Web
context=alunos ; o contexto padrão do João. O arquivo extensions.conf o definirá
 
 
disallow=all
 
disallow=all
allow=gsm ; habilita este codec para o João. Os vários codecs serão vistos em se
+
allow=gsm ; habilita este codec para o João. Os vários codecs serão vistos em seguida,
guida,
 
          ; já que cada um deles tem suas particularidades.
 
allow=alaw ; outro codec
 
allow=ulaw ; mais um codec
 
qualify=yes; mostra a qualidade, em ms, da conexão entre UAC e UAS.
 
 
 
; Canal joao (outro exemplo)
 
[joao]
 
username=joao ; o nome do usuário para fins de autenticação
 
secret=blabla
 
type=friend ; pode efetuar e receber chamadas
 
host=dynamic ; pode conectar-se a partir de qualquer endereço IP
 
insecure=port,invite ; a segurança está associada ao registro do canal (primeiro
 
passo),
 
                    ; assim como acontece em sessões Web
 
context=alunos ; o contexto padrão do João. O arquivo extensions.conf o definirá
 
disallow=all
 
allow=gsm ; habilita este codec para o João. Os vários codecs serão vistos em se
 
guida,
 
 
           ; já que cada um deles tem suas particularidades.
 
           ; já que cada um deles tem suas particularidades.
 
allow=alaw ; outro codec
 
allow=alaw ; outro codec
 
allow=ulaw ; mais um codec
 
allow=ulaw ; mais um codec
 
qualify=yes; mostra a qualidade, em ms, da conexão entre UAC e UAS.
 
qualify=yes; mostra a qualidade, em ms, da conexão entre UAC e UAS.
 +
context=alunos
 +
 +
[100](alunos)
 +
username=100
 +
secret=100
 +
 +
[101](alunos)
 +
username=101
 +
secret=101
 
</syntaxhighlight>
 
</syntaxhighlight>
 
+
{{collapse bottom}}{{collapse top | extensions.conf}}
Como se pode notar, a declaração de um canal SIP envolve muitos parâmetros que envolvem autenticação, controle de acesso, localização na rede, codecs e possivelmente outras capacidades. Como os valores de alguns parâmetros podem ser iguais para vários canais, o Asterisk possibilita a declaração de perfis (''templates''):
 
 
 
 
<syntaxhighlight lang=text>
 
<syntaxhighlight lang=text>
; Perfil alunos
+
[alunos]; contexto alunos
[alunos](!); a sequência "(!)" define isto como um perfil
+
exten=>_10X,1,Dial(SIP/${EXTEN})
type=friend ; pode efetuar e receber chamadas
+
same=>n,Hangup
host=dynamic ; pode conectar-se a partir de qualquer endereço IP
+
</syntaxhighlight>
insecure=port,invite ; a segurança está associada ao registro do canal (primeiro
+
{{collapse bottom}}
passo),
+
2. Crie um plano de discagem em que todos podem fazer chamadas para todos (isso é, 100 pode chamar 101, e vice-versa).
                    ; assim como acontece em sessões Web
 
context=alunos ; o contexto padrão do João. O arquivo extensions.conf o definirá
 
disallow=all
 
allow=gsm ; habilita este codec para o João. Os vários codecs serão vistos em se
 
guida,
 
          ; já que cada um deles tem suas particularidades.
 
allow=alaw ; outro codec
 
allow=ulaw ; mais um codec
 
qualify=yes; mostra a qualidade, em ms, da conexão entre UAC e UAS.
 
  
; Canal 2000
+
3. Execute o Jitsy ou Twinkle, configurando-o para registrar no Asterisk. Isso é feito especificando a conta SIP da seguinte forma (exemplo com o canal SIP 100): <syntaxhighlight lang=text>
[2000](alunos); a sequência "(alunos)" copia as definições do perfil "alunos"
+
100@IP_do_PBX_Asterisk
username=2000 ; o nome do usuário para fins de autenticação
+
</syntaxhighlight>
secret=kabrum
+
 
 +
4. Instale um telefone IP, configurando-o apropriadamente para que registre sua conta SIP no PBX Asterisk. Isso vai depender do modelo de telefone IP (Voiper da Intelbras, ou o telefone da Khomp).
  
; Canal joao
+
5. A partir do softphone faça uma chamada para a conta do telefone IP. Verifique se o telefone IP acusou o recebimento de chamada. Caso isso não tenha ocorrido, verifique seu plano de discagem.
[joao](alunos)
 
username=joao ; o nome do usuário para fins de autenticação
 
secret=blabla
 
</syntaxhighlight>
 
  
=== Experimento 3: comunicação entre telefones IP ou softphones por meio de um PBX IP ===
+
6. Execute o wireshark, e ponha-o em modo de captura em todas as interfaces (pseudo-interface ''any'').
  
Para realizar esses exercícios você deve usar o Asterisk na máquina virtual ''rmu-asterisk''. Para testar as chamadas, use o softphone jitsy ou twinkle na máquina real, e um telefone IP.
+
7. Repita a chamada de um softphone ao telefone IP. No telefone IP atenda a chamada, e alguns segundos depois encerre-a.
  
 +
8. No wireshark interrompa a captura, e em seguida acesse o menu ''Telephony->VoIP Calls''. Selecione uma chamada, e visualize o diagrama de mensagens SIP. Siga cada mensagem SIP (clique no diagrama), e observe a mensagem selecionada no painel de captura do wireshark. Identifique as transações (observe os códigos de resposta) e os diálogos. Você pode usar [[RMU-2013-1#Diagramas_de_chamadas|estes diagramas]] para se guiar.
  
1. Criar as seguintes contas SIP:{{collapse top | sip.conf}}
+
'''Questões:'''
<syntaxhighlight lang=text>
+
# Que papel desempenhou o Asterisk para os softphones ? UAC, UAC ou algo diferente ?
[general]
+
# Entre que agentes ocorreram os diálogos identificados ?
 +
# Como o Asterisk conseguiu identificar o telefone chamado (i.e. localizar onde ele estava na rede) ?
  
[alunos](!)
+
=== Como testar as chamadas ===
type=friend ; pode efetuar e receber chamadas
 
host=dynamic ; pode conectar-se a partir de qualquer endereço IP
 
insecure=port,invite ; a segurança está associada ao registro do canal (primeiro passo),
 
                    ; assim como acontece em sessões Web
 
disallow=all
 
allow=gsm ; habilita este codec para o João. Os vários codecs serão vistos em seguida,
 
          ; já que cada um deles tem suas particularidades.
 
allow=alaw ; outro codec
 
allow=ulaw ; mais um codec
 
qualify=yes; mostra a qualidade, em ms, da conexão entre UAC e UAS.
 
context=alunos
 
 
[100](alunos)
 
username=100
 
secret=100
 
  
[101](alunos)
+
Para testar as chamadas, são necessários um softphone e um telefone IP, além do Asterisk.
username=101
+
# Em cada softphone ou telefone IP crie uma conta SIP, que deve ser identificada por ''ramal@IP_do_PBX'' (ex: se o PBX tiver IP 192.168.2.110, as contas de alunos podem ser 100@192.168.2.110 e 101@192.168.2.110).
secret=101
+
# Após definir as contas, verifique se os telefones indicaram que elas estão disponíveis (''online''). Você pode fazer essa verificação também no próprio Asterisk. Neste caso execute o seguinte comando para acessar o console do Asterisk: <syntaxhighlight lang=bash>
 +
sudo rasterisk -vvv
 +
host*CLI> sip show peers
 +
host*CLI> sip show peers
 +
Name/username             Host            Dyn Nat ACL Port    Status   
 +
101/101                   192.168.2.10      D          11270    OK (6 ms)
 +
102/102                    192.168.2.210      D          63169    OK (12 ms)
 +
2 sip peers [Monitored: 2 online, 0 offline Unmonitored: 0 online, 0 offline]
 
</syntaxhighlight>
 
</syntaxhighlight>
{{collapse bottom}}{{collapse top | extensions.conf}}
+
# Se algum dos telefones não aparecer como ''OK'' no console do Asterisk, verifique se o número de ramal e a senha configuradas no telefone são os mesmos declarados em ''/etc/asterisk/sip.conf''. Outro teste que se pode fazer é acessar o console do Asterisk, e depois tentar ativar as contas SIP nos telefones (i.e. colocá-las para indisponível ou ''offline'', e depois reativá-las). O Asterisk irá mostrar algumas linhas informativas sobre os registros dos telefones (lembre que ao ativar uma conta SIP, ela é registrada no Asterisk usando uma mensagem SIP do tipo ''REGISTER'').
<syntaxhighlight lang=text>
+
# Se as contas SIP estão devidamente registradas no Asterisk, mas ainda assim as chamadas não são realizadas, o problema deve estar no plano de discagem. Isso fica evidente se ao tentar fazer uma chamada obtém-se uma mensagem de erro do tipo ''404 not found''. Neste caso, acesse o console do Asterisk e tente novamente fazer a chamada. Veja se o Asterisk informa na tela o motivo para a chamada não ser realizada. Em seguida, confira se seu plano de discagem (''/etc/asterisk/extensions.conf'') possui uma extensão que satisfaça a chamada que se deseja realizar. Isso é, se você estiver tentando chamar o ramal SIP 101@192.168.2.110, deve haver uma extensão assim: <syntaxhighlight lang=text>
[alunos]; contexto alunos
+
exten=>101,1,Dial(SIP/101)
exten=>_10X,1,Dial(SIP/${EXTEN})
 
 
same=>n,Hangup
 
same=>n,Hangup
 
</syntaxhighlight>
 
</syntaxhighlight>
{{collapse bottom}}
 
2. Crie um plano de discagem em que todos podem fazer chamadas para todos (isso é, 100 pode chamar 101, e vice-versa).
 
  
3. Execute o Jitsy ou Twinkle, configurando-o para registrar no Asterisk. Isso é feito especificando a conta SIP da seguinte forma (exemplo com o canal SIP 100): <syntaxhighlight lang=text>
+
;<math>\blacklozenge</math> '''Entrega para a próxima aula 24/03 - atividade em dupla''' - enviar por email os códigos da configuração :
100@IP_do_PBX_Asterisk
 
</syntaxhighlight>
 
  
4. Instale um telefone IP, configurando-o apropriadamente para que registre sua conta SIP no PBX Asterisk. Isso vai depender do modelo de telefone IP (Voiper da Intelbras, ou o telefone da Khomp).
+
Criar as seguintes contas SIP e contextos:<br>
 +
#alunos  Contas:  100 e 101
 +
#professores  Contas:  200 e 201
 +
#coordenacao  Contas:  300 e 3012
  
5. A partir do softphone faça uma chamada para a conta do telefone IP. Verifique se o telefone IP acusou o recebimento de chamada. Caso isso não tenha ocorrido, verifique seu plano de discagem.
 
  
6. Execute o wireshark, e ponha-o em modo de captura em todas as interfaces (pseudo-interface ''any'').
+
a) Criar um plano de discagem de forma que as contas SIP do contexto alunos so possam atingir outras contas SIP deste contexto.<br>
 +
b) Faca o mesmo para o contexto professores.<br>
 +
c) Contas SIP do contexto coordenação poderão atingir, alem das contas SIP deste contexto, as contas dos contextos alunos e professores. <br>
 +
d) Implementar caixa de correio de voz para cada extensão e criar uma extensão em cada contexto para permitir a consulta ao correio de voz.
  
7. Repita a chamada de um softphone ao telefone IP. No telefone IP atenda a chamada, e alguns segundos depois encerre-a.
 
  
8. No wireshark interrompa a captura, e em seguida acesse o menu ''Telephony->VoIP Calls''. Selecione uma chamada, e visualize o diagrama de mensagens SIP. Siga cada mensagem SIP (clique no diagrama), e observe a mensagem selecionada no painel de captura do wireshark. Identifique as transações (observe os códigos de resposta) e os diálogos. Você pode usar [[RMU-2013-1#Diagramas_de_chamadas|estes diagramas]] para se guiar.
+
{{collapse bottom}}
  
'''Questões:'''
+
{{collapse top |23/03 (-> ANP em 06/04 - aula assíncrona com vídeo de apoio) - <math>\blacklozenge</math> AE3 - VoIP codecs |bg=#00ff00}}
# Que papel desempenhou o Asterisk para os softphones ? UAC, UAC ou algo diferente ?
 
# Entre que agentes ocorreram os diálogos identificados ?
 
# Como o Asterisk conseguiu identificar o telefone chamado (i.e. localizar onde ele estava na rede) ?
 
  
=== Como testar as chamadas ===
+
==23/03 (-> ANP em 06/04 - aula assíncrona com vídeo de apoio) - <math>\blacklozenge</math> '''AE3''' VoIP codecs==
  
Para testar as chamadas, são necessários um softphone e um telefone IP, além do Asterisk.
+
===Objetivos===
# Em cada softphone ou telefone IP crie uma conta SIP, que deve ser identificada por ''ramal@IP_do_PBX'' (ex: se o PBX tiver IP 192.168.2.110, as contas de alunos podem ser 100@192.168.2.110 e 101@192.168.2.110).
 
# Após definir as contas, verifique se os telefones indicaram que elas estão disponíveis (''online''). Você pode fazer essa verificação também no próprio Asterisk. Neste caso execute o seguinte comando para acessar o console do Asterisk: <syntaxhighlight lang=bash>
 
sudo rasterisk -vvv
 
host*CLI> sip show peers
 
host*CLI> sip show peers
 
Name/username              Host            Dyn Nat ACL Port    Status   
 
101/101                    192.168.2.10      D          11270    OK (6 ms)
 
102/102                    192.168.2.210      D          63169    OK (12 ms)
 
2 sip peers [Monitored: 2 online, 0 offline Unmonitored: 0 online, 0 offline]
 
</syntaxhighlight>
 
# Se algum dos telefones não aparecer como ''OK'' no console do Asterisk, verifique se o número de ramal e a senha configuradas no telefone são os mesmos declarados em ''/etc/asterisk/sip.conf''. Outro teste que se pode fazer é acessar o console do Asterisk, e depois tentar ativar as contas SIP nos telefones (i.e. colocá-las para indisponível ou ''offline'', e depois reativá-las). O Asterisk irá mostrar algumas linhas informativas sobre os registros dos telefones (lembre que ao ativar uma conta SIP, ela é registrada no Asterisk usando uma mensagem SIP do tipo ''REGISTER'').
 
# Se as contas SIP estão devidamente registradas no Asterisk, mas ainda assim as chamadas não são realizadas, o problema deve estar no plano de discagem. Isso fica evidente se ao tentar fazer uma chamada obtém-se uma mensagem de erro do tipo ''404 not found''. Neste caso, acesse o console do Asterisk e tente novamente fazer a chamada. Veja se o Asterisk informa na tela o motivo para a chamada não ser realizada. Em seguida, confira se seu plano de discagem (''/etc/asterisk/extensions.conf'') possui uma extensão que satisfaça a chamada que se deseja realizar. Isso é, se você estiver tentando chamar o ramal SIP 101@192.168.2.110, deve haver uma extensão assim: <syntaxhighlight lang=text>
 
exten=>101,1,Dial(SIP/101)
 
same=>n,Hangup
 
</syntaxhighlight>
 
  
= Aula dia 30/04/2013 =
+
;Parte Teórica
  
'''Objetivos:'''
+
* Assista o vídeo da Webinar (seminário via Web) até o tempo 36:45' [https://portaldosaber.net/2017/12/video-webinar-configurando-corretamente-os-codecs-no-issabel/ Codificadores de Voz do projeto PBX ISSABEL]]: As bases sobre a padronização e diferenças de codificação para voz na Telefonia IP. Embora seja uma referência mais antiga (2017), o conteúdo ainda é bem contemporâneo;
* Estabelecer chamadas VoIP entre telefones IP através de um PBX IP.
+
* O vídeo acima, do tempo 36:45' à 51:00' é sobre a configuração da interface gráfica do PBX ISSABEL: Será útil somente quando tivermos a oportunidade das aulas prática. Entretanto é válido pra entender como configurar codecs em ambientes ASTERIX.
* Analisar a sinalização SIP quando se usa o PBX IP.
+
* Do minuto 51 até o final são perguntas realizadas no final do seminário (uma foi minha ;D);
 +
* <math>\blacklozenge</math> '''AE3''' e Validação de conteúdo e presença da aula remota: ATIVIDADE PUBLICADA NO SIGAA: '''Questionário sobre CODECs em PBX IP referente ANP de 06/04''' (Atenção! Assista o vídeo de apoio da aula do dia 23/03 antes de abrir o questionário!)
 +
* Use a leitura dos links de apoio abaixo pra ajudar a responder as questões se for necessário também!
  
 +
; Links de apoio
  
Continuaremos a implantação de chamadas usando um PBX e dois telefones IP.
+
* [http://voip.about.com/od/voipbasics/a/voipcodecs.htm VoIP Codecs]
 +
* [http://www.voipforo.com/en/codec/codecs.php Uma tabela de codecs para VoIP]
 +
* [http://toncar.cz/Tutorials/VoIP/VoIP_Basics_Overview_of_Audio_Codecs.html Outra visão geral sobre codecs para VoIP]
  
 +
;Parte Prática ('''fica pendente para o retorno das aulas presenciais''')
  
 +
* Analisar a sinalização SIP quando se usa o PBX IP.
 +
* Analisar a negociação de midia feita pelo protocolo SDP.
 +
* Observar e diferenciar a transmissão de midia com diferentes codecs de áudio.
  
== Como realizar o experimento em casa ==
 
  
Pode-se fazer o experimento em casa, de forma a estudar a sinalização e stream de áudio das chamadas VoIP. Para isso precisa-se do Asterisk (PBX IP) e dois softphones (''twinkle'', ''jitsi'', ''linphone'', ou outro de sua preferência). O Asterisk roda somente no Linux, portanto deve-se ter esse sistema operacional no seu computador ou em uma máquina virtual Virtualbox. Para facilitar a realização desses experimentos, seguem algumas opções.
+
[[imagem:Tip-Pbx-intro.png]]
  
=== Usando uma máquina virtual Virtualbox ===
 
  
Neste cenário, executa-se uma máquina virtual com o Asterisk, e os softphones na máquina real. A máquina real (sistema hospedeiro) pode ser tanto Linux quanto Windows, porém no primeiro caso funciona melhor. Os softphones podem também estar em outros computadores, laptops ou smartphones. Mas para fazer experimentos desta forma é necessário primeiro ter a máquina virtual, que pode ser obtida no link a seguir:
+
Quando um PBX IP intermedia a stream de áudio, então ele funciona também como ''gateway de media''. Isso possibilita que os dois telefones IP usem codecs de áudio diferentes, e nesse caso o PBX IP faz a tradução de uma codificação para a outra ao intermediar o áudio. Além disso, um gateway de media facilita o envia da stream de áudio entre os telefones IP, quando eles estão em redes diferentes (e existem firewalls e tradutores NAT entre eles).
* [http://tele.sj.ifsc.edu.br/~msobral/soft/asterisk-vm.tgz Maquina virtual com Ubuntu Server 12.04 e Asterisk (500 MB)]
 
  
Para instalá-la siga estes passos:
+
A sinalização SIP apresenta algumas diferenças em relação ao caso em que a chamada ocorre diretamente entre dois telefones IP. Isso se dá porque o PBX IP, apesar de fazer parte da sinalização, não ser a rigor o telefone IP chamado nem o chamador. Os detalhes de como essa troca de mensagens SIP é realizada são introduzidos a seguir.
# Descompacte o arquivo ''asterisk-vm.tgz'' dentro da pasta ''VirtualBox VMs''. No Linux essa pasta fica dentro do diretório pessoal do usuário (o diretório ''home''). No Windows ainda não sei ... na 5a feira verei lá no Ifsc, mas deve estar dentro de ''Documents and Settings'' ou algo assim - quem descobrir por favor me avise.
 
# Execute o VirtualBox, e então selecione o menu ''Máquina->Acrescentar''.
 
# Escolha o arquivo ''Asterisk/Asterisk.vbox'', que deve estar na pasta ''VirtualBox VMs''.
 
# Deve ter surgido a máquina virtual ''Asterisk'' na lista do VirtualBox.
 
#* Execute-a para testá-la.
 
#* Entre com usuário ''aluno'' e senha ''aluno''.
 
#* O Asterisk deve estar em execução. Teste-o usando o comando ''sudo rasterisk -vvv''.
 
#* Veja os canais SIP (um para cada telefone IP ou softphone) que já estão definidos em ''/etc/asterisk/sip.conf''. São os mesmos que usamos em aula.
 
#* Observe o plano de discagem em ''/etc/asterisk/extensions.conf''. Ele possibilita chamadas entre os softphones, e também para o número especial ''999''' (experimente-o).
 
#* Saia da interface do ''rasterisk'' usando o comando ''quit'.
 
#* Ao terminar, não esqueça de encerrar a máquina virtual com o comando ''halt''.
 
  
Os softphones podem ser o ''twinkle'', que usamos em aula, ou o ''jitsi'', que roda tanto no Linux quanto Windows.
+
=== Chamada entre dois agentes SIP com intermediação de um gateway de media ===
* [http://tele.sj.ifsc.edu.br/~msobral/soft/jitsi_2.0-latest_i386.deb Jitsi 2.0 para Linux (20 MB)]
 
* [https://download.jitsi.org/jitsi/windows/jitsi-2.0-latest-x86.exe Jitsi 2.0 para Windows 32 bits(37 MB)]
 
* [https://download.jitsi.org/jitsi/windows/jitsi-2.0-latest-x64.exe Jitsi 2.0 para Windows 64 bits(39 MB)]
 
* [http://jitsi.org/ Site oficial do Jitsi]
 
  
Lembre que se houver dois softphones no mesmo computador, eles deverão usar ports UDP diferentes para o protocolo SIP. Experimente usar port 5060 em um softphone, e 5062 no outro.
+
A chamada é feita inicialmente para o PBX IP, que intermedia tanto as mensagens SIP quanto a stream de áudio (pacotes RTP). Isso possibilita que dois agentes estabeleçam uma chamada mesmo usando codecs diferentes, pois o gateway de media fará a tradução entre codecs.
  
=== Usando o Asterisk diretamente no seu computador (na máquina real) ===
+
<syntaxhighlight lang=text>
 
+
Fone 1            PBX IP              Fone 2
Você deve ter o Linux instalado no seu computador para rodar diretamente o Asterisk. Assumindo que seja o Ubuntu ou Debian Linux, siga estes passos:
+
              (directmedia=no)      
# Instale o Asterisk: <syntaxhighlight lang=bash>
+
    |                |                |
sudo apt-get istall asterisk
+
    |  INVITE      |                |
</syntaxhighlight>
+
    |--------------->|  INVITE      |
# Copie estes arquivos para dentro de ''/etc/asterisk'':
+
    |  100 Trying    |--------------->|
#* [http://tele.sj.ifsc.edu.br/~msobral/tip/sip.conf sip.conf]
+
    |<---------------|  100 Trying    |
#* [http://tele.sj.ifsc.edu.br/~msobral/tip/extensions.conf extensions.conf]
+
    |                |<---------------|
# Reinicie o Asterisk: <syntaxhighlight lang=bash>
+
    |                |  180 Ringing  |
sudo service asterisk restart
+
    |  180 Ringing  |<---------------|               
 +
    |<---------------|                |     
 +
    |                |    200 Ok      |
 +
    |    200 Ok    |<---------------|
 +
    |<---------------|                |
 +
    |    ACK        |                |
 +
    |--------------->|    ACK        |
 +
    |                |--------------->|
 +
    |    RTP Media  |  RTP Media    |
 +
    |<==============>|<==============>|
 +
    |    BYE        |                |
 +
    |--------------->|    BYE        |
 +
    |                |--------------->|
 +
    |                |    200 Ok      |
 +
    |    200 Ok    |<---------------|
 +
    |<---------------|                |
 +
    |                |                |
 
</syntaxhighlight>
 
</syntaxhighlight>
# Use o ''rasterisk'' para acessar o console do Asterisk: <syntaxhighlight lang=bash>
 
sudo rasterisk -vvv
 
</syntaxhighlight>
 
# Inicie os softphones (''jitsi'' ou ''twinkle''). Configure-os para usarem as contas SIP ''100'' e ''101'', registrando-se no Asterisk que está no IP 127.0.0.1. Lembre de colocar os softphones em ports SIP diferentes (ex: 5062 e 5064).
 
# Tente fazer chamadas, observando as mensagens de aviso na tela do ''rasterisk''.
 
  
<!-- === Usando o Netkit (emulador de rede virtual) ===-->
+
{{collapse bottom}}
 +
 
 +
{{collapse top |30/03 (-> parte prática - sem aula remota - diluídas em semanas seguintes com atividades via SIGAA) - Laboratório com Codecs - Análise da negociação|bg=#ffd700}}
  
= Aula dia 07/05/2013 =
+
==30/03 (-> parte prática - sem aula remota) -  Laboratório com Codecs - Análise da negociação==
  
* [http://voip.about.com/od/voipbasics/a/voipcodecs.htm VoIP Codecs]
 
* [http://www.voipforo.com/en/codec/codecs.php Uma tabela de codecs para VoIP]
 
* [http://toncar.cz/Tutorials/VoIP/VoIP_Basics_Overview_of_Audio_Codecs.html Outra visão geral sobre codecs para VoIP]
 
  
 +
=== Roteiro de Laboratório ===
 +
 +
# Execute a máquina virtual ''Integrado-Asterisk''. Verifique se o Asterisk já está ativado (ele deveria ser iniciado automaticamente ... caso contrário execute ''sudo service asterisk restart'').
 +
# Execute o ''wireshark'' e inicie a captura de datagramas UDP em todas as interfaces (o nome da interface deve ser ''any'', e o filtro de captura deve ser ''udp'').
 +
# Execute dois softhones (''twinkle'' e ''jitsi''). Em um deles crie a conta SIP ''100@IP_da_maq_virtual'', e no outro cria a conta SIP ''101@IP_da_maq_virtual''. O ''IP_da_maq_virtual'' é 192.168.2.100+número_do_computador (ex: no computador 2 é 192.168.2.102).
 +
# Faça uma chamada entre os softphones, atenda-a e em seguida encerre-a.
 +
# Procure no ''wireshark'' as mensagens SIP trocadas entre os softphones e o Asterisk. Desenhe um diagrama de troca de mensagens usando [[TIP-IntTel#Chamada_entre_dois_agentes_SIP_com_intermedia.C3.A7.C3.A3o_de_um_gateway_de_media |este modelo]].
 +
# Observe os cabeçalhos ''Call-Id'', ''From'', ''To'', ''Via'', ''CSeq'' das mensagens SIP. Quais mantiveram seus valores ao longo de todas transações, e quais mudaram ?
 +
# As mensagens SIP tinham por objetivo estabelecer uma chamada de áudio entre os softphones. Essa informação está no corpo das mensagens INVITE, o qual possui uma mensagem de outro protocolo chamado SDP. Observe as informações contidas na mensagem SDP, e identifique:
 +
#* O tipo de midia a ser transmitida
 +
#* O endereço IP, port e protocolo de transporte de midia a serem usados para essa transmissão.
 +
#* Os codecs que podem ser usados para a transmissão de midia.
 +
# A negociação sobre a transmissão de midia se concretiza na mensagem ''200 OK'' em resposta ao INVITE. Observe que ela também contém uma mensagem SDP. Observe as informações ali contidas e compare-as com as que havia no INVITE. Como essa resposta complementa o que foi informado no INVITE ?
 +
# Uma vez estabelecida a chamada, ocorre a transmissão da midia. Qual o protocolo utilizado ? Que informações ele contém em seu cabeçalho ? Descubra essas informações observando o que mostra o ''wireshark''.
 +
# Experimente estabelecer chamadas com diferentes codecs, e observe a negociação realizada com SDP.
 +
 +
;Tarefa desafio para casa.
  
'''Objetivos:'''
+
Combine com um colega de realizarem uma chamada VoIP entre softphones a partir de suas residências. Usem como PBX IP o servidor ''integrado.sj.ifsc.edu.br'' com contas SIP 100@integrado.sj.ifsc.edu.br a 1099@integrado.sj.ifsc.edu.br (as senhas são as mesmas que as contas, acrescidas do sufixo ''qwe'' - ex: 1000@integrado.sj.ifsc.edu.br tem senha ''1000qwe''). Escreva um breve relatório que descreva como foi realizado o experimento, se a chamada teve sucesso, que problemas apareceram, qual o diagnóstico para esses problemas e que soluções foram encontradas; inclua a troca de mensagens SIP feita pelo seu softphone (descubra isso com o wireshark).  
* Analisar a sinalização SIP quando se usa o PBX IP.
 
* Analisar a negociação de midia feita pelo protocolo SDP.
 
* Observar e diferenciar a transmissão de midia com diferentes codecs de áudio.
 
  
 +
{{collapse bottom}}
  
 +
{{collapse top |06/04  (-> ANP em 27/04 - videoaula assíncrona) -  A transmissão de mídia. Protocolos RTP e RTCP.|bg=#00ff00 }}
  
[[imagem:Tip-Pbx-intro.png]]
+
==06/04  (-> ANP em 27/04 - videoaula assíncrona) - A transmissão de mídia. Protocolos RTP and RTCP. ==
  
 +
; Vídeo-aula do dia:
  
Quando um PBX IP intermedia a stream de áudio, então ele funciona também como ''gateway de media''. Isso possibilita que os dois telefones IP usem codecs de áudio diferentes, e nesse caso o PBX IP faz a tradução de uma codificação para a outra ao intermediar o áudio. Além disso, um gateway de media facilita o envia da stream de áudio entre os telefones IP, quando eles estão em redes diferentes (e existem firewalls e tradutores NAT entre eles).
+
* [https://drive.google.com/open?id=1C4DIOnUbFjxGsPDTLY3_BEkbNb884LJy '''Vídeo-aula de 27/04''' Introdução aos Protocolos RTP, RTCP e SDP]
  
A sinalização SIP apresenta algumas diferenças em relação ao caso em que a chamada ocorre diretamente entre dois telefones IP. Isso se dá porque o PBX IP, apesar de fazer parte da sinalização, não ser a rigor o telefone IP chamado nem o chamador. Os detalhes de como essa troca de mensagens SIP é realizada são introduzidos a seguir.
 
  
== Chamada entre dois agentes SIP com intermediação de um gateway de media ==
+
; O transporte do áudio nas chamadas VoIP
  
A chamada é feita inicialmente para o PBX IP, que intermedia tanto as mensagens SIP quanto a stream de áudio (pacotes RTP). Isso possibilita que dois agentes estabeleçam uma chamada mesmo usando codecs diferentes, pois o gateway de media fará a tradução entre codecs.
+
=== SDP (Session Description Protocol) ===
  
<syntaxhighlight lang=text>
+
* [http://tools.ietf.org/html/rfc4566 RFC 4566: SDP]
Fone 1            PBX IP              Fone 2
+
* [[media:SDP_protocol.pdf | Um bom texto sobre SDP]]
              (directmedia=no)      
+
* [https://www.youtube.com/watch?v=gNhgxW7WJ6A Vídeo da aula 5 do canal do Toth sobre o Protocolo SDP] (recomendo que vocês acessem as outras aulas também)
    |                |                |
 
    |  INVITE      |                |
 
    |--------------->|  INVITE      |
 
    |  100 Trying    |--------------->|
 
    |<---------------|  100 Trying    |
 
    |                |<---------------|
 
    |                |  180 Ringing  |
 
    |  180 Ringing  |<---------------|               
 
    |<---------------|                |     
 
    |                |    200 Ok      |
 
    |    200 Ok    |<---------------|
 
    |<---------------|                |
 
    |    ACK        |                |
 
    |--------------->|    ACK        |
 
    |                |--------------->|
 
    |    RTP Media  |  RTP Media    |
 
    |<==============>|<==============>|
 
    |    BYE        |                |
 
    |--------------->|    BYE        |
 
    |                |--------------->|
 
    |                |    200 Ok      |
 
    |    200 Ok    |<---------------|
 
    |<---------------|                |
 
    |                |                |
 
</syntaxhighlight>
 
  
== Atividade ==
+
Ao iniciar uma chamada com SIP, a negociação de midia a ser transmitida é especificada no corpo da mensagem INVITE. O formato da especificação é descrito pelo protocolo SDP (Session Description Protocol), contendo as seguintes informações:
 
 
# Execute a máquina virtual ''Integrado-Asterisk''. Verifique se o Asterisk já está ativado (ele deveria ser iniciado automaticamente ... caso contrário execute ''sudo service asterisk restart'').
 
# Execute o ''wireshark'' e inicie a captura de datagramas UDP em todas as interfaces (o nome da interface deve ser ''any'', e o filtro de captura deve ser ''udp'').
 
# Execute dois softhones (''twinkle'' e ''jitsi''). Em um deles crie a conta SIP ''100@IP_da_maq_virtual'', e no outro cria a conta SIP ''101@IP_da_maq_virtual''. O ''IP_da_maq_virtual'' é 192.168.2.100+número_do_computador (ex: no computador 2 é 192.168.2.102).
 
# Faça uma chamada entre os softphones, atenda-a e em seguida encerre-a.
 
# Procure no ''wireshark'' as mensagens SIP trocadas entre os softphones e o Asterisk. Desenhe um diagrama de troca de mensagens usando [[TIP-2013-1-Integrado_Telefonia_IP_-_Integrado#Chamada_entre_dois_agentes_SIP_com_intermedia.C3.A7.C3.A3o_de_um_gateway_de_media|este modelo]].
 
# Observe os cabeçalhos ''Call-Id'', ''From'', ''To'', ''Via'', ''CSeq'' das mensagens SIP. Quais mantiveram seus valores ao longo de todas transações, e quais mudaram ?
 
# As mensagens SIP tinham por objetivo estabelecer uma chamada de áudio entre os softphones. Essa informação está no corpo das mensagens INVITE, o qual possui uma mensagem de outro protocolo chamado SDP. Observe as informações contidas na mensagem SDP, e identifique:
 
#* O tipo de midia a ser transmitida
 
#* O endereço IP, port e protocolo de transporte de midia a serem usados para essa transmissão.
 
#* Os codecs que podem ser usados para a transmissão de midia.
 
# A negociação sobre a transmissão de midia se concretiza na mensagem ''200 OK'' em resposta ao INVITE. Observe que ela também contém uma mensagem SDP. Observe as informações ali contidas e compare-as com as que havia no INVITE. Como essa resposta complementa o que foi informado no INVITE ?
 
# Uma vez estabelecida a chamada, ocorre a transmissão da midia. Qual o protocolo utilizado ? Que informações ele contém em seu cabeçalho ? Descubra essas informações observando o que mostra o ''wireshark''.
 
# Experimente estabelecer chamadas com diferentes codecs, e observe a negociação realizada com SDP.
 
 
 
== Tarefa para casa ==
 
 
 
Combine com um colega de realizarem uma chamada VoIP entre softphones a partir de suas residências. Usem como PBX IP o servidor ''integrado.sj.ifsc.edu.br'' com contas SIP 100@integrado.sj.ifsc.edu.br a 1099@integrado.sj.ifsc.edu.br (as senhas são as mesmas que as contas, acrescidas do sufixo ''qwe'' - ex: 1000@integrado.sj.ifsc.edu.br tem senha ''1000qwe''). Escreva um breve relatório que descreva como foi realizado o experimento, se a chamada teve sucesso, que problemas apareceram, qual o diagnóstico para esses problemas e que soluções foram encontradas; inclua a troca de mensagens SIP feita pelo seu softphone (descubra isso com o wireshark).
 
 
 
= Aula dia 14/05: o transporte do audio nas chamadas VoIP =
 
 
 
== SDP (Session Description Protocol) ==
 
 
 
* [http://tools.ietf.org/html/rfc4566 RFC 4566: SDP]
 
* [http://tele.sj.ifsc.edu.br/~msobral/tip/sdp.pdf Um bom texto sobre SDP]
 
 
 
Ao iniciar uma chamada com SIP, a negociação de midia a ser transmitida é especificada no corpo da mensagem INVITE. O formato da especificação é descrito pelo protocolo SDP (Session Description Protocol), contendo as seguintes informações:
 
 
* Endereço IP
 
* Endereço IP
 
* Perfil RTP (usualmente RTP/AVP)
 
* Perfil RTP (usualmente RTP/AVP)
Linha 1 853: Linha 1 407:
  
  
A descrição completa de cada campo, e os possíveis valores que ele pode assumir, pode ser lida nas referências (em especial, [http://tele.sj.ifsc.edu.br/~msobral/tip/sdp.pdf este capítulo de livro]).
+
A descrição completa de cada campo, e os possíveis valores que ele pode assumir, pode ser lida nas referências (em especial, * [[media:SDP_protocol.pdf | neste capítulo de livro]]).
  
== Protocolo RTP ==
+
=== Protocolo RTP ===
  
* [http://tele.sj.ifsc.edu.br/~msobral/rmu/slides/aula-22.pdf Transparências]
+
* [[media:aula22.pdf | slides do professor Emerson Mello sobre Protocolo RTP]]
 
* [http://www.cs.columbia.edu/~hgs/rtp/faq.html Uma FAQ sobre RTP (muito boa)]
 
* [http://www.cs.columbia.edu/~hgs/rtp/faq.html Uma FAQ sobre RTP (muito boa)]
 
* [http://tools.ietf.org/html/rfc3550 RFC 3550: RTP: A Transport Protocol for Real-Time Applications]
 
* [http://tools.ietf.org/html/rfc3550 RFC 3550: RTP: A Transport Protocol for Real-Time Applications]
* [http://tele.sj.ifsc.edu.br/~msobral/rmu/voip/rtp.pdf Capítulo 11 do livro ''SIP: Understanding the Session Initiation Protocol, 3rd ed'']
+
* [[media:rtpca12.pdf | Capítulo 12 do livro ''SIP: Understanding the Session Initiation Protocol, 3rd ed'']]
 
* Cap. 7 do livro ''Redes de Computadores e a Internet, 5a edição'', de James Kurose.
 
* Cap. 7 do livro ''Redes de Computadores e a Internet, 5a edição'', de James Kurose.
  
Linha 1 870: Linha 1 424:
 
   
 
   
  
Esses problemas não são novidade ... nós já os discutimos nas aulas sobre [[RMU-2013-1#Transmiss.C3.A3o_de_dados_multimidia|transmissão de dados multimidia]]. O que há de novo é um '''protocolo que dá subsídios para as técnicas que buscam atender requisitos de qualidade de serviço'''. Esses subsídios são informações providas pelo RTP para ajudar a identificar os problemas citados acima, as quais são:
+
Esses problemas não são novidade ... nós já foi discutido nas disciplina de redes de computadores da terceira (ou sétima) fase. O que há de novo é um '''protocolo que dá subsídios para as técnicas que buscam atender requisitos de qualidade de serviço'''. Esses subsídios são informações providas pelo RTP para ajudar a identificar os problemas citados acima, as quais são:
 
* ''Identificação do tipo do conteúdo que está sendo carregado (codec)'': isso informa ao receptor como ele deve decodificar o conteúdo transportado (ver esta [http://en.wikipedia.org/wiki/RTP_audio_video_profile tabela de identificadores de codec usados pelo RTP])
 
* ''Identificação do tipo do conteúdo que está sendo carregado (codec)'': isso informa ao receptor como ele deve decodificar o conteúdo transportado (ver esta [http://en.wikipedia.org/wiki/RTP_audio_video_profile tabela de identificadores de codec usados pelo RTP])
 
* ''Numeração de sequência'': essa informação possibilita identificar pacotes perdidos ou fora de ordem.
 
* ''Numeração de sequência'': essa informação possibilita identificar pacotes perdidos ou fora de ordem.
Linha 1 905: Linha 1 459:
 
Como o tráfego RTCP é puramente overhead, o protocolo foi projetado para que seu consumo da capacidade da rede seja constante, não importa quantos participantes da sessão de media existam. A ideia é que quanto mais participantes houver, menos frequentemente os relatórios RTCP são enviados. Por exemplo, se em uma conferência houver somente dois participantes, os relatórios podem ser enviados a cada 5 segundos. Se houver quatro participantes, os relatórios são enviados a cada 10 segundos. Com isso o consumo de banda para relatórios se mantém constante e previsível.
 
Como o tráfego RTCP é puramente overhead, o protocolo foi projetado para que seu consumo da capacidade da rede seja constante, não importa quantos participantes da sessão de media existam. A ideia é que quanto mais participantes houver, menos frequentemente os relatórios RTCP são enviados. Por exemplo, se em uma conferência houver somente dois participantes, os relatórios podem ser enviados a cada 5 segundos. Se houver quatro participantes, os relatórios são enviados a cada 10 segundos. Com isso o consumo de banda para relatórios se mantém constante e previsível.
  
== Atividade ==
+
; Atividade SIGAA: FÓRUM  - Título:RTP - O protocolo da vida digital!
  
Essa atividade busca ilustrar os fluxos RTP com um exemplo:
+
'''Descrição''' <BR>
# Estabeleça uma chamada VoIP entre dois softphones usando o Asterisk como intermediário.
+
Sabendo da fundamental utilidade deste protocolo na vida real apoiado pelos seus irmãos SDP e RTCP, apresente argumentos TÉCNICOS E CONCEITUAIS pra confirmar ou não que ele foi uma criação pra lá de importante para o cotidiano da sociedade.
# Execute o wireshark no computador onde roda o Asterisk, e ative a captura de datagramas UDP.
+
 
 +
Autor(a):JORGE HENRIQUE BUSATTO CASAGRANDE
 +
Monitorar Leitura: SIM
 +
Tipo: Fórum P & R (perguntas e respostas)
 +
Ordenação Padrão: Mostrar respostas aninhadas
 +
Criado em: 28/04/2020 00:39
 +
 
 +
 
 +
{{collapse bottom}}
 +
 
 +
{{collapse top |13/04  (-> Parte  prática- sem aula remota - diluídas em semanas seguintes com atividades via SIGAA) - Laboratório com RTP e RTCP - Análise de jitter, latência, erros.|bg=#ffd700}}
 +
 
 +
==13/04  (-> Parte  prática- sem aula remota) - Laboratório com RTP e RTCP - Análise de jitter, latência, erros.  ==
 +
 
 +
 
 +
=== Roteiro de Laboratório ===
 +
 
 +
Essa atividade busca ilustrar os fluxos RTP com um exemplo:
 +
# Estabeleça uma chamada VoIP entre dois softphones usando o Asterisk como intermediário.
 +
# Execute o wireshark no computador onde roda o Asterisk, e ative a captura de datagramas UDP.
 
# Observe os pacotes RTP capturados pelo Wireshark. Selecione alguns deles e investigue as informações contidas em seu cabeçalho. Procure identificar o codec usado e as marcações de tempo. Compare as marcações de tempo do RTP com os instantes de recepção desses pacotes.
 
# Observe os pacotes RTP capturados pelo Wireshark. Selecione alguns deles e investigue as informações contidas em seu cabeçalho. Procure identificar o codec usado e as marcações de tempo. Compare as marcações de tempo do RTP com os instantes de recepção desses pacotes.
 
# Estime o jitter durante a recepção de ao menos 15 segundos de audio.
 
# Estime o jitter durante a recepção de ao menos 15 segundos de audio.
Linha 1 936: Linha 1 509:
 
#* Que informações esses relatórios contêm ?
 
#* Que informações esses relatórios contêm ?
  
= Aula dia 21/05: interligando PBX Asterisk por meio de troncos SIP ou IAX2  =
+
{{collapse bottom}}
  
 +
{{collapse top |27/04  (-> ANP em 08/06, 15/06 e 22/06 - videoaulas síncronas) - <math>\blacklozenge</math> AE4 - Revisão SIP - SDP - RTP Exercícios de Revisão e Simulação de Redes de Telefonia IP.|bg=#00ff00}}
  
A interligação entre PBX Asterisk pode ser feita via rede de dados usando os protocolos SIP ou IAX2. No primeiro caso, o encaminhamento de uma chamada entre dois PBX funciona como uma chamada SIP usual, e isso significa que a sinalização é feita com SIP e o áudio flui em separado com RTP. No segundo caso, o protocolo [http://en.wikipedia.org/wiki/Inter-Asterisk_eXchange IAX2 (''Inter-Asterisk eXchange'')] encapsula tanto a sinalização quanto os fluxos de áudio, o que simplifica o estabelecimento do tronco.
+
==27/04  (-> NP em 08/06, 15/06 e 22/06 - videoaulas síncronas) - <math>\blacklozenge</math> AE4 - Revisão SIP - SDP - RTP Exercícios de Revisão e Simulação de Redes de Telefonia IP. ==
  
[[imagem:Modelo-pbx-asterisk.png|520px]]
+
; Videoaulas relacionadas com as Atividades trabalhadas
  
 +
*[https://drive.google.com/file/d/1zRnd3fxWTZV0U6YFeLb5144tmCR5Aoe8/view?usp=sharing Vdeoaula de 08/06 que tratou de uma Simulação de rede local com dispositivos de telefonia IP usando Packet Tracer (PT) da CISCO.]
  
Inicialmente criaremos a infraestrutura para chamadas VoIP, a qual aumentaremos gradualmente para podermos reproduzir o modelo aqui descrito.
+
*[https://drive.google.com/file/d/1nckKY7c3u0AIYEIGQdPcBvrsFS4_4C1_/view?usp=sharing Videoaula de 15/06 que apresentou um template de rede local com telefonia IP usando Packet Tracer (PT) da CISCO e o uso do CloudShark como solução para análise de captura de pacotes.]
  
== Tronco SIP ==
+
*[https://drive.google.com/file/d/1EMA0h67OUnOizAKnv0HBoqwoElXIns0b/view?usp=sharing Videoaula de 22/06 que apresentou exemplos de fluxos de pacotes SIP/SDP/RTP na análise de ligações com telefonia IP usando o CloudShark.org como solução para análise da captura de pacotes.]
  
Em um entroncamento SIP (''SIP trunking''), um PBX pode encaminhar chamadas através de um tronco SIP. Essas chamadas podem ser originadas de diferentes formas, tais como telefones IP ou convencionais. Entre os PBX do entroncamento, as chamadas são sinalizadas com SIP e transmitidas com RTP e algum codec.
+
;Passos básicos usados para a realização da configuração da rede - Tente ampliar a rede realizada com novos dispositivos!!!
  
[[imagem:Sip-trunk.png]]
+
;Baixe o APP para vc usar os recursos do Packet Tracer no Celular
  
A ativação de um entroncamento SIP entre dois PBX Asterisk pode ser feita seguindo o exemplo abaixo:
+
;Material de apoio utilizado nas videoaulas
  
{| border="1" cellpadding="2"
+
*[https://play.google.com/store/apps/details?id=com.netacad.PacketTracerM&hl=pt_BR Packet Tracer APP] É um pouco difícil usar na telinha, mas vale a pena pra não perder o ritmo no acompanhamento de nossas ANP.
!PBX
 
!sip.conf
 
!extensions.conf
 
|-
 
|'''Norte''' || <syntaxhighlight lang=text>[Sul]
 
type=user
 
secret=supersercreta
 
host=IP_PBX_Norte
 
disallow=all
 
allow=ulaw
 
;canreinvite=no
 
directmedia=no
 
context=troncoSIP
 
qualify=yes
 
  
[ParaSul]
+
*[https://drive.google.com/file/d/1G0-xfnjq8l0H0qaP0TzlSTQV82EyQ6Js/view?usp=sharing link Arquivo.pkt construído na vídeo-aula de 08/06 para rodar nas versões 7.2 e 7.3 do PT.]
type=peer
 
fromuser=Norte
 
username=Norte
 
secret=supersecreta
 
host=IP_PBX_Sul
 
disallow=all
 
allow=ulaw
 
;canreinvite=no
 
directmedia=no
 
qualify=yes</syntaxhighlight>||<syntaxhighlight lang=text> [troncoSIP]
 
; Ligando para a outra central e, na sequência, o "ramal" de destino
 
exten => _4XXX.,1,Dial(SIP/ParaSul/${EXTEN})
 
same=>n,Hangup</syntaxhighlight>
 
|-
 
|'''Sul'''||<syntaxhighlight lang=text>[Norte]
 
type=user
 
secret=supersercreta
 
host=IP_PBX_Sul
 
disallow=all
 
allow=ulaw
 
;canreinvite=no
 
directmedia=no
 
context=troncoSIP
 
qualify=yes
 
  
[ParaNorte]
+
*[http://cloudshark.org Site da Cloudshark.org, excelente e completa ferramenta para análise e filtro de captura de pacotes a partir de arquivos .pcap já criados via tcpdump ou wireshark. Entre no menu products>Personal_SaaS. '''O serviço é gratuito por até 90 dias!''']
type=peer
 
fromuser=Sul
 
username=Sul
 
secret=supersecreta
 
host=IP_PBX_Norte
 
disallow=all
 
allow=ulaw
 
;canreinvite=no
 
directmedia=yes
 
qualify=yes
 
</syntaxhighlight>||<syntaxhighlight lang=text> [troncoSIP]
 
;
 
; Ligando para a outra central e, na sequência, o "ramal" de destino
 
exten => _2XXX.,1,Dial(SIP/ParaNorte/${EXTEN})
 
same=>n,Hangup
 
</syntaxhighlight>
 
|}
 
  
== Atividade: estabelecendo chamadas entre diferentes PBX Asterisk ==
+
*[https://drive.google.com/file/d/1mvurRHZzzjTekUvzaAMV9Oo34oBOgk0Y/view?usp=sharing Template de arquivo .pkt (Packet Tracer versão 7.3) utilizado na videoaula de 15/06 para demonstração e exercício de como o protocolo SCCP da Cisco troca mensagens na telefonia IP]
  
Nesta atividade, vamos realizar chamadas entre softphones registrados em diferentes PBX Asterisk. Para isso, precisaremos estruturar o laboratório de forma que cada PBX Asterisk possua um tronco SIP com um PBX vizinho. Os usuários SIP serão identificados por MMXX, sendo ''MM'' o número do computador de cada aluno (ex: micro 2 tem usuários entre 200 e 299, e micro 11 tem usuários entre 1100 e 1199). Assim, é possível fazer um plano de discagem para encaminhar corretamente as chamadas entre quaisquer desses números.
+
*[https://drive.google.com/file/d/1VMERpAn_xMy7dwUG0jKrdXmt8vAVCqTz/view?usp=sharing Arquivo nb6-startup.pcap: Exemplo de Registro de um UAC com senha]
  
= Aula 28/05: NAT e STUN =
+
*[https://drive.google.com/file/d/1WiDRwr35CpF2D0hRIIQy618XxYTZe3l4/view?usp=sharing Arquivo nb6-telephone.pcap: Exemplo de uma chamada completa com áudio bidirecional]
  
* [http://tele.sj.ifsc.edu.br/~msobral/tip/lista-1.pdf Lista de exercícios]
+
*[https://drive.google.com/file/d/1nyIcWCxQkDxcbgJcdPXNLiLCbhHAXEC4/view?usp=sharing Arquivo sip-rtp-l16.pcap: Exemplo de várias chamadas completas com codec L16]
  
 +
*[https://drive.google.com/file/d/1R-wI3C_bTOKfTVvUXdqby8T9uljJvbJt/view?usp=sharing Arquivo SIP_CALL_RTP_G711: Exemplo para avaliar como usar o cloudshark] - Descreva o que ocorreu durante a captura dos pacotes na chamada #0 da sequência de frames deste exemplo.
  
A existência de um ou mais tradutores NAT entre telefones dificulta o estabelecimento de chamadas. Isso porque o NAT modifica o endereço IP e port (UDP ou TCP) de origem de pacotes que viajam da rede interna para a externa, o que fica inconsistente com o que foi negociado na chamada com SDP. Há alguma abordagens para contornar esse problema:
+
<math>\blacklozenge</math> AE4 - TAREFA PUBLICADA NO SIGAA - Revisão SIP - SDP - RTP de 25/05/2020 às 00h00 a 23/10/2020 às 23h59
* ''Informando o endereço IP e port UDP que de fato aparecerão para a rede externa:'' proposta do STUN e ICE, porém nem sempre funciona (STUN) ou é complicado (ICE).
+
* ''Usando gateway de midia:'' abordagem mais comum, por ser mais fácil de ser implantada e dar bons resultados.
+
Olá Pessoal! Vamos fazer uma pausa e revisar alguns pontos importantes do conteúdo até aqui??? Faça os exercícios abaixo e devolva eles resolvidos em formato de arquivo .pdf. Essa Atividade além de contabilizar para a "presença" de aula e para a avaliação individual AI, é a nossa Atividade Extra AE4.  
 +
  
== Usando o Asterisk para contornar NAT ==
+
1. Enumere as mensagens SIP usadas em uma chamada VoIP, e explique o significado de cada uma delas.
  
* [http://www.smartvox.co.uk/astfaq_configbehindnat.htm Dicas sobre Asterisk + NAT]
+
2. Para que serve o protocolo SDP? Em que mensagens SIP as mensagens SDP são incluídas ?
  
O Asterisk pode ajudar a viabilizar a comunicação com telefones VoIP que estão atrás de gateways NAT. Na definição de cada canal SIP devem-se incluir as opções:
+
3. Como o áudio é transportado em uma chamada VoIP? Quais as características do protocolo utilizado para esse propósito?
  
<syntaxhighlight lang=text>
+
4. Por que o protocolo RTP é transportado com UDP e não com TCP?
nat=yes
 
qualify=yes
 
directmedia=no
 
</syntaxhighlight>
 
  
[http://www.voip-info.org/wiki/view/Asterisk+sip+nat Aqui] tem uma boa explicação sobre o que fazem essas opções.
+
5. Desenhe um diagrama de uma chamada VoIP típica com um PBX como intermediário. Aponte nesse diagrama as mensagens, transações e diálogos SIP.
  
Se for o Asterisk que está atrás de NAT, então deve-se configurar seu IP válido, de forma que o PBX possa informá-lo nas mensagens SDP para as streams de audio. Para isso, deve-se acrescentar em sip.conf:
+
6. Assista o vídeo da aula 5 do Toth https://www.youtube.com/watch?v=gNhgxW7WJ6A e conclua o diagrama de tempo do exemplo de call on hold, considerando o encerramento da ligação por parte do Softphone.
  
<syntaxhighlight lang=text>
 
[general]
 
externip=IP_público
 
; ou:
 
;externhost=fqdn
 
  
; devem-se informar as redes privativas onde está o Asterisk (pode haver mais de uma ... basta repetir o
 
; atributo localnet para cada subrede). Isso é importante para que o Asterisk saiba quando usar o IP
 
; público (para telefones fora de sua rede) ou privativo (telefones dentro de sua rede) nas mensagens
 
; SDP que especificam o IP e port UDP para as streams RTP.
 
localnet=prefixo/máscara
 
</syntaxhighlight>
 
  
 +
{{collapse bottom}}
  
'''OBS:''' isso só funciona quando o Asterisk está no caminho da stream de áudio. No caso de telefones VoIP que conversam diretamente, só resta STUN ou alguma outra técnica do tipo ...
+
{{Collapse top |04/05 (-> ANP em 03/08, 17/08 e 24/08 - videoaulas síncronas) - Avaliação A1 |bg=#00ff00}}
  
== STUN: Session Traversal Utilities for NAT ==
+
==04/05 (-> ANP em 03/08, 17/08 e 24/08 - videoaulas síncronas) - Avaliação A1==
  
* [http://tele.sj.ifsc.edu.br/~msobral/rmu/nat-sip.pdf NAT e SIP]
+
; Videoaula relacionadas com o encontro de hoje:
* [http://tools.ietf.org/html/rfc5389 RFC 5389: Session Traversal Utilities for NAT]
 
* [http://tools.ietf.org/html/rfc5245 RFC 5245: Interactive Connectivity Establishment (ICE): A Protocol for Network Address Translator (NAT) Traversal for Offer/Answer Protocols]
 
* [http://tools.ietf.org/html/rfc5766 RFC 5766: Traversal Using Relays around NAT (TURN)]
 
* [http://www.jdrosen.net/papers/ice-basic-tutorial.pdf ICE Tutorial]
 
  
'''''Ou: um quebra-galho para resolver os problemas de outro quebra-galho ...'''''
+
*[https://drive.google.com/file/d/195qzBjq4DJjop1EFaK3bVgctvOvkDcs2/view?usp=sharing Videoaula de 03/08 sobre o "bate-papo" da retomada dos trabalhos pós férias.]
  
 +
; Vamos recuperar o conteúdo antes de fazer uma avaliação sobre tudo o que vimos até aqui?
  
O estabelecimento de uma chamada VoIP implica iniciar e manter duas streams de áudio (uma em cada sentido da comunicação). Cada stream usa o protocolo RTP, cujas PDUs são transportadas dentro de datagramas UDP. Portanto, cada telefone IP precisa alocar um port UDP, por onde serão recebidas as PDUs RTP.
+
Começamos então acessando os links abaixo. São bons artigos da Teleco sobre VoIP. A Teleco é um portal fundado em 2002 por um grupo de profissionais da área de Telecomunicações, sócios da Teleco, uma empresa de consultoria.
  
[[imagem:Voip-call.png|600px]]
+
O portal Teleco tinha como objetivo inicial criar uma comunidade virtual de profissionais, estudantes e pessoas interessada em Telecomunicações e acabou se transformando em um ótimo portal de informações do setor no Brasil especialmente aquelas relacionadas com o mercado, tecnologia e regulamentação do Brasil e da América Latina.
<br>''Diagrama que mostra uma chamada VoIP típica intermediada por um PBX. A sinalização se faz através do PBX, mas as streams de áudio RTP são estabelecidas diretamente entre os telefones VoIP.''
 
  
 +
#[https://www.teleco.com.br/tutoriais/tutorialvoipconv/default.asp Uma revisão geral teórica sobre a telefonia IP]
 +
#[https://www.teleco.com.br/tutoriais/tutorialvoipcp1/default.asp VoIP - caso prático]
  
As informações necessárias para transmitir as PDUs da stream RTP são informadas no momento em que se inicia a chamada. Um dos telefones IP usa o protocolo SIP para solicitar uma chamada com outro telefone (mensagem INVITE). Dentro dessa mensagem INVITE é encapsulada uma mensagem SDP, que contém as informações necessárias para criar uma stream de áudio, tais como codecs aceitos, e endereço IP e port UDP onde o telefone iniciador da chamada espera receber as PDUs RTP. Se o telefone chamado aceitar a chamada, sua resposta SIP terá status ''200 OK'', e encapsulará uma mensagem SDP contendo a identificação dos codecs que aceita utilizar, além de seu endereço IP e port UDP onde espera receber as PDUs RTP. Assim, com base nas informações contidas nas mensagens SDP, os telefones IP podem estabelecer as streams de áudio em ambas direções. A figura abaixo ilustra uma mensagem SDP encapsulada em uma mensagem SIP INVITE.
+
Ao final de cada artigo há três questões que você deve responder e devolver via tarefa cadastrada no SIGAA. Para certificar que você realizou, faça um print da tela com suas respostas, mesmo que não estejam corretas!
  
 +
Qualquer que seja a pontuação alcançada na conclusão desse questionário, ela ficará nos registros do professor e nesse momento será utilizada para confirmar o "comparecimento" em nosso diário eletrônico do SIGAA, na data correspondente do dia previsto da aula presencial. Importante destacar que o resultado também será usado como nota adicional a ser contabilizada na avaliação individual (AI), prevista em nosso plano de ensino. AI é a média aritmética de todas as atividades colocadas aqui nesse ambiente e das demais componentes informadas seguindo os critérios de avaliação da disciplina. Então sempre é bom usar daquele esforço para melhorar seus resultados, usufruindo das tentativas e oportunidades de cada avaliação.
  
[[imagem:Sdp.png|800px]]
+
;Bem, vamos lá! Boa leitura!!!
<br>''O endereço IP e o port UDP para estabelecer a stream RTP são informados dentro da mensagem SDP, quando o telefone VoIP tenta iniciar uma chamada com SIP (mensagem INVITE). A lista de codecs da mensagem SDP foi omitida por simplicidade.''
 
  
  
Mas como essas streams de áudio podem ser estabelecidas se existir um ou mais gateways NAT entre os telefones VoIP ? A mensagem SDP com a descrição dos dados de uma stream é preenchida usando o endereço IP e port UDP do telefone VoIP. No entanto, a existência de um gateway NAT faz com que o endereço IP e port UDP desse telefone VoIP sejam diferentes para quem estiver fora de sua rede. O correto seria ter na mensagem SDP o endereço IP e port UDP que serão usados após passar o NAT - quer dizer, os valores que serão visíveis para o outro telefone VoIP. Para isso foi criado o serviço STUN (''Session Traversal Utilities for NAT''), que possibilita que um telefone VoIP (ou qualquer outro cliente) descubra seu endereço IP e port UDP visíveis para quem estiver do outro lado do gateway NAT. A figura abaixo ilustra como o STUN poderia ser usado para essa finalidade.
+
<!-- https://www.qconcursos.com/questoes-de-concursos/disciplinas/tecnologia-da-informacao-redes-de-computadores/voip/questoes -->
  
[[imagem:STUN.png|600px]]
+
{{Collapse bottom}}
<br>''Cenário em que se poderia usar STUN''
 
  
 +
{{Collapse top |11/05 - (-> ANP em 31/08 e conteúdo substituído para montagem do livro jogo do PI (Projeto Integrado com a disciplina ARC) A transmissão de mídia: problemas de rede, NAT, STUN, ICE - Entroncamentos SIP entre PBX IP.|bg=#ffd700}}
  
O STUN foi criado para ser usado imediatamente antes de iniciar uma transmissão UDP. Como mostrado na figura abaixo, um cliente envia a um servidor STUN uma mensagem de pedido de vinculação (''binding request''), que deve usar como port UDP de origem o mesmo port que se pretende usar para a stream de áudio. Esse servidor STUN deve estar fora da rede, de forma que o pedido de vinculação por ele recebido seja modificado pelo NAT. A resposta do servidor STUN (''binding response'') contém o endereço IP e número de port UDP que apareceram no pedido de vinculação. Com isso o cliente consegue descobrir como esses valores deverão aparecer após passarem pelo NAT. Assim, a mensagem SDP pode ser preenchida com os valores apropriados para a stream de áudio.
+
==11/05 - A transmissão de mídia: problemas de rede, NAT, STUN, ICE - Entroncamentos SIP entre PBX IP.==
  
 +
{{Collapse bottom}}
  
[[imagem:Stun-diagram.png|600px]]
+
{{Collapse top |18/05 - (-> ANP em 14/09 e conteúdo substituído para montagem do livro jogo do PI (Projeto Integrado com a disciplina ARC) Qualidade de serviço e telefonia IP; Internetworking com PSTNs. MGCP e MEGACO. Uso dos equipamentos da KHOMP. |bg=#ffd700}}
<br>''Exemplo de mensagens trocadas com STUN''
 
  
 +
==18/05 - Qualidade de serviço e telefonia IP; Internetworking com PSTNs. MGCP e MEGACO. Uso dos equipamentos da KHOMP.==
  
'''Deve-se notar que o STUN não faz milagre !''' Como apontado no início do texto, STUN é um quebra-galho criado para tentar resolver os problemas de outro quebra-galho (no caso, o NAT). Para que o STUN funcione, o NAT deve permitir que datagramas UDP vindos de outro endereço IP (o telefone VoIP na outra ponta da ligação) acessem o endereço IP e port UDP que foram alocados quando da consulta do cliente para o servidor STUN. Porém isso só é possível se o NAT for do tipo [http://en.wikipedia.org/wiki/Full_cone_NAT ''full cone''], [http://en.wikipedia.org/wiki/Restricted_cone_NAT ''restricted cone''] ou [http://en.wikipedia.org/wiki/Port_restricted_cone_NAT ''port restricted cone'']. Quer dizer, se o NAT for do tipo [http://en.wikipedia.org/wiki/Symmetric_NAT simétrico], o STUN não funcionará. E muitos NAT em equipamentos proprietários são do tipo simétrico (ao contrário do Linux, que implementa um NAT ''port restricted cone'') ...
+
{{Collapse bottom}}
  
=== Servidores STUN ===
+
{{Collapse top |25/05 - (-> ANP em 14/09) Desenvolvimento de Projeto Integrado com a disciplina ARC |bg=#00ff00}}
  
Existe uma implementação de um [http://www.vovida.org/applications/downloads/stun/ servidor STUN para Linux] (disponível no Ubuntu via apt). Assim, basta instalá-lo em um computador e usá-lo como servidor STUN, contanto que ele esteja ''do outro lado'' do NAT. No entanto, existem inúmeros servidores STUN públicos, conforme mostrado na listagem abaixo:
+
==25/05 - Desenvolvimento de Projeto==
  
<syntaxhighlight lang=text>
+
{{Collapse bottom}}
provserver.televolution.net
 
sip1.lakedestiny.cordiaip.com
 
stun1.voiceeclipse.net
 
stun01.sipphone.com
 
stun.callwithus.com
 
stun.counterpath.net
 
stun.endigovoip.com
 
stun.ekiga.net (alias for stun01.sipphone.com)
 
stun.ideasip.com (no XOR_MAPPED_ADDRESS support)
 
stun.internetcalls.com
 
stun.ipns.com
 
stun.noc.ams-ix.net
 
stun.phonepower.com
 
stun.phoneserve.com
 
stun.rnktel.com
 
stun.softjoys.com (no DNS SRV record) (no XOR_MAPPED_ADDRESS support)
 
stunserver.org see their usage policy
 
stun.sipgate.net
 
stun.sipgate.net:10000
 
stun.voip.aebc.com
 
stun.voipbuster.com (no DNS SRV record) (no XOR_MAPPED_ADDRESS support)
 
stun.voxalot.com
 
stun.voxgratia.org (no DNS SRV record) (no XOR_MAPPED_ADDRESS support)
 
stun.xten.com
 
numb.viagenie.ca (http://numb.viagenie.ca) (XOR_MAPPED_ADDRESS only with rfc3489bis magic number in transaction ID)
 
stun.ipshka.com inside UA-IX zone russsian explanation at http://www.ipshka.com/main/help/hlp_stun.php
 
</syntaxhighlight>
 
  
[http://www.voip-info.org/wiki/view/STUN Maiores detalhes sobre servidores STUN]
+
{{Collapse top |01/06 -(-> ANP em 21/09) Desenvolvimento de Projeto Integrado com a disciplina ARC|bg=#00ff00}}
  
== Atividade ==
+
==01/06 - Desenvolvimento de Projeto==
  
Vamos implantar a seguinte estrutura de rede:
+
{{Collapse bottom}}
  
 +
{{Collapse top |08/06 - (-> ANP em 28/09) Desenvolvimento de Projeto Integrado com a disciplina ARC |bg=#00ff00}}
  
[[imagem:Pbx-nat.png]]
+
==08/06 - Desenvolvimento de Projeto==
  
 +
{{Collapse bottom}}
  
Para podermos fazer isso, os seguintes passos devem ser realizados (X é o número do seu computador):
+
{{Collapse top |15/06 - (-> ANP em 05/10) Desenvolvimento de Projeto Integrado com a disciplina ARC |bg=#00ff00}}
# Mude o IP da máquina real para 192.168.1.X/24: <syntaxhighlight lang=bash>
 
sudo ifconfig eth0 192.168.1.X/24
 
</syntaxhighlight>
 
# Na máquina real configure o roteador default 192.168.1.254: <syntaxhighlight lang=bash>
 
sudo route add default gw 192.168.1.254
 
</syntaxhighlight>
 
# Configure um softphone para usar o seu PBX. Experimente fazer uma chamada para o número 9999. A conta SIP do softphone deve ser ''número@172.18.25.18''.
 
#* Você precisará configurar as opções de NAT do Asterisk para que isso funcione (em /etc/asterisk/sip.conf).
 
#* O número 9999 pode ser atendido com as seguintes regras do plano de discagem (/etc/asterisk/extensions.conf): <syntaxhighlight lang=text>
 
exten=>9999,1,Answer
 
same=>n,Wait(1)
 
same=>n,Playback(beep)
 
same=>n,Wait(1)
 
same=>n,Playback(hello-world)
 
same=>n,Wait(1)
 
same=>n,Playback(beep)
 
same=>n,Hangup
 
</syntaxhighlight>
 
  
Agora vamos fazer o contrário:
+
==15/06 - Desenvolvimento de Projeto==
  
 +
{{Collapse bottom}}
  
[[imagem:Pbx-nat2.png]]
+
{{Collapse top |22/06 - (-> ANP em 12/10) Desenvolvimento de Projeto Integrado com a disciplina ARC |bg=#00ff00}}
  
 +
==22/06 - Desenvolvimento de Projeto==
  
As seguintes alterações precisam ser feitas para esse novo cenário:
+
{{Collapse bottom}}
# Mude o IP da máquina virtual Asterisk para 192.168.1.X/24
 
# Na máquina virtual configure o roteador default 192.168.1.254
 
# Mude o IP da máquina real com DHCP.
 
# Configure um softphone para usar o seu PBX. Experimente fazer uma chamada para o número 9999
 
#* Você precisará configurar as opções de NAT do Asterisk para que isso funcione.
 
  
= Aula 04/06: Apresentação do projeto =
+
{{Collapse top |29/06 - (-> ANP em 19/10) - Apresentação dos Projetos |bg=#FFD700}}
  
O projeto visa complementar o aprendizado sobre Telefonia IP, por meio de um problema a ser resolvido em equipe.
+
==29/06 - Apresentação dos Projetos==
  
'''Objetivo do projeto:''' implantar um provedor VoIP
+
{{Collapse bottom}}
  
== Descrição ==
+
{{Collapse top |06/07 - (-> ANPs individualizadas entre 19/10 à 23/10) Recuperações Final |bg=#00ff00}}
  
Um provedor VoIP possibilita a realização de chamadas entre telefones SIP, e entre esses e telefones da PSTN. Os clientes do provedor possuem URI SIP da forma ''usuario@dominio_do_provedor'', e as chamadas são realizadas por meio dessas URI. É possível que um cliente de um provedor faça uma chamada para um cliente de outro provedor, contanto que esses provedores possuam alguma forma de convênio.
+
==06/07 - Recuperação Final==
  
 +
{{Collapse bottom}}
  
[[imagem:Tip-Proj-1.png|200px]]
+
=PLANEJAMENTO DE ANP (NOVO PLANO DE ENSINO ADAPTADO) 03/08 - 23/10=
<br>''Chamada entre telefones de um mesmo provedor''
 
  
  
[[imagem:Tip-Proj-2.png|200px]]
+
{{Collapse top |03/08 - Recapitulação teórica da primeira parte da disciplina |bg=#00ffff}}
<br>''Chamada entre telefones de provedores diferentes''
 
  
 +
==03/08 - Recapitulação teórica da primeira parte da disciplina ==
  
Os telefones dos clientes podem estar em qualquer rede, como por exemplo em redes residenciais com links ADSL.
+
; Videoaula relacionadas com o encontro de hoje:
  
Maiores detalhes sobre o projeto serão discutidos à medida que ele progredir.
+
*[https://drive.google.com/file/d/195qzBjq4DJjop1EFaK3bVgctvOvkDcs2/view?usp=sharing Videoaula de 03/08 sobre o "bate-papo" da retomada dos trabalhos pós férias.]
  
== Equipes ==
+
; Vamos recuperar o conteúdo antes de fazer uma avaliação sobre tudo o que vimos até aqui?
  
{| border="1"
+
Começamos então acessando os links abaixo. São bons artigos da Teleco sobre VoIP. A Teleco é um portal fundado em 2002 por um grupo de profissionais da área de Telecomunicações, sócios da Teleco, uma empresa de consultoria.
!Equipe
 
!Domínio
 
!IP do servidor antigo
 
!IP do novo servidor
 
|-
 
|Jessica, Taine, Gabriela || equipe1.tip.sj.ifsc.edu.br || 172.18.80.241 || 200.135.37.106
 
|-
 
|Gustavo, Thiago, Karine || equipe2.tip.sj.ifsc.edu.br || 172.18.80.242|| 200.135.37.107
 
|-
 
|Anderson,Igor,Nikolas || equipe0.tip.sj.ifsc.edu.br|| 187.58.224.243|| 187.58.224.243
 
|-
 
|Stefanie,Daniela,Mayara || kadosh.tip.sj.ifsc.edu.br|| 172.18.80.244 || 200.135.37.109
 
|-
 
|Andreza, Andressa || equipe3.tip.sj.ifsc.edu.br|| 172.18.80.243|| 200.135.37.108
 
|}
 
  
* '''Obs:''' o servidor DNS do domínio ''tip.sj.ifsc.edu.br'' é 172.18.80.251 (ns.tip.sj.ifsc.edu.br). Ele irá delegar seus sudbomínios para seus servidores DNS.
+
O portal Teleco tinha como objetivo inicial criar uma comunidade virtual de profissionais, estudantes e pessoas interessada em Telecomunicações e acabou se transformando em um ótimo portal de informações do setor no Brasil especialmente aquelas relacionadas com o mercado, tecnologia e regulamentação do Brasil e da América Latina.
* '''Obs. 2:''' vocês podem entrar em seus respectivos servidores via SSH. Esses servidores já possuem o Asterisk instalado e também o BIND (software do servidor DNS).
 
* '''Obs. 3:''' os ports UDP usados para as streams RTP (audio) devem estar entre 4000 e 5000. Ver as opções ''rtpstart'' e ''rtpend'' em /etc/asterisk/rtp.conf.
 
  
== Etapa 1: implantar o PBX de cada provedor ==
+
#[https://www.teleco.com.br/tutoriais/tutorialvoipconv/default.asp Uma revisão geral teórica sobre a telefonia IP]
 +
#[https://www.teleco.com.br/tutoriais/tutorialvoipcp1/default.asp VoIP - caso prático]
  
# Implantar o Asterisk e torná-lo capaz de efetuar chamadas entre as contas SIP do provedor.
+
Ao final de cada artigo há três questões que você deve responder e devolver via tarefa cadastrada no SIGAA. Para certificar que você realizou, faça um print da tela com suas respostas, mesmo que não estejam corretas!
# Fazer com que o Asterisk consiga fazer chamadas para contas SIP de outros provedores.
 
#* Ver [[RMU-2013-1#Integra.C3.A7.C3.A3o_com_DNS|registros SRV no DNS]]. E [http://asteriskdocs.org/en/3rd_Edition/asterisk-book-html-chunk/asterisk-ICR-SECT-1.html#InternetCallRouting_id289934 este texto] sobre roteamento de chamadas na Internet com Asterisk pode ajudar a entender o problema.
 
  
<syntaxhighlight lang=text>
+
Qualquer que seja a pontuação alcançada na conclusão desse questionário, ela ficará nos registros do professor e nesse momento será utilizada para confirmar o "comparecimento" em nosso diário eletrônico do SIGAA, na data correspondente do dia previsto da aula presencial. Importante destacar que o resultado também será usado como nota adicional a ser contabilizada na avaliação individual (AI), prevista em nosso plano de ensino. AI é a média aritmética de todas as atividades colocadas aqui nesse ambiente e das demais componentes informadas seguindo os critérios de avaliação da disciplina. Então sempre é bom usar daquele esforço para melhorar seus resultados, usufruindo das tentativas e oportunidades de cada avaliação.  
zone "tip.sj.ifsc.edu.br" {
+
 
        type master;
+
;Bem, vamos lá! Boa leitura!!!
        file "/etc/bind/db.tip"; // o arquivo que contém as informações da zona
+
 
};
+
 
</syntaxhighlight>
+
{{Collapse bottom}}
''Exemplo de definição de uma zona DNS em /etc/bind/named.conf.local. Isso é necessário para que o [http://www.isc.org/downloads/bind/ BIND] (software que funciona como servidor DNS) saiba que essa zona existe e que informações ela contém. Só assim ele conseguirá responder a consultas DNS sobre essa zona.''
+
 
 +
{{Collapse top |10/08 - Discussão sobre o futuro das ANP na disciplina |bg=#00ffff}}
 +
 
 +
==10/08 - Discussão sobre o futuro das ANP na disciplina ==
 +
 
 +
* Realização de Enquete via SIGAA sobre acesso e recursos computacionais de todos os alunos em tempos de ANP;
 +
* Decisões serão tratadas no próximo encontro.
 +
 
 +
{{Collapse bottom}}
 +
 
 +
{{Collapse top |17/08 - Novos Rumos da disciplina |bg=#00ffff}}
 +
 
 +
==17/08 - Novos Rumos da Disciplina ==
 +
 
 +
; Videoaula relacionada com o encontro de hoje:
 +
 
 +
*[https://drive.google.com/file/d/1DkQ7cBQp1G5DskHcr2Myb7Nb1r3CFPTY/view?usp=sharing Videoaula de 17/08 sobre a decisões dos próximos passos da disciplina]
  
 +
; Novos rumos da disciplina:
  
<syntaxhighlight lang=text>
+
* Decisão de integração ao projeto da disciplina ARC do professor Ederson;
$TTL    604800
+
* Lista de exercícios de fechamento da primeira parte (teórica) da Disciplina e preparatória para avaliação A1;
@      IN      SOA    ns.tip.sj.ifsc.edu.br. root.tip.sj.ifsc.edu.br. (
+
* Avaliação A1 será liberada via SIGAA a partir de 24/08.  
                              4        ; Serial
 
                        604800        ; Refresh
 
                          86400        ; Retry
 
                        2419200        ; Expire
 
                        604800 )       ; Negative Cache TTL
 
;
 
        IN      NS      ns
 
        IN      A      172.18.80.251
 
ns      IN      A      172.18.80.251
 
_sip._udp IN SRV 0 5 5060 pbx
 
pbx    IN      A      172.18.80.251
 
</syntaxhighlight>
 
''Exemplo de zona DNS que inclui o registro SRV para apontar quem é o PBX IP de um domínio. Neste exemplo isso está gravado no arquivo /etc/bind/db.tip''
 
  
== Etapa 2: tornar possíveis chamadas entre telefones IP que estejam atrás de NAT ==
+
{{Collapse bottom}}
  
O próximo passo é tornar possível que telefones IP atrás de NAT (ex: em uma rede residencial com ADSL) possam fazer e receber chamadas. Para testá-lo, cada equipe deverá instalar um roteador ADSL e usá-lo para acessar a rede do IFSC (a infraestrutura ADSL será implantada pelo professor).
+
{{Collapse top |24/08 - Projeto integrado com a Disciplina de ARC |bg=#00ffff}}
  
== Etapa 3: fazer e receber chamadas da rede telefônica convencional ou celular ==
+
==24/08 - Projeto integrado com a Disciplina de ARC==
  
Os soft PBX Asterisk podem fazer e receber chamadas telefônicas se houver interfaces de hardware apropriadas. Como vocês já devem ter estudado em Telefonia, os tipos de canal para comunicação telefônica se dividem em tronco analógico (interface FXO) e tronco digital (E1). Há também canais GSM para acesso à rede celular. Para interligar a infraestrutura VoIP à rede telefônica deve-se, portanto, instalar e usar equipamentos capazes de fazer essa interface.
 
  
Nesta etapa iremos usar os [http://www.khomp.com.br/v2/?opcao=lista_prod&id_c=8 módulos EBS da Khomp] para interligar nossa infraestrutura VoIP à rede telefônica.
+
{{Collapse bottom}}
  
== Etapa 4: fazer chamadas com segurança (à prova de grampo) ==
+
{{Collapse top |31/08 - Projeto integrado com a Disciplina de ARC |bg=#00ffff}}
  
Uma conversa com VoIP pode ser facilmente interceptada e grampeada. Basta conseguir rodar o [http://www.wireshark.org/ wireshark] ou [http://manpages.ubuntu.com/manpages/lucid/man8/tcpdump.8.html tcpdump] em um ponto da rede por onde passam os datagramas UDP da stream de audio. Imagine então se VoIP se tornar um serviço de uso disseminado - o que é bem possível com a popularização de tablets e smartphones. Serviços VoIP proprietários, como Skype e Viber, possuem proteções para evitar a invasão de privacidade de seus usuários - mas isso não impediu que o governo americano grampeasse indiscriminadamente seus cidadãos ;-) Nesta etapa do projeto, vamos proteger as chamadas feitas dentro da nossa infraestrutura VoIP.
+
==31/08 - Projeto integrado com a Disciplina de ARC ==
  
= Aula 11/06: NÃO HOUVE AULA (GREVE DE ÔNIBUS) =
 
  
= Aula 18/06: Avaliação 1 =
+
{{Collapse bottom}}
  
= Aula 25/06: Projeto - Etapa 1 =
+
{{Collapse top |14/09 - Projeto integrado com a Disciplina de ARC |bg=#00ffff}}
  
Começando pela [[TIP-2013-1-Integrado_Telefonia_IP_-_Integrado#Etapa_1:_implantar_o_PBX_de_cada_provedor|Etapa 1]].
+
==14/08 - Projeto integrado com a Disciplina de ARC ==
  
= Aula 02/07: Projeto - Etapa 1 =
 
  
= Aula 09/07: Projeto - Etapa 2 =
+
{{Collapse bottom}}
  
'''Ainda a etapa 1:''' como fazer chamadas para outros provedores explorando DNS:
+
{{Collapse top |21/09 - Projeto integrado com a Disciplina de ARC |bg=#00ffff}}
  
# Deve-se configurar em ''sip.conf'' para que o Asterisk aceite chamadas não-autenticadas, e que elas devem ser processadas no contexto ''externo'':<syntaxhighlight lang=text>
+
==21/09 - Projeto integrado com a Disciplina de ARC==
[general]
 
srvlookup=yes
 
domain=tip1.sj.ifsc.edu.br,meu_dominio
 
context=externo
 
</syntaxhighlight>
 
# Deve-se configurar o plano de deiscagem (''extensions.conf'') para fazer chamadas para outros provedores, se o domínio SIP (contido na variável SIPDOMAIN) for diferente do domínio deste provedor.<syntaxhighlight lang=text>
 
[tip]
 
exten=>_1XX,1,Dial(SIP/${EXTEN})
 
same=>n,Hangup
 
  
[meu_dominio]
 
exten=>_1.,1,GotoIf($[${LEN(${SIPDOMAIN})} = 0]?tip,${EXTEN},1)
 
same=>n,GotoIf($["${SIPDOMAIN}" = "tip.sj.ifsc.edu.br"]?tip,${EXTEN},1)
 
same=>n,Dial(SIP/${EXTEN}@${SIPDOMAIN})
 
same=>n,Hangup
 
  
[externo]
+
{{Collapse bottom}}
include=>tip
 
</syntaxhighlight>
 
  
= Aula 16/07: Projeto - Etapa 3 =
+
{{Collapse top |28/09 - Projeto integrado com a Disciplina de ARC |bg=#00ffff}}
  
= Aula 23/07: Projeto - Etapa 4 =
+
==28/09 - Projeto integrado com a Disciplina de ARC ==
  
= Aula 30/07: Conclusão e recuperação =
 
  
=Referências=
+
{{Collapse bottom}}
  
* ''Livros sobre VoIP''
+
{{Collapse top |05/10 - Projeto integrado com a Disciplina de ARC |bg=#00ffff}}
** KUROSE, James F. e ROSS, Keith W. ''Redes de computadores e a Internet, Uma abordagem Top-Down. 5a edição''. Editora Addison Wesley SP, 2010. (ver capítulo 7)
 
** Sérgio Colcher, Antônio Tadeu Azevedo Gomes, e Anderson Oliveira da Silva. ''VoIP: Voz sobre IP''. Campus, 1a edição, 2005.
 
  
[http://asteriskdocs.org/en/3rd_Edition/asterisk-book-html-chunk/asterisk-ICR-SECT-1.html#InternetCallRouting_id289934 Roteamento de chamadas na Internet com o Asterisk]
+
==05/10 - Projeto integrado com a Disciplina de ARC ==
  
[http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=06201049]
 
  
[http://www.its.ohiou.edu/kruse/its441/]
+
{{Collapse bottom}}
  
[http://www.wpi.edu/News/Conf/ASEE/PDFs/1-d-rajar.pdf]
+
{{Collapse top |12/10 - Flexibilização para fechamento de alunos defasados nas ANP |bg=#dcdcdc}}
  
http://docwiki.cisco.com/wiki/Voice/Data_Integration_Technologies#Voice_Networking
+
==12/10 - Flexibilização para fechamento de alunos defasados nas ANP ==
  
[http://www.visualland.net/ Visualland]
 
  
[http://wiki.sj.ifsc.edu.br/index.php/T%C3%B3picos_Avan%C3%A7ados_em_Telefonia_(t%C3%A9cnico)_(di%C3%A1rio_2010-1) Aulas Telefonia IP - Ederson]
+
{{Collapse bottom}}
  
[http://wiki.sj.ifsc.edu.br/index.php/RMU-2012-2 Aulas Sobral/Emerson RMU]
+
{{Collapse top |19/10 - Flexibilização para fechamento de alunos defasados nas ANP |bg=#dcdcdc}}
  
[http://wiki.sj.ifsc.edu.br/index.php/Guia_b%C3%A1sico_de_VoIP_com_Asterisk Guia básico de VoIP com Asterisk - Ederson]
+
==19/10 - Flexibilização para fechamento de alunos defasados nas ANP ==
  
http://www.voip-info.org/wiki/view/SIP
 
  
http://www.cisco.com/en/US/docs/voice_ip_comm/sip/proxies/2.1/administration/guide/fflows.html
+
{{Collapse bottom}}
  
http://ftp.iptel.org/pub/ser/0.8.14/doc/html/sip_introduction.html
 
  
http://tools.ietf.org/html/rfc3665
 
  
http://www.radvision.com/NR/rdonlyres/0AFA30DF-DAD6-461D-943C-ED33F3E7ABD8/0/SIPServerTechnicalOverviewWhitepaper.pdf
 
  
  
-->
 
  
  

Edição atual tal como às 12h49min de 7 de dezembro de 2023

Professores da Unidade Curricular


Não há registros de professores de semestres anteriores

Carga horária, Ementas, Bibliografia

Plano de Ensino

Cronograma das Atividades

Semestre 2019-2
Aula Data Horas Conteúdo Recursos
1 02/10 2 Apresentação da Disciplina - - Dinâmica em grupo Aula expositiva
TOTAL 72

Dados Importantes

Professor: Jorge Henrique B. Casagrande
Email: casagrande@ifsc.edu.br
Atendimento paralelo: 2as das 17:35h às 18:30h e quartas das 11:35h às 12:30h (Sala de Professores de TELE II ou Laboratório de Redes de Computadores)
Link alternativo para Material de Apoio da disciplina: http://www.sj.ifsc.edu.br/~casagrande/TIP

Avaliações

Critérios de Avaliação
  1. Os estudantes serão avaliados da seguinte forma:
    -Duas Avaliações parciais A1 e PI (Projeto Integrador) que representam ponderadamente 70% e 30% respectivamente do valor da MÉDIA FINAL, assim determinadas:
    • A avaliação parcial NF A1 resulta da média ponderada de duas notas: a) Prova A1 representando 50% do total sendo uma PROVA ESCRITA (2HA) de conteúdos preferencialmente associados as teorias e práticas da disciplina e b) Outros 50% resultado da média das notas atribuídas a aptidão e qualidade das atividades práticas e teóricas através de Atividades Extras (AE) e Avaliações Individuais (AI) correspondentes.
    • A avaliação parcial NF PI representa 70% do valor atribuído segundo os critérios do projeto integrador final da turma e os outros 30% representam a média das notas atribuídas a aptidão e qualidade das atividades práticas e Avaliações Extras ou Individuiais (AE ou AI) correspondentes.
    -Avaliação Individual (AI, AIPI se existir) é uma nota atribuída pelo professor que representa o mérito de assiduidade, participação em sala e em equipe, cumprimento de tarefas adicionais como atribuições do PI, relatórios e listas de exercícios.
  2. Todas as notas de avaliações parciais serão valoradas de 0 à 10,0 em passos de 0,1 pontos e convertidas em conceitos conforme abaixo:
    - Se a nota calculada de qualquer avaliação parcial for < 6,0, é OBRIGATÓRIO realizar a recuperação dos conteúdos da respectiva avaliação parcial
    - Se MEDIA FINAL E todas as avaliações parciais forem >= 6,0 a recuperação de conteúdos é opcional.
  3. Para a aprovação na disciplina é necessário atingir no mínimo a nota 6,0 na MÉDIA FINAL ponderada em carga horária de todas as avaliações parciais e 75% de participação em sala de aula;
    - Conforme restrições do sistema de registro de notas do SIGAA, a NOTA FINAL sempre tem arredondamento para o valor inteiro mais baixo da unidade (exemplo: Nota 5,9 é considerado NOTA FINAL 5). Arredondamentos para valores inteiros mais altos da NOTA FINAL só serão permitidos mediante tolerância do professor diante da evolução do(a) estudante ao longo do semestre E SEMPRE DEFINIDAS SOMENTE APÓS OS CONSELHOS DE CLASSE FINAIS.
  4. As datas de recuperação das avaliações parciais serão realizadas em data específica do plano de ensino e/ou decididas em comum acordo com a turma.
QUADRO GERAL DE RESULTADOS DAS AVALIAÇÕES
ESTUDANTE AE1 AE2 AE3 AE4 AI1 AI2 AI3 AI4 Prova A1 REC A1 NF A1 AIPI PI NF PI MÉDIA FINAL NOTA FINAL Situação
1620013231 10,0 10 6,7 10 8,6 10 10 9 10 - 9,6 9 10 9,7 9,6 10 APROVADO
1620007053 10,0 9 8,7 10 8,6 10 8 9,5 8,7 - 9,0 9 8 8,3 8,8 9 APROVADO
1620029758 10,0 9 9,8 10 10 10 10 9,5 7,3 - 8,5 8 10 9,4 8,8 9 APROVADO
1620016486 10,0 10 10 10 9,3 10 0 9 8,5 - 8,5 8 10 9,4 8,8 9 APROVADO
1620008718 10,0 10 9,7 9 9,3 0 10 9,5 8 - 8,2 8 9 8,7 8,4 8 APROVADO
1620014882 10,0 0 8,7 0 10 0 0 0 0 - 1,8 0 0 0,0 1,3 1 REPROVADO
1620050170 10,0 0 9,3 10 6,7 0 8 9 8,7 - 7,7 8 9 8,7 8,0 8 APROVADO
1620032570 10,0 10 7,3 9 10 10 10 9,5 8,3 - 8,9 9 10 9,7 9,1 9 APROVADO
1620006685 10,0 9 9,7 8 6,7 10 10 9 9,7 - 9,4 8 7 7,3 8,8 9 APROVADO
1620009064 10,0 10 8,7 10 10 10 10 9,5 10 - 9,9 10 10 10,0 9,9 10 APROVADO
1620029723 10,0 10 9,3 9 9,3 10 10 9 9,3 - 9,4 10 8 8,6 9,2 9 APROVADO
1620017830 10,0 9 9,8 7 10 10 10 9,5 7,3 - 8,4 9 9 9,0 8,6 9 APROVADO
1620017725 10,0 10 9,3 9 10 10 10 9 9,3 - 9,5 10 10 10,0 9,7 10 APROVADO
1620009870 10,0 9 9,3 9 7,9 10 10 9 9,3 - 9,3 8 7 7,3 8,7 9 APROVADO
1520063997 10,0 9 9,8 9 10 10 9 9,5 8,7 - 9,1 8 9 8,7 9,0 9 APROVADO
1620066408 10,0 0 9,8 9 9,3 0 0 9,5 7,5 - 6,7 8 8 8,0 7,1 7 APROVADO
1620029421 10,0 10 9,3 9 10 10 10 9,5 9,8 - 9,8 8 10 9,4 9,7 10 APROVADO
1620007134 10,0 10 9,8 9 10 10 8 9,5 7,9 - 8,7 9 10 9,7 9,0 9 APROVADO
1620032317 10,0 9 9,8 7 10 10 10 9,5 8,3 - 8,9 9 8 8,3 8,7 9 APROVADO
1620006774 10,0 9 8,3 8 9,3 0 0 8 8,7 - 7,6 8 8 8,0 7,7 8 APROVADO
1620014980 10,0 9 0 0 10 0 10 0 0 - 2,4 0 0 0,0 1,7 2 REPROVADO
1620010437 10,0 10 9,5 10 10 10 10 9,5 10 - 9,9 9 9 9,0 9,6 10 APROVADO
ATENÇÃO - MÉDIA FINAL = 70% NF A1 + 30% NF PI; NOTA FINAL – SOMENTE APÓS CONSELHOS DE CLASSE
Escala das Notas
=0,0 Atividade NÃO executada <6,0 Prejudicando MÉDIA FINAL >=6,0 Quanto maior, melhor! Principais Notas -> SIGAA
LEGENDA - DESCRIÇÃO E CRONOGRAMA DAS AVALIAÇÕES (Conforme nosso DIÁRIO DE AULAS)
  • AE1: AULA PRESENCIAL de 17/02 - Atividade Extra WIKI: Funcionalidades de centrais automáticas.
  • AE2: ANP 30/03 - Atividade Extra WIKI: Uso do Asterisk como PBX entre Telefones IP e Softphones.
  • AE3: ANP 06/04 - Atividade Extra SIGAA: QUESTIONÁRIO sobre CODECs em PBX IP.
  • AE4: ANP 27/04 - Atividade Extra SIGAA: TAREFA de revisão SIP - SDP - RTP.
  • AI1: ANP 30/03 - Atividade SIGAA: QUESTIONÁRIO sobre uso do Asterisk como PABX.
  • AI2: ANP 27/04 - Atividade SIGAA - FÓRUM - RTP O protocolo da vida digital! (uma ou mais participações implica em nota 10 na atividade)
  • AI3: ANP 03/08 - Atividade SIGAA: TAREFA - Leitura e respostas de avaliaçao dos artigos da TELECO.
  • AI4: ANP 17/08 - Atividade SIGAA - QUESTIONÁRIO - Lista de exercícios - REVISÃO PARA AVALIAÇÃO A1.
  • AIPI: Avaliação Individual conforme plano de ensino.

Recados Importantes


Toda vez que você encontrar a marcação ao lado de alguma atividade, significa que essa atividade estará sendo computada na avaliação como AI. O prazo estabelecido para entrega estará destacado ao lado da atividade. Portanto, não perca o prazo limite para entrega. Atividades entregues fora do prazo terão seu valor máximo de nota debitado de 1,0 pontos ao dia;


Uso da Wiki: Todo o repositório de material de apoio e referências de nossas aulas passam a usar a Wiki de tele;


Whatsapp: Para interação fora da sala de aula, acessem nosso grupo no Whatsapp: está neste link;


SIGAA: Eventualmente alguns materiais, mídias instrucionais, avaliações ou atividades poderão usar o ambiente da turma virtual do SIGAA. O professor fará o devido destaque para isso;


ATENÇÃO: Uma avaliação poderá ser recuperada somente se existir justificativa reconhecida pela coordenação. Desse modo, deve-se protocolar a justificativa no prazo de 48 horas, contando da data e horário da avaliação, e aguardar o parecer da coordenação. O não cumprimento desse procedimento implica a impossibilidade de fazer a recuperação.

Material de Apoio

Tabela de leitura básica das Bibliografias recomendadas (PARA AVALIAÇÃO A1 e PI)
Referência Tópicos Observações
Colcher 1ª edição Todo o Livro
Rosenberg
SCHULZRINNE
Madsen  
Atividades extra sala de aula
  • LISTA1 de exercícios para a avaliação A1


Slides utilizados durante algumas aulas



Manuais e outros

Bibliografia Básica

  • COLCHER, S. et. al. VoIP: Voz sobre IP. Rio de Janeiro: Elsevier, 2005.
  • ROSENBERG, J. et. al. RFC 3261: Session Initiation Protocol. IETF. 2002.
  • BOER, M. de. Twinkle - SIP softphone for Linux. 2013.
  • HANDLEY, M. et. al. RFC 4566: Session Description Protocol. IETF. 2006.
  • Wireshark Foundation. Wireshark · Go Deep.. 2013.
  • SCHULZRINNE, H. et. al. RFC 3550: Real-Time Protocol. IETF. 2003.
  • MADSEN, L. et. al. Asterisk: The Definite Guide. 2013.

Para pesquisar o acervo das bibliotecas do IFSC:

Softwares e Links úteis

Diário de aulas TIP60801 - 2020-1- conforme Plano de Ensino presencial - Prof. Jorge H. B. Casagrande

LEGENDA DAS CORES NO DIÁRIO
A primeira data à esquerda refere-se ao plano de ensino original previsto presencialmente
Aulas realizadas presencialmente
Aulas realizadas em ANP para cumprir o plano de ensino original, presencial
Aulas previstas presencialmente mas não realizadas para atender o plano de ensino original, presencial
Aulas previstas em ANP mas não realizadas para atender o plano de ensino baseado totalmente em ANP
Aulas realizadas em ANP para atender o novo plano de ensino baseado totalmente em ANP


10/02 - Apresentação da Disciplina e discussão sobre o PI

10/02 - Apresentação da Disciplina e discussão sobre o PI

  • Apresentação da disciplina e plano de ensino;
  • Remontando a história da Telefonia;


17/02 - AE1- Resgatando bases da Telefonia Analógica e Digital

17/02 - AE1 Resgatando bases da Telefonia Analógica

Vamos dar uma situada sobre a Telefonia IP

Convergência

O processo de convergência das tecnologias de telecomunicações e processamento de informações, via sistemas computacionais, tem promovido profundas alterações no contexto das Telecomunicações. Exemplo: serviços multimídia, presentes em dispositivos móveis e celulares. Ademais, o acesso à informação tem se tornado cada vez mais rápido e ubíquo (independente de dispositivo ou localização) e a integração dos Sistemas Telefônicos às Redes de Computadores foi um passo natural. Desse modo, a convergência em telecomunicações é uma tendência representada pela fusão dos sistemas de informação e comunicação, resultando numa síntese de serviços, recursos e informações capazes de prover diversas utilidades à sociedade.

VoIP (Voz sobre IP)Tecnologia que permite a transmissão de voz por IP, ou seja, transforma sinais de áudio analógicos em dados digitais que podem ser transferidos através de protocolos da Internet. O método está cada vez mais presente com softwares que tem se baseado nessa tecnologia, como Skype, Facebook Messenger, Viber e WhatsApp, e claro, a Telefonia IP.

Para o caso da Telefonia IP, VoIP é o termo usado para se referir às técnicas de empacotamento e transmissão de amostras de voz sobre redes IP e aos mecanismos de sinalização necessários ao estabelecimento de chamadas telefônicas nessas redes.

Voip2.png OU para uma empresa: Voip.gif


Telefonia IP é empregado para se referir à aplicação de tecnologias de VoIP na transmissão e na sinalização, com oferecimento de um serviço de qualidade similar ao da telefonia convencional.

A telefonia IP é vista não só como capaz de estabelecer chamadas telefônicas e outras funcionalidades típicas de sistemas telefônicos (redirecionamento e retenção de chamadas), mas também como uma plataforma de integração de serviços típicos da internet (web, correio eletrônico, streaming de áudio e/ou vídeo).

TELEFONIA ANALÓGICA

Acompanhe as explicações complementares do professor dos
* slides introdutórios sobre Telefonia Analógica e responda as questões que serão colocadas durante essa exposição!

Tarefa para próxima aula 02/03 (AE1). Cada dupla de alunos designada pelo professor, irá escrever um pequeno texto auxiliado com imagens (se for o caso), a explicação de duas funcionalidades (uma simples e outra complexa) presentes em centrais automáticas analógicas e digitais. É obrigatório fazer o registro aqui neste espaço, usando a linguagem da Wiki.

Funcionalidades de centrais automáticas
Simples:
Ligação entre ramais


A ligação entre ramais é uma das principais funções de uma central automática. Basicamente é a função que interliga dois telefones (ramais) dentro do domínio da central privada e permite a comunicações dos usuários. É comumente utilizada quando dois usuários estão em andares, salas ou mesmo em setores diferentes.

Tomando como base a tecnologia analógica, podemos dizer que na maioria das vezes os ramais estarão dentro de uma mesma empresa, fábrica ou escritório devido a dificuldade de levar o sinal em um par metálico tão longe. No entanto, com a telefonia IP, criou-se a possibilidade de realizar ligações entre ramais que estão muito mais distantes fisicamente. Há a possibilidade, por exemplo, de um ramal em Rondonia realizar uma ligação para outro Ramal no Espirito Santo e haver comunicação. Isso ocorre pois mudamos a tecnologia de transmissão de dados, que no caso são as redes IP, ou seja, a internet.

Contribuição: Augusto Gil de Oliveira e Lucas Bernardo

Entroncamento entre centrais



Entroncamento é a maneira como a central telefônica se interliga com a operadora de telefonia. Pode ser feito de maneira analógica, digital ou IP e possui o objetivo de entregar linhas ao assinante.

Entroncamento analógico: é a maneira mais antiga de entroncamento. Basicamente um par de fios entronca o assinante com a operadora de telefonia. Cada par de fios corresponde a um número do assinante. Um fator limitante é que se um assinante quiser muitos números, a quantidade de fios será grande demais.

Entroncamento digital: no Brasil o entroncamento digital disponibilizado pelas operadoras é o E1. Essa tecnologia entrega até 30 linhas ao assinante com um número muito menor de fios se comparado ao entroncamento analógico.

Entroncamento IP: é feito via link de dados ou internet utilizando o protocolo TCP/IP

Alternativas de entroncamento com operadoras de telefonia em: https://www.propus.com.br/entendendo-telefonia-ip-voip-parte-2/

Contribuição: Brenda Soares e Lucas Costa

  • Estacionamento de chamadas (chamada em espera);
Discagem Abreviada


A discagem abreviada se trata de um serviço disponibilizado pela central PABX ou provedores de linhas telefônicas (operadoras) no qual se é possível armazenar números telefônicos inteiros nas teclas alfanuméricas de seu telefone - Uma operação semelhante à esta seria a função de "discagem indireta" programáveis "diretamente" em alguns modelos de aparelhos telefônicos.

Segue link abaixo do produto da Intelbras (Voiper) que contempla a função de discagem rápida (página 18):

*Link: www.chequetron.com.br/manuais/Manual_Voiper_Portugu%C3%AAs.pdf
Contribuição: Bruno e Mateus Seeman

Siga-me

Contribuição: Enzo e Matheus Santana

Siga-me é a função de “transferir chamadas”, muito utilizada tanto em celulares como em linhas fixas.
Trata-se, basicamente, de um “código” que deve ser programado em seu número para direcionar as ligações para outro número fixo ou móvel.
Alguns equipamentos como porteiros tem essa integração com o siga-me onde além de transferir chamadas é possível abrir uma fechadura.


Bilhetagem

Histórico de chamadas efetuadas e recebidas por uma determinada linha telefônica fixa ou móvel. É o sistema destinado a registrar os dados das ligações de forma a permitir o posterior cálculo dos custos das chamadas originadas externas, para serem cobrados na conta de telefonia.

bilhetagem.jpg

Contribuição: Nathally e Fernanda

Referência:

https://vocegestor.com/glossary/sistema-de-bilhetagem/
https://www.dicionarioinformal.com.br/significado/bilhetagem/8258/
Caixa Postal
  • Caixa postal com envio do áudio por email.

    Um sistema de caixa posta é um sistema centralizado utilizado em negócios para enviar, guardar e recuperar mensagens de áudio, como uma secretaria eletrônica faria em casa.
    Cada ramal numa central telefônica é normalmente lincado a uma caixa postal, então quando o numero é chamado e não é atendido ou esta ocupado, a pessoa que chamou ouve uma mensagem previamente gravada pelo usuário. Esta mensagem pode dar instruções para a pessoa para deixar uma mensagem de voz ou dá outras opções disponíveis, como bipar o usuário ou ser transferido para outro ramal ou para a recepcionista e atá em envio de um
    voicemail até o usuário. Contribuição: PEDRO FAGUNDES e GUILHERME
Fila de atendimento


Hoje em dia, as filas atendimento são bem conhecidas na área de telecomunicações, são importantes para empresas com um grande volume de chamadas recebidas.

Essa funcionalidade garante ao cliente o direito de ser atendido, enquanto o call center e o pessoal do atendimento estão ocupados em outras ligações, sendo assim a chamada será encaminhada para o primeiro atendente que esteja disponível.


A fila de atendimento pode facilitar o dia a dia tanto de seus clientes quanto de seus colaboradores. Isso porque:

  • Possibilita que as suas chamadas recebidas sejam colocadas em fila e em ordem;
  • Possibilita a sua empresa a oportunidade de ter vários atendentes, ou ramais,com atendimento simultâneo;
  • Possibilita que seus atendentes façam transferência de chamadas caso atendam a uma chamada e vejam que seria melhor para aquele cliente ser atendido por outro atendente ou departamento;
  • Possibilita que enquanto aguarda, seu cliente escute uma música;
    Contribuição: Thiago e Isabella.
Call Transfer


Um call tranfer (transferência de chamada) é um mecanismo de telecomunicações que permite ao usuário realocar uma chamada telefônica existente para outro telefone ou console de atendimento, usando um botão de transferência ou um flash de gancho e discando o local necessário. A chamada transferida é anunciada ou não anunciada.

Contribuição: Vinicius Fidelix e Jennifer Marcela

Call Pickup


Esta facilidade possibilita atender as chamadas dirigidas a outros ramais que não foram atendidas ou que estejam estacionadas ou retidas. É possível capturar chamadas externas e internas, podendo ser uma captura geral, ou de um grupo ou ramal específico.
Contribuição: John Peter Simon Lange e Wesley.

Música de espera

Ter um sistema de atendimento telefônico automático, como uma URA ou DAC, é o básico que uma empresa deve oferecer ao cliente.

Com ele é possível direcionar as chamadas para um setor/pessoa específicos, atender determinadas solicitações, acessando banco de dados, sem a necessidade de um atendente, ter atendimento 24h por dia, 7 dias por semana, sem custos adicionais.

Alunas: Lilia e Yasmin.

Complexas:

Callback


O Call Back é uma solução que promove o retorno das chamadas de forma automática ou programada para os clientes que estão esperando um atendimento em seu número receptivo.

Esta ferramenta faz a captação de dados do cliente, desliga a chamada e posteriormente retorna para o número.

Geralmente é reproduzida uma mensagem como, por exemplo, “No momento nenhum atendente está disponível, retornaremos a chamada assim que possível”.

O Call Back acaba sendo uma automatização muito eficiente dentro de um call center.

O Call Back é uma solução eficiente, indicada para empresas com um alto fluxo de chamadas receptivas.

Ele se torna ideal para gestores que desejam reduzir o tempo de espera dos clientes que necessitam de atendimento, e a quantidade de chamadas onde o cliente acaba desistindo de aguardar pelo atendimento devido ao alto tempo de espera.

Contribuição: Augusto Gil de Oliveira e Lucas Bernardo


URA


URA (Unidade de Resposta Automática), também chamada de atendente eletrônica, fornece serviços de respostas automáticas aos clientes que realizam uma chamada. É muito utilizada para sistemas de compras, clínicas de saúde, telefonia móveis, contratação dos serviços, serviços públicos, entre outros.

Contribuição: Brenda Soares e Lucas Costa

  • Chamadas de vídeo e mensagens
DISA


No momento em que o acesso é efetuado, quando o usuário externo disca, ele interage com o prompt do IVR (Interactive Voice Response) e insere algumas informações de autorização.

Contribuição: Bruno e Mateus Seeman

Gravação de ligações

Contribuição: Enzo e Santana

Possibilita a gravação de todas as chamadas recebidas e efetuadas, garantindo o controle, segurança e otimização das ligações proporcionando redução significativa do uso do telefone para fins não empresariais.
Além disso pode ser instalado nas linhas tronco e também nos ramais quando é utilizado uma central telefônica.

Tarifação

Um sistema de tarifação telefônica efetua o registro e associa um custo correspondente as ligações recebidas ou feitas.

As regras de tarifação para os planos obrigatórios variam de acordo com o horário e o plano escolhido:

Horário Normal Plano Básico de Minutos: Cobra-se um mínimo de 30 segundos, e o tempo de utilização adicional é tarifado a cada 6 segundos. Somente serão tarifadas as chamadas com duração superior a 3 segundos.

Plano Alternativo de Serviços de Oferta Obrigatória (Pasoo): Cobra-se uma Tarifa de Completamento de Chamada, além do tempo de utilização, que é tarifado a cada 6 segundos. A tarifa de completamento equivale ao valor de 4 minutos. Horário Reduzido

Plano Básico de Minutos: Cobra-se um Valor por Chamada Atendida (VCA), equivalente ao valor de 2 minutos, a cada ligação completada, independente do tempo de utilização.

Plano Alternativo de Serviços de Oferta Obrigatória (Pasoo): Cobra-se uma Tarifa de Completamento de Chamada, equivalente a 4 minutos, por chamada completada, independente do tempo de utilização.

Os horários de tarifação reduzida são: De segunda a sexta-feira, da 0h às 6h Sábados, da 0h às 6h e das 14h às 24h Domingos e Feriados Nacionais, da 0h às 24h

Contribuição: Nathally e Fernanda

Referência:

http://sakber.com.br/tardesc.htm 
https://www.anatel.gov.br/Portal/verificaDocumentos/documento.asp?numeroPublicacao=139510&assuntoPublicacao=null&caminhoRel=null&filtro=1&documentoPath=biblioteca/releases/2007/release_28_02_2007ad.pdf
Call Center


Call center é uma central de atendimento que tem como objetivo fazer a interface entre o cliente e a empresa. É uma expressão do inglês call (chamada) center ou centre (central). O serviço de Call center é um canal de relacionamento que funciona como suporte técnico ou qualquer outra atividade especializada para atender as necessidades dos clientes. Um Call center envolve um conjunto de recursos, como computador, equipamento de telecomunicação, sistemas e operadoras, que interagem com os clientes e permite receber um grande número de ligações simultaneamente. O Call center utiliza tecnologias que otimizam seus serviços, como a CTI (Computer Telephony Integration) que permite a integração do telefone ao computador, o gerenciamento das ligações e a distribuição das mesmas através das operações e o encaminhamento para os atendentes especializados. Outra tecnologia empregada no Call center é o IVR (Interactive Voice Response) que possibilita a interação do cliente através de áudio pré-gravado, que permite através de menus, escolher aquele que irá atender a suas necessidades.
O seviço de Call center é normalmente estabelecido dentro da própria empresa, enquanto o serviço de telemarketing (serviço de venda) é quase sempre terceirizado.


Contribuição: Pedro e Guilherme.

Blacklist


Lista negraé uma lista,ataou registro de algumaentidadeoupessoa física, que, por alguma razão, nega certos direitos, serviços, participação ou mobilidade a alguém ou a alguma entidade, em determinada situação, período detempoou lugar. Porém, existem dois tipos de blacklist: receptivo e ativo.

                            • ATIVO: Nessa função do blacklist, é cadastrado qualquer número que não deve ser discado pelos operadores.
                            • RECEPTIVO: Essa função do blacklist no telemarketing é inversa à anterior. Isso quer dizer que, aqui, o gestor do call center cadastra os números indesejados e que estão atrapalhando a empresa, pois não param de ligar. Por exemplo, os casos de trote e de pessoas que ligam procurando pelos antigos donos do número atual.
                              Como funciona a lista negra?

O blacklist para telemarketing funciona de maneira bem simples. Basta que o responsável pela função cadastre manualmente os números.

Qual o impacto da lista negra no telemarketing?

A principal função do blacklist no telemarketing é garantir que o desejo do consumidor seja respeitado e ele não receba ligações que não deseja.

Contribuição: Thiago e Isabella.


Sala de Conferência


Uma sala de conferência é um canal de áudio em que vários participantes, tanto internos (ramais) quanto externos (através de transferência ou número direto) podem interagir. Os participantes da conferência devem discar para o ramal da sala e assim participarão da conversa, é possível personalizar a sala de conferência, forçando uma senha de entrada aos participantes e/ou tocando um áudio anunciando a entrada/saída de participantes na sala.

Contribuição: Vinicius Fidelix e Jennifer Marcela

Estacionamento de chamada


Estacionar uma chamada atendida é deixá-la num local apropriado (estacionamento) para que possa ser capturada no momento oportuno pela pessoa a quem se destina. Essa funcionalidade é utilizada normalmente nas ações de consulta a outro ramal. Durante a consulta, a chamada original fica estacionada até que a chamada consulta seja finalizada. Em seguida, a chamada estacionada é restabelecida.

Contribuição: Bruna e Manuela


Chamadas de vídeo e Mensagem Automática

Chamadas de vídeo: São utilizadas para se ter uma maior interação entre os usuários e até mesmo, em algumas centrais e empresas, usa-se para provar a veracidade do usuário na hora de solicitar um produto novo, por exemplo: para saber se de fato, o produto em questão está realmente falhando ou não.

Mensagens automáticas: Redireciona o cliente para uma "fila", onde esperará o atendimento, por exemplo: se uma pessoa deseja um atendimento de um produto, receberá uma mensagem do tipo "disque 9 para o <produto>" e assim ficará em espera até ser atendida.
Durante a espera, também são utilizadas mensagens automáticas como ferramenta para manter o usuário na linha.
Ex: "Aguarde até que um dos nossos atendentes esteja disponível."
"Aguarde, estamos lhe transferindo para alguns de nossos atendentes."

Contribuição: Bruna e Manuela

Agenda


Recurso da central que permite armazenamento de contatos telefônicos com permissão de acesso para um grupo de ramais específicos ou para todos os ramais. Mas centrais PABX é possível realizar chamadas pela agenda independente da categoria configurada para o ramal, e programar agendas particulares.

Contribuição: John Peter Simon Lange e Wesley.

Despertador


O despertador é um relógio que faz barulho para acordar o indivíduo que está dormindo, na hora por ele determinada.
Com o avançar da tecnologia os despertadores são os dispositivos de maior risco de extinção com a popularização dos celulares, tabletes, Smartphones e outros objetos tecnológicos, já que estes têm como função básica despertar. Inventado na Grécia Antiga.

Sempre foi precisa muita disciplina para se conseguir acordar, e se hoje a maioria dos jovens - 83%, segundo um estudo do instituto americano Pew Research Center - utiliza o smartphone, Platão desenrascou-se com o que existia na época.

No século IV a.C., os gregos usavam vasos de pedra (clepsidras) que escorriam água entre si, uma espécie de ampulheta, para medir o tempo. O filósofo juntou a isto outra ideia: a água escorria para um vaso que tinha um apito. Quando atingia o limite, ouvia-se um som agudo. Platão costumava usá-los para não se atrasar para as aulas de madrugada.

Alunas: Lilia e Yasmin.

Revisão da PSTN (Public Switched Telephonic Network)

A Rede Pública de Telefonia (PSTN) foi a principal infraestrutura de telecomunicações desde o invento de Alexander Bell até o início o século XXI. Embora ainda tenha participação relevante nos dias atuais, ela perde espaço para a Internet.

A PSTN se caracteriza pela presença exclusiva dos pares de fios visando a criação de circuitos dedicados para a comunicação da voz e a comutação desses circuitos entre todos os que se conectam nessa rede. Em um único par de fios ela permite a comunicação duplex, mantendo uma qualidade da transmissão da voz em limites de inteligibilidade de palavras e frases (100% de inteligibilidade) e fonemas (87%)determinados pela estreita largura de banda (300 a 3400Hz) do sinal padronizado para cruzar o sistema.

Para ampliação do sistema o núcleo da rede telefônica ganha hierarquias na multiplexação e transmissão digital de inúmeros circuitos simultâneos de voz (Telefonia Digital)

Os textos adiante são extrações resumidas ou adaptadas dos textos da wiki produzidos pelo Professor Marcelo Sobral, a quem fica aqui o agradecimento e créditos.

Transformação da voz em sinal elétrico e a transmissão

Através de um transdutor é possível converter o sinal sonoro (onda mecânica) em um sinal elétrico que varia no tempo.

Exemplo1: microfone de carvão

Usando uma fonte DC com este microfone é possível conceber um sistema em que o sinal elétrico gerado pelo microfone é amplificado e transmitido por fios (2 fios). O receptor pode aplicar o sinal em um alto-falante, que faz o reverso do microfone.

Um sistema duplex necessitaria neste caso de 4 fios mas é possível usar um dispositivo para mesclar os dois sinais (híbrida).

Desta forma, é possível transmitir e receber voz com dois fios simultaneamente.
Os fios devem partir de um telefone associado a um usuário até o outro telefone.
NOTE que estes fios são dedicados a comunicação entre estes dois usuários! 

Chaveamento de circuito - o papel da operadora

No item acima observamos que é possível transmitir e receber voz entre dois usuários. Entretanto, logo após as invenções destas tecnologias, observou-se que, para fins de otimização, todos os telefones deveriam estar ligados a uma central.

O uso da central evita uma conexão permanente de todos para todos, o que inviabilizaria o sistema.

Então, inventou-se as centrais telefônicas.

Inicialmente que operava a central era um ser humano. Logo a seguir, estes dispositivos foram automatizados.

Necessidade de um protocolo de sinalização

De alguma forma, o chamador do sistema de telefonia, deveria indicar com quem ele deseja se comunicar. O usuário chamado deve receber um sinal audível e proceder o atendimento. É um protocolo conhecido por todos nós. Mas uma série de eventos acontece na prática:

  1. o usuário retira o telefone do gancho e a central detecta este evento e põe-se a escutar a linha do chamador;
  2. o chamador disca o número desejado (interrupções de um sinal DC da linha ou um sinal multi-frequencial (DTMF));
  3. a central observa o número de interrupções e o associa a um circuito a ser chamado.
  4. a central coloca um sinal audível de chamada na linha do usuário chamado (e também uma pequeno sinal para o chamador);
  5. o usuário chamado atende e a central detecta o atendimento;
  6. a central interconecta o circuito do chamador com o circuito chamado.
 Pronto, a comunicação pode se dar entre os dois usuários.

Fica evidente a necessidade de duas componentes do sistema: a sinalização e o transporte da informação propriamente dita.

 Exercício: Fazer um diagrama de troca de mensagens no tempo, composto pelos três elementos básicos de uma comunicação telefônica:    
 chamador, chamado e a central telefônica.

Digitalização do sinal de voz e da sinalização

Você já deve ter percebido que a tendência de qualquer sistema de telecomunicações, é a representação digital binária de qualquer informação. Isto facilita o seu processamento, transmissão, recepção e armazenamento (se necessário).

O sistema telefônico foi quase que completamente digitalizado. No caso particular do sinal da voz, procede-se um processo de amostragem e de quantização para a geração de uma sequência de bits associada ao sinal de voz. Trata-se da técnica chamada PCM.

Nesta técnica amostra-se o sinal analógica a uma frequência específica (sampling rate). No caso da telefonia esta frequência é de 8000 vezes por segundo (8khz). Cada amostra é transformada em um agrupamento de 8 bits (um byte). Por que 8000 khz. É uma limitação teórica descoberta por Nyquist que diz que a a frequência de amostragem deve ser duas vezes maior que a maior frequência que compõe o sinal. Para a transmissão da voz, a frequência limite é 4khz (a banda da telefonia é de 3100Hz).

Lembre da disciplina de PRT (princípios de telecomunicações), quem destacou que um sinal no tempo pode ser descrito pela soma de senoides. Desta forma, um sinal pode também ser descrito no domínio da frequência, ou seja pelas frequências e fases das senoides que o compõem.

Ver a representação no domínio da frequência aqui.

NOTE que amostragem de 8Khz com 8 bits por amostragem leva a uma taxa de transmissão de 64kbps.

Ou seja, se você digitalizar a voz e transmitir por um par de fios, a taxa de transmissão deverá ser de no mínimo 64kbps. Uma linha telefônica (fixa) que chega a sua casa via fios, possivelmente ainda é analógica (loop local, mas assim que ela chegar em uma central será digitalizada a esta taxa de transmissão.

As centrais como chaveadoras de circuitos

Entre centrais telefônicas e entre centrais e PABXs normalmente os enlaces são realizados por troncos E1 (ou hierarquias destes troncos). Nestes sistemas os canais digitais são multiplexados no tempo (ver aqui).

Em uma ligação telefônica que passa por várias etapas, toda a sinalização é repassada de forma digitalizada por canais adicionais no E1 (ou uma variante disto). O chaveamento de circuito


Plano de discagem

O plano de discagem define como cada chamada deve ser processada. As instruções de processamento residem no arquivo de configuração /etc/asterisk/extensions.conf. O fluxo de processamento de chamadas pode ser visto resumidamente abaixo:

Asterisk-fluxo.png


Um exemplo de plano de discagem simples pode ser visto abaixo:

[alunos]; o nome deste contexto

# Chamadas para o número 101 são feitas via SIP para o canal "maria"
exten=>101,1,Dial(SIP/maria)
same=>n,Hangup()

# Chamadas para "teste" serão atendidas com um som de beep, seguido 
# da reprodução do arquivo de som "hello-world", em seguida outro beep e
# enfim se encerra a chamada.
exten=>teste,1,Playback(beep)
same=>n,Wait(1)
same=>n,Playback(hello-world)
same=>n,Wait(1)
same=>n,Playback(beep)
same=>n,Hangup

A estrutura do plano de discagem é composta por extensões (um termo específico do Asterisk). Cada extensão identifica um número (ou usuário) que pode ser chamado, e como essa chamada deve ser processada. A sintaxe pode ser vista abaixo:

exten=>identificador,prioridade,aplicação
  • identificador: o número ou usuário chamado
  • prioridade: a prioridade da extensão. Isso determina a ordem de execução das extensões que tratam do mesmo identificador.
  • aplicação: uma ação a ser realizada quando a extensão for processada. Por exemplo, a aplicação Dial determina que deve ser encaminhada a outro canal.

Como o processamento de uma chamada usualmente envolve uma sequência de extensões, existe uma sintaxe opcional para simplificar a declaração:

exten=>identificador,prioridade,aplicação
same=>prioridade,aplicação
  • same: declara uma nova extensão com mesmo identificador da extensão imediatamente anterior

é espacial e temporal, ou seja um determinado slot de tempo de uma linha física é mapeado em outro slot de tempo em outra linha física. Com todo mapeamento realizado, a conexão entre dois telefones interligados por várias centrais se passa como se fossem dois fios de uma ponta a outra entre origem e destino da ligação telefônica.

Redes com chaveamento por pacotes versus chaveadas por circuitos

Um ponto chave da rede PSTN é que, sendo baseada em chaveamento de circuitos, a rede proporciona uma ligação permanente entre dois terminais telefônicos até que ela seja encerrada. Mesmo que um usuário não fale nada, os recursos estão alocados para a comunicação. Esta abordagem tem vantagem e desvantagem. A vantagem é a qualidade da comunicação: os recursos estão lá e não são disputados por ninguém. A desvantagem é o desperdício de recursos. Se o usuário não conversa com seu interlocutor, ele desperdiça um recurso valioso (e caro! $).

As redes de pacotes seguem uma abordagem diferente. A informação a ser transportada (qualquer que seja), é organizada na forma de pacotes de bits. Estes pacotes, pelo menos naquelas sem conexão, possuem endereço de destino e de fonte. Todos os enlaces de conexão entre "centrais" são multiplexados em termos de pacotes. Em uma mesma linha, podem seguir pacotes de diferentes origens/destinos. As centrais na realidade são chamadas de roteadores, que chaveiam pacotes para outros enlaces conforme o destino do pacote e a informação de uma tabela de roteamento.


Uso de redes de pacotes (Internet) para a transmissão de mídias diversas

Originalmente a Internet foi concebida para a transmissão de dados que não tinham requisitos fortes de tempo.

 Por exemplo, o envio de um email pode demorar alguns minutos até chegar no seu destino. 

Entretanto, com os avanços em todos os campos das telecomunicações e da computação, conseguiu-se meios de transmissão com altíssima capacidade de transmissão bem como roteadores com grande velocidade de chaveamento. Tudo isto possibilitou que se começasse a usar a Internet para o transporte para outras mídias, tal como a voz e vídeo em tempo real.

 Surge uma nova área que é a 'Telefonia IP. Todos os serviços até então construídos sobre as PSTNs começam a ser construídos sobre a 
 Internet.

Um sério problema ainda não resolvido na transmissão de voz digital em tempo real (e vídeo também) é a questão da qualidade de serviço. Pacotes podem sofrer atrasos, corrompidos, duplicados ou perdidos. Não é possível ainda garantir qualidade na transmissão. O que se faz é colocar recursos de sobra para não se ter problemas...


02/03 - Introdução a VoIP, protocolo SIP e softphones

02/03 - Introdução a VoIP, protocolo SIP e softphones

Objetivos

Ao final da aula o aluno deverá:

  • reconhecer a necessidade de um protocolo para sinalização para uso em aplicações de telefonia na Internet;
  • se familiarizar com protocolo SIP como protocolo de sinalização na Internet;
  • identificar as principais troca de mensagens do protocolo SIP utilizado entre dois terminais (softphones);

O que é preciso para efetivar Voz sobre redes IP (VoIP)?

Pelo menos um ou mais protocolos de sinalização e um ou mais protocolos para transportar a mídia.

 Em adição, é conveniente comprimir a voz para que ela use menos banda e, se necessário, forneça algum sigilo na comunicação.

Para sinalização tem-se várias opções. A principal hoje é o Protocolo de Iniciação de Sessão ou protocolo SIP. Para o transporte da voz utiliza-se normalmente o Protocolo de Transporte em Tempo Real sobre o Protocolo de Datagrama de Usuário RTP/UDP.

 Além disto, para que a transição do antigo para o novo aconteça, é conveniente interconectar a PSTN (sistema legado) com o sistema de voz sobre IP.

A sinalização na Internet

A sinalização na telefonia sobre IP é necessária para:

  • chamar um usuário com quem se deseja comunicar;
  • negociar parâmetros de comunicação para a sessão a ser estabelecida;
  • renegociar parâmetros de comunicação durante uma sessão em andamento;
  • finalizar uma sessão.

Outras funções avançadas são realizadas pelo protocolo de sinalização, mas por enquanto nos concentraremos nas funções acima.

Existem vários protocolos de sinalização, mas o SIP é um dos mais utilizados, sendo inclusive adotado nos sistemas celulares 3G e 4G.

O protocolo SIP

O SIP é um protocolo de sinalização para comunicação multimedia, que se utiliza de mensagens textos (similar ao http) e de endereços similares ao de um email. Como no HTTP, ele se utiliza de um modelo de transações do tipo requisição/resposta. Um cliente gera uma requisição a um servidor. O servidor recebe a requisição, invoca um determinado método, e responde ao cliente. A lista de métodos possíveis pode ser encontrada aqui.

 Um cliente tipicamente gera uma requisição INVITE para solicitar uma sessão para um servidor. Se aceito, o servidor responde com 200 OK.

No vocabulário SIP, uma requisição é gerada por User Agent Client (UAC) e a resposta é dada por um User Agent Server (UAS).

 NOTE que um telefone IP ou um softphone SIP funciona tanto como UAS como UAC pois ora gera requisições ora aceita requisições.

O endereço SIP ou SIP URI é utilizado como identificador único de um usuário, funcionando da mesma forma que um número telefônico. Como agora estamos falando de sinalização na Internet, este endereço se utiliza de conceitos associados a esta rede. Note também que a sinalização SIP pode seguir caminhos diferentes do transporte da mídia.

A forma mais simples de usar um SIP URI é simplesmente:

 usuario@<endereço_ip>

ou

 usuario@<nome_dns_maquina>

Por exemplo, na figura abaixo Joao chama Maria que se encontra em PC de endereço IP 200.200.200.1 na rede 200.200.200.0/24. A URI usada é simplesmente maria@200.200.200.1. A mensagem de sinalização é enviada para o IP indicado usando o sistema de roteamento da Internet. Por default, as mensagens são transportadas pelo protocolo UDP e a porta de destino default é 5060.

Joao       INVITE maria@200.200.200.1       Maria
     ---------------------------------->
                  TRYING                   
     <----------------------------------
                  RINGING                  
     <----------------------------------  
                  200 OK                   
     <----------------------------------
                    ACK                     
     ---------------------------------->
                                        
     <--------- conversação ----------->
                                        
                    BYE                      
     <----------------------------------
                  200 OK                   
     ---------------------------------->


Experimento 1: Comunicação direta entre dois terminais (softphones)

Neste experimento faremos dois terminais (softphones) estabelecerem uma sessão de comunicação através de uma sinalização direta (sem servidores SIP intermediários). Isto nos permitirá analisar as mensagens básicas de estabelecimento de chamada (INVITE) e de finalização da sessão (BYE).

Recursos utilizados

  • softfone Twinkle instalado no Ubuntu. Ver aqui o manual do twinkle.
  • wireshark/tcpdump. Ver aqui o manual do Wireshark;

Softphone Twinkle

Neste experimento usaremos o softphone Twinkle como terminal de comunicação. O Twinkle é um softphone para VOIP e comunicações de messagens instantâneas usando o SIP. Ele permite a conexão direta fone-fone ou através do uso de uma rede de servidores SIP.

Roteiro PARTE 1 - Comunicação entre um hospedeiro e uma máquina virtual

Terminal chamador no hospedeiro
  1. Coloque o twinkle em execução da seguinte forma: Abra um terminal e chame: twinkle &
  2. Quando executado pela primeira vez, o twinkle solicita a criação de um perfil de usuário. Ele suporta múltiplos perfis. Neste experimento vamos criar algo simples. Selecione a criação do perfil através do Wizard
  3. Entre com o nome do perfil (identificação do perfil) equipe1p1 OBS: ajuste o nome para sua equipe. O p1 é para identificar o perfil 1. Vários poderão ser criados.
  4. O twinkle abre o wizard que deve ser preenchido conforme o exemplo abaixo (adaptado a sua equipe):
  • TelaPerfilTwinkle.jpg
  • em Sip server provider coloque NONE, pois faremos comunicação direta
  • em nome do usuário, coloque o nome completo
  • em user name coloque um identificador de usuário (sem espaço);
  • em domain coloque o endereço IP do seu computador (verifique com o comando ifconfig).
Terminal chamado na máquina virtual
  1. abra uma máquina virtual (Aplicativos/Sistema/Oracle VM VirtualBox) e execute uma máquina gráfica disponível;
  2. verifique o IP da MV com ifconfig e certifique-se que ela está em modo bridge na configuração de opções de rede;
  3. coloque o twinkle em execução e crie um perfil diferente, por exemplo, equipe1p2. Caso o twinkle não esteja instalado, é só instalar com apt-get install twinkle.
Capturando pacotes com wireshark no HOSPEDEIRO

No hospedeiro faça:

  1. execute o wireshark em background: wireshark &
  2. entre na tela de opções de captura:
    TelaConfiguracaoOpcoesCaptura.jpg
  3. configure a captura de pacotes pela eth0 com filtro centrado no IP da máquina virtual e no protocolo UDP porta 5060:
    TelaConfiguracaoInterfaceWireshark.jpg
  4. Tecle start.
Fazendo uma chamada a partir do hospedeiro
  1. Coloque o endereço do terminal chamado no twinkle e chame o usuário:
TelaTwinkleChamar.jpg
Atendendo a chamada no Twinkle da Máquina Virtual
  1. atenda a chamada teclando em ANSWER e logo em seguida termine a chamada com BYE;
Importante! Nosso foco é a sinalização. O áudio não nos importa no momento.
Parando a captura no wireshark e analisando os pacotes
  1. No wireshark pare a captura de pacotes;
  2. Identifique o fluxo da sinalização entre os softphones que ocorre similarmente como descrevemos no exemplo da ligação entre João e Maria.

Roteiro PARTE 2 - Comunicação entre usando hospedeiros da rede do Laboratório

  1. Informe o seu SIP URI para o grupo ao lado, e teste a realização de chamadas.

Roteiro PARTE 3 - Desafios

  1. Criar mais um perfil no twinkle da Máquina Virtual.
  2. Teste uma chamada para este novo usuário.
09/03 - O protocolo SIP na comunicação direta entre Telefone IP - Softphone

09/03 - O protocolo SIP na comunicação direta entre Telefone IP - Softphone

Comunicação direta Telefone IP - Softphone

Recursos usados

  • Telefone IP (ATA+telefone analógico);
  • PC com Linux e MV VirtualBox, ambos com twinkle;
  • acessórios: cabos ethernet, fonte de alimentação.

O Telefone IP

Neste experimento utilizaremos de um telefone IP formado a partir de um dispositivo ATA e um telefone analógico normal.

O dispositivo ATA é dotado de uma porta FXS normal e uma porta LAN (ethernet). Normalmente o dispositivo deve ser alimentado externamente. O ATA implementa pelo menos um protocolo de sinalização e um protocolo de comunicação de mídia. Ao ser conectado a uma LAN o ATA pode aquirir um número IP dinamicamente ou ser configurado estaticamente. A partir deste ponto ele está apto a receber ou realizar chamadas VOIP.

Serão utilizados os dispositivos ATA GKM1000 (manual) ou o GKM2200 (manual). Estes dispositivos implementam o protocolo SIP.

ETAPA 1 - Conexão física

  1. Olhando o manual do dispositivo, faça a conexão física dos dispositivos ATA e Telefone Analógico.
  2. Leia o manual e anote o IP do telefone.
  3. Faça um teste básico de conectividade para este endereço usando o comando ping.
  4. Acesse os ATAs e configure um SIP ID com caracteres alfanuméricos. Nos Twinkle use somente números. Como sugestão use o último octal do número IP do seu PC hospedeiro ou PC virtual (ex.: 100, 101...). Isso vai permitir ser originar ligações a partir dos telefones analógicos instalados juntos aos ATA para qualquer Twinkle de qualquer PC.

Para fins de compreensão da rede que está se formando, anote esses dados:

  • IP do terminal virtual, máscara, gateway default, servidor DNS;
  • IP do hospedeiro, máscara, gateway default, servidor DNS;
  • IP dos dispositivos ATA, máscara, gateway default, servidor DNS;
  • Faça um esboço da rede para entender a disposição física e interligação de todos os equipamentos.


ETAPA 2 - Análise da comunicação softphone - Telefone

  • Prepare o twinkle (sobre o hospedeiro) para comunicação IP direta;
  • Prepare o wireshark para captura de pacotes filtrando pacotes de fluxos originários/destinados ao telefone IP;
  • Capture os pacotes de sinalização SIP referentes a uma sessão. Chame a partir do softphone e imediatamente encerre a ligação a partir do telefone IP chamado.

Para fins de compreensão do protocolo SIP em ação, anote esses dados:

  • Diagrama de troca de mensagens mostrando a primeira linha da mensagem e os campos FROM, TO, CONTACT e CALL-ID, STATUS-LINE. Ver o link http://www.siptutorial.net/SIP/relation.html e anote diagrama o que é o diálogo, a transação, o caller e o callee.
  • Discuta o significado dos campos FROM, TO, CONTACT, CALL-ID e STATUS-LINE.


16/03 (-> ANP em 30/03 - videoaula síncrona) - AE2 - Uso do Asterisk como PBX entre Telefones IP e Softphones

16/03 (-> ANP em 30/03 - videoaula síncrona) - AE2 - Uso do Asterisk como PBX entre Telefones IP e Softphones

Objetivos

Parte Teórica
Vídeo-aulas realizadas e anotações de aula (ATENÇÃO! OS VÍDEOS ESTÃO LONGOS PORQUE ESTÃO SEM CORTES! AVANCE PARA OS PONTOS DE INTERESSE!)
  • AE2 e Validação de conteúdo e presença da aula remota: Questionário sobre a videoaula da ANP de 30/03 - Uso do Asterisk como PABX.
Parte Prática
  • Realizar chamadas entre telefones IP e softphones por meio de um PBX IP Asterisk
  • Analisar a sinalização dessas chamadas

Chamadas feitas usando PBX IP

Um 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.

Voip-call.png


Nas aulas que se seguem faremos uso de um PBX IP Asterisk, que é um software desenvolvido pela Digium. O Asterisk roda em computadores do tipo PC que possuem sistema operacional baseado em Linux. Sua licença é livre, o que significa que não há custo de licenciamento para utilizá-lo.

PBX IP Asterisk


Asterisk: uma solução completa de PABX baseado em software, permitindo ligar o mundo IP ao mundo da rede pública de telefonia comutada. Trata-se de uma solução completa de PABX baseado em software, permitindo ligar o mundo IP ao mundo da rede pública de telefonia comutada - PSTN. ́E um software livre licenciado sob a GPL e roda em sistemas operacionais como o Linux.

Características Básicas: faz tudo que um PABX pequeno e simples faz e pouco mais

  • Transferência, música de espera, siga-me, etc.
  • Conferência, correio de voz, URA, fila de chamadas, monitoramento de chamadas, integração com o Jabber (Google talk)


Asterisk-ex1.png
Exemplo de cenário de uso do Asterisk


Instalação do Asterisk

Pode-se fazer o experimento em casa, de forma a estudar a sinalização e stream de áudio das chamadas VoIP. Para isso precisa-se do Asterisk (PBX IP) e dois softphones (twinkle, jitsi, linphone, ou outro de sua preferência). O Asterisk roda somente no Linux, portanto deve-se ter esse sistema operacional no seu computador ou em uma máquina virtual Virtualbox. Para facilitar a realização desses experimentos, seguem algumas opções.

Usando uma máquina virtual Virtualbox

Neste cenário, executa-se uma máquina virtual com o Asterisk, e os softphones na máquina real. A máquina real (sistema hospedeiro) pode ser tanto Linux quanto Windows, porém no primeiro caso funciona melhor. Os softphones podem também estar em outros computadores, laptops ou smartphones. Mas para fazer experimentos desta forma é necessário primeiro ter a máquina virtual, que pode ser obtida no link a seguir:

Para instalá-la siga estes passos:

  1. Execute o VirtualBox, e então selecione o menu "Arquivos" e a opção "Importar Appliance";
  2. Essa nova MV aparece na lista. Execute-a para testá-la.
  3. Entre com usuário aluno e senha aluno.
  4. O Asterisk deve estar em execução. Teste-o usando o comando sudo rasterisk -vvv.
  5. Veja os canais SIP (um para cada telefone IP ou softphone) que já estão definidos em /etc/asterisk/sip.conf. São os mesmos que usamos em aula.
  6. Observe o plano de discagem em /etc/asterisk/extensions.conf. Ele possibilita chamadas entre os softphones, e também para o número especial 999' (experimente-o).
  7. Saia da interface do rasterisk usando o comando quit'.
  8. Ao terminar, não esqueça de encerrar a máquina virtual com o comando halt.

Os softphones podem ser o twinkle, que usamos em aula, ou o jitsi, que roda tanto no Linux quanto Windows.

Lembre que se houver dois softphones no mesmo computador, eles deverão usar ports UDP diferentes para o protocolo SIP. Experimente usar port 5060 em um softphone, e 5062 no outro.

Usando o Asterisk diretamente no seu computador (na máquina real)

Você deve ter o Linux instalado no seu computador para rodar diretamente o Asterisk. Assumindo que seja o Ubuntu ou Debian Linux, siga estes passos:

  1. Instale o Asterisk:
    sudo apt-get istall asterisk
    
  2. Copie estes arquivos para dentro de /etc/asterisk:
  3. Reinicie o Asterisk:
    sudo service asterisk restart
    
  4. Use o rasterisk para acessar o console do Asterisk:
    sudo rasterisk -vvv
    
  5. Inicie os softphones (jitsi ou twinkle). Configure-os para usarem as contas SIP 100 e 101, registrando-se no Asterisk que está no IP 127.0.0.1. Lembre de colocar os softphones em ports SIP diferentes (ex: 5062 e 5064).
  6. Tente fazer chamadas, observando as mensagens de aviso na tela do rasterisk.

Plano de discagem

O plano de discagem define como cada chamada deve ser processada. As instruções de processamento residem no arquivo de configuração /etc/asterisk/extensions.conf. O fluxo de processamento de chamadas pode ser visto resumidamente abaixo:

Asterisk-fluxo.png


Um exemplo de plano de discagem simples pode ser visto abaixo:

[alunos]; o nome deste contexto

# Chamadas para o número 101 são feitas via SIP para o canal "maria"
exten=>101,1,Dial(SIP/maria)
same=>n,Hangup()

# Chamadas para "teste" serão atendidas com um som de beep, seguido 
# da reprodução do arquivo de som "hello-world", em seguida outro beep e
# enfim se encerra a chamada.
exten=>teste,1,Playback(beep)
same=>n,Wait(1)
same=>n,Playback(hello-world)
same=>n,Wait(1)
same=>n,Playback(beep)
same=>n,Hangup

A estrutura do plano de discagem é composta por extensões (um termo específico do Asterisk). Cada extensão identifica um número (ou usuário) que pode ser chamado, e como essa chamada deve ser processada. A sintaxe pode ser vista abaixo:

exten=>identificador,prioridade,aplicação
  • identificador: o número ou usuário chamado
  • prioridade: a prioridade da extensão. Isso determina a ordem de execução das extensões que tratam do mesmo identificador.
  • aplicação: uma ação a ser realizada quando a extensão for processada. Por exemplo, a aplicação Dial determina que deve ser encaminhada a outro canal.

Como o processamento de uma chamada usualmente envolve uma sequência de extensões, existe uma sintaxe opcional para simplificar a declaração:

exten=>identificador,prioridade,aplicação
same=>prioridade,aplicação
  • same: declara uma nova extensão com mesmo identificador da extensão imediatamente anterior

Por fim, a prioridade (que define a ordem com que as extensões são processadas) declarada com o valor n equivale à prioridade da extensão imediatamente anterior incrementada em uma unidade:

exten=>101,1,Dial(SIP/101)
same=>n,Hangup; a prioridade aqui terá o valor 2

Canais SIP

Cada telefone SIP deve ter seu identificador cadastrado no Asterisk. O identificador pode tanto ser um número, análogo a um ramal, ou uma string alfanumérica. No terminologia do Asterisk, cada telefone SIP é chamado de canal SIP, e deve estar declarado em /etc/asterisk/sip.conf:

; Canal 2000 (um exemplo)
[2000]
username=2000 ; o nome do usuário para fins de autenticação
secret=kabrum
type=friend ; pode efetuar e receber chamadas
host=dynamic ; pode conectar-se a partir de qualquer endereço IP
insecure=port,invite ; a segurança está associada ao registro do canal (primeiro
 passo),
                     ; assim como acontece em sessões Web
context=alunos ; o contexto padrão do João. O arquivo extensions.conf o definirá
disallow=all
allow=gsm ; habilita este codec para o João. Os vários codecs serão vistos em se
guida,
          ; já que cada um deles tem suas particularidades.
allow=alaw ; outro codec
allow=ulaw ; mais um codec
qualify=yes; mostra a qualidade, em ms, da conexão entre UAC e UAS.

; Canal joao (outro exemplo)
[joao]
username=joao ; o nome do usuário para fins de autenticação
secret=blabla
type=friend ; pode efetuar e receber chamadas
host=dynamic ; pode conectar-se a partir de qualquer endereço IP
insecure=port,invite ; a segurança está associada ao registro do canal (primeiro
 passo),
                     ; assim como acontece em sessões Web
context=alunos ; o contexto padrão do João. O arquivo extensions.conf o definirá
disallow=all
allow=gsm ; habilita este codec para o João. Os vários codecs serão vistos em se
guida,
          ; já que cada um deles tem suas particularidades.
allow=alaw ; outro codec
allow=ulaw ; mais um codec
qualify=yes; mostra a qualidade, em ms, da conexão entre UAC e UAS.

Como se pode notar, a declaração de um canal SIP envolve muitos parâmetros que envolvem autenticação, controle de acesso, localização na rede, codecs e possivelmente outras capacidades. Como os valores de alguns parâmetros podem ser iguais para vários canais, o Asterisk possibilita a declaração de perfis (templates):

; Perfil alunos
[alunos](!);  a sequência "(!)" define isto como um perfil
type=friend ; pode efetuar e receber chamadas
host=dynamic ; pode conectar-se a partir de qualquer endereço IP
insecure=port,invite ; a segurança está associada ao registro do canal (primeiro
 passo),
                     ; assim como acontece em sessões Web
context=alunos ; o contexto padrão do João. O arquivo extensions.conf o definirá
disallow=all
allow=gsm ; habilita este codec para o João. Os vários codecs serão vistos em se
guida,
          ; já que cada um deles tem suas particularidades.
allow=alaw ; outro codec
allow=ulaw ; mais um codec
qualify=yes; mostra a qualidade, em ms, da conexão entre UAC e UAS.

; Canal 2000
[2000](alunos); a sequência "(alunos)" copia as definições do perfil "alunos"
username=2000 ; o nome do usuário para fins de autenticação
secret=kabrum

; Canal joao
[joao](alunos)
username=joao ; o nome do usuário para fins de autenticação
secret=blabla

Experimento: comunicação entre telefones IP ou softphones por meio de um PBX IP

Para realizar esses exercícios você deve usar o Asterisk na máquina virtual rmu-asterisk. Para testar as chamadas, use o softphone jitsy ou twinkle na máquina real, e um telefone IP.


1. Criar as seguintes contas SIP:
sip.conf
[general]

[alunos](!)
type=friend ; pode efetuar e receber chamadas
host=dynamic ; pode conectar-se a partir de qualquer endereço IP
insecure=port,invite ; a segurança está associada ao registro do canal (primeiro passo),
                     ; assim como acontece em sessões Web
disallow=all
allow=gsm ; habilita este codec para o João. Os vários codecs serão vistos em seguida,
          ; já que cada um deles tem suas particularidades.
allow=alaw ; outro codec
allow=ulaw ; mais um codec
qualify=yes; mostra a qualidade, em ms, da conexão entre UAC e UAS.
context=alunos
 
[100](alunos)
username=100
secret=100

[101](alunos)
username=101
secret=101
extensions.conf
[alunos]; contexto alunos
exten=>_10X,1,Dial(SIP/${EXTEN})
same=>n,Hangup

2. Crie um plano de discagem em que todos podem fazer chamadas para todos (isso é, 100 pode chamar 101, e vice-versa).

3. Execute o Jitsy ou Twinkle, configurando-o para registrar no Asterisk. Isso é feito especificando a conta SIP da seguinte forma (exemplo com o canal SIP 100):
100@IP_do_PBX_Asterisk

4. Instale um telefone IP, configurando-o apropriadamente para que registre sua conta SIP no PBX Asterisk. Isso vai depender do modelo de telefone IP (Voiper da Intelbras, ou o telefone da Khomp).

5. A partir do softphone faça uma chamada para a conta do telefone IP. Verifique se o telefone IP acusou o recebimento de chamada. Caso isso não tenha ocorrido, verifique seu plano de discagem.

6. Execute o wireshark, e ponha-o em modo de captura em todas as interfaces (pseudo-interface any).

7. Repita a chamada de um softphone ao telefone IP. No telefone IP atenda a chamada, e alguns segundos depois encerre-a.

8. No wireshark interrompa a captura, e em seguida acesse o menu Telephony->VoIP Calls. Selecione uma chamada, e visualize o diagrama de mensagens SIP. Siga cada mensagem SIP (clique no diagrama), e observe a mensagem selecionada no painel de captura do wireshark. Identifique as transações (observe os códigos de resposta) e os diálogos. Você pode usar estes diagramas para se guiar.

Questões:

  1. Que papel desempenhou o Asterisk para os softphones ? UAC, UAC ou algo diferente ?
  2. Entre que agentes ocorreram os diálogos identificados ?
  3. Como o Asterisk conseguiu identificar o telefone chamado (i.e. localizar onde ele estava na rede) ?

Como testar as chamadas

Para testar as chamadas, são necessários um softphone e um telefone IP, além do Asterisk.

  1. Em cada softphone ou telefone IP crie uma conta SIP, que deve ser identificada por ramal@IP_do_PBX (ex: se o PBX tiver IP 192.168.2.110, as contas de alunos podem ser 100@192.168.2.110 e 101@192.168.2.110).
  2. Após definir as contas, verifique se os telefones indicaram que elas estão disponíveis (online). Você pode fazer essa verificação também no próprio Asterisk. Neste caso execute o seguinte comando para acessar o console do Asterisk:
    sudo rasterisk -vvv
    host*CLI> sip show peers
    host*CLI> sip show peers
    Name/username              Host             Dyn Nat ACL Port     Status     
    101/101                    192.168.2.10       D          11270    OK (6 ms)
    102/102                    192.168.2.210      D          63169    OK (12 ms)
    2 sip peers [Monitored: 2 online, 0 offline Unmonitored: 0 online, 0 offline]
    
  3. Se algum dos telefones não aparecer como OK no console do Asterisk, verifique se o número de ramal e a senha configuradas no telefone são os mesmos declarados em /etc/asterisk/sip.conf. Outro teste que se pode fazer é acessar o console do Asterisk, e depois tentar ativar as contas SIP nos telefones (i.e. colocá-las para indisponível ou offline, e depois reativá-las). O Asterisk irá mostrar algumas linhas informativas sobre os registros dos telefones (lembre que ao ativar uma conta SIP, ela é registrada no Asterisk usando uma mensagem SIP do tipo REGISTER).
  4. Se as contas SIP estão devidamente registradas no Asterisk, mas ainda assim as chamadas não são realizadas, o problema deve estar no plano de discagem. Isso fica evidente se ao tentar fazer uma chamada obtém-se uma mensagem de erro do tipo 404 not found. Neste caso, acesse o console do Asterisk e tente novamente fazer a chamada. Veja se o Asterisk informa na tela o motivo para a chamada não ser realizada. Em seguida, confira se seu plano de discagem (/etc/asterisk/extensions.conf) possui uma extensão que satisfaça a chamada que se deseja realizar. Isso é, se você estiver tentando chamar o ramal SIP 101@192.168.2.110, deve haver uma extensão assim:
    exten=>101,1,Dial(SIP/101)
    same=>n,Hangup
    
Entrega para a próxima aula 24/03 - atividade em dupla - enviar por email os códigos da configuração

Criar as seguintes contas SIP e contextos:

  1. alunos Contas: 100 e 101
  2. professores Contas: 200 e 201
  3. coordenacao Contas: 300 e 3012


a) Criar um plano de discagem de forma que as contas SIP do contexto alunos so possam atingir outras contas SIP deste contexto.
b) Faca o mesmo para o contexto professores.
c) Contas SIP do contexto coordenação poderão atingir, alem das contas SIP deste contexto, as contas dos contextos alunos e professores.
d) Implementar caixa de correio de voz para cada extensão e criar uma extensão em cada contexto para permitir a consulta ao correio de voz.


23/03 (-> ANP em 06/04 - aula assíncrona com vídeo de apoio) - AE3 - VoIP codecs

23/03 (-> ANP em 06/04 - aula assíncrona com vídeo de apoio) - AE3 VoIP codecs

Objetivos

Parte Teórica
  • Assista o vídeo da Webinar (seminário via Web) até o tempo 36:45' Codificadores de Voz do projeto PBX ISSABEL]: As bases sobre a padronização e diferenças de codificação para voz na Telefonia IP. Embora seja uma referência mais antiga (2017), o conteúdo ainda é bem contemporâneo;
  • O vídeo acima, do tempo 36:45' à 51:00' é sobre a configuração da interface gráfica do PBX ISSABEL: Será útil somente quando tivermos a oportunidade das aulas prática. Entretanto é válido pra entender como configurar codecs em ambientes ASTERIX.
  • Do minuto 51 até o final são perguntas realizadas no final do seminário (uma foi minha ;D);
  • AE3 e Validação de conteúdo e presença da aula remota: ATIVIDADE PUBLICADA NO SIGAA: Questionário sobre CODECs em PBX IP referente ANP de 06/04 (Atenção! Assista o vídeo de apoio da aula do dia 23/03 antes de abrir o questionário!)
  • Use a leitura dos links de apoio abaixo pra ajudar a responder as questões se for necessário também!
Links de apoio
Parte Prática (fica pendente para o retorno das aulas presenciais)
  • Analisar a sinalização SIP quando se usa o PBX IP.
  • Analisar a negociação de midia feita pelo protocolo SDP.
  • Observar e diferenciar a transmissão de midia com diferentes codecs de áudio.


Tip-Pbx-intro.png


Quando um PBX IP intermedia a stream de áudio, então ele funciona também como gateway de media. Isso possibilita que os dois telefones IP usem codecs de áudio diferentes, e nesse caso o PBX IP faz a tradução de uma codificação para a outra ao intermediar o áudio. Além disso, um gateway de media facilita o envia da stream de áudio entre os telefones IP, quando eles estão em redes diferentes (e existem firewalls e tradutores NAT entre eles).

A sinalização SIP apresenta algumas diferenças em relação ao caso em que a chamada ocorre diretamente entre dois telefones IP. Isso se dá porque o PBX IP, apesar de fazer parte da sinalização, não ser a rigor o telefone IP chamado nem o chamador. Os detalhes de como essa troca de mensagens SIP é realizada são introduzidos a seguir.

Chamada entre dois agentes SIP com intermediação de um gateway de media

A chamada é feita inicialmente para o PBX IP, que intermedia tanto as mensagens SIP quanto a stream de áudio (pacotes RTP). Isso possibilita que dois agentes estabeleçam uma chamada mesmo usando codecs diferentes, pois o gateway de media fará a tradução entre codecs.

Fone 1            PBX IP              Fone 2
              (directmedia=no)        
     |                |                |
     |   INVITE       |                |
     |--------------->|   INVITE       |
     |  100 Trying    |--------------->| 
     |<---------------|  100 Trying    |
     |                |<---------------| 
     |                |   180 Ringing  |
     |   180 Ringing  |<---------------|                
     |<---------------|                |      
     |                |    200 Ok      |
     |     200 Ok     |<---------------|
     |<---------------|                |
     |     ACK        |                |
     |--------------->|    ACK         |
     |                |--------------->|
     |    RTP Media   |   RTP Media    |
     |<==============>|<==============>|
     |     BYE        |                |
     |--------------->|    BYE         |
     |                |--------------->|
     |                |    200 Ok      |
     |     200 Ok     |<---------------|
     |<---------------|                |
     |                |                |
30/03 (-> parte prática - sem aula remota - diluídas em semanas seguintes com atividades via SIGAA) - Laboratório com Codecs - Análise da negociação

30/03 (-> parte prática - sem aula remota) - Laboratório com Codecs - Análise da negociação

Roteiro de Laboratório

  1. Execute a máquina virtual Integrado-Asterisk. Verifique se o Asterisk já está ativado (ele deveria ser iniciado automaticamente ... caso contrário execute sudo service asterisk restart).
  2. Execute o wireshark e inicie a captura de datagramas UDP em todas as interfaces (o nome da interface deve ser any, e o filtro de captura deve ser udp).
  3. Execute dois softhones (twinkle e jitsi). Em um deles crie a conta SIP 100@IP_da_maq_virtual, e no outro cria a conta SIP 101@IP_da_maq_virtual. O IP_da_maq_virtual é 192.168.2.100+número_do_computador (ex: no computador 2 é 192.168.2.102).
  4. Faça uma chamada entre os softphones, atenda-a e em seguida encerre-a.
  5. Procure no wireshark as mensagens SIP trocadas entre os softphones e o Asterisk. Desenhe um diagrama de troca de mensagens usando este modelo.
  6. Observe os cabeçalhos Call-Id, From, To, Via, CSeq das mensagens SIP. Quais mantiveram seus valores ao longo de todas transações, e quais mudaram ?
  7. As mensagens SIP tinham por objetivo estabelecer uma chamada de áudio entre os softphones. Essa informação está no corpo das mensagens INVITE, o qual possui uma mensagem de outro protocolo chamado SDP. Observe as informações contidas na mensagem SDP, e identifique:
    • O tipo de midia a ser transmitida
    • O endereço IP, port e protocolo de transporte de midia a serem usados para essa transmissão.
    • Os codecs que podem ser usados para a transmissão de midia.
  8. A negociação sobre a transmissão de midia se concretiza na mensagem 200 OK em resposta ao INVITE. Observe que ela também contém uma mensagem SDP. Observe as informações ali contidas e compare-as com as que havia no INVITE. Como essa resposta complementa o que foi informado no INVITE ?
  9. Uma vez estabelecida a chamada, ocorre a transmissão da midia. Qual o protocolo utilizado ? Que informações ele contém em seu cabeçalho ? Descubra essas informações observando o que mostra o wireshark.
  10. Experimente estabelecer chamadas com diferentes codecs, e observe a negociação realizada com SDP.
Tarefa desafio para casa.

Combine com um colega de realizarem uma chamada VoIP entre softphones a partir de suas residências. Usem como PBX IP o servidor integrado.sj.ifsc.edu.br com contas SIP 100@integrado.sj.ifsc.edu.br a 1099@integrado.sj.ifsc.edu.br (as senhas são as mesmas que as contas, acrescidas do sufixo qwe - ex: 1000@integrado.sj.ifsc.edu.br tem senha 1000qwe). Escreva um breve relatório que descreva como foi realizado o experimento, se a chamada teve sucesso, que problemas apareceram, qual o diagnóstico para esses problemas e que soluções foram encontradas; inclua a troca de mensagens SIP feita pelo seu softphone (descubra isso com o wireshark).

06/04 (-> ANP em 27/04 - videoaula assíncrona) - A transmissão de mídia. Protocolos RTP e RTCP.

06/04 (-> ANP em 27/04 - videoaula assíncrona) - A transmissão de mídia. Protocolos RTP and RTCP.

Vídeo-aula do dia


O transporte do áudio nas chamadas VoIP

SDP (Session Description Protocol)

Ao iniciar uma chamada com SIP, a negociação de midia a ser transmitida é especificada no corpo da mensagem INVITE. O formato da especificação é descrito pelo protocolo SDP (Session Description Protocol), contendo as seguintes informações:

  • Endereço IP
  • Perfil RTP (usualmente RTP/AVP)
  • Número de port do protocolo de transporte (usualmente UDP)
  • Tipo de midia (audio, video, e possivelmente outros)
  • Esquema de codificação de midia (o tipo de codec a ser usado)
  • Assunto da sessão (uma descrição)
  • Horários de início e fim
  • Identificação do contato da sessão

Assim como SIP, SDP codifica suas informações em texto simples. Uma mensagem SDP é composta por linhas de texto chamadas de campos, cujos nomes são abreviados por uma única letra. Os campos de uma mensagem SDP são:

Sdp-fields.png
Tabela de campos SDP


Um exemplo de mensagem SDP segue abaixo:

Sdp-msg.png


A descrição completa de cada campo, e os possíveis valores que ele pode assumir, pode ser lida nas referências (em especial, * neste capítulo de livro).

Protocolo RTP


O protocolo RTP (Real-Time Protocol) foi desenvolvido para possibilitar o transporte de datagramas de tempo-real contendo voz, video, ou outro tipo de dados, sobre IP. Tanto H.323 quanto o modelo SIP usam RTP para o transporte de media, tornando-o o padrão mais comum para comunicações desse tipo na Internet. Apesar desse protocolo não prover qualidade de serviço (i.e. ele não possui mecanismos para atender tais tipos de requisitos), ele torna possível a detecção de alguns dos problemas introduzidos por uma rede IP, tais como:

  • Perda de pacotes
  • Atraso fim-a-fim variável
  • Chegada de pacotes fora de ordem


Esses problemas não são novidade ... nós já foi discutido nas disciplina de redes de computadores da terceira (ou sétima) fase. O que há de novo é um protocolo que dá subsídios para as técnicas que buscam atender requisitos de qualidade de serviço. Esses subsídios são informações providas pelo RTP para ajudar a identificar os problemas citados acima, as quais são:

  • Identificação do tipo do conteúdo que está sendo carregado (codec): isso informa ao receptor como ele deve decodificar o conteúdo transportado (ver esta tabela de identificadores de codec usados pelo RTP)
  • Numeração de sequência: essa informação possibilita identificar pacotes perdidos ou fora de ordem.
  • Marcação de tempo (timestamp): com isso é possível efetuar o cálculo de variação de atraso e implementar algum mecanismo de sincronização com a fonte (ex: atraso de reprodução).


Essas informações fazem parte da PDU RTP, como se pode ver a seguir:

Localização do RTP na camada de transporte Cabeçalho RTP
Rtp1.png Tip-Rtp-header.png


Tip-Rtp-avp.png
Perfil RTP/AVP, com codecs e seus códigos numéricos

RTCP

Além do RTP, o protocolo auxiliar RTCP (Real-Time Control Protocol, também definido na RFC 3550) foi definido para o monitoramento da entrega dos pacotes (recepção da stream). Com esse protocolo, os participantes de uma sessão de media podem fazer o intercâmbio de relatórios e estatísticas. Cada tipo de relatório é transportado por um tipo de pacote RTCP. O uso de relatórios possibilita o feedback sobre a qualidade da comunicação, incluindo informações como:

  • Número de pacotes enviados e recebidos
  • Número de pacotes perdidos
  • Jitter (variação de atraso)

Os cinco tipos de relatórios são:

  • Relatório do transmissor (Sender Report - SR)
  • Relatório do receptor (Receiver Report - RR)
  • Descrição da fonte (Source Description - SDES)
  • Bye
  • Específico da aplicação (Application Specific - APP)

Como o tráfego RTCP é puramente overhead, o protocolo foi projetado para que seu consumo da capacidade da rede seja constante, não importa quantos participantes da sessão de media existam. A ideia é que quanto mais participantes houver, menos frequentemente os relatórios RTCP são enviados. Por exemplo, se em uma conferência houver somente dois participantes, os relatórios podem ser enviados a cada 5 segundos. Se houver quatro participantes, os relatórios são enviados a cada 10 segundos. Com isso o consumo de banda para relatórios se mantém constante e previsível.

Atividade SIGAA
FÓRUM - Título:RTP - O protocolo da vida digital!

Descrição
Sabendo da fundamental utilidade deste protocolo na vida real apoiado pelos seus irmãos SDP e RTCP, apresente argumentos TÉCNICOS E CONCEITUAIS pra confirmar ou não que ele foi uma criação pra lá de importante para o cotidiano da sociedade.

Autor(a):JORGE HENRIQUE BUSATTO CASAGRANDE Monitorar Leitura: SIM Tipo: Fórum P & R (perguntas e respostas) Ordenação Padrão: Mostrar respostas aninhadas Criado em: 28/04/2020 00:39


13/04 (-> Parte prática- sem aula remota - diluídas em semanas seguintes com atividades via SIGAA) - Laboratório com RTP e RTCP - Análise de jitter, latência, erros.

13/04 (-> Parte prática- sem aula remota) - Laboratório com RTP e RTCP - Análise de jitter, latência, erros.

Roteiro de Laboratório

Essa atividade busca ilustrar os fluxos RTP com um exemplo:

  1. Estabeleça uma chamada VoIP entre dois softphones usando o Asterisk como intermediário.
  2. Execute o wireshark no computador onde roda o Asterisk, e ative a captura de datagramas UDP.
  3. Observe os pacotes RTP capturados pelo Wireshark. Selecione alguns deles e investigue as informações contidas em seu cabeçalho. Procure identificar o codec usado e as marcações de tempo. Compare as marcações de tempo do RTP com os instantes de recepção desses pacotes.
  4. Estime o jitter durante a recepção de ao menos 15 segundos de audio.
  5. Observe os relatórios RTCP:
    • Que tipos de relatórios são enviados ?
    • Com que frequência esses relatórios são transmitidos ?
    • Que informações esses relatórios contêm ?
  1. Execute a máquina virtual Integrado-Asterisk. Verifique se o Asterisk já está ativado (ele deveria ser iniciado automaticamente ... caso contrário execute sudo service asterisk restart).
  2. Execute o wireshark e inicie a captura de datagramas UDP em todas as interfaces (o nome da interface deve ser any, e o filtro de captura deve ser udp).
  3. Execute dois softhones (twinkle e jitsi). Em um deles crie a conta SIP 100@IP_da_maq_virtual, e no outro cria a conta SIP 101@IP_da_maq_virtual. O IP_da_maq_virtual é 192.168.2.100+número_do_computador (ex: no computador 2 é 192.168.2.102).
  4. Faça uma chamada entre os softphones, atenda-a e em seguida encerre-a.
  5. Procure no wireshark as mensagens SIP trocadas entre os softphones e o Asterisk. Observe os cabeçalhos Call-Id, From, To, Via, CSeq das mensagens SIP. Quais mantiveram seus valores ao longo de todas transações, e quais mudaram ?
  6. As mensagens SIP tinham por objetivo estabelecer uma chamada de áudio entre os softphones. Essa informação está no corpo das mensagens INVITE, o qual possui uma mensagem de outro protocolo chamado SDP. Observe as informações contidas na mensagem SDP, e identifique:
    • O tipo de midia a ser transmitida
    • O endereço IP, port e protocolo de transporte de midia a serem usados para essa transmissão.
    • Os codecs que podem ser usados para a transmissão de midia.
  7. A negociação sobre a transmissão de midia se concretiza na mensagem 200 OK em resposta ao INVITE. Observe que ela também contém uma mensagem SDP. Observe as informações ali contidas e compare-as com as que havia no INVITE. Como essa resposta complementa o que foi informado no INVITE ?
  8. Uma vez estabelecida a chamada, ocorre a transmissão da midia. Qual o protocolo utilizado ? Que informações ele contém em seu cabeçalho ? Descubra essas informações observando o que mostra o wireshark.
  9. Experimente estabelecer chamadas com diferentes codecs, e observe a negociação realizada com SDP.
  10. Observe os pacotes RTP capturados pelo Wireshark. Selecione alguns deles e investigue as informações contidas em seu cabeçalho. Procure identificar o codec usado e as marcações de tempo. Compare as marcações de tempo do RTP com os instantes de recepção desses pacotes.
  11. Estime o jitter durante a recepção de ao menos 15 segundos de audio.
  12. Observe os relatórios RTCP:
    • Que tipos de relatórios são enviados ?
    • Com que frequência esses relatórios são transmitidos ?
    • Que informações esses relatórios contêm ?
27/04 (-> ANP em 08/06, 15/06 e 22/06 - videoaulas síncronas) - AE4 - Revisão SIP - SDP - RTP Exercícios de Revisão e Simulação de Redes de Telefonia IP.

27/04 (-> NP em 08/06, 15/06 e 22/06 - videoaulas síncronas) - AE4 - Revisão SIP - SDP - RTP Exercícios de Revisão e Simulação de Redes de Telefonia IP.

Videoaulas relacionadas com as Atividades trabalhadas
Passos básicos usados para a realização da configuração da rede - Tente ampliar a rede realizada com novos dispositivos!!!
Baixe o APP para vc usar os recursos do Packet Tracer no Celular
Material de apoio utilizado nas videoaulas
  • Packet Tracer APP É um pouco difícil usar na telinha, mas vale a pena pra não perder o ritmo no acompanhamento de nossas ANP.

AE4 - TAREFA PUBLICADA NO SIGAA - Revisão SIP - SDP - RTP de 25/05/2020 às 00h00 a 23/10/2020 às 23h59

Olá Pessoal! Vamos fazer uma pausa e revisar alguns pontos importantes do conteúdo até aqui??? Faça os exercícios abaixo e devolva eles resolvidos em formato de arquivo .pdf. Essa Atividade além de contabilizar para a "presença" de aula e para a avaliação individual AI, é a nossa Atividade Extra AE4.


1. Enumere as mensagens SIP usadas em uma chamada VoIP, e explique o significado de cada uma delas.

2. Para que serve o protocolo SDP? Em que mensagens SIP as mensagens SDP são incluídas ?

3. Como o áudio é transportado em uma chamada VoIP? Quais as características do protocolo utilizado para esse propósito?

4. Por que o protocolo RTP é transportado com UDP e não com TCP?

5. Desenhe um diagrama de uma chamada VoIP típica com um PBX como intermediário. Aponte nesse diagrama as mensagens, transações e diálogos SIP.

6. Assista o vídeo da aula 5 do Toth https://www.youtube.com/watch?v=gNhgxW7WJ6A e conclua o diagrama de tempo do exemplo de call on hold, considerando o encerramento da ligação por parte do Softphone.


04/05 (-> ANP em 03/08, 17/08 e 24/08 - videoaulas síncronas) - Avaliação A1

04/05 (-> ANP em 03/08, 17/08 e 24/08 - videoaulas síncronas) - Avaliação A1

Videoaula relacionadas com o encontro de hoje
Vamos recuperar o conteúdo antes de fazer uma avaliação sobre tudo o que vimos até aqui?

Começamos então acessando os links abaixo. São bons artigos da Teleco sobre VoIP. A Teleco é um portal fundado em 2002 por um grupo de profissionais da área de Telecomunicações, sócios da Teleco, uma empresa de consultoria.

O portal Teleco tinha como objetivo inicial criar uma comunidade virtual de profissionais, estudantes e pessoas interessada em Telecomunicações e acabou se transformando em um ótimo portal de informações do setor no Brasil especialmente aquelas relacionadas com o mercado, tecnologia e regulamentação do Brasil e da América Latina.

  1. Uma revisão geral teórica sobre a telefonia IP
  2. VoIP - caso prático

Ao final de cada artigo há três questões que você deve responder e devolver via tarefa cadastrada no SIGAA. Para certificar que você realizou, faça um print da tela com suas respostas, mesmo que não estejam corretas!

Qualquer que seja a pontuação alcançada na conclusão desse questionário, ela ficará nos registros do professor e nesse momento será utilizada para confirmar o "comparecimento" em nosso diário eletrônico do SIGAA, na data correspondente do dia previsto da aula presencial. Importante destacar que o resultado também será usado como nota adicional a ser contabilizada na avaliação individual (AI), prevista em nosso plano de ensino. AI é a média aritmética de todas as atividades colocadas aqui nesse ambiente e das demais componentes informadas seguindo os critérios de avaliação da disciplina. Então sempre é bom usar daquele esforço para melhorar seus resultados, usufruindo das tentativas e oportunidades de cada avaliação.

Bem, vamos lá! Boa leitura!!!


11/05 - (-> ANP em 31/08 e conteúdo substituído para montagem do livro jogo do PI (Projeto Integrado com a disciplina ARC) A transmissão de mídia: problemas de rede, NAT, STUN, ICE - Entroncamentos SIP entre PBX IP.

11/05 - A transmissão de mídia: problemas de rede, NAT, STUN, ICE - Entroncamentos SIP entre PBX IP.

18/05 - (-> ANP em 14/09 e conteúdo substituído para montagem do livro jogo do PI (Projeto Integrado com a disciplina ARC) Qualidade de serviço e telefonia IP; Internetworking com PSTNs. MGCP e MEGACO. Uso dos equipamentos da KHOMP.

18/05 - Qualidade de serviço e telefonia IP; Internetworking com PSTNs. MGCP e MEGACO. Uso dos equipamentos da KHOMP.

25/05 - (-> ANP em 14/09) Desenvolvimento de Projeto Integrado com a disciplina ARC

25/05 - Desenvolvimento de Projeto

01/06 -(-> ANP em 21/09) Desenvolvimento de Projeto Integrado com a disciplina ARC

01/06 - Desenvolvimento de Projeto

08/06 - (-> ANP em 28/09) Desenvolvimento de Projeto Integrado com a disciplina ARC

08/06 - Desenvolvimento de Projeto

15/06 - (-> ANP em 05/10) Desenvolvimento de Projeto Integrado com a disciplina ARC

15/06 - Desenvolvimento de Projeto

22/06 - (-> ANP em 12/10) Desenvolvimento de Projeto Integrado com a disciplina ARC

22/06 - Desenvolvimento de Projeto

29/06 - (-> ANP em 19/10) - Apresentação dos Projetos

29/06 - Apresentação dos Projetos

06/07 - (-> ANPs individualizadas entre 19/10 à 23/10) Recuperações Final

06/07 - Recuperação Final

PLANEJAMENTO DE ANP (NOVO PLANO DE ENSINO ADAPTADO) 03/08 - 23/10

03/08 - Recapitulação teórica da primeira parte da disciplina

03/08 - Recapitulação teórica da primeira parte da disciplina

Videoaula relacionadas com o encontro de hoje
Vamos recuperar o conteúdo antes de fazer uma avaliação sobre tudo o que vimos até aqui?

Começamos então acessando os links abaixo. São bons artigos da Teleco sobre VoIP. A Teleco é um portal fundado em 2002 por um grupo de profissionais da área de Telecomunicações, sócios da Teleco, uma empresa de consultoria.

O portal Teleco tinha como objetivo inicial criar uma comunidade virtual de profissionais, estudantes e pessoas interessada em Telecomunicações e acabou se transformando em um ótimo portal de informações do setor no Brasil especialmente aquelas relacionadas com o mercado, tecnologia e regulamentação do Brasil e da América Latina.

  1. Uma revisão geral teórica sobre a telefonia IP
  2. VoIP - caso prático

Ao final de cada artigo há três questões que você deve responder e devolver via tarefa cadastrada no SIGAA. Para certificar que você realizou, faça um print da tela com suas respostas, mesmo que não estejam corretas!

Qualquer que seja a pontuação alcançada na conclusão desse questionário, ela ficará nos registros do professor e nesse momento será utilizada para confirmar o "comparecimento" em nosso diário eletrônico do SIGAA, na data correspondente do dia previsto da aula presencial. Importante destacar que o resultado também será usado como nota adicional a ser contabilizada na avaliação individual (AI), prevista em nosso plano de ensino. AI é a média aritmética de todas as atividades colocadas aqui nesse ambiente e das demais componentes informadas seguindo os critérios de avaliação da disciplina. Então sempre é bom usar daquele esforço para melhorar seus resultados, usufruindo das tentativas e oportunidades de cada avaliação.

Bem, vamos lá! Boa leitura!!!


10/08 - Discussão sobre o futuro das ANP na disciplina

10/08 - Discussão sobre o futuro das ANP na disciplina

  • Realização de Enquete via SIGAA sobre acesso e recursos computacionais de todos os alunos em tempos de ANP;
  • Decisões serão tratadas no próximo encontro.
17/08 - Novos Rumos da disciplina

17/08 - Novos Rumos da Disciplina

Videoaula relacionada com o encontro de hoje
Novos rumos da disciplina
  • Decisão de integração ao projeto da disciplina ARC do professor Ederson;
  • Lista de exercícios de fechamento da primeira parte (teórica) da Disciplina e preparatória para avaliação A1;
  • Avaliação A1 será liberada via SIGAA a partir de 24/08.
24/08 - Projeto integrado com a Disciplina de ARC

24/08 - Projeto integrado com a Disciplina de ARC

31/08 - Projeto integrado com a Disciplina de ARC

31/08 - Projeto integrado com a Disciplina de ARC

14/09 - Projeto integrado com a Disciplina de ARC

14/08 - Projeto integrado com a Disciplina de ARC

21/09 - Projeto integrado com a Disciplina de ARC

21/09 - Projeto integrado com a Disciplina de ARC

28/09 - Projeto integrado com a Disciplina de ARC

28/09 - Projeto integrado com a Disciplina de ARC

05/10 - Projeto integrado com a Disciplina de ARC

05/10 - Projeto integrado com a Disciplina de ARC

12/10 - Flexibilização para fechamento de alunos defasados nas ANP

12/10 - Flexibilização para fechamento de alunos defasados nas ANP

19/10 - Flexibilização para fechamento de alunos defasados nas ANP

19/10 - Flexibilização para fechamento de alunos defasados nas ANP







Voltar