ترجمة الأرقام
ترجمة الأرقام تحول أرقام الهواتف بين تنسيقات مختلفة لضمان تنسيق 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 |
إضافة رموز دول جديدة:
يجب تنفيذ منطق الترجمة الخاص بكل دولة في lib/numbertranslation.ex. اتصل بمهندس التكامل الخاص بك لإضافة دول جديدة.
سلوكيات الترجمة الخاصة
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, "رمز الدولة غير معرف"} - تم رفض المكالمة
السيناريو: تنسيق رقم غير صالح
الإدخال: "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 (غير صحيح - رمز منطقة مزدوج)
# الحل: تعيين رمز المنطقة الصحيح لنشر الخاص بك
المشكلة: الأرقام الدولية غير معترف بها
تحقق مما إذا كان الرقم يتضمن رمز الدولة:
- ✅
+61403123456أو61403123456→ معترف بها - ❌
0403123456في تكوين رمز الدولة الخاطئ → تم توجيهها بشكل خاطئ
سلوك الترجمة MO مقابل MT
المكالمات MT (المتنقلة المستلمة):
- يتم ترجمة رقم الوجهة (الطرف المتصل) فقط
- يتم تمرير رقم المصدر (المتصل) كما هو من SIP
- يتم استخدام الوجهة لبحث Sh عن المشترك المتصل به
المكالمات MO (المتنقلة الصادرة):
- يتم ترجمة رقم الوجهة (الطرف المتصل)
- يتم أيضًا ترجمة رقم المصدر (الطرف المتصل)
- يتم استخدام المصدر لبحث Sh عن المشترك المتصل
- يتم تطبيع كلا الرقمين لتسجيل متسق / CDR
أفضل الممارسات
-
استخدم رمز الدولة الصحيح:
- قم بتعيين
country_codeليتناسب مع منطقة النشر الخاصة بك - اختبر بدقة قبل الإنتاج
- قم بتعيين
-
تكوين رمز المنطقة المناسب:
- يجب أن يتطابق
localAreaCodeمع المنطقة الافتراضية لشبكتك - يستخدم للأرقام القصيرة بدون رمز منطقة
- يجب أن يتطابق
-
اختبر جميع تنسيقات الأرقام:
- المحلية (الرموز القصيرة)
- الوطنية (تنسيق 0NSN)
- الدولية (تنسيق +CC)
- أرقام الخدمة الخاصة (الطوارئ، البريد الصوتي)
-
راقب سجلات الترجمة:
- تحقق من أخطاء "رمز الدولة غير معرف"
- راقب التنسيقات غير المتوقعة للأرقام
- تحقق من أن الناتج E.164 يتطابق مع التوقعات
-
وثق خطة ترقيمك:
- حدد التنسيقات التي سيستخدمها المشتركون
- اختبر كل تنسيق في أداة
/translate - درب موظفي العمليات على التنسيقات المتوقعة