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

الخدمات التكميلية

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

تكوين وتنفيذ خدمات تحويل المكالمات، حظر CLI، والمكالمات الطارئة.

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

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

معالجة المكالمات ومصادر البيانات​

تفاعلات الخدمة​

المراقبة​


الخدمات التكميلية (تحويل المكالمات / CLI المحظور / رموز الطوارئ)​

تكوين بادئات CLI المحظورة، رموز المكالمات الطارئة، وبيانات تحويل المكالمات الافتراضية (بيانات تحويل المكالمات / عدم الرد تُستخدم فقط عندما لا تُرجع بيانات MMTel-Config من المستودع على Sh).

config :tas,
...
blocked_cli_prefix: ["*67"],
call_forward_not_reachable_destination: "2222",
default_no_reply_timer: 30,
emergency_call_codes: ["911", "912", "913", "sos"],
...

معلمات التكوين:

  • blocked_cli_prefix (قائمة من السلاسل): بادئات تُحفز حجب CLI (معرف الخط المتصل)

    • مثال: ["*67"] - الاتصال بـ *67 قبل رقم يُخفي معرف المتصل
    • تُستخدم في خطة الاتصال لتعيين متغير cli_withheld
  • call_forward_not_reachable_destination (سلسلة): الوجهة الافتراضية لتحويل المكالمات غير القابلة للوصول (CFNRc)

    • تُستخدم فقط عندما لا تُرجع MMTel-Config من واجهة Sh
    • مثال: "2222" - تُحول إلى البريد الصوتي
  • default_no_reply_timer (عدد صحيح): المهلة الافتراضية بالثواني قبل تفعيل CFNRc

    • تُستخدم فقط عندما لا تُرجع MMTel-Config من واجهة Sh
    • مثال: 30 - يرن لمدة 30 ثانية قبل التحويل
  • emergency_call_codes (قائمة من السلاسل): أرقام خدمات الطوارئ في منطقتك

    • يتم التحقق منها أثناء تفويض المكالمات لاكتشاف المكالمات الطارئة
    • يتم دائمًا التحقق من URNs الطارئة SIP (مثل <urn:service:sos>) بالإضافة إلى هذه الرموز
    • أمثلة شائعة: ["911", "112", "000", "999", "sos"]
    • انظر قسم المكالمات الطارئة للاستخدام المفصل

كيفية عمل حجب معرف المتصل​

يدعم TAS طريقتين لحجب معرف المتصل (حجب CLI)، وكلاهما يعيّن متغير خطة الاتصال cli_withheld إلى "true":

الطريقة 1: الحجب القائم على البادئة

عندما يقوم المشترك بالاتصال برقم وجهة مسبوق برمز من blocked_cli_prefix:

  1. تكشف وحدة ترجمة الأرقام عن البادئة (على سبيل المثال، المتصل يتصل بـ *67555123456)
  2. يتم إزالة البادئة من رقم الوجهة (يصبح 555123456)
  3. يتم تعيين متغير cli_withheld إلى "true"
  4. يمكن لخطة الاتصال بعد ذلك استخدام هذا المتغير لإخفاء هوية المتصل

مثال على التكوين:

blocked_cli_prefix: ["*67"]        # حجب على الطراز الأمريكي
blocked_cli_prefix: ["#31#"] # حجب على الطراز الأوروبي GSM
blocked_cli_prefix: ["*67", "#31#"] # دعم كلاهما

الطريقة 2: الكشف عن رأس SIP From

عندما يطلب UE/الهاتف الخصوصية عبر رؤوس SIP:

  1. يتحقق TAS مما إذا كان اسم العرض في رأس SIP From يحتوي على "anonymous" (غير حساس لحالة الأحرف)
  2. إذا تم العثور عليه، يتم تعيين متغير cli_withheld إلى "true"
  3. هذا يحترم طلب الخصوصية الخاص بالمشترك الذي تم تعيينه على مستوى الجهاز

تنفيذ حجب CLI في خطة الاتصال

يقوم TAS بتعيين متغير cli_withheld، لكن يجب أن تنفذ XML خطة الاتصال الخاصة بك سلوك الحجب الفعلي:

<extension name="CLI-Privacy" continue="true">
<condition field="${cli_withheld}" expression="true">
<!-- إخفاء هوية المتصل -->
<action application="set" data="effective_caller_id_name=anonymous"/>
<action application="set" data="effective_caller_id_number=anonymous"/>
<action application="set" data="origination_privacy=hide_number"/>

