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
- 📋 README Principal - Visão geral e início rápido
- 🔧 Guia de Configuração - Configuração da tradução de números (
number_translate) - 🔧 Guia de Operações - Teste de tradução de números no Painel de Controle
Fluxo de Processamento de Chamadas
- 🔀 Configuração do Dialplan - Usando números traduzidos no dialplan (a tradução acontece primeiro)
- 👥 Interface Sh - A consulta Sh usa números traduzidos
- 💳 Cobrança Online - OCS recebe números traduzidos
- 📡 SS7 MAP - Consultas HLR usam números traduzidos
Serviços Relacionados
- ⚙️ Serviços Suplementares - Remoção de prefixos de bloqueio CLI durante a tradução
- 📞 Correio de Voz - Números de correio de voz na tradução
Monitoramento
- 📊 Referência de Métricas - Métricas de tradução de números
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ís | País | Formatos Suportados | Prefixo E.164 |
|---|---|---|---|
:AU | Austrália | 0NSN (10 dígitos), SN (8 dígitos), E.164 | 61 |
:US | Estados Unidos | NPANXXXXXX (10 dígitos), 1+NPANXXXXXX, E.164 | 1 |
:PF | Polinésia Francesa | Local (6 dígitos), Nacional (8 dígitos), E.164 | 689 |
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ável | Valor | Descrição |
|---|---|---|
destination_number | formato E.164 | Número de destino normalizado |
tas_destination_number | formato E.164 | Igual a destination_number (ambos definidos para compatibilidade) |
effective_caller_id_number | formato E.164 | Nú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):
- Navegue até
/translateno Painel de Controle - Selecione o código do país no menu suspenso
- Insira o número de teste em qualquer formato
- Veja a saída traduzida em E.164
- 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"
-
Verifique o formato do número traduzido:
- Use a ferramenta
/translatepara 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
- Use a ferramenta
-
Verifique a consulta Sh:
- O número traduzido é usado para a consulta Sh
- Use
/sh_testcom o número traduzido - Verifique se o assinante existe com esse MSISDN
-
Verifique as variáveis do dialplan:
- Revise os logs para o valor de
destination_number - Confirme se a tradução ocorreu antes do dialplan
- Revise os logs para o valor de
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:
- ���
+61403123456ou61403123456→ Reconhecido - ❌
0403123456na 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
-
Use o Código do País Correto:
- Defina
country_codepara corresponder à sua região de implantação - Teste minuciosamente antes da produção
- Defina
-
Configure o Código de Área Local Apropriado:
localAreaCodedeve corresponder ao padrão de área da sua rede- Usado para números curtos sem código de área
-
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)
-
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
-
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