SIP - Mensagens

As mensagens SIP são de dois tipos - requests e responses.

  • A linha de abertura de uma solicitação contém um método que define a solicitação e um Request-URI que define para onde a solicitação deve ser enviada.

  • Da mesma forma, a linha de abertura de uma resposta contém um código de resposta.

Métodos de Solicitação

SIP requestssão os códigos usados ​​para estabelecer uma comunicação. Para complementá-los, existemSIP responses que geralmente indicam se uma solicitação foi bem-sucedida ou falhou.

Essas solicitações SIP, conhecidas como MÉTODOS, tornam a mensagem SIP viável.

  • MÉTODOS podem ser considerados como solicitações SIP, uma vez que solicitam uma ação específica a ser realizada por outro agente de usuário ou servidor.

  • MÉTODOS são distinguidos em dois tipos -

    • Métodos Básicos

    • Métodos de Extensão

Métodos Básicos

Existem seis métodos principais, conforme discutido abaixo.

CONVITE

INVITE é usado para iniciar uma sessão com um agente do usuário. Em outras palavras, um método INVITE é usado para estabelecer uma sessão de mídia entre os agentes do usuário.

  • INVITE pode conter as informações de mídia do chamador no corpo da mensagem.

  • Uma sessão é considerada estabelecida se um INVITE recebeu uma resposta de sucesso (2xx) ou um ACK foi enviado.

  • Uma solicitação INVITE bem-sucedida estabelece um dialog entre os dois agentes do usuário, que continua até que um BYE seja enviado para encerrar a sessão.

  • Um CONVITE enviado em um diálogo estabelecido é conhecido como um re-INVITE.

  • Re-CONVIDAR é usado para alterar as características da sessão ou atualizar o estado de um diálogo.

INVITE Exemplo

O código a seguir mostra como INVITE é usado.

INVITE sips:[email protected] SIP/2.0 
   Via: SIP/2.0/TLS client.ANC.com:5061;branch = z9hG4bK74bf9 
   Max-Forwards: 70 
   From: Alice<sips:[email protected]>;tag = 1234567 
   To: Bob<sips:[email protected]>
   Call-ID: [email protected]  
   CSeq: 1 INVITE 
   Contact: <sips:[email protected]> 
   Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY 
   Supported: replaces 
   Content-Type: application/sdp 
   Content-Length: ...  
   
   v = 0 
   o = Alice 2890844526 2890844526 IN IP4 client.ANC.com 
   s = Session SDP 
   c = IN IP4 client.ANC.com 
   t = 3034423619 0 
   m = audio 49170 RTP/AVP 0 
   a = rtpmap:0 PCMU/8000

TCHAU

BYE é o método usado para encerrar uma sessão estabelecida. Esta é uma solicitação SIP que pode ser enviada pelo chamador ou pelo receptor para encerrar uma sessão.

  • Não pode ser enviado por um servidor proxy.

  • A solicitação BYE normalmente roteia de ponta a ponta, ignorando o servidor proxy.

  • BYE não pode ser enviado para um INVITE pendente ou uma sessão não estabelecida.

REGISTRO

A solicitação REGISTER realiza o registro de um agente do usuário. Essa solicitação é enviada por um agente do usuário a um servidor de registro.

  • O pedido de REGISTER pode ser encaminhado ou procurado até chegar a um registrador autorizado do domínio especificado.

  • Carrega o AOR (Endereço de Registro) no To cabeçalho do usuário que está sendo registrado.

  • A solicitação REGISTER contém o período de tempo (3600seg).

  • Um agente de usuário pode enviar uma solicitação REGISTER em nome de outro agente de usuário. Isso é conhecido comothird-party registration. Aqui oFrom tag contém o URI da parte que envia o registro em nome da parte identificada no To cabeçalho.

CANCELAR

CANCELAR é usado para encerrar uma sessão que não foi estabelecida. Os agentes do usuário usam essa solicitação para cancelar uma tentativa de chamada pendente iniciada anteriormente.

  • Ele pode ser enviado por um agente de usuário ou um servidor proxy.

  • CANCELAR é um hop by hop solicitação, ou seja, ela passa pelos elementos entre o agente do usuário e recebe a resposta gerada pelo próximo elemento com estado.

ACK

