SIP - Protocolo de Descrição de Sessão

SDP significa Protocolo de Descrição de Sessão. É usado para descrever sessões de multimídia em um formato compreendido pelos participantes em uma rede. Dependendo desta descrição, uma parte decide se deseja ingressar em uma conferência ou quando ou como ingressar em uma conferência.

  • O proprietário de uma conferência a anuncia na rede enviando mensagens multicast que contêm a descrição da sessão, por exemplo, o nome do proprietário, o nome da sessão, a codificação, o tempo etc. Dependendo dessas informações, os destinatários do anúncio tomar uma decisão sobre a participação na sessão.

  • O SDP geralmente está contido na parte do corpo do Protocolo de Iniciação de Sessão, popularmente chamado de SIP.

  • O SDP é definido no RFC 2327. Uma mensagem SDP é composta de uma série de linhas, chamadas campos, cujos nomes são abreviados por uma única letra minúscula e estão em uma ordem necessária para simplificar a análise.

Objetivo do SDP

O objetivo do SDP é transmitir informações sobre fluxos de mídia em sessões multimídia para ajudar os participantes a ingressar ou coletar informações de uma sessão específica.

  • SDP é uma breve descrição textual estruturada.

  • Ele transmite o nome e a finalidade da sessão, a mídia, os protocolos, os formatos de codec, o tempo e as informações de transporte.

  • Um participante provisório verifica essas informações e decide se deseja entrar em uma sessão e como e quando entrar em uma sessão, se decidir fazê-lo.

  • O formato tem entradas na forma de <tipo> = <valor>, onde o <tipo> define um parâmetro de sessão exclusivo e o <valor> fornece um valor específico para esse parâmetro.

  • A forma geral de uma mensagem SDP é -

    x = parameter1 parameter2 ... parameterN

  • A linha começa com uma única letra minúscula, por exemplo, x. Nunca há espaços entre a letra e =, e há exatamente um espaço entre cada parâmetro. Cada campo possui um número definido de parâmetros.

Parâmetros de descrição da sessão

Descrição da sessão (* denota opcional)

  • v = (versão do protocolo)
  • o = (proprietário / criador e identificador de sessão)
  • s = (nome da sessão)
  • i = * (informações da sessão)
  • u = * (URI da descrição)
  • e = * (endereço de email)
  • p = * (número de telefone)
  • c = * (informações de conexão - não necessárias se incluídas em todas as mídias)
  • b = * (informações de largura de banda)
  • z = * (ajustes de fuso horário)
  • k = * (chave de criptografia)
  • a = * (zero ou mais linhas de atributo de sessão)

Versão do protocolo

O campo v = contém o número da versão SDP. Como a versão atual do SDP é 0, uma mensagem SDP válida sempre começará com v = 0.

Origem

O campo o = contém informações sobre o originador da sessão e identificadores de sessão. Este campo é usado para identificar exclusivamente a sessão.

  • O campo contém -

    o = <nome de usuário> <id da sessão> <versão> <tipo de rede> <tipo de endereço>

  • o username parâmetro contém o login ou host do originador.

  • o session-id parâmetro é um registro de data e hora do Network Time Protocol (NTP) ou um número aleatório usado para garantir a exclusividade.

  • o version é um campo numérico que é aumentado para cada alteração na sessão, também recomendado como um carimbo de data / hora NTP.

  • o network-typeestá sempre IN para Internet. O parâmetro de tipo de endereço é IP4 ou IP6 para endereços IPv4 ou IPv6 em formato decimal pontuado ou um nome de host totalmente qualificado.

Nome da sessão e informações

O campo s = contém um nome para a sessão. Ele pode conter qualquer número diferente de zero de caracteres. O campo opcional i = contém informações sobre a sessão. Ele pode conter qualquer número de caracteres.

URI

O campo opcional u = contém um indicador uniforme de recursos (URI) com mais informações sobre a sessão

Endereço de e-mail e número de telefone

O campo opcional e = contém um endereço de e-mail do host da sessão. O campo opcional p = contém um número de telefone.

Dados de conexão

O campo c = contém informações sobre a conexão de mídia.

  • O campo contém -

    c = <network-type> <address-type> <connection-address>

  • o network-type parâmetro é definido como IN para a Internet.

  • o address-type é definido como IP4 para endereços IPv4 e IP6 para endereços IPv6.

  • o connection-address é o endereço IP ou host que enviará os pacotes de mídia, que podem ser multicast ou unicast.

  • Se multicast, o campo de endereço de conexão contém -

    endereço de conexão = endereço de multicast de base / ttl / número de endereços

  • Onde ttl é o valor de tempo de vida e o número de endereços indica quantos endereços multicast contíguos estão incluídos, começando com o endereço multicast base.

Largura de banda

O campo opcional b = contém informações sobre a largura de banda necessária. É da forma -

b = modificador: largura de banda - valor

Tempo, tempos de repetição e fusos horários

O campo t = contém a hora de início e a hora de término da sessão.

t = tempo de início e tempo de parada

O campo opcional r = contém informações sobre os tempos de repetição que podem ser especificados em NTP ou em dias ( d ), horas ( h ) ou minutos ( m ).

O campo opcional z = contém informações sobre os deslocamentos de fuso horário. Este campo é usado se a sessão estiver ocorrendo durante uma mudança do horário de verão para o horário padrão ou vice-versa.

Anúncios para a mídia

O campo opcional m = contém informações sobre o tipo de sessão de mídia. O campo contém -

m = lista de formatos de transporte de porta de mídia

  • O parâmetro de mídia é áudio, vídeo, texto, aplicativo, mensagem, imagem ou controle. O parâmetro port contém o número da porta.

  • O parâmetro de transporte contém o protocolo de transporte ou o perfil RTP usado.

  • A lista de formatos contém mais informações sobre a mídia. Normalmente, ele contém tipos de carga de mídia definidos em perfis de áudio e vídeo RTP.

Example:
m = audio 49430 RTP/AVP 0 6 8 99

Um desses três codecs pode ser usado para a sessão de mídia de áudio. Se a intenção for estabelecer três canais de áudio, serão usados ​​três campos de mídia separados.

Atributos

O campo opcional a = contém atributos da sessão de mídia anterior. Este campo pode ser usado paraextend SDP to provide more information about the media. Se não for totalmente compreendido por um usuário SDP, o campo de atributo pode ser ignorado. Pode haver um ou mais campos de atributo para cada tipo de carga útil de mídia listado no campo de mídia.

Os atributos no SDP podem ser

  • nível de sessão, ou
  • nível de mídia.

O nível da sessão significa que o atributo é listado antes da primeira linha de mídia no SDP. Se for esse o caso, o atributo se aplica a todas as linhas de mídia abaixo dele.

Nível de mídia significa que ela está listada após uma linha de mídia. Nesse caso, o atributo se aplica apenas a este fluxo de mídia específico.

O SDP pode incluir atributos de nível de sessão e nível de mídia. Se o mesmo atributo aparecer como ambos, o atributo de nível de mídia substitui o atributo de nível de sessão para esse fluxo de mídia específico. Observe que o campo de dados de conexão também pode ser no nível da sessão ou no nível da mídia.

Um Exemplo SDP

A seguir está um exemplo de descrição de sessão, retirado do RFC 2327 -

v = 0
o = mhandley2890844526 2890842807 IN IP4 126.16.64.4
s = SDP Seminar
i = A Seminar on the session description protocol
u = http://www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.ps
e = [email protected](Mark Handley)
c = IN IP4 224.2.17.12/127
t = 2873397496 2873404696
a = recvonly
m = audio 49170 RTP/AVP 0
m = video 51372 RTP/AVP 31
m = application 32416udp wb
a = orient:portrait