Aller au contenu principal

Traduction de Numéros

📖 Retour à la Documentation Principale

La traduction de numéros convertit les numéros de téléphone entre différents formats pour garantir un formatage E.164 cohérent dans tout le système.

Documentation Connexe

Documentation Principale

Flux de Traitement des Appels

Services Connexes

Surveillance


Traduction de Numéros

La traduction de numéros convertit les numéros de téléphone entre différents formats (local, national, international) pour garantir un formatage E.164 cohérent dans tout le système.

Qu'est-ce que la Traduction de Numéros ?

La traduction de numéros normalise les numéros de téléphone au format E.164 (norme internationale) avant le traitement des appels. Cela garantit :

  • Une numérotation cohérente dans tout le système
  • Un routage approprié vers des destinations sur le réseau et hors réseau
  • Une compatibilité avec les trunks SIP internationaux et les réseaux IMS

Format E.164 : [Code Pays][Numéro National] (sans préfixe +, sans espaces)

  • Exemple : 61403123456 (mobile Australien)
  • Exemple : 16505551234 (numéro américain)

Quand la Traduction a Lieu

La traduction se produit :

  • Avant les recherches Sh
  • Avant les recherches HLR
  • Avant l'autorisation OCS
  • Avant que le XML du plan de numérotation soit généré

Pour les Appels MT : Traduire le numéro de destination (partie appelée) Pour les Appels MO : Traduire à la fois les numéros de source et de destination

Configuration

config :tas,
number_translate: %{
country_code: :PF, # Code de pays alpha-2 ISO 3166-1
localAreaCode: "617" # Code régional par défaut pour les numéros courts
}

Paramètres :

  • country_code: Code de pays ISO sous forme d'atome (par exemple, :AU, :US, :PF)
  • localAreaCode: Code régional préfixé aux numéros locaux courts

Codes de Pays Supportés

Le TAS inclut une logique de traduction pour ces pays :

Code PaysPaysFormats SupportésPréfixe E.164
:AUAustralie0NSN (10 chiffres), SN (8 chiffres), E.16461
:USÉtats-UnisNPANXXXXXX (10 chiffres), 1+NPANXXXXXX, E.1641
:PFPolynésie FrançaiseLocal (6 chiffres), National (8 chiffres), E.164689

Ajout de Nouveaux Codes de Pays : La logique de traduction spécifique à chaque pays doit être implémentée dans lib/numbertranslation.ex. Contactez votre ingénieur d'intégration pour ajouter de nouveaux pays.

Comportements de Traduction Spéciaux

1. Suppression des Préfixes de Blocage CLI

Avant la traduction de format, les préfixes de blocage CLI sont supprimés :

Entrée :  *67555123456
Étape 1 : Supprimer *67 → 555123456
Étape 2 : Traduire → 1555123456 (si US)

2. Suppression des Paramètres SIP

Les paramètres après les points-virgules sont supprimés :

Entrée :  61403123456;npdi;rn=+61400000000
Étape 1 : Supprimer ;npdi;rn=... → 61403123456
Étape 2 : Traduire → 61403123456

3. Suppression des Caractères Non Chiffrés

Tous les caractères non chiffrés (sauf +) sont supprimés :

Entrée :  +61 (403) 123-456
Étape 1 : Supprimer le formatage → +61403123456
Étape 2 : Traduire → 61403123456

Variables Définies Après Traduction

VariableValeurDescription
destination_numberFormat E.164Numéro de destination normalisé
tas_destination_numberFormat E.164Identique à destination_number (les deux définis pour compatibilité)
effective_caller_id_numberFormat E.164Numéro de source normalisé (appels MO)

Que Se Passe-t-il Lorsque la Traduction Échoue

Scénario : Code de Pays Indéfini

config :tas, number_translate: %{country_code: :XX}  # Invalide

Résultat : {:error, "Code de Pays Indéfini"} - appel rejeté

Scénario : Format de Numéro Invalide

