ضوابط الروابط العميقة الغنية في RCS UP3.0
الرابط العميق الغني في GSMA Universal Profile 3.0 هو شريحة اقتراح RCS (rich_link_action) يفتح deep_link فيها داخل التطبيق على هاتف UP3.0
ويحمل fallback_url كل مستلم آخر إلى متصفح. قبل أن ترسل Orbit رسالة
تحمل أحد هذه الروابط — أو تطلب أيًا من أسطح UP3.0 الأخرى (تشفير MLS
الشامل من طرف إلى طرف، أو نفس ملف UP3.0) — يجتاز الطلب المُنشأ تقييم
ضوابط واحدًا يُرجع حكمًا واحدًا: allow أو review أو block.
لماذا الوضع الافتراضي آمن بشكل افتراضي
أسطح UP3.0 الأغنى توسع كلا من سطح الهجوم وتجربة المستلم: رابط عميق غني يسلّم للمستلم إجراء داخل التطبيق قابلاً للنقر، وتشفير MLS من طرف إلى طرف يضع محتوى الرسالة بعيدًا عن فحص المنصة. موقف Orbit هو أن المستأجر يتبنى تلك الأسطح عمدًا، قدرة واحدة في كل مرة:- ملف UP3.0، وMLS E2EE، وإقرار E2EE، كلها معطلة افتراضيًا. إرسال يطلب قدرة لم يُفعّلها المستأجر أبدًا تُرفض قبل الإرسال — لا يمكنك شحن حركة UP3.0 عن غير قصد.
- سمعة URL الصادرة تحكم التوصيل: روابط العميقة الغنية والبديلة تُقيَّم قبل الإرسال، وحكم مشبوه يحظر ما لم تُسمِ المضيف صراحة. هذه حماية smishing لسمعة المرسل المشتركة — البوابة المنصّية الوحيدة في هذه الصفحة عدى نقل STOP.
- كل شيء قابل للتهيئة من المستأجر يبقى مفتوحًا افتراضيًا في معنى
الفشل المفتوح: ساعات هدوء بدون نافذة مُهيّأة لا تحتجز إرسالًا
أبدًا، ونافذة مشوهة تُفك ترميزها كـ “مفتوح”، وقدرة لا يدعمها
المستلم تتدهور إلى
fallback_urlللشريحة بدلاً من الفشل.
حكم الضوابط
مسار الإرسال يُنشئ كل بوابة في كائن حكم واحد:
أكواد الأسباب، مقتبسة من المُقيِّم:
مساوية الموافقة. STOP يُنقل عبر القنوات لكنه لا يُنشئ نظام حكم
جديد: انسحاب صريح للمستلم مسجل على RCS أو أي قناة مساوية يُخنق
إرسال UP3.0 تمامًا كما يُخنق إرسال RCS عادي. الحكم لا يوسّع
الانسحاب — يرفض السماح لقناة أغنى بتجاوز قناة موجودة.
فك ترميز ساعات الهدوء. النافذة هي
<startHour, endHour> بساعات
كاملة [0, 24)، محلية للمستلم، وقد تلتف بعد منتصف الليل
(21 → 8 تحتجز 21:00 حتى 07:59). نافذة فارغة (start === end)
أو حد خارج النطاق تُفك ترميزها كـ مفتوح — تهيئة مشوهة تفشل
مفتوحة بدلاً من حكم كل إرسال صامتًا. ساعة صالحة تقع داخل النافذة
تُنتج احتجاز warn فقط؛ لا تحظر أبدًا.
دليل مشغل المستأجر
تفعيل قدرة. الأعلام الثلاثة للطرح — UP3.0، MLS E2EE، وإقرار فحص المحتوى E2EE — هي لكل مستأجر ومعطلة افتراضيًا. فعِّل UP3.0 أولاً؛ إرسال MLS بدون علم UP3.0 يفشل على كلا البوابتين. لا تطلبmls_e2ee على إرسال حتى يُسجل الإقرار بالنقطة العمياء: تشفير
حقيقي من طرف إلى طرف يُزيل فحص CSAM والتهديدات الوسائطية المنصِّي
على تلك القناة، والمنصة تحتجز كل إرسال مشفر حتى تتملكه. هذا
الإقرار هو الشرط الذي يجعل E2EE قابلاً للشحن — المنصة لن تُشفِّر
قناة عمياء لم توقع عليها.
افحص المستلم أولاً. دعم UP3.0 يُتفاوض لكل مستلم ولكل
روبوت — روبوت يُتيج روابط عميقة غنية لـ MSISDN واحد قد يتحدث
UP 2.x إلى التالي. شغِّل فحص القدرة (سطح النقطة النهائية أدناه)
قبل حملة واقرأ universalProfileVersion وfeatureFlags:
featureFlags.richLinkSupported— المستلم يُتيجrich_link_actionكرابط عميق حقيقي. عندfalse، المستلم يفتحfallback_urlبدلاً من ذلك، ولهذا كلا الـ URLs مطلوبان على الشريحة.universalProfileVersion: "3.0"— عتبة الروابط العميقة الغنية وMLS. مستلم يُتفاوض 2.x لا يقدر تيج الشريحة؛ خطط لذلك.- الأحكام الإيجابية تُخزّن 24 ساعة، حتى يكون مسح ما قبل الإرسال عبر مقطع رخيصًا.
RCS_NOT_SUPPORTED وسلسلة التنازل عبر القنوات على مستوى منظمتك
تتقدم (عادة RCS → SMS). مستلم يدعم RCS لكن يُتيج فقط
fallback_url ليس مسار خطأ — هذا التدهور المُصمَّم للشريحة على
هواتف غير UP3.0.
نظِّم قائمة الروابط العميقة المسموحة. مضيفات تملكها يمكن
إعفاؤها من نجاح السمعة: مُدخل يُطابق المضيف بالضبط أو أي نطاق
فرعي (مثال acme.example يُجيز acme.example وt.acme.example).
استخدمها لنطاقاتك فقط — إجازة مُختصر طرف ثالث تُزيل شاشة
smishing لكل مستلم.
سطح نقطة النهاية
كل إرسالات وفحوص القدرة متجذرة فيhttps://api.orbit.devotel.io/api/v1.
الرابط العميق نفسه هو إجراء شريحة اقتراح على حمولة الإرسال:
deep_link (هدف هاتف UP3.0) وfallback_url (كل مستلم آخر) كلاهما
URLs HTTPS مطلوبة؛ app_link وtracking_params بيانات وصفية اختيارية
محمولة إلى الإجراء المُتيج. كلا الـ URLs — بالإضافة إلى البديل — هي
ما يُقيِّم مسح السمعة قبل الإرسال. عقد الشريحة الكامل (استبعاد متبادل
مع open_url، حدود الشريحة، موضع الدوّار) على
صفحة قناة RCS.
مثال عملي: محظور، أُعيد إصدار، مُثبت
1. الإرسال الملوث يحظر. أرسلت شريحة حملةfallback_url تشير
إلى مُختصر روابط طرف ثالث تغذية السمعة تُدرجه بالفعل. الضوابط
تُرجع:
{ "decision": "allow", "reasons": [] } والرسالة
تُرسل. لو المضيف فُحص ببساطة suspicious، احتجز الإرسال للمراجعة
(decision: "review") بدلاً من الإرسال أو الحظر — حجر يحرره بعدما
تحققت الوجهة.
3. فريق أحمر: المضيف المسموح به. قائمتك المسموحة تحتوي
acme.example. اختبار فريق أحمر يُرسل شريحة deep_link فيها
https://acme.example.evil.example/phish — مضيف ينتهي بسلسلة
نطاقك لكنه ليس نطاقًا فرعيًا له. التطابق هو مضيف بالضبط أو
host.endsWith("." + entry)، فـ acme.example.evil.example ليس
مسموحًا به، ودرجته الخبيثة تصمد، والإرسال محظور. هذا هو الافتراض
الآمن يُمسك الشكل المشابه.
سجل التدقيق
كل حكم يُسجل سجلًا يمكنك قراءته عودة:- أكواد
reasons[](deep_link_malicious،rollout_up3_disabled،recipient_opted_out،e2ee_scan_ack_required،quiet_hours،content_scan_blind) قابلة للقراءة الآلية ومختومة على سجل تدقيق الرسالة، حتى يُفسّر إرسال محظور أو محتجز ذاته لاحقًا. - علامة
flags.contentScanBlindتُرافق أي إرسال E2EE مسموح — سجل التدقيق يحفظ أن المنصة عمية عن الحمولة، حتى لا تُخطئ مراجعة لاحقة “لا نتيجة مسح” لـ “فُحص نظيفًا”. - إرسالات محظورة تُظهر في حالة الرسالة وسجل التوصيل؛ قطع قصير لفحص
القدرة يقرأ كـ
RCS_NOT_SUPPORTED، وحظر سمعة يقرأ مع أسباب الحكم. - نتائج سمعة URL وراء حكم
deep_link_*هي نفس الإشارات محمولة على مسح SMS/compose — ماسح واحد، شكل تدقيق واحد، عبر القنوات.
المراجع ذات الصلة
- قناة RCS — عقد الشريحة، فحص القدرة، وسلسلة التنازل.
- دليل انضمام RCS — العلامة → الوكيل → التحقق → الإطلاق.
- بوابات الإرسال — ساعات الهدوء، DNC، RND، والبوابات الأخرى وقت الإرسال.
- إدارة الموافقة — سجلات الموافقة التي يقرأ بها مساوية STOP.
- قوائم الانسحاب والحظر — طبقة الحظر التي يحترمها بوابة انسحاب المستلم.