<!-- تعيين خصوصية P-Asserted-Identity بشكل اختياري -->
<action application="set" data="sip_h_Privacy=id"/>
</condition>
</extension>

المتغيرات التي يحددها TAS لحجب CLI:

يحدد TAS هذه المتغيرات قبل تنفيذ خطة الاتصال:

المتغيرالنوعالقيمالوصف
cli_withheldسلسلة"true" أو "false"يشير إلى ما إذا تم طلب حجب CLI عبر البادئة أو رأس From
tas_destination_numberسلسلةرقم موحدالوجهة مع إزالة بادئة الحجب (على سبيل المثال، 555123456)
destination_numberسلسلةرقم موحدنفس tas_destination_number (يتم تعيين كلاهما)

المتغيرات التي يجب أن تحددها خطة الاتصال الخاصة بك (عندما يكون cli_withheld="true"):

تتحكم هذه المتغيرات في كيفية تقديم هوية المتصل:

المتغيرالقيمة الموصى بهاالغرض
effective_caller_id_number"anonymous"يخفي رقم هاتف المتصل
effective_caller_id_name"anonymous"يخفي اسم عرض المتصل
origination_privacy"hide_number"علامة خصوصية SIP للجزء الخارجي
sip_h_Privacy"id"رأس خصوصية SIP (RFC 3323)
sip_h_P-Asserted-Identity(غير محدد أو إزالة)اختياري: إزالة رأس P-Asserted-Identity

مثال كامل لخطة الاتصال:

<extension name="CLI-Privacy-Handler" continue="true">
<condition field="${cli_withheld}" expression="true">
<!-- سجل لأغراض استكشاف الأخطاء وإصلاحها -->
<action application="log" data="INFO تم طلب حجب CLI للمكالمة إلى ${tas_destination_number}"/>

<!-- إخفاء هوية المتصل في المكالمة الخارجية -->
<action application="set" data="effective_caller_id_name=anonymous"/>
<action application="set" data="effective_caller_id_number=anonymous"/>
<action application="set" data="origination_privacy=hide_number"/>

<!-- تعيين رؤوس خصوصية SIP -->
<action application="set" data="sip_h_Privacy=id"/>

<!-- اختياري: إزالة P-Asserted-Identity إذا كانت موجودة -->
<action application="unset" data="sip_h_P-Asserted-Identity"/>

<!-- يتم تشغيل الإجراء المضاد إذا كان cli_withheld غير صحيح -->
<anti-action application="log" data="DEBUG استخدام معرف المتصل العادي: ${msisdn}"/>
<anti-action application="set" data="effective_caller_id_number=${msisdn}"/>
</condition>
</extension>

<!-- تستمر هذه الإضافة إلى توجيه المكالمة الفعلي -->
<extension name="Route-Outbound-Call">
<condition field="${tas_destination_number}" expression="^(.+)$">
<action application="bridge" data="sofia/gateway/trunk/${tas_destination_number}"/>
</condition>
</extension>

ملاحظات هامة:

  • يمكن أن تعمل الطريقتان في وقت واحد (ت triggers الحجب إما عبر البادئة أو رأس SIP)
  • يتم دائمًا إزالة البادئة من رقم الوجهة، حتى لو لم تنفذ خطة الاتصال الخصوصية
  • متغير cli_withheld هو سلسلة ("true" أو "false")، وليس قيمة منطقية
  • يتم تنفيذ سلوك تحويل المكالمات / CLI المحظور في XML خطة الاتصال الخاصة بك
  • يتضمن تكوين المثال هذه الميزات، ولكن إذا لم تحددها في خطة الاتصال الخاصة بك، فلن تعمل
  • يتم تعيين المتغيرات خلال تدفق المكالمة MO (المكالمات الصادرة من الهاتف المحمول) فقط

كيفية عمل تحويل المكالمات​

يسمح تحويل المكالمات (المعروف أيضًا باسم تحويل الاتصالات أو CDIV) للمشتركين بإعادة توجيه المكالمات الواردة إلى وجهة أخرى. يدعم TAS أنواعًا متعددة من تحويل المكالمات مع سلوك قابل للتكوين.

أنواع تحويل المكالمات​

