Pular para o conteúdo principal

Tradução de Números

📖 Voltar para a Documentação Principal

A tradução de números converte números de telefone entre diferentes formatos para garantir uma formatação consistente E.164 em todo o sistema.

Documentação Relacionada

Documentação Principal

Fluxo de Processamento de Chamadas

Serviços Relacionados

Monitoramento


Tradução de Números

A tradução de números converte números de telefone entre diferentes formatos (local, nacional, internacional) para garantir uma formatação consistente E.164 em todo o sistema.

O que é Tradução de Números?

A tradução de números normaliza números de telefone para o formato E.164 (padrão internacional) antes do processamento da chamada. Isso garante:

  • Numeração consistente em todo o sistema
  • Roteamento adequado para destinos on-net e off-net
  • Compatibilidade com troncos SIP internacionais e redes IMS

Formato E.164: [Código do País][Número Nacional] (sem prefixo +, sem espaços)

  • Exemplo: 61403123456 (móvel da Austrália)
  • Exemplo: 16505551234 (número dos EUA)

Quando a Tradução Ocorre

A tradução acontece:

  • Antes das consultas Sh
  • Antes das consultas HLR
  • Antes da autorização OCS
  • Antes que o XML do dialplan seja gerado

Para Chamadas MT: Traduzir o número de destino (parte chamada) Para Chamadas MO: Traduzir ambos os números de origem e destino

Configuração

config :tas,
number_translate: %{
country_code: :PF, # Código do país ISO 3166-1 alpha-2
localAreaCode: "617" # Código de área padrão para números curtos
}

Parâmetros:

  • country_code: Código do país ISO como átomo (ex.: :AU, :US, :PF)
  • localAreaCode: Código de área precedido a números locais curtos

Códigos de País Suportados

O TAS inclui lógica de tradução para estes países:

Código do PaísPaísFormatos SuportadosPrefixo E.164
:AUAustrália0NSN (10 dígitos), SN (8 dígitos), E.16461
:USEstados UnidosNPANXXXXXX (10 dígitos), 1+NPANXXXXXX, E.1641
:PFPolinésia FrancesaLocal (6 dígitos), Nacional (8 dígitos), E.164689

Adicionando Novos Códigos de País: A lógica de tradução específica do país deve ser implementada em lib/numbertranslation.ex. Entre em contato com seu engenheiro de integração para adicionar novos países.

Comportamentos Especiais de Tradução

1. Remoção de Prefixos de Bloqueio CLI

Antes da tradução de formato, os prefixos de bloqueio CLI são removidos:

Entrada:  *67555123456
Passo 1: Remover *67 → 555123456
Passo 2: Traduzir → 1555123456 (se EUA)

2. Remoção de Parâmetros SIP

Parâmetros após ponto e vírgula são removidos:

Entrada:  61403123456;npdi;rn=+61400000000
Passo 1: Remover ;npdi;rn=... → 61403123456
Passo 2: Traduzir → 61403123456

3. Remoção de Caracteres Não-Dígitos

Todos os caracteres não-dígitos (exceto +) são removidos:

Entrada:  +61 (403) 123-456
Passo 1: Remover formatação → +61403123456
Passo 2: Traduzir → 61403123456

Variáveis Definidas Após a Tradução

VariávelValorDescrição
destination_numberformato E.164Número de destino normalizado
tas_destination_numberformato E.164Igual a destination_number (ambos definidos para compatibilidade)
effective_caller_id_numberformato E.164Número de origem normalizado (chamadas MO)

O que Acontece Quando a Tradução Falha

Cenário: Código do País Indefinido

config :tas, number_translate: %{country_code: :XX}  # Inválido

Resultado: {:error, "Código do País Indefinido"} - chamada rejeitada

Cenário: Formato de Número Inválido

Entrada: "abc123" (contém letras)
Passo 1: Remover não-dígitos → "123"
Passo 2: Muito curto, não pode corresponder a nenhum padrão
Resultado: Pode passar como está ou ser rejeitado com base na lógica do dialplan

Melhor Prática: Sempre valide o provisionamento de assinantes com números E.164 corretos no HSS.

Testando a Tradução de Números

Testador de Tradução da Web UI (/translate):

  1. Navegue até /translate no Painel de Controle
  2. Selecione o código do país no menu suspenso
  3. Insira o número de teste em qualquer formato
  4. Veja a saída traduzida em E.164
  5. Teste vários formatos para validar

Cenários de Teste Comuns:

  • Códigos curtos locais → E.164
  • Formato nacional (0NSN) → E.164
  • Formato internacional (+CC) → E.164
  • Números com prefixos CLI → removidos e traduzidos
  • Números com formatação (espaços, traços) → E.164 limpa

Solução de Problemas na Tradução de Números

Problema: Chamadas falhando com "UNALLOCATED_NUMBER"

  1. Verifique o formato do número traduzido:

    • Use a ferramenta /translate para testar o número
    • Verifique se a saída corresponde ao formato E.164 esperado
    • Confirme se o código do país e o código de área estão corretos
  2. Verifique a consulta Sh:

    • O número traduzido é usado para a consulta Sh
    • Use /sh_test com o número traduzido
    • Verifique se o assinante existe com esse MSISDN
  3. Verifique as variáveis do dialplan:

    • Revise os logs para o valor de destination_number
    • Confirme se a tradução ocorreu antes do dialplan

Problema: Código de área errado aplicado

# Configuração
config :tas, number_translate: %{
country_code: :AU,
localAreaCode: "617" # Errado para sua região
}

# Entrada: 12345678 (local de 8 dígitos)
# Saída: 6161712345678 (incorreto - código de área duplo)
# Correção: Defina o código de área local correto para sua implantação

Problema: Números internacionais não reconhecidos

Verifique se o número inclui o código do país:

  • ��� +61403123456 ou 61403123456 → Reconhecido
  • 0403123456 na configuração errada do código do país → Roteado incorretamente

Comportamento de Tradução MO vs MT

Chamadas MT (Mobile Terminated):

  • Apenas o número de destino (parte chamada) é traduzido
  • O número de origem (chamador) é passado como está do SIP
  • O destino é usado para a consulta Sh do assinante chamado

Chamadas MO (Mobile Originating):

  • O número de destino (parte chamada) é traduzido
  • O número de origem (parte chamadora) também é traduzido
  • A origem é usada para a consulta Sh do assinante chamador
  • Ambos os números são normalizados para registro consistente/CDR

Melhores Práticas

  1. Use o Código do País Correto:

    • Defina country_code para corresponder à sua região de implantação
    • Teste minuciosamente antes da produção
  2. Configure o Código de Área Local Apropriado:

    • localAreaCode deve corresponder ao padrão de área da sua rede
    • Usado para números curtos sem código de área
  3. Teste Todos os Formatos de Números:

    • Local (códigos curtos)
    • Nacional (formato 0NSN)
    • Internacional (formato +CC)
    • Números de serviços especiais (emergência, correio de voz)
  4. Monitore os Logs de Tradução:

    • Verifique erros de "Código do País Indefinido"
    • Fique atento a formatos de números inesperados
    • Valide a saída E.164 para corresponder às expectativas
  5. Documente Seu Plano de Numeração:

    • Defina quais formatos os assinantes usarão
    • Teste cada formato na ferramenta /translate
    • Treine a equipe de operações sobre os formatos esperados