Como em uma conversa entre duas pessoas, um lado requisita/questiona/solicita algo, e o outro lado responde.
Exemplo:
Request:
“Quero registrar o ramal 123”
Response:
“Você não está autorizado”
SIP Requests
Abaixo, seguem os principais (mais utilizados!) METHODS que um REQUEST pode possuir:
REGISTER
Utilizado para registrar um contato, informando IP, porta, usuário e senha.
INVITE
Utilizado para iniciar uma chamada.
ACK
Utilizado para handshake e/ou identificação de início de tráfego de voz.
CANCEL
Cancela uma determinada sessão.
BYE
Finaliza uma determinada sessão.
OPTIONS
Utilizado para troca de informações sobre o que a outra ponta suporta.
Também é muito utilizado para conhecer o tempo de resposta entre 2 pontos SIP.
SIP Responses
As respostas para cada REQUEST são dadas em números de 3 dígitos e separadas por classes. São elas:
1XX
Informação temporária da chamada. Ex: 180 ringing, 100 Trying.
2XX
Informação de sucesso. Ex: 200 OK.
3XX
Informação sobre redirecionamento. Ex: 302 Moved Temporarily.
4XX
Informação de erro vinda do lado do cliente. Ex: 401 Unauthorized.
5XX
Informação de erro vinda do lado do servidor. Ex: 503 Service Unavailable.
6XX
Informação de erros globais, não sendo necessariamente do lado do cliente ou do servidor, por exemplo quando o usuário destino recusa a chamada. Ex: 603 Decline.
Conclusão
Agora ficou fácil, não?
Sempre que você visualizar uma resposta SIP com um número, você já saberá em que classe ela pertence. Se o erro é do servidor, ou se é do cliente, se é uma informação de status, entre outros.
E se você quiser saber mais, segue a fonte: https://tools.ietf.org/html/rfc3261
No próximo POST abordaremos algumas definições importantíssimas do protocolo SIP.
Bons estudos!