1. تحويل المكالمات الكل (CFA) - التحويل غير المشروط

  • المتغير: call_forward_all_destination
  • عندما يكون نشطًا: يتم تحويل جميع المكالمات الواردة على الفور
  • الأولوية: يتم التحقق منها أولاً (بعد تحويل HLR)
  • الاستخدام الشائع: يرغب المشترك في إرسال جميع المكالمات إلى رقم آخر
  • مثال: تحويل المكالمات التجارية إلى الهاتف الشخصي

2. تحويل المكالمات المشغولة (CFB)

  • عندما يكون نشطًا: يتم تحويل المكالمة عندما يكون المشترك بالفعل في مكالمة
  • استجابة SIP: 486 مشغول يُحفز التحويل
  • الاستخدام الشائع: تحويل إلى البريد الصوتي عند وجود مكالمة أخرى

3. تحويل المكالمات بدون رد (CFNRy)

  • المتغير: no_reply_timer
  • عندما يكون نشطًا: يتم تحويل المكالمة بعد الرنين لعدد محدد من الثواني دون رد
  • الوقت المستغرق: عادةً 15-30 ثانية
  • الاستخدام الشائع: تحويل إلى البريد الصوتي إذا لم يتم الرد

4. تحويل المكالمات غير القابلة للوصول (CFNRc)

  • المتغير: call_forward_not_reachable_destination
  • عندما يكون نشطًا: يكون المشترك غير متصل، غير مسجل، أو غير قابل للوصول
  • استجابة SIP: 480 غير متاح مؤقتًا
  • الاستخدام الشائع: تحويل إلى البريد الصوتي عندما يكون الهاتف مغلقًا
  • الافتراضي: معلمة التكوين المستخدمة إذا لم يكن هناك MMTel-Config

أولوية مصدر البيانات​

يتم استرداد بيانات تحويل المكالمات من مصادر متعددة مع هذه الأولو��ة:

1. بيانات HLR (SS7 MAP)           [أعلى أولوية - تتجاوز الجميع]
↓ (إذا لم يكن هناك تحويل HLR نشط)
2. MMTel-Config (واجهة Sh) [إعدادات محددة للمشترك من HSS]
↓ (إذا لم يتم إرجاع MMTel-Config)
3. القيم الافتراضية للتكوين [أدنى أولوية - قيم احتياطية]

لماذا هذه الأولوية؟

  • بيانات HLR: حالة التحويل في الوقت الحقيقي لسيناريوهات التجوال/الشبكة
  • MMTel-Config: تفضيلات المشترك المكونة في IMS
  • القيم الافتراضية للتكوين: احتياطي على مستوى الشبكة (عادةً البريد الصوتي)

متغيرات خطة الاتصال لتحويل المكالمات​

المتغيرالنوعالمصدرقيمة المثالالوصف
call_forward_all_destinationسلسلةSh/MMTel أو "none""61403555123"وجهة CFA إذا كانت نشطة
call_forward_not_reachable_destinationسلسلةSh/MMTel أو التكوين"2222"وجهة CFNRc (البريد الصوتي)
no_reply_timerعدد صحيحSh/MMTel أو التكوين30عدد الثواني للرنين قبل CFNRy
msrnسلسلةHLR (MT فقط)"61400123456"MSRN أو الرقم المحول من HLR
tas_destination_numberسلسلةمحسوبة"2222"الوجهة الفعلية للتوجيه (قد تكون رقم التحويل)

تنفيذ تحويل المكالمات في خطة الاتصال​

مثال على خطة الاتصال MT مع تحويل المكالمات:

<!-- تحقق من تحويل المكالمات الكل (أعلى أولوية بعد HLR) -->
<extension name="Check-CFA" continue="true">
<condition field="${call_forward_all_destination}" expression="^(?!none$).+$">
<action application="log" data="INFO تحويل المكالمات الكل نشط إلى ${call_forward_all_destination}"/>
<action application="set" data="tas_destination_number=${call_forward_all_destination}"/>
</condition>
</extension>

<!-- محاولة الربط بالمشترك -->
<extension name="Bridge-To-Subscriber">
<condition field="${msrn}" expression="^none$">
<!-- لا يوجد MSRN، توجيه إلى المشترك المحلي -->
<action application="set" data="call_timeout=${no_reply_timer}"/>
<action application="bridge" data="sofia/internal/${tas_destination_number}@${scscf_address}"/>

<!-- إذا فشلت الربط، تحقق من التحويل -->
<action application="log" data="INFO فشل الربط، يتم التحقق من تحويل المكالمات"/>

