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