Saltar al contenido principal

Traducción de Números

📖 Volver a la Documentación Principal

La traducción de números convierte números de teléfono entre diferentes formatos para garantizar un formato E.164 consistente en todo el sistema.

Documentación Relacionada

Documentación Principal

Flujo de Procesamiento de Llamadas

Servicios Relacionados

Monitoreo


Traducción de Números

La traducción de números convierte números de teléfono entre diferentes formatos (local, nacional, internacional) para garantizar un formato E.164 consistente en todo el sistema.

¿Qué es la Traducción de Números?

La traducción de números normaliza los números de teléfono al formato E.164 (estándar internacional) antes del procesamiento de llamadas. Esto asegura:

  • Numeración consistente en todo el sistema
  • Enrutamiento adecuado a destinos en red y fuera de red
  • Compatibilidad con troncos SIP internacionales y redes IMS

Formato E.164: [Código de País][Número Nacional] (sin prefijo +, sin espacios)

  • Ejemplo: 61403123456 (móvil de Australia)
  • Ejemplo: 16505551234 (número de EE. UU.)

Cuándo Ocurre la Traducción

La traducción ocurre:

  • Antes de las búsquedas Sh
  • Antes de las búsquedas HLR
  • Antes de la autorización OCS
  • Antes de que se genere el XML del dialplan

Para Llamadas MT: Traducir el número de destino (parte llamada) Para Llamadas MO: Traducir ambos números, origen y destino

Configuración

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

Parámetros:

  • country_code: Código de país ISO como átomo (por ejemplo, :AU, :US, :PF)
  • localAreaCode: Código de área que se antepone a números locales cortos

Códigos de País Soportados

El TAS incluye lógica de traducción para estos países:

Código de PaísPaísFormatos SoportadosPrefijo E.164
:AUAustralia0NSN (10 dígitos), SN (8 dígitos), E.16461
:USEstados UnidosNPANXXXXXX (10 dígitos), 1+NPANXXXXXX, E.1641
:PFPolinesia FrancesaLocal (6 dígitos), Nacional (8 dígitos), E.164689

Agregar Nuevos Códigos de País: La lógica de traducción específica del país debe implementarse en lib/numbertranslation.ex. Contacte a su ingeniero de integración para agregar nuevos países.

Comportamientos Especiales de Traducción

1. Eliminación de Prefijos de Bloqueo CLI

Antes de la traducción de formato, se eliminan los prefijos de bloqueo CLI:

Entrada:  *67555123456
Paso 1: Eliminar *67 → 555123456
Paso 2: Traducir → 1555123456 (si es EE. UU.)

2. Eliminación de Parámetros SIP

Los parámetros después de los punto y coma se eliminan:

Entrada:  61403123456;npdi;rn=+61400000000
Paso 1: Eliminar ;npdi;rn=... → 61403123456
Paso 2: Traducir → 61403123456

3. Eliminación de Caracteres No Dígitos

Se eliminan todos los caracteres no dígitos (excepto +):

Entrada:  +61 (403) 123-456
Paso 1: Eliminar formato → +61403123456
Paso 2: Traducir → 61403123456

Variables Establecidas Después de la Traducción

VariableValorDescripción
destination_numberFormato E.164Número de destino normalizado
tas_destination_numberFormato E.164Igual a destination_number (ambos establecidos por compatibilidad)
effective_caller_id_numberFormato E.164Número de origen normalizado (llamadas MO)

Qué Ocurre Cuando la Traducción Falla

Escenario: Código de País No Definido

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

Resultado: {:error, "Código de País No Definido"} - llamada rechazada

Escenario: Formato de Número Inválido

Entrada: "abc123" (contiene letras)
Paso 1: Eliminar no dígitos → "123"
Paso 2: Demasiado corto, no se puede coincidir con ningún patrón
Resultado: Puede pasar tal cual o ser rechazado según la lógica del dialplan

Mejor Práctica: Siempre valide la provisión de suscriptores con números E.164 correctos en HSS.

Pruebas de Traducción de Números

Probador de Traducción de UI Web (/translate):

  1. Navegue a /translate en el Panel de Control
  2. Seleccione el código de país del menú desplegable
  3. Ingrese un número de prueba en cualquier formato
  4. Vea la salida E.164 traducida
  5. Pruebe múltiples formatos para validar

Escenarios de Prueba Comunes:

  • Códigos cortos locales → E.164
  • Formato nacional (0NSN) → E.164
  • Formato internacional (+CC) → E.164
  • Números con prefijos CLI → eliminados y traducidos
  • Números con formato (espacios, guiones) → E.164 limpia

Solución de Problemas de Traducción de Números

Problema: Llamadas que fallan con "NÚMERO_NO_ASIGNADO"

  1. Verifique el formato del número traducido:

    • Use la herramienta /translate para probar el número
    • Verifique que la salida coincida con el formato E.164 esperado
    • Confirme que el código de país y el código de área son correctos
  2. Verifique la búsqueda Sh:

    • El número traducido se utiliza para la consulta Sh
    • Use /sh_test con el número traducido
    • Verifique que el suscriptor exista con ese MSISDN
  3. Verifique las variables del dialplan:

    • Revise los registros para el valor de destination_number
    • Confirme que la traducción ocurrió antes del dialplan

Problema: Se aplica un código de área incorrecto

# Configuración
config :tas, number_translate: %{
country_code: :AU,
localAreaCode: "617" # Incorrecto para su región
}

# Entrada: 12345678 (local de 8 dígitos)
# Salida: 6161712345678 (incorrecto - doble código de área)
# Solución: Establecer el localAreaCode correcto para su implementación

Problema: Números internacionales no reconocidos

Verifique si el número incluye el código de país:

  • +61403123456 o 61403123456 → Reconocido
  • 0403123456 en configuración de código de país incorrecto → Enrutado incorrectamente

Comportamiento de Traducción MO vs MT

Llamadas MT (Terminadas en Móvil):

  • Solo se traduce el número de destino (parte llamada)
  • El número de origen (llamante) se pasa tal cual desde SIP
  • El destino se utiliza para la búsqueda Sh del suscriptor llamado

Llamadas MO (Originadas en Móvil):

  • Se traduce el número de destino (parte llamada)
  • También se traduce el número de origen (parte llamante)
  • El origen se utiliza para la búsqueda Sh del suscriptor que llama
  • Ambos números se normalizan para un registro/CDR consistente

Mejores Prácticas

  1. Use el Código de País Correcto:

    • Establezca country_code para que coincida con su región de implementación
    • Pruebe a fondo antes de la producción
  2. Configure el Código de Área Local Apropiado:

    • localAreaCode debe coincidir con el área predeterminada de su red
    • Se utiliza para números cortos sin código de área
  3. Pruebe Todos los Formatos de Números:

    • Local (códigos cortos)
    • Nacional (formato 0NSN)
    • Internacional (formato +CC)
    • Números de servicio especial (emergencia, correo de voz)
  4. Monitoree los Registros de Traducción:

    • Verifique errores de "Código de País No Definido"
    • Esté atento a formatos de número inesperados
    • Valide que la salida E.164 coincida con las expectativas
  5. Documente Su Plan de Numeración:

    • Defina qué formatos utilizarán los suscriptores
    • Pruebe cada formato en la herramienta /translate
    • Capacite al personal de operaciones sobre los formatos esperados