Tópicos

Introdução

Protocolo de inicialização utilizado para criar, gerir e encerrar sessões em redes IP. Tal como o RTP, é amplamente utilizado na tecnologia VoIP.

Existir um momento de inicialização faz com que seja possível negociar quais os codecs (encoding) que serão utilizados durante as chamadas.

Processo

  • Alice envia uma mensagem SIP Invite indicando a sua porta e endereço IP, tal como o encoding preferencial
  • Bob responde com um OK indicando, também, a sua porta e endereço IP, tal como o encoding acordado
  • Após isso, as mensagens de áudio, por exemplo, podem começar a ser trocadas

Poderia acontecer de o Bob não possuir o codec sugerida pela Alice. Nesse caso, este enviaria uma mensagem Not Acceptable, listando todos os seus encoders. Depois, a Alice pode voltar a enviar um SIP Invite com um codec diferente e conveniente a ambos.

Além disso, é possível rejeitar chamadas, respondendo com diversos pacotes negativos: SIP Busy, SIP Gone, etc.

Domínios

No caso apresentado em cima, ambos os intervenientes sabiam o seu IP e porta. No entanto, existem casos em que a comunicação inicial é feita através de domínios (nomes, emails, números de telemóvel, etc) que precisam de ser resolvidos.

A utilização de domínios é favorável no sentido em que um certo utilizador poderá estar constantemente a trocar de rede, fazendo com que o DHCP lhe atribuia IPs diferentes.

SIP registrar

Entidade responsável por conter toda a informação necessária para mapear de nomes para IPs. Esta entidade é contactada, como forma de registar um novo mapeamento, pelos clientes através de uma mensagem do tipo SIP Register.

SIP Proxy

Entidade responsável por encaminhar as mensagens de inicialização entre clientes.

Exemplos

Nos próximos exemplos assume-se que os domínios foram corretamente registados nos devidos registrar, mesmo que um dos intervenientes esteja numa rede diferente do seu domínio.

Caso a Alice e o Bob estejam no mesmo domínio, o processo é o seguinte:

  • Alice envia uma mensagem SIP Invite para o proxy do seu domínio
  • Proxy pergunta ao registrar do domínio onde está o Bob e determina o seu IP
  • Proxy encaminha mensagem SIP Invite para o Bob
  • Bob recebe a mensagem e aceita, retornado uma mensagem OK
  • Proxy server encaminha a mensagem OK para a Alice
  • Alice confirma com um ACK, mas diretamente para o Bob
  • Agora, a conexão SIP encontra-se corretamente estabelecida

Caso a Alice e o Bob estejam em domínios diferentes, o processo é o seguinte:

  • Alice envia uma mensagem SIP Invite para o proxy do seu domínio
  • Proxy pergunta ao registrar do domínio do Bob qual o seu IP
  • Caso o Bob se encontre na rede onde o registrar se encontra, o IP é retornado e o processo desenrola-se da mesma forma que anteriormente, até o correto estabelecimento da conexão
  • Caso contrário, o registrar irá indicar ao proxy (através do serviço de localização) qual registrar deverá contactar para resolver o IP do Bob; da mesma forma, o processo desenrola-se igualmente, mas com este passo extra