Protocolo SIP - O que é?
Essencialmente, o SIP (Session Initiation Protocol) é o protocolo que dita como podemos fazer e receber chamadas, bem como receber e enviar informações.
O SIP está tão intimamente relacionado ao VoIP (Voice Over Internet Protocol) que por vezes confunde-se VoIP com SIP. No entanto, o VoIP não é um protocolo por si só, mas um termo que é usado para definir o transporte da informação de voz através de um protocolo de Internet.
Apesar das principais funções e intenções do SIP, este não codifica as informações de uma chamada telefónica nem transporta os dados. Em vez disso, o papel do SIP é simples: inicia e encerra as sessões de comunicação. Isto vale para qualquer tipo de aplicação, desde chamadas de voz entre dois indivíduos até videoconferências com múltiplas partes envolvidas. SIP é um protocolo independente do tipo de tráfego que não é necessariamente voz, vídeo ou mesmo dados - pode ser qualquer coisa.
Simplificando, a principal função do SIP é criar chamadas, videoconferências em grupo e outras formas de comunicação interativa, bem como encerrar essas sessões uma vez terminadas, enviando mensagens através de endpoints que são chamados de "Endereços SIP". Estes endereços podem ser ligados através de dois métodos:
Cliente SIP físico, como um telefone IP;
Cliente de software (softphone) que tem de ter instalado num computador ou dispositivo móvel (tablet ou smartphone).
Basicamente, a comunicação não só não envolve um único protocolo mas também confia num conjunto de protocolos diferentes. Estes protocolos são então construídos uns sobre os outros através de camadas. Este processo também é conhecido como uma pilha de protocolos. Há uma infinidade de modelos diferentes sobre como os protocolos se constroem uns sobre os outros. O modelo mais comum e conhecido é o Modelo de Referência OSI (Open Systems Interconnection). O OSI tem as seguintes camadas por ordem:
Aplicação (SIP, RTP, RTCP, etc.)
No que diz respeito ao SIP, há dois tipos de camadas envolvidas.
A camada de transporte controla a velocidade, a ordem e a confiabilidade da troca de dados. Isso também inclui dados que são transmitidos por chamadas de voz. Para que os dados possam ser transportados através da Internet, têm de ser divididos em pacotes. Esta camada também regula e manipula as rotas e o processo de ordenação de pacotes de dados à medida que são transmitidos. A camada de transporte tem 2 protocolos:
Protocolo de Controle de Transmissão (TCP) - Este é um programa que é projetado para transmitir os pacotes de dados enquanto também retransmite quaisquer dados que poderiam ter-se perdido no processo da transmissão.
User Datagram Protocol (UDP) - Ao contrário do TCP, este programa não retransmite os dados que podem ser perdidos durante o processo de transmissão. No entanto, transmite os dados através de pacotes.
Como o nome sugere, isto especifica as diferentes interfaces e protocolos para um fluxo mais específico sobre a conexão de rede que foi estabelecida. Neste caso, o SIP é um protocolo de camada de aplicação. Essencialmente, o SIP é a base de dispositivos modernos de comunicação interativa, tais como chamadas de voz, chamadas de vídeo e outras formas de comunicação, através da Internet.
Aqui estão algumas outras funções de que o SIP é capaz:
Localização e registo do utilizador - Os terminais das linhas telefónicas notificarão os procuradores SIP de suas localizações atuais.
Disponibilidade do utilizador - O SIP é utilizado para saber se uma pessoa está disponível para "atender" uma chamada, de modo a que uma sessão possa ser iniciada.
Capacidades do utilizador - O SIP é usado por vários endpoints como um meio para negociar capacidades de media. Um exemplo seria se ambas as partes concordassem com um codec de voz com suporte bidirecional.
Gstão de sessão - O SIP também é usado para transferir chamadas, encerrar chamadas e até mesmo alterar os parâmetros da chamada enquanto a sessão ainda estiver em execução. Um exemplo seria adicionar uma terceira pessoa à chamada em conferência.