Manipulação de cabeçalhos SIP com um SBC: como os Controladores de Borda de Sessão normalizam o tráfego SIP

Manipulação de cabeçalhos SIP com um Controlador de Borda de Sessão

Duas plataformas VoIP que “falam SIP” frequentemente não conseguem se comunicar de forma limpa. O problema quase sempre está nos cabeçalhos. Os cabeçalhos SIP carregam os metadados da chamada: identidade do chamador, instruções de roteamento, parâmetros de sessão, e cada fornecedor os implementa de forma ligeiramente diferente. Um Controlador de Borda de Sessão (SBC) resolve essa diferença inspecionando e reescrevendo cabeçalhos em tempo real, na borda da rede, antes que um valor incompatível cause uma falha de chamada. Esta página explica como esse processo funciona, quando é necessário e quais capacidades são mais importantes.

Termos e conceitos-chave
Um glossário de referência rápida para os termos usados ao longo deste artigo.
Cabeçalho SIPUma linha de metadados anexada a cada mensagem SIP. Semelhante em estrutura aos cabeçalhos HTTP, os cabeçalhos SIP carregam as instruções e o contexto que ambos os endpoints precisam para processar uma chamada: quem está ligando, para onde rotear a resposta, qual formato de áudio usar e qual número exibir na tela do destinatário.
FromIdentifica a parte chamadora conforme apresentada ao destinatário. Na maioria dos sistemas PBX, este é o cabeçalho que controla o que aparece como identificação do chamador (caller ID).
P-Asserted-Identity (PAI)Um cabeçalho usado pelas operadoras para confirmar a identidade verificada da parte chamadora. Normalmente carrega o número E.164 real quando o cabeçalho From contém um ramal interno ou um identificador genérico. Nem todas as plataformas PBX o reconhecem.
ContactInforma ao outro lado para onde enviar as mensagens SIP subsequentes dentro da mesma chamada. Em ambientes corporativos, os cabeçalhos Contact frequentemente contêm endereços IP internos (RFC 1918) que são inalcançáveis a partir da internet pública, causando falhas de roteamento na borda da rede.
ViaRegistra o caminho que uma requisição SIP percorreu para que as respostas possam ser roteadas de volta corretamente. Cada elemento SIP que encaminha uma requisição adiciona sua própria entrada Via.
Record-RouteInstrui ambos os endpoints a rotear todas as mensagens futuras dentro de um diálogo através de intermediários específicos, como um SBC, em vez de se comunicarem diretamente.
DiversionIndica que uma chamada foi encaminhada e de qual número. Comumente usado em cenários de roteamento de correio de voz e encaminhamento de chamadas. Não é universalmente suportado pelas operadoras.
SDP (Session Description Protocol)Não é um cabeçalho SIP em si, mas um bloco estruturado transportado dentro de mensagens SIP que governa a negociação de mídia: quais codecs de áudio são suportados, para qual endereço IP e porta enviar o áudio, e outros parâmetros de mídia. Incompatibilidades aqui causam problemas de áudio mesmo quando o estabelecimento da chamada é bem-sucedido.
B2BUA (Agente de Usuário Back-to-Back)Uma arquitetura em que o SBC termina completamente o diálogo SIP de entrada e origina um novo e independente do outro lado. Isso dá ao SBC controle total sobre cada cabeçalho em ambos os trechos, o que torna possível a manipulação profunda de cabeçalhos.
NAP (Ponto de Acesso de Rede)Uma configuração lógica de grupo de troncos no ProSBC que define como uma operadora ou endpoint específico está conectado. As regras de manipulação de cabeçalhos são aplicadas por NAP, de modo que diferentes operadoras e sistemas internos podem receber tratamento de cabeçalhos diferente dentro da mesma implantação.

Por que a manipulação de cabeçalhos SIP é necessária

SIP é um padrão aberto, mas a implementação varia muito entre operadoras, fabricantes de IP-PBX, fabricantes de softswitches e plataformas UCaaS. Essas variações (por vezes chamadas de “dialetos SIP”) criam atrito de interoperabilidade sempre que dois sistemas são conectados.

O atrito aparece de formas previsíveis. Uma operadora envia um cabeçalho P-Asserted-Identity (PAI) que o PBX receptor não reconhece. Uma plataforma UCaaS corporativa envia cabeçalhos Contact com endereços IP internos RFC 1918 que falham quando alcançam a internet pública. O cabeçalho Diversion de uma chamada é descartado por uma operadora que não o suporta. Em cada caso, a especificação SIP foi seguida, mas a interpretação de um lado não correspondeu às expectativas do outro.

Os efeitos a jusante são concretos: chamadas que falham na configuração, identificação do chamador exibida incorretamente, transferências de correio de voz que caem, tons DTMF que não são registrados, ou áudio que conecta de um lado mas não do outro.

O motor de manipulação de cabeçalhos do SBC resolve isso atuando como uma camada de normalização. Em vez de reconfigurar cada endpoint, o SBC fica na fronteira entre dois ambientes e traduz, reescrevendo cabeçalhos na saída para que cada lado receba exatamente o que espera. Essa normalização pode atingir qualquer cabeçalho SIP: From, To, Contact, Via, Record-Route, P-Asserted-Identity, Diversion e cabeçalhos proprietários de fornecedores.

Fluxo de manipulação de cabeçalhos SIP mostrando uma operadora enviando um SIP INVITE com cabeçalhos originais, o SBC reescrevendo-os conforme a regra do NAP, e encaminhando cabeçalhos normalizados para o IP-PBX

Fluxo de manipulação de cabeçalhos SIP: o SBC reescreve cabeçalhos de forma independente em cada trecho, para que cada lado receba exatamente o que espera.

A arquitetura B2BUA e por que ela importa para o controle de cabeçalhos

A profundidade de manipulação de cabeçalhos que um SBC pode realizar depende diretamente da sua arquitetura.

Um proxy SIP encaminha mensagens com alterações limitadas; ele pode atualizar o cabeçalho Via ou modificar Route, mas passa a maioria dos cabeçalhos sem alteração. Essa é uma limitação fundamental quando você precisa remover cabeçalhos proprietários de uma operadora antes que eles alcancem seu PBX, ou injetar um cabeçalho P-Preferred-Identity que sua plataforma UCaaS exige.

Um Agente de Usuário Back-to-Back (B2BUA) funciona de forma diferente. Ele termina completamente o diálogo SIP de entrada e re-origina um novo do outro lado. Cada cabeçalho em cada trecho está sob controle do SBC: o trecho de entrada e o trecho de saída são diálogos SIP independentes. Cabeçalhos podem ser adicionados, removidos ou reescritos em qualquer lado sem afetar o outro.

Essa arquitetura também permite escopo por grupo de troncos. A maioria das implantações envolve múltiplas operadoras e múltiplos sistemas internos, cada um com suas próprias expectativas de cabeçalhos. Um Controlador de Borda de Sessão B2BUA pode aplicar regras de manipulação de cabeçalhos diferentes a cada Ponto de Acesso de Rede (NAP), tratando uma operadora PSTN de forma diferente de um tronco Teams Direct Routing, que é tratado de forma diferente de um PBX Asterisk, tudo dentro da mesma implantação.

Cenários comuns de manipulação de cabeçalhos SIP

A manipulação de cabeçalhos abrange um amplo conjunto de casos de uso reais. Estes são os cenários que os profissionais encontram com mais frequência:

Normalização de PAI entre operadora e PBX. Uma operadora envia P-Asserted-Identity com o número E.164 completo da parte chamadora. O PBX exibe a identificação do chamador apenas a partir do cabeçalho From. O SBC reescreve o cabeçalho From no trecho de entrada para extrair o número do PAI, corrigindo a exibição da identificação do chamador sem alterar o comportamento padrão da operadora.

Ocultação de topologia. Servidores internos colocam seus endereços RFC 1918 nos cabeçalhos Contact, Via e Record-Route. Se estes alcançam uma operadora externa, eles vazam a topologia interna e frequentemente causam falhas de roteamento de chamadas. O SBC reescreve esses cabeçalhos para o seu próprio endereço público, ocultando a rede interna de partes externas completamente.

Gerenciamento do cabeçalho Diversion. Chamadas encaminhadas carregam cabeçalhos Diversion que algumas operadoras rejeitam ou tratam incorretamente. O SBC pode remover o Diversion no trecho voltado para a operadora, adicioná-lo de volta no trecho voltado para o PBX, ou converter entre Diversion e History-Info dependendo do que o sistema a jusante espera.

Limpeza de cabeçalhos proprietários. Muitos fornecedores de IP-PBX e UCaaS adicionam cabeçalhos X- proprietários para rastreamento interno de chamadas. Eles são inofensivos internamente, mas podem confundir ou ser rejeitados por sistemas de operadoras. O SBC os remove antes que a chamada saia da rede.

Tradução de sinalização DTMF. Os endpoints usam métodos diferentes: RFC 2833 (baseado em RTP), mensagens SIP INFO ou tons in-band. Quando uma operadora espera um método e o PBX envia outro, o DTMF falha. O SBC realiza a conversão na camada de sinalização para que os dígitos passem corretamente através da fronteira.

O que procurar em um motor de manipulação de cabeçalhos SBC

Nem todas as implementações de SBC oferecem o mesmo nível de controle. Ao avaliar um SBC para ambientes com requisitos complexos de interoperabilidade, estas são as capacidades que separam o funcional do flexível:

Escopo de regras por NAP. Reescrita global de cabeçalhos é grosseira demais para implantações com múltiplas operadoras. O motor precisa aplicar regras diferentes por grupo de troncos, para que a operadora A e a operadora B recebam tratamento de cabeçalhos diferente sem interferir uma na outra.

