Asterisk: Conceitos e suas descrições - Inforsolutions Consultoria e Tecnologia
Asterisk: Conceitos e suas descrições
Conceitos básicos para quem trabalha com VoIP e Asterisk
Asterisk e Linux no dia a dia: Conceitos e suas descrições no ramo VoIP
Rede, conceitos e suas descrições no ramo VoIP
Esse documento foi separado em duas partes. A primeira, com os termos e suas descriçoes no ramo VoIP, que influenciam na qualidade do serviço, e a segunda, que pode conferir clicando aqui, com ferramentas e comandos para monitorar seu Asterisk
Conceitos e suas descrições no ramo VoIP
Neste texto é apenas usado os símbolos < (Menor que) e > (Maior que) para ser mais prático a descrição de cada item.
Loss (Perda de Pacote)
- Recomendável: <1% (<0.5% Mais adequado; 0% ideal)
- >3%: Qualidade da ligação diminui.
- >6%: Ligação ruim, com muita dificuldade em manter o desempenho e a chamada fluída
- >10%: Um loss acima de 10% é totalmente inaceitável
Obs: Vale ressaltar que muitas estruturas de rede possuem Firewall, que bloqueia ou mitiga testes comumente utilizados para medir a latência, como o comando ping e outros. Nesses casos o resultado dos testes pode retornar um falso positivo de que a rede possui perda de pacote, quando na verdade essa perda não existe e ela só aparece devido a mitigação feita pelo Firewall no momento dos testes realizados.
- Geralmente é percebido quando o atraso é >10ms
- Extremamente disruptivo para uma ligação. Afeta a qualidade da chamada e a torna desagradável ao ponto de tornar algumas ligações totalmente incompreensíveis.
- As comunicações estabelecidas que possuem eco, em sua maioria, são rapidamente abandonadas pelos participantes.
- Os ecos são causados por diversos motivos, como a acustica de um ambiente, o circuito dos cabos que transmitem os dados da chamada, reflexão do sinal, atraso e latência na rede, etc
Latência (Conexão/Delay) e jitter (Afeta os pacotes)
- Jitter: Não há tradução exata em português. Pode ser interpretado como 'Perda de Pacotes', 'Oscilacão e/ou delay na latência', 'Variação do tempo esperado da rede', etc
- Latência recomendada: <100ms (<75ms Mais adequado)
- Jitter recomendado: <10ms
- Latências altas fazem com que algumas tecnologias sejam afetadas ou até mesmo parem de funcionar completamente, como por exemplo o 'Echo Cancellation' , tais como as causas descritas abaixo também podem ocorrer.
- Jitter >30ms pode causar: Picotamento, afetar a velocidade em que o áudio é reproduzido, entendimento dificultado de ambas as partes, perda de pacote, drop-out (Perda temporaria do sinal), etc
RTT/Round Trip Time
- O tempo que leva para o sinal sair do ponto de origem até o ponto de destino e ao voltar receber a sinalização de que esse sinal foi recebido com sucesso
- É somada a latência das duas direções na amostragem do RTT
- Codecs recomendados: G729, ULAW, ALAW (G723, GSM e iLBC podem também ser habilitados)
- O principal codec com relação à qualidade no Asterisk, que também está entre os mais utilizados, é o G729. Caso não seja possível utilizar o G729, opte pelo codec G7211 ULAW e G7211 ALAW que também são codecs bons e muito usados em ambientes Asterisk
- O G729, junto também do iLBC, são os melhores codecs quando se trata de conservar e estabilizar ligações com perdas de pacote
- Dentre todos os Codecs, o que possui o consumo de banda mais econômico e um MOS de quase 4 como o G711 (G711.A/G711.U possui alto consumo de banda*) é o G729.
- PCL: Packet Loss Concealment é um método simples integralmente utilizado como parte do design de alguns codecs, (Ex: G729) onde o dispositivo reproduz mais de uma vez o ultimo pacote entregue para disfarçar e camuflar um 'silêncio' / picotamento abrupto na chamada devido a um 'loss' repentino
QoS: Quality of Service (Qualidade de Serviço)
- Quando usamos esse termo no ramo de tecnologia, estamos falando de sistemas que gerem o tráfego da rede e necessitam reduzir problemas como 'Perda de Pacote', 'Latência alta', 'Jitter oscilando' e protocolos / dados utilizando mais largura de banda e performance do que precisam
- QoS controla e administra os recursos de rede, definindo e estruturando as prioridades de tudo que trafega no ambiente em produção, para estabilizar e melhorar o desempenho serviço, amenizando e corrigindo os problemas supracitados
- ToS / DSCP / DiffServ: É um campo encontrado que atua na Layer 3 da rede e em pacotes IPv4 com o intuito de categorizar as classes dos dados trafegados (Dados de rotina, erro, crítico, warning, etc)
- CoS: Class of Service (Classe de Serviço): Também é um campo destinado a classificar as classes de tráfico, porém atua na layer 2 (Segunda camada) da rede
RTP: Real Time Transport Protocol (Protocolo de Transporte em Tempo Real)
RTCP: Real Time Transport Control Protocol (Protocolo de Controle de Transporte em Tempo Real)
- Utiliza UDP (User Datagram Protocol)
- Os cabeçalhos de protocolo das chamadas possuem o seguinte tamanho: IP Header -> 20 Bytes; UDP Header -> 8 Bytes; RTP Header -> 12 Bytes; Voice Payload -> Bytes do CODEC
- O tamanho do RTP Header pode ser alterado com campos opcionais
- Campos RTP: Version (2bits); Padding (1bit); Extension (1bit); Contributing Source Identifiers Count(4bits);
Marker (1bit); Payload (7bits); Sequence number (2bytes); Timestamp;
Synchronization Source Identifier (SSRC);Contributing Souce Identifier (CSRC)
- Marker/Mark: Delimitador do frame no pacote
- SSRC: Origem do stream em tempo real; Agrupa os pacotes para a reprodução
- CSRC: Se refere à quantidade de origens para a mesma chamada. Geralmente é 0 pois geralmente o pacote contém um unico IP...
(Um caso onde esse número pode mudar é em chamadas que possuem áudio e vídeo no mesmo pacote, e transmitidos de um IPs diferentes) Usado para identificar multiplos sources de áudio e vídeo
- Além da descrição acima, é somado também o tamanho em bytes do payload de voz (Ex: G7211 -> 160 Bytes; G729 -> 20 Bytes)
- Para entender a estrutura e distribuição dos bytes de uma chamada, veja essa ilustração de um pacote RTP:
- O RTP garante confiabilidade na aplicação que utiliza o meio de transporte UDP
- Define um padrão nos pacotes enviados por sistemas de comunicação de VoIP
- RTCP: É responsável pela informação das estatísticas da chamada. Feedback e QoS sobre o stream RTP
- RTCP e RTP estão separados: Cada um usa uma porta diferente e seus 'headers' são diferentes...
SIP: Session Initiation Protocol (Protocolo Inicializador de Sessão)
- O protocolo SIP envia solicitações e mensagens de respostas com o objetivo de iniciar e estabelecer sessões entre dois ou mais dispositivos de telecomunicação através da internet.
- Faz uso do protocolo SDP (Session Description Protocol) para algumas sinalizações
- O método ACK (Confirmação de que o dado foi recebido com sucesso) do SIP é estruturado da seguinte forma: