Códigos SIP

SIP 415 Unsupported Media Type: o que significa e como resolver

Resposta curta: SIP 415 Unsupported Media Type significa que o servidor recusou a requisição porque o corpo da mensagem está num formato que ele não aceita para aquele método. Não é incompatibilidade de codec, que gera 488. A causa mais comum é um Content-Type inesperado. Leia o header Accept da resposta, que lista os formatos aceitos.

SIP 415 na referência
Código415
Nome oficialUnsupported Media Type
Classe4xx: falha da requisição
Definido emRFC 3261
Causas Q.850 que costumam vir junto79 (Service or option not implemented, unspecified)

Como o Monitor trata o SIP 415

A leitura depende do que deve atender o número, a pergunta que a 2N5 responde ao cadastrar cada circuito. Estas são as regras que o produto aplica hoje, geradas da mesma função que julga cada chamada de teste.

O que deve atender o númeroLeitura
Uma saudação ou mensagem gravada (a URA)Fora do ar
Um tom de teste ou serviço de ecoFora do ar
Outro: pode tocar ou ser atendidoFora do ar

O que o Monitor registra para uma URA: A operadora recusou a chamada (SIP 415).

Uma chamada lida como Fora do ar não alerta ninguém sozinha: ela é repetida 3 vezes, a cada 2 minutos, e só 4 falhas seguidas abrem um incidente, com o código SIP e a causa Q.850 de cada chamada como evidência para a operadora. No ritmo padrão, cada circuito é testado a cada 15 minutos.

Se a operadora devolve o SIP 415 ao registro da conta de chamadas da 2N5, antes de qualquer chamada, o teste fica sem visibilidade: é um problema do lado da 2N5, não conta contra o circuito e não avisa o cliente.

O que significa o SIP 415 na prática?

Pela RFC 3261, o SIP 415 Unsupported Media Type indica que o servidor se recusa a atender a requisição porque o corpo da mensagem está num formato que ele não suporta para o método pedido. O servidor deve devolver a lista de formatos aceitos nos headers Accept, Accept-Encoding ou Accept-Language, conforme o problema.

Em troncos, o erro 415 SIP é raro numa chamada comum, porque quase todo INVITE leva só application/sdp. Ele aparece quando algum equipamento acrescenta outro conteúdo, como um corpo multipart com informações de sinalização da rede de telefonia, um corpo compactado, ou quando mensagens dentro da chamada, como INFO para DTMF, usam um tipo que o outro lado não aceita. Para incompatibilidade de codecs, o código correto é o SIP 488.

Causas comuns no Brasil

  • PABX ou SBC enviando INVITE com corpo multipart/mixed (SDP mais dados de sinalização da telefonia) para uma operadora que só aceita SDP.
  • DTMF enviado por SIP INFO com application/dtmf-relay ou application/dtmf, recusado pelo outro lado ao navegar numa URA.
  • Corpo compactado (Content-Encoding: gzip) que o servidor de destino não sabe abrir.
  • Header Content-Type ausente ou escrito errado depois de uma customização no Asterisk, Issabel, FreePBX ou 3CX.
  • Gateway de interconexão configurado para SIP-I ou SIP-T falando com um tronco SIP comum.

Como diagnosticar

  1. Capture com sngrep port 5060 e confira o método que recebeu o 415 (INVITE, INFO, MESSAGE) e o Content-Type enviado.
  2. Leia os headers Accept, Accept-Encoding e Accept-Language da resposta para saber o que o servidor aceita.
  3. No Asterisk ou FreePBX, ative pjsip set logger on (ou sip set debug on no chan_sip) e confira o modo de DTMF do tronco. Em PJSIP, prefira dtmf_mode=rfc4733.
  4. Se o INVITE leva corpo multipart, revise o SBC ou gateway que o acrescenta e desative a inclusão de dados de sinalização da telefonia para esse tronco.
  5. No 3CX, ative o “Verbose logging” e confira o modo de DTMF e os parâmetros avançados do tronco.
  6. Faça uma chamada de teste a uma URA e digite opções para confirmar que os dígitos chegam sem 415.

O que mandar para a operadora

  • Data e hora com fuso horário das ocorrências.
  • Número de origem (A) e número chamado (B).
  • Call-ID da chamada e o método que recebeu o 415.
  • A linha completa da resposta e os headers Accept recebidos.
  • O Content-Type enviado e quantas tentativas falharam.
  • O pcap da captura, quando disponível.

Perguntas frequentes

O 415 é a mesma coisa que codec incompatível?

Não. Codec incompatível é tratado dentro do SDP e costuma gerar o SIP 488 Not Acceptable Here. O 415 fala do tipo do corpo inteiro, indicado no header Content-Type, como application/sdp, multipart/mixed ou application/dtmf-relay. Se o servidor não aceita esse tipo para o método usado, responde 415, sem chegar à negociação de codecs.

Por que recebo 415 no meio da chamada, ao digitar na URA?

Quando o PABX envia os dígitos DTMF por mensagens SIP INFO, o corpo vai com um tipo como application/dtmf-relay. Se o outro lado não aceita esse tipo, responde 415 ao INFO e o dígito se perde, embora a chamada continue. Troque o envio de DTMF para RFC 4733 (eventos no RTP), que é o padrão mais aceito pelas operadoras.

Saiba disso antes dos seus clientes

O Monitor liga para cada circuito de voz o dia todo e entrega cada falha com o código SIP e a causa Q.850 como prova.