Suporte para todos os métodos SIP. Requisitos de manipulação de cabeçalhos aparecem em INVITE, BYE, REFER, NOTIFY e outras mensagens SIP, não apenas na configuração de chamada. Um motor que trata apenas INVITE perderá cenários de meio de chamada e transferência de chamada.

Suporte a troncos criptografados. A manipulação de cabeçalhos deve funcionar em troncos SIP sobre TLS (porta padrão 5061), não apenas em SIP em texto plano. Implantações com conexões de operadora criptografadas precisam aplicar a normalização após a descriptografia e antes da re-criptografia.

Regras programáveis / orientadas por API. Configuração estática resolve incompatibilidades de cabeçalhos previsíveis. Ambientes dinâmicos, onde as decisões de roteamento dependem de dados externos como consultas LNP ou pontuações de fraude, se beneficiam de um SBC que expõe a manipulação de cabeçalhos através de uma camada de scripting ou API, para que as regras possam responder ao contexto da chamada em tempo real.

Ferramentas de depuração em produção. Alterações de cabeçalhos que parecem corretas em laboratório frequentemente se comportam de forma diferente em produção. Rastreamento de chamadas e captura de pacotes ao vivo (compatível com Wireshark) permitem comparar o SIP INVITE de entrada e saída lado a lado para confirmar que as regras de reescrita estão produzindo o resultado esperado.

Perguntas frequentes

Um SBC pode adicionar cabeçalhos que o endpoint de origem nunca enviou?

Sim. Um SBC B2BUA cria um diálogo SIP inteiramente novo no trecho de saída. Os cabeçalhos nesse trecho são construídos do zero, então o SBC pode injetar cabeçalhos que estavam ausentes no trecho de entrada. Por exemplo, adicionar um P-Preferred-Identity antes de encaminhar para uma operadora, mesmo que o PBX de origem não o tenha incluído.

Qual é a diferença entre um proxy SIP e um SBC para manipulação de cabeçalhos?

Um proxy SIP é limitado a modificar cabeçalhos de roteamento (Via, Route) das formas que a especificação permite. Um SBC B2BUA termina o diálogo SIP de entrada e origina um novo, dando-lhe controle total sobre cada cabeçalho em ambos os trechos de forma independente.

A manipulação de cabeçalhos afeta o áudio da chamada?

A manipulação de cabeçalhos é uma operação da camada de sinalização. Ela não afeta diretamente os fluxos de mídia RTP. No entanto, corrigir cabeçalhos SDP, que governam a negociação de codecs, pode resolver problemas de qualidade ou compatibilidade de áudio causados por declarações de capacidade de codec incompátiveis.

Como verificar se as regras de manipulação de cabeçalhos estão funcionando corretamente em produção?

Use o rastreamento de chamadas integrado do SBC ou a captura de pacotes para capturar um SIP INVITE ao vivo antes e depois do processamento pelo SBC. Comparar os dois mostra exatamente quais cabeçalhos foram modificados, adicionados ou removidos em cada trecho.

Conclusão

A manipulação de cabeçalhos SIP é o mecanismo prático que mantém redes VoIP multi-fornecedor e multi-operadora em funcionamento. O conceito de camada de normalização é central para qualquer implantação de SBC: ele remove a exigência de que cada endpoint no seu ambiente fale exatamente o mesmo dialeto SIP. Seja conectando um tronco de operadora a um IP-PBX, interligando uma plataforma UCaaS a um softswitch legado, ou aplicando ocultação de topologia por segurança, a manipulação de cabeçalhos no SBC é a alavanca que faz tudo funcionar.

Ao avaliar um SBC para manipulação de cabeçalhos, os fatores-chave são a granularidade das regras por tronco, o suporte a troncos criptografados e a qualidade das ferramentas de depuração que permitem confirmar que as regras estão se comportando corretamente em condições de produção.

ProSBC para normalização de cabeçalhos SIP

O ProSBC opera como um B2BUA completo, dando aos administradores de rede controle total sobre os cabeçalhos SIP em cada trecho de chamada. Seu motor de manipulação de cabeçalhos aplica regras por NAP: o ProSBC suporta até 1.024 Pontos de Acesso de Rede (NAPs) / Grupos de Troncos, tornando-o prático em ambientes complexos com múltiplas operadoras sem necessidade de reconfigurar endpoints. O ProSBC inclui captura de pacotes Wireshark ao vivo e rastreamento de chamadas para depuração em tempo real do comportamento de cabeçalhos em produção, e sua camada de módulos API baseados em Ruby permite que as decisões sobre cabeçalhos sejam orientadas por lógica de scripts de roteamento para ambientes que precisam de normalização programável e sensível ao contexto.

O ProSBC está disponível como máquina virtual (VMware, KVM/Proxmox), na AWS e Microsoft Azure, ou em servidores baremetal, implantável onde quer que a borda da sua rede esteja.