Devido à sua ampla compatibilidade entre equipamentos e por ser um protocolo aberto e flexível, o SIP, considerado o protocolo padrão, é a estrela principal quando o assunto é VoIP (Voice over IP).
Desenvolvido pela IETF (Internet Engineering Task Force), em 1999, como alternativa ao H.323 implementado pela ITU (International Telecommunication Union) em 1996, o SIP, ou Session Initiation Protocol (Protocolo de Iniciação de Sessão), é um protocolo de comunicação utilizado para iniciar, modificar, manter e terminar sessões de voz, vídeo e até mesmo mensagens instantâneas sobre redes IP.
A flexibilidade de integração com outros protocolos de comunicação foi a grande vantagem em relação ao H.323. Esta vantagem fez com que o crescimento de sistemas SIP fosse crescendo tornando-se um padrão no mundo das comunicações de voz, criando assim uma melhor interoperabilidade entre outros sistemas. Outra grande vantagem foi a sua escalabilidade, pois foi projetado para lidar com vários utilizadores e sessões em simultâneo, e também a capacidade de lidar com vários tipos de redes (pública, corporativa ou redes privadas virtuais (VPN).
O SIP é baseado na arquitetura cliente-servidor funcionando na camada aplicação/sessão realizando a sinalização entre os dois dispositivos. É importante lembrar que o SIP é apenas responsável pela sinalização, sendo da responsabilidade do RTP (Real-time Transport Protocol) a transmissão de dados media, isto é, áudio, vídeo, etc. Para que a sinalização ocorra sem problemas, o cliente SIP envia uma solicitação (mensagem) ao servidor que localiza o destinatário da chamada estabelecendo assim uma sessão.
Conforme o RFC 3261, a mensagem inicial deverá conter os seguintes headers fields obrigatórios:
1. From: Deverá identificar a origem da mensagem;
2. To: Identifica o destino da mensagem;
3. Call-ID: Trata-se de um identificador único para cada sessão SIP (utilizado para correlacionar a mensagem inicial das seguintes respostas);
4. CSeq: O número da sequência das mensagens durante a sessão;
5. Max-Forwards: Especifica o número máximo de “hops” que a mensagem pode percorrer;
6. Via: Regista o caminho por onde a mensagem percorre;
7. Contact: Especifica o endereço direto do remetente.
Existem outros headers opcionais que são utilizados no protocolo, porém, entender estes header-fields obrigatórios, ajuda-nos perceber e analisar possíveis falhas na sinalização.
Outro tipo de análise que pode ser realizada é validar o tipo de mensagem SIP. Existem diferentes tipos de mensagens no protocolo, em que os mais comuns são:
REGISTER: Utilizado para registar o endereço de um utilizador no servidor.
INVITE: Colocado na “Request-Line”, é com ele que é possível gerar sessões SIP.
ACK: Uma abreviatura para acknowledge, utilizado para confirmar a receção de uma resposta.
CANCEL: Utilizada para cancelar uma solicitação pendente.
BYE: Mensagem de encerramento de uma sessão existente.
OPTIONS: Semelhante ao comando PING, utilizado para testar a disponibilidade e capacidade de resposta de um destino.
Em resumo, o SIP é um dos pilares da rede RCTS VoIP, é um protocolo fundamental para comunicações unificadas e outras aplicações de comunicação em tempo real através da internet. A sua utilização permite a redução de custos em comparação com os sistemas tradicionais de telefonia. Devido à sua flexibilidade de implementação, não só se torna o protocolo padrão para o VoIP, como se torna personalizável de forma a atender as necessidades específicas de cada organização.