SIP - Campos de cabeçalho de solicitação e resposta
Aceitar
O campo de cabeçalho Aceitar é usado para indicar tipos de mídia de Internet de mensagem aceitáveis no corpo da mensagem.
O campo de cabeçalho descreve os tipos de mídia usando o tipo / subtipo de formato comumente usado na Internet.
Se não estiver presente, o formato de corpo de mensagem aceitável assumido é application/sdp.
Uma lista de tipos de mídia pode ter preferências definidas usando q parâmetros de valor.
Aceitar-Codificação
O campo de cabeçalho Accept-Encoding é usado para especificar esquemas de codificação de corpo de mensagem aceitáveis.
A codificação pode ser usada para garantir que uma mensagem SIP com um corpo de mensagem grande caiba em um único datagrama UDP.
O uso de qparâmetros de valor podem definir preferências. Se nenhum dos esquemas listados for aceitável para o UAC, uma resposta 406 Not Acceptable será retornada. Se não for incluído, a codificação assumida serátext/plain.
Para
Toindica o destinatário final da solicitação. Qualquer resposta gerada por um UA conterá este campo de cabeçalho com a adição de uma tag. É um cabeçalho obrigatório.
Qualquer resposta gerada por um proxy deve ter uma tag adicionada ao To campo de cabeçalho.
o To URI do campo de cabeçalho nunca é usado para roteamento.
De
Fromo campo de cabeçalho indica o originador da solicitação. É um dos dois endereços usados para identificar um diálogo.
UMA From o campo de cabeçalho pode conter uma tag usada para identificar uma determinada chamada.
Ele pode conter um nome de exibição e, nesse caso, o URI é colocado entre <>.
É um cabeçalho obrigatório.
Call-ID
O campo de cabeçalho Call-ID é obrigatório em todas as solicitações e respostas SIP. É usado para identificar exclusivamente uma chamada entre dois agentes de usuário.
Um Call-ID deve ser único em todas as chamadas.
Todos os registros de um agente de usuário devem usar o mesmo Call-ID.
Um Call-ID é sempre criado por um agente de usuário e nunca é modificado por um servidor.
É um identificador criptograficamente aleatório.
Através da
Via é usado para registrar a rota SIP seguida por uma solicitação, o que ajuda a encaminhar uma resposta de volta ao originador.
Um UA que gera uma solicitação registra seu próprio endereço em um campo de cabeçalho Via.
Um proxy que encaminha a solicitação adiciona um campo de cabeçalho Via contendo seu próprio endereço ao topo da lista de campos de cabeçalho Via.
Um proxy ou UA que gera uma resposta a uma solicitação copia todos os campos do cabeçalho Via da solicitação na ordem para a resposta e, em seguida, envia a resposta ao endereço especificado no campo de cabeçalho Via superior.
Um proxy que recebe uma resposta verifica o campo do cabeçalho Via superior e corresponde a seu próprio endereço.
Se não corresponder, a resposta foi descartada.
O campo de cabeçalho Via superior é então removido e a resposta encaminhada para o endereço especificado no próximo campo de cabeçalho Via.
Os campos do cabeçalho Via contêm o nome do protocolo, o número da versão e o transporte (SIP / 2.0 / UDP, SIP / 2.0 / TCP, etc.) e podem conter números de porta e parâmetros como recebidos, rport, branch, maddr, e ttl.
UMA received A tag é adicionada a um campo de cabeçalho Via se um UA ou proxy receber a solicitação de um endereço diferente do especificado no campo de cabeçalho Via superior.
Um parâmetro de ramificação é adicionado aos campos de cabeçalho Via por UAs e proxies, que é calculado como uma função hash do URI de Solicitação e do número Para, De, ID de Chamada e CSeq.
CSeq
O campo de cabeçalho CSeq é um campo de cabeçalho obrigatório em todas as solicitações. Ele contém um número decimal que aumenta para cada solicitação.
Normalmente, aumenta em 1 para cada nova solicitação, com exceção de CANCEL e ACK solicitações, que usam o número CSeq da solicitação INVITE à qual se refere.
A contagem CSeq é usada por UASs para determinar solicitações fora de sequência ou para diferenciar entre uma nova solicitação (CSeq diferente) ou uma retransmissão (mesmo CSeq).
O campo de cabeçalho CSeq é usado pelos UACs para corresponder a uma resposta à solicitação que ele faz referência.
Por exemplo, um UAC que envia uma solicitação INVITE e então uma solicitação CANCEL pode dizer pelo método no CSeq de uma resposta 200 OK se é uma resposta ao convite ou solicitação de cancelamento.
Contato
O campo de cabeçalho do contato é usado para transmitir ao outro usuário o endereço do originador da solicitação. Depois que um campo de cabeçalho de contato é recebido, o URI pode ser armazenado em cache e usado para rotear solicitações futuras em uma caixa de diálogo.
Por exemplo, um campo de cabeçalho de contato em uma resposta 200 OK a um INVITE pode permitir que a mensagem ACK de confirmação e todas as solicitações futuras durante esta chamada ignorem os proxies e vão diretamente para a parte chamada.
Rota-Registro
O campo de cabeçalho Record-Route é usado para forçar o roteamento por meio de um proxy para todas as solicitações subsequentes em uma sessão (diálogo) entre dois UAs.
Normalmente, a presença de um campo de cabeçalho de contato permite que os UAs enviem mensagens diretamente, ignorando a cadeia de proxy usada na solicitação inicial.
Um proxy que insere seu endereço em um campo de cabeçalho Record-Route substitui isso e força solicitações futuras a incluir um campo de cabeçalho de rota contendo o endereço do proxy que força esse proxy a ser incluído.
Um proxy que deseja implementar isso insere o campo de cabeçalho contendo seu próprio URI ou adiciona seu URI a um campo de cabeçalho de rota de registro já presente.
O URI é construído para que o URI seja resolvido de volta para o servidor proxy. O UAS copia o campo de cabeçalho Record-Route na resposta 200 OK à solicitação.
O campo de cabeçalho é encaminhado inalterado por proxies de volta ao UAC. O UAC então armazena a lista de proxy Record-Route mais um campo de cabeçalho Contact se presente no 200 OK para uso em um campo de cabeçalho Route em todas as solicitações subsequentes.
Organização
O campo de cabeçalho Organização é usado para indicar a organização à qual pertence o originador da mensagem.
Também pode ser inserido por proxies à medida que uma mensagem é passada de uma organização para outra.
Como todos os campos de cabeçalho SIP, ele pode ser usado por proxies para tomar decisões de roteamento e por UAs para tomar decisões de triagem de chamadas.
Tentar novamente depois
É usado para indicar quando um recurso ou serviço pode estar disponível novamente.
Nas respostas 503 Serviço indisponível, indica quando o servidor estará disponível.
Nas respostas 404 Not Found, 600 Busy Everywhere e 603 Decline, indica quando o UA chamado pode estar disponível novamente.
Ele contém o período de tempo em 's'.
Sujeito
O campo opcional de cabeçalho Assunto é usado para indicar o assunto da sessão de mídia.
O conteúdo do campo de cabeçalho também pode ser exibido durante o alerta para ajudar o usuário a decidir se aceita a chamada.
Example:
Subject: How are you?
Suportado
O campo de cabeçalho com suporte é usado para listar uma ou mais opções implementadas por um UA ou servidor.
Geralmente, é incluído nas respostas às solicitações de OPÇÕES.
Se nenhuma opção for implementada, o campo de cabeçalho não será incluído.
Se um UAC listar uma opção em um campo de cabeçalho com suporte, os proxies ou UASs podem usar a opção durante a chamada.
Se a opção deve ser usada ou suportada, o campo de cabeçalho Require é usado.
Example:
Supported: rel100
Expira
O campo de cabeçalho Expires é usado para indicar o intervalo de tempo em que o conteúdo da solicitação ou mensagem é válido.
Quando presente em uma solicitação INVITE, o campo do cabeçalho define um limite de tempo para a conclusão da solicitação INVITE.
Ou seja, o UAC deve receber uma resposta final (diferente de 1xx) dentro do período de tempo ou a solicitação INVITE é automaticamente cancelada com uma resposta 408 Request Timeout.
Uma vez que a sessão é estabelecida, o valor do campo de cabeçalho Expires no INVITE original não tem efeito - o campo de cabeçalho Session-Expires deve ser usado para este propósito.
Se presente em uma solicitação de REGISTRO, o campo de cabeçalho define o limite de tempo nos URIs nos campos de cabeçalho de contato que não contêm um expires parâmetro.
Expires também é usado em solicitações SUBSCRIBE para indicar a duração da assinatura.
Example:
Expires: 30
Agente de usuário
Este campo de cabeçalho é usado para transmitir informações sobre o UA que originou a solicitação.