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
- 📋 README Principal - Aperçu et démarrage rapide
- 🔧 Guide de Configuration - Configuration de la traduction de numéros (
number_translate) - 🔧 Guide des Opérations - Test de la traduction de numéros dans le Panneau de Contrôle
Flux de Traitement des Appels
- 🔀 Configuration du Plan de Numérotation - Utilisation des numéros traduits dans le plan de numérotation (la traduction se produit en premier)
- 👥 Interface Sh - La recherche Sh utilise des numéros traduits
- 💳 Chargement en Ligne - OCS reçoit des numéros traduits
- 📡 SS7 MAP - Les requêtes HLR utilisent des numéros traduits
Services Connexes
- ⚙️ Services Supplémentaires - Suppression des préfixes de blocage CLI lors de la traduction
- 📞 Messagerie Vocale - Numéros de messagerie vocale en traduction
Surveillance
- 📊 Référence des Métriques - Métriques de traduction de numéros
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 Pays | Pays | Formats Supportés | Préfixe E.164 |
|---|---|---|---|
:AU | Australie | 0NSN (10 chiffres), SN (8 chiffres), E.164 | 61 |
:US | États-Unis | NPANXXXXXX (10 chiffres), 1+NPANXXXXXX, E.164 | 1 |
:PF | Polynésie Française | Local (6 chiffres), National (8 chiffres), E.164 | 689 |
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
| Variable | Valeur | Description |
|---|---|---|
destination_number | Format E.164 | Numéro de destination normalisé |
tas_destination_number | Format E.164 | Identique à destination_number (les deux définis pour compatibilité) |
effective_caller_id_number | Format E.164 | Numé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) :
- Naviguer vers
/translatedans le Panneau de Contrôle - Sélectionner le code de pays dans le menu déroulant
- Entrer un numéro de test dans n'importe quel format
- Voir la sortie E.164 traduite
- 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É"
-
Vérifier le format du numéro traduit :
- Utiliser l'outil
/translatepour 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
- Utiliser l'outil
-
Vérifier la recherche Sh :
- Le numéro traduit est utilisé pour la requête Sh
- Utiliser
/sh_testavec le numéro traduit - Vérifier que l'abonné existe avec ce MSISDN
-
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
- Examiner les journaux pour la valeur de
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 :
- ✅
+61403123456ou61403123456→ Reconnu - ❌
0403123456dans 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
-
Utiliser le Bon Code de Pays :
- Définir
country_codepour correspondre à votre région de déploiement - Tester minutieusement avant la production
- Définir
-
Configurer le Code Régional Approprié :
localAreaCodedoit correspondre au code régional par défaut de votre réseau- Utilisé pour les numéros courts sans code régional
-
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)
-
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
-
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