Tecnologia líder no mercado de telecomunicações

Chamada VOIP com servidor SIP Redirect: Entenda como funciona este modelo


redirect-301

Na postagem Entenda como funciona um diálogo SIP foi abordado um ambiente em que o servidor SIP funciona como um Proxy Server, o qual recebe as requisições de chamada, faz o processamento necessário para encontrar o destino correto e encaminha esta requisição.

Neste post vamos abordar um outro modo de funcionamento de um servidor SIP, o modo Redirect Server (SIP Redirect).

No modo Redirect Server, ao receber uma requisição de nova chamada de um usuário do cadastrado, o servidor SIP faz o processamento desta requisição e identifica o endereço do usuário chamado (destino).Porém, neste caso, o servidor não encaminha a requisição para a terminação de destino, ele informa ao usuário que gerou a requisição qual é o endereço desta terminação, ou seja, o usuário pergunta ao servidor SIP em qual endereço está o destino, semelhante ao funcionamento de um servidor DNS. A imagem a seguir ilustra o funcionamento do Redirect Server.

Chamada VOIP com servidor SIP Redirect

Neste exemplo de fluxo de chamadas, é possível perceber claramente que a forma de comunicação entre o usuário Carlos e o servidor SIP está diferente do outro modo de operação do servidor. Abaixo explicaremos a comunicação dessa chamada VOIP passo-a-passo.

1 – O usuário Carlos discou para o usuário Lucien, encaminhando o invite para o servidor SIP responsável.
2 - O servidor recebeu a requisição do usuário Carlos e enviou uma mensagem 100 Trying para avisar ao usuário que ele recebeu e está processando a requisição.
3 – Após fazer o processamento e determinar em qual endereço o usuário Lucien está localizado, o servidor responde ao usuário Carlos com uma mensagem do tipo SIP Redirect, 302 Moved Temporaly (Movido Temporariamente), com as informações de localização do usuário Lucien. Note que é neste ponto onde efetivamente é feito o redirecionamento.
4 – O usuário Carlos confirma o recebimento da informação enviando um ACK para o servidor.
5 - Neste momento, o usuário Carlos já possui as informações de localização do usuário Lucien, então ele pode convidar o usuário Lucien para iniciar uma chamada diretamente (ponto-a-ponto). Deste modo ele envia um INVITE diretamente ao usuário Lucien, tentando estabelecer uma chamada VOIP.
6 - Como padrão, o usuário Lucien responde ao usuário Carlos com uma mensagem de 100 Trying para informar que recebeu a requisição e está processando a requisição.
7 - Em seguida é enviada uma mensagem de 180 Ringing para o usuário Carlos, avisando que o telefone está chamando.

Neste ponto é acionado o tom de chamando no telefone do usuário Carlos.
8 – Quando o usuário Lucien atende a chamada (tira o telefone do gancho), é enviada uma resposta 200 OK, confirmando o atendimento da chamada.
9 – Após confirmação de atendimento, o usuário Carlos envia uma mensagem ACK confirmando o recebimento da sinalização de atendimento.
10- Após a conclusão do atendimento, os canais de áudio são estabelecidos. Note que em uma conversa VoIP com protocolo SIP, são abertos dois canais de áudio distintos, um transportando a fala de cada usuário, e utilizando um protocolo diferente, o RTP.
11 – O usuário Carlos encerra a chamada (desligando o telefone) e o usuário Lucien é informado do encerramento com uma mensagem do tipo BYE.
12 - O usuário Lucien confirma a recepção da mensagem BYE e envia um 200 OK confirmando a conclusão da chamada.

Um fato importante deste modo de operação é que o servidor SIP só está presente no início da chamada VOIP, no momento em que o usuário Carlos faz a primeira requisição. Logo, neste modo, não é possível estabelecer nenhum controle sobre a chamada, como tarifação por exemplo, em contra partida o consumo de recursos computacionais do servidor é extremamente baixo.

Exemplo de um pacote SIP Redirect do tipo 302 Moved Temporaly:

SIP/2.0 302 Moved Temporarily
Via: SIP/2.0/UDP 192.168.0.60:5060;branch=z9hG4bK75e34909
From: “Carlos” <sip:carlos@sippulse.com>;tag=as5b24065c
To: <sip:lucien@sippulse.com:5060>;tag=2e0b3d452a5b9
Call-ID: 4b27cb9801205b371bcea2131c8bddfe@sippulse.com
CSeq: 103 INVITE
Contact: <sip:lucien@192.168.0.5:5060>
Server: Redirect Server
Content-Length: 0

Note que as informações de endereço do usuário Lucien estão presentes no campo Contact. Neste caso, foi informado ao usuário Carlos que o usuário Lucien está alcançável pelo IP 192.168.0.5 e pela porta 5060.

Nesta publicação, falamos somente de um tipo de resposta do servidor de Redirect, a 302 Moved Temporaly, que é a mais comum. Porém existem outras respostas disponíveis para a operação no modo Redirect, como, por exemplo, 300 Multiple Choices e 301 Moved Permanently.

Dúvidas? Sugestões? Deixe seu comentário!


Categorias: Dicas Suporte