<!-- تحويل المكالمات غير القابلة للوصول -->
<action application="set" data="forward_destination=${call_forward_not_reachable_destination}"/>
<action application="log" data="INFO تحويل إلى ${forward_destination}"/>
<action application="answer"/>
<!-- توجيه إلى البريد الصوتي TAS ESL (إيداع)؛ انظر voicemail.md -->
<action application="set" data="tas_vm_mode=deposit"/>
<action application="set" data="tas_vm_mailbox=${msisdn}"/>
<action application="set" data="tas_vm_caller=${effective_caller_id_number}"/>
<action application="socket" data="127.0.0.1:8084 async full"/>
</condition>
</extension>

تكوين تحويل المكالمات الافتراضي​

قم بتعيين القيم الافتراضية على مستوى الشبكة في config/runtime.exs:

config :tas,
# الوجهة الافتراضية لـ CFNRc (تستخدم عندما لا يوجد MMTel-Config)
call_forward_not_reachable_destination: "2222", # رقم الوصول للبريد الصوتي

# المهلة الافتراضية قبل تفعيل CFNRy (تستخدم عندما لا يوجد MMTel-Config)
default_no_reply_timer: 30 # الرنين لمدة 30 ثانية

عندما يتم استخدام القيم الافتراضية:

  • يوجد المشترك في HSS ولكن لا يوجد MMTel-Config مكون
  • ينجح بحث Sh ولكن لا يُرجع إعدادات تحويل المكالمات
  • مشتركون جدد قبل تكوين تحويل المكالمات

استكشاف أخطاء تحويل المكالمات​

المشكلة: المكالمات لا تتحول كما هو متوقع

  1. تحقق من بيانات Sh:

    • استخدم واجهة الويب /sh_test للاستعلام عن المشترك
    • تحقق من أن MMTel-Config يحتوي على قواعد CDIV
    • تحقق من قيمة call_forward_all_destination
  2. تحقق من متغيرات خطة الاتصال:

    • راجع سجلات المكالمات لقيم المتغيرات
    • تأكد من أن call_forward_all_destination != "none"
    • تحقق من أن tas_destination_number تم تعيينه إلى وجهة التحويل
  3. تحقق من بيانات HLR (إذا كان SS7 MAP مفعلًا):

    • استخدم واجهة ا��ويب /hlr للاستعلام عن المشترك
    • تحويل HLR يتجاوز بيانات Sh
    • تحقق من أن متغير msrn لا يحتوي على رقم تحويل غير متوقع
  4. تحقق من القيم الافتراضية للتكوين:

    • تحقق من call_forward_not_reachable_destination في التكوين
    • تأكد من أن default_no_reply_timer مناسب
    • هذه تنطبق فقط عندما لا يوجد MMTel-Config

المشكلة: حلقات التحويل

الأعراض: يتم تحويل المكالمة إلى رقم يقوم بإعادة التحويل، مما يخلق حلقة

الوقاية في خطة الاتصال:

<!-- تتبع عدد التحويلات -->
<extension name="Prevent-Forward-Loop" continue="true">
<condition field="${sip_h_X-Forward-Hop-Count}" expression="^$">
<action application="set" data="sip_h_X-Forward-Hop-Count=1"/>
<anti-action application="set" data="sip_h_X-Forward-Hop-Count=${expr(${sip_h_X-Forward-Hop-Count}+1)}"/>
</condition>
</extension>

<extension name="Check-Forward-Hop-Limit">
<condition field="${sip_h_X-Forward-Hop-Count}" expression="^([3-9]|[1-9][0-9]+)$">
<action application="log" data="ERROR تم اكتشاف حلقة تحويل، عدد التحويلات: ${sip_h_X-Forward-Hop-Count}"/>
<action application="hangup" data="حلقة_مكتشفة"/>
</condition>
</extension>

مراقبة تحويل المكالمات​

المؤشرات الرئيسية:

  • معدل مرتفع من المكالمات إلى أرقام البريد الصوتي
  • نمط المكالمات التي تنتهي في قيمة no_reply_timer
  • المكالمات الموجهة باستمرار إلى نفس وجهات التحويل

السجلات المفيدة:

INFO تحويل المكالمات الكل نشط إلى 61403555123
INFO تحويل إلى 2222
INFO فشل الربط، يتم التحقق من تحويل المكالمات

ذكاء الأعمال:

  • تتبع معدلات تفعيل التحويل حسب المشترك
  • مراقبة أنماط استخدام البريد الصوتي
  • تحديد المشتركين الذين لديهم تحويل غير مشروط