ACK é usado para reconhecer as respostas finais a um método INVITE. Um ACK sempre vai na direção de INVITE.ACK pode conter corpo SDP (características de mídia), se não estiver disponível em INVITE.

  • ACK não pode ser usado para modificar a descrição da mídia que já foi enviada no INVITE inicial.

  • Um proxy com estado que recebe um ACK deve determinar se o ACK deve ou não ser encaminhado para outro proxy ou agente de usuário.

  • Para respostas 2xx, ACK é ponta a ponta, mas para todas as outras respostas finais, ele funciona salto a salto quando proxies stateful estão envolvidos.

OPÇÕES

O método OPTIONS é usado para consultar um agente de usuário ou um servidor proxy sobre seus recursos e descobrir sua disponibilidade atual. A resposta a uma solicitação lista os recursos do agente do usuário ou servidor. Um proxy nunca gera uma solicitação OPTIONS.

Métodos de Extensão

Se inscrever

SUBSCRIBE é usado por agentes de usuário para estabelecer uma assinatura com o objetivo de obter notificação sobre um determinado evento.

  • Contém um Expires campo de cabeçalho que indica a duração de uma assinatura.

  • Depois que o período de tempo passar, a assinatura será encerrada automaticamente.

  • A assinatura estabelece um diálogo entre os agentes do usuário.

  • Você pode se inscrever novamente enviando outro ASSINAR dentro da caixa de diálogo antes do tempo de expiração.

  • Um 200 OK será recebido para uma assinatura do usuário.

  • Os usuários podem cancelar a assinatura enviando outro método SUBSCRIBE com valor de expiração 0 (zero).

NOTIFICAR

NOTIFY é usado por agentes de usuário para obter a ocorrência de um evento específico. Normalmente, um NOTIFY será acionado em uma caixa de diálogo quando houver uma assinatura entre o assinante e o notificador.

  • Cada NOTIFY obterá uma resposta 200 OK se for recebida pelo notificador.

  • NOTIFY contém um Event campo de cabeçalho indicando o evento e um subscriptionstate campo de cabeçalho indicando o estado atual da assinatura.

  • Uma NOTIFICAÇÃO é sempre enviada no início e no término de uma assinatura.

PUBLICAR

PUBLISH é usado por um agente de usuário para enviar informações de estado do evento a um servidor.

  • PUBLICAR é útil principalmente quando há várias fontes de informações de eventos.

  • Uma solicitação PUBLISH é semelhante a uma NOTIFY, exceto que ela não é enviada em um diálogo.

  • Uma solicitação PUBLICAR deve conter um Expires campo de cabeçalho e um Min-Expires campo de cabeçalho.

REFERIR

REFER é usado por um agente de usuário para referir outro agente de usuário para acessar um URI para o diálogo.

  • REFER deve conter um Refer-Tocabeçalho. Este é um cabeçalho obrigatório para REFER.

  • REFER pode ser enviado dentro ou fora de um diálogo.

  • UMA 202 Accepted irá acionar uma solicitação REFER que indica que outro agente do usuário aceitou a referência.

INFO

INFO é usado por um agente de usuário para enviar informações de sinalização de chamada a outro agente de usuário com o qual ele estabeleceu uma sessão de mídia.

  • Esta é uma solicitação ponta a ponta.

  • Um proxy sempre encaminhará uma solicitação de INFO.

ATUALIZAR

UPDATE é usado para modificar o estado de uma sessão se uma sessão não for estabelecida. O usuário pode alterar o codec com UPDATE.

SE uma sessão for estabelecida, um novo convite é usado para alterar / atualizar a sessão.

PRACK

PRACK é usado para acusar o recebimento de uma transferência confiável de resposta provisória (1XX).

  • Geralmente PRACK é gerado por um cliente quando recebe uma resposta provisória contendo um RSeq número de sequência confiável e um supported:100rel cabeçalho.

  • PRACK contém valor (RSeq + CSeq) no rack cabeçalho.

  • O método PRACK se aplica a todas as respostas provisórias, exceto a resposta 100 Trying, que nunca é transportada de forma confiável.

  • Um PRACK pode conter um corpo de mensagem; pode ser usado para troca de oferta / resposta.

MENSAGEM

Ele é usado para enviar uma mensagem instantânea usando SIP. Uma MI geralmente consiste em mensagens curtas trocadas em tempo real por participantes em conversas de texto.

  • A MENSAGEM pode ser enviada dentro de um diálogo ou fora de um diálogo.

  • O conteúdo de uma MENSAGEM é transportado no corpo da mensagem como um MIME anexo.

  • UMA 200 OK a resposta é normalmente recebida para indicar que a mensagem foi entregue em seu destino.