2.2.2 Estrutura da Mensagem
As mensagens do protocolo SIP se assemelham com as mensagens do protocolo HTTP. Possuem o formato header:field, onde header representa o campo do cabeçalho da mensagem e field representa a informação contida neste campo do cabeçalho. O SIP utiliza a regra de ignorar os campos de cabeçalhos que não puderam ser entendidos pelo servidor. Abaixo podemos ver uma estrutura básica do cabeçalho SIP. As informações foram retiradas da RFC 3261, que especifica o protocolo SIP.
Uma requisição SIP válida deve conter ao menos os campos To, From, CSeq, Call-ID e Max-Forwards, os quais são todos obrigatórios em todas as mensagens SIP.  Outros campos podem se juntar a esses.
O Campo To armazena o endereço SIP do usuário alvo da requisição. Este campo deve utilizar os endereços SIP ou SIPS, mas também podem conter endereços em outros formatos especificados na RFC 2806. O agente de usuário cliente (UAC) deve ser capaz de traduzir os valores inseridos pelo usuário em endereços SIP válidos. Exemplo: To: Carol <sip:carol@gta.ufrj.br>
O Campo From(f) armazena o endereço SIP do transmissor de determinada requisição. Esta campo permite que os UACs implementem mecanismos de identificação de chamadas através do nome do emissor a título de informação ou de recusa automática de chamadas. O campo From deve conter um novo parâmetro denominado “tag” escolhido pelo agente de usuário cliente, o qual é responsável por marcar a chamada correspondente a aquela marcação. Exemplos: From: "Bob" sips:bob@gta.ufrj.br ;tag=a48s / From: sip:+12125551212@gta.ufrj.br ;tag=887s /   From: Anonymous <sip:c8oqz84zk7z@privacy.gta.ufrj.br>;tag=hyh8
O campo CSeq funciona como um contador para as requisições realizadas, excetos mensagens de Ack e Cancel. Os UACs utilizam este campo para descobrir de qual requisição é a resposta recebida e os agentes de usuário servidores (UAS) o utilizam para diferenciar uma nova requisição de uma retransmissão. A informação contida neste campo consiste em um número inteiro positivo de 32 bits e da primitiva da mensagem. Exemplo: 4711 INVITE
O campo Call-Id(i) identifica a chamada em curso. Ele é um identificador e possui dois elementos separados pelo caractere ‘@’. O primeiro elemento é gerado localmente e de forma aleatória e o segundo é o IP do remetente. Este campo diferencia maiúsculas de minúsculas e é facilmente comparado byte a byte. Exemplo: Call-ID: f81d4fae-7dec-11d0- a765- 00a0c91e6bf6@146.164.69.183
O campo Max-Fowards determina o número de saltos que uma requisição deve percorrer até o seu destino. É um valor inteiro que é reduzido de uma unidade a cada salto. Se o valor deste campo chegar a zero antes que a requisição alcance seu destino, será produzida uma mensagem de erro de código 483, que representa excesso de saltos no percurso. A especificação sugere o número 70 como padrão para este campo, por considerar um número não muito pequeno para alcançar o destino na rede SIP, sem laços (loops), e ao mesmo tempo não muito grande para consumir recursos dos servidores quando houver laços. Exemplo: Max-Forwards: 70
Outros campos para o cabeçalho do protocolo SIP podem ser encontrados em (2).