ترجمة الأرقام
تقوم ترجمة الأرقام بتحويل أرقام الهواتف بين تنسيقات مختلفة لضمان تنسيق E.164 متسق في جميع أنحاء النظام.
الوثائق ذات الصلة
الوثائق الأساسية
- 📋 الملف التعريفي الرئيسي - نظرة عامة وبدء سريع
- 🔧 دليل التكوين - تكوين ترجمة الأرقام (
number_translate) - 🔧 دليل العمليات - اختبار ترجمة الأرقام في لوحة التحكم
تدفق معالجة المكالمات
- 🔀 تكوين خطة الاتصال - استخدام الأرقام المترجمة في خطة الاتصال (تحدث الترجمة أولاً)
- 👥 واجهة Sh - يستخدم البحث Sh الأرقام المترجمة
- 💳 الشحن عبر الإنترنت - تتلقى OCS الأرقام المترجمة
- 📡 SS7 MAP - تستخدم استعلامات HLR الأرقام المترجمة
الخدمات ذات الصلة
- ⚙️ الخدمات التكميلية - إزالة بادئات حظر CLI أثناء الترجمة
- 📞 البريد الصوتي - أرقام البريد الصوتي في الترجمة
المراقبة
- 📊 مرجع القياسات - قياسات ترجمة الأرقام
ترجمة الأرقام
تقوم ترجمة الأرقام بتحويل أرقام الهواتف بين تنسيقات مختلفة (محلية، وطنية، دولية) لضمان تنسيق E.164 متسق في جميع أنحاء النظام.
ما هي ترجمة الأرقام؟
تقوم ترجمة الأرقام بتطبيع أرقام الهواتف إلى تنسيق E.164 (المعيار الدولي) قبل معالجة المكالمات. يضمن ذلك:
- ترقيم متسق في جميع أنحاء النظام
- توجيه صحيح إلى الوجهات على الشبكة وخارجها
- التوافق مع خطوط SIP الدولية وشبكات IMS
تنسيق E.164: [رمز الدولة][الرقم الوطني] (بدون بادئة +، بدون مسافات)
- مثال:
61403123456(رقم موبايل أسترالي) - مثال:
16505551234(رقم أمريكي)
متى تحدث الترجمة
تحدث الترجمة:
- قبل عمليات البحث Sh
- قبل عمليات البحث HLR
- قبل تفويض OCS
- قبل إنشاء XML لخطة الاتصال
للمكالمات MT: ترجمة رقم الوجهة (الطرف المدعو) للمكالما�� MO: ترجمة كل من أرقام المصدر والوجهة
التكوين
config :tas,
number_translate: %{
country_code: :PF, # رمز الدولة ISO 3166-1 alpha-2
localAreaCode: "617" # رمز المنطقة الافتراضي للأرقام القصيرة
}
المعلمات:
country_code: رمز الدولة ISO كذرة (مثل::AU,:US,:PF)localAreaCode: رمز المنطقة المضاف إلى الأرقام المحلية القصيرة
رموز الدول المدعومة
تتضمن TAS منطق الترجمة لهذه الدول:
| رمز الدولة | الدولة | التنسيقات المدعومة | بادئة E.164 |
|---|---|---|---|
:AU | أستراليا | 0NSN (10 أرقام)، SN (8 أرقام)، E.164 | 61 |
:US | الولايات المتحدة | NPANXXXXXX (10 أرقام)، 1+NPANXXXXXX، E.164 | 1 |
:PF | بولينيزيا الفرنسية | محلي (6 أرقام)، وطني (8 أرقام)، E.164 | 689 |
إضافة رموز دول جديدة: تواصل مع مهندس التكامل الخاص بك لإضافة دعم لدول جديدة.
سلوكيات الترجمة الخاصة
1. إزالة بادئات حظر CLI
قبل ترجمة التنسيق، تتم إزالة بادئات حظر CLI:
الإدخال: *67555123456
الخطوة 1: إزالة *67 → 555123456
الخطوة 2: الترجمة → 1555123456 (إذا كانت في الولايات المتحدة)
2. إزالة معلمات SIP
تتم إزالة المعلمات بعد الفواصل المنقوطة:
الإدخال: 61403123456;npdi;rn=+61400000000
الخطوة 1: إزالة ;npdi;rn=... → 61403123456
الخطوة 2: الترجمة → 61403123456
3. إزالة الأحرف غير الرقمية
تتم إزالة جميع الأحرف غير الرقمية (باستثناء +):
الإدخال: +61 (403) 123-456
الخطوة 1: إزالة التنسيق → +61403123456
الخطوة 2: الترجمة → 61403123456
المتغيرات المعينة بعد الترجمة
| المتغير | القيمة | الوصف |
|---|---|---|
destination_number | تنسيق E.164 | رقم الوجهة المنظم |
tas_destination_number | تنسيق E.164 | نفس destination_number (يتم تعيين كلاهما للتوافق) |
effective_caller_id_number | تنسيق E.164 | رقم المصدر المنظم (مكالمات MO) |
ماذا يحدث عند فشل الترجمة
ال��يناريو: رمز الدولة غير معرف
config :tas, number_translate: %{country_code: :XX} # غير صالح
النتيجة: {:error, "Undefined Country Code"} - تم رفض المكالمة
السيناريو: تنسيق رقم غير صالح
الإدخال: "abc123" (يحتوي على أحرف)
الخطوة 1: إزالة غير الأرقام → "123"
الخطوة 2: قصيرة جدًا، لا يمكن مطابقة أي نمط
النتيجة: قد تمر كما هي أو ترفض بناءً على منطق خطة الاتصال
أفضل ممارسة: تحقق دائمًا من توفير المشتركين بأرقام E.164 الصحيحة في HSS.
اختبار ترجمة الأرقام
أداة اختبار ترجمة واجهة الويب (/translate):
- انتقل إلى
/translateفي لوحة التحكم - اختر رمز الدولة من القائمة المنسدلة
- أدخل رقم الاختبار بأي تنسيق
- عرض الناتج المترجم E.164
- اختبر تنسيقات متعددة للتحقق
سيناريوهات الاختبار الشائعة:
- الرموز القصيرة المحلية → E.164
- التنسيق الوطني (0NSN) → E.164
- التنسيق الدولي (+CC) → E.164
- الأ��قام مع بادئات CLI → تمت إزالتها وترجمتها
- الأرقام مع التنسيق (مسافات، شرطات) → E.164 نظيف
استكشاف مشكلات ترجمة الأرقام
المشكلة: فشل المكالمات مع "UNALLOCATED_NUMBER"
-
تحقق من تنسيق الرقم المترجم:
- استخدم أداة
/translateلاختبار الرقم - تحقق من أن الناتج يتطابق مع تنسيق E.164 المتوقع
- تأكد من أن رمز الدولة ورمز المنطقة صحيحان
- استخدم أداة
-
تحقق من البحث Sh:
- يتم استخدام الرقم المترجم لاستعلام Sh
- استخدم
/sh_testمع الرقم المترجم - تحقق من وجود المشترك مع ذلك MSISDN
-
تحقق من متغيرات خطة الاتصال:
- راجع السجلات لقيمة
destination_number - تأكد من حدوث الترجمة قبل خطة الاتصال
- راجع السجلات لقيمة
المشكلة: تطبيق رمز منطقة خاطئ
# التكوين
config :tas, number_translate: %{
country_code: :AU,
localAreaCode: "617" # خاطئ لمنطقتك
}
# الإدخال: 12345678 (رقم محلي مكون من 8 أرقام)
# الناتج: 6161712345678 (غير صحيح - رمز م��طقة مزدوج)
# الحل: تعيين localAreaCode الصحيح لنشره
المشكلة: عدم التعرف على الأرقام الدولية
تحقق مما إذا كان الرقم يتضمن رمز الدولة:
- ✅
+61403123456أو61403123456→ معترف به - ❌
0403123456في تكوين country_code خاطئ → تم توجيهه بشكل خاطئ
سلوك ترجمة MO مقابل MT
مكالمات MT (المتنقلة المستلمة):
- يتم ترجمة رقم الوجهة فقط (الطرف المدعو)
- يتم تمرير رقم المصدر (المتصل) كما هو من SIP
- يتم استخدام الوجهة للبحث Sh عن المشترك المدعو
مكالمات MO (المتنقلة الصادرة):
- يتم ترجمة رقم الوجهة (الطرف المدعو)
- يتم أيضًا ترجمة رقم المصدر (الطرف المتصل)
- يتم استخدام المصدر للبحث Sh عن المشترك المتصل
- يتم تطبيع كلا الرقمين لتسجيل متسق / CDR
أفضل الممارسات
-
استخدم رمز الدولة الصحيح:
- قم بتعيين
country_codeليتناسب مع منطقة النشر الخاصة بك - اختبر بدقة قبل الإنتاج
- قم بتعيين
-
تكوين رمز المنطقة المناسب:
- يجب أن يتطابق
localAreaCodeمع المنطقة الافتراضية لشبكتك - يستخدم للأرقام القصيرة بدون رمز منطقة
- يجب أن يتطابق
-
اختبر جميع تنسيقات الأرقام:
- المحلية (الرموز القصيرة)
- الوطنية (تنسيق 0NSN)
- الدولية (تنسيق +CC)
- أرقام الخدمة الخاصة (الطوارئ، البريد الصوتي)
-
راقب سجلات الترجمة:
- تحقق من أخطاء "Undefined Country Code"
- راقب التنسيقات غير المتوقعة للأرقام
- تحقق من أن الناتج E.164 يتطابق مع التوقعات
-
وثق خطة ترقيمك:
- حدد التنسيقات التي سيستخدمها المشتركون
- اختبر كل تنسيق في أداة
/translate - درب موظفي العمليات على التنسيقات المتوقعة