Entrée : "abc123" (contient des lettres)
Étape 1 : Supprimer les non-chiffres → "123"
Étape 2 : Trop court, ne peut correspondre à aucun modèle
Résultat : Peut passer tel quel ou être rejeté selon la logique du plan de numérotation

Meilleure Pratique : Toujours valider la provision de l'abonné avec des numéros E.164 corrects dans le HSS.

Tester la Traduction de Numéros

Testeur de Traduction de l'Interface Web (/translate) :

  1. Naviguer vers /translate dans le Panneau de Contrôle
  2. Sélectionner le code de pays dans le menu déroulant
  3. Entrer un numéro de test dans n'importe quel format
  4. Voir la sortie E.164 traduite
  5. Tester plusieurs formats pour valider

Scénarios de Test Courants :

  • Codes courts locaux → E.164
  • Format national (0NSN) → E.164
  • Format international (+CC) → E.164
  • Numéros avec préfixes CLI → supprimés et traduits
  • Numéros avec formatage (espaces, tirets) → E.164 propre

Dépannage de la Traduction de Numéros

Problème : Appels échouant avec "NUMÉRO_NON_ALLOCÉ"

  1. Vérifier le format du numéro traduit :

    • Utiliser l'outil /translate pour tester le numéro
    • Vérifier que la sortie correspond au format E.164 attendu
    • Confirmer que le code de pays et le code régional sont corrects
  2. Vérifier la recherche Sh :

    • Le numéro traduit est utilisé pour la requête Sh
    • Utiliser /sh_test avec le numéro traduit
    • Vérifier que l'abonné existe avec ce MSISDN
  3. Vérifier les variables du plan de numérotation :

    • Examiner les journaux pour la valeur de destination_number
    • Confirmer que la traduction a eu lieu avant le plan de numérotation

Problème : Mauvais code régional appliqué

# Configuration
config :tas, number_translate: %{
country_code: :AU,
localAreaCode: "617" # Incorrect pour votre région
}

# Entrée : 12345678 (numéro local de 8 chiffres)
# Sortie : 6161712345678 (incorrect - double code régional)
# Correction : Définir le bon localAreaCode pour votre déploiement

Problème : Numéros internationaux non reconnus

Vérifiez si le numéro inclut le code de pays :

  • +61403123456 ou 61403123456 → Reconnu
  • 0403123456 dans une configuration de code_pays incorrecte → Mal dirigé

Comportement de Traduction MO vs MT

Appels MT (Mobile Terminated) :

  • Seul le numéro de destination (partie appelée) est traduit
  • Le numéro de source (appelant) est transmis tel quel depuis le SIP
  • La destination est utilisée pour la recherche Sh de l'abonné appelé

Appels MO (Mobile Originating) :

  • Le numéro de destination (partie appelée) est traduit
  • Le numéro de source (partie appelante) est également traduit
  • La source est utilisée pour la recherche Sh de l'abonné appelant
  • Les deux numéros sont normalisés pour un journal/CDR cohérent

Meilleures Pratiques

  1. Utiliser le Bon Code de Pays :

    • Définir country_code pour correspondre à votre région de déploiement
    • Tester minutieusement avant la production
  2. Configurer le Code Régional Approprié :

    • localAreaCode doit correspondre au code régional par défaut de votre réseau
    • Utilisé pour les numéros courts sans code régional
  3. Tester Tous les Formats de Numéros :

    • Locaux (codes courts)
    • Nationaux (format 0NSN)
    • Internationaux (format +CC)
    • Numéros de services spéciaux (urgence, messagerie vocale)
  4. Surveiller les Journaux de Traduction :

    • Vérifier les erreurs "Code de Pays Indéfini"
    • Surveiller les formats de numéros inattendus
    • Valider que la sortie E.164 correspond aux attentes
  5. Documenter Votre Plan de Numérotation :

    • Définir quels formats les abonnés utiliseront
    • Tester chaque format dans l'outil /translate
    • Former le personnel des opérations sur les formats attendus