انتقل إلى المحتوى الرئيسي

ترجمة الأرقام

📖 العودة إلى الوثائق الرئيسية

تقوم ترجمة الأرقام بتحويل أرقام الهواتف بين تنسيقات مختلفة لضمان تنسيق E.164 متسق في جميع أنحاء النظام.

الوثائق ذات الصلة

الوثائق الأساسية

تدفق معالجة المكالمات

الخدمات ذات الصلة

المراقبة


ترجمة الأرقام

تقوم ترجمة الأرقام بتحويل أرقام الهواتف بين تنسيقات مختلفة (محلية، وطنية، دولية) لضمان تنسيق 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.16461
:USالولايات المتحدةNPANXXXXXX (10 أرقام)، 1+NPANXXXXXX، E.1641
:PFبولينيزيا الفرنسيةمحلي (6 أرقام)، وطني (8 أرقام)، E.164689

إضافة رموز دول جديدة: تواصل مع مهندس التكامل الخاص بك لإضافة دعم لدول جديدة.

سلوكيات الترجمة الخاصة

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):

  1. انتقل إلى /translate في لوحة التحكم
  2. اختر رمز الدولة من القائمة المنسدلة
  3. أدخل رقم الاختبار بأي تنسيق
  4. عرض الناتج المترجم E.164
  5. اختبر تنسيقات متعددة للتحقق

سيناريوهات الاختبار الشائعة:

  • الرموز القصيرة المحلية → E.164
  • التنسيق الوطني (0NSN) → E.164
  • التنسيق الدولي (+CC) → E.164
  • الأ��قام مع بادئات CLI → تمت إزالتها وترجمتها
  • الأرقام مع التنسيق (مسافات، شرطات) → E.164 نظيف

استكشاف مشكلات ترجمة الأرقام

المشكلة: فشل المكالمات مع "UNALLOCATED_NUMBER"

  1. تحقق من تنسيق الرقم المترجم:

    • استخدم أداة /translate لاختبار الرقم
    • تحقق من أن الناتج يتطابق مع تنسيق E.164 المتوقع
    • تأكد من أن رمز الدولة ورمز المنطقة صحيحان
  2. تحقق من البحث Sh:

    • يتم استخدام الرقم المترجم لاستعلام Sh
    • استخدم /sh_test مع الرقم المترجم
    • تحقق من وجود المشترك مع ذلك MSISDN
  3. تحقق من متغيرات خطة الاتصال:

    • راجع السجلات لقيمة 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

أفضل الممارسات

  1. استخدم رمز الدولة الصحيح:

    • قم بتعيين country_code ليتناسب مع منطقة النشر الخاصة بك
    • اختبر بدقة قبل الإنتاج
  2. تكوين رمز المنطقة المناسب:

    • يجب أن يتطابق localAreaCode مع المنطقة الافتراضية لشبكتك
    • يستخدم للأرقام القصيرة بدون رمز منطقة
  3. اختبر جميع تنسيقات الأرقام:

    • المحلية (الرموز القصيرة)
    • الوطنية (تنسيق 0NSN)
    • الدولية (تنسيق +CC)
    • أرقام الخدمة الخاصة (الطوارئ، البريد الصوتي)
  4. راقب سجلات الترجمة:

    • تحقق من أخطاء "Undefined Country Code"
    • راقب التنسيقات غير المتوقعة للأرقام
    • تحقق من أن الناتج E.164 يتطابق مع التوقعات
  5. وثق خطة ترقيمك:

    • حدد التنسيقات التي سيستخدمها المشتركون
    • اختبر كل تنسيق في أداة /translate
    • درب موظفي العمليات على التنسيقات المتوقعة