الخلاصة
- يحفظ
History-Infoقيم Request-URI التي تكشفها العقد الداعمة عند إعادة استهداف طلب أولي أو تفريعه. يبنيhi-indexشجرة مرتبة، بينما تصفrcوmpوnpتغيرًا داخل المستخدم نفسه أو إلى مستخدم آخر أو في القفزة التالية فقط. - الامتداد اختياري؛ وقد تحتوي الشجرة على إدخالات قديمة أو إدخال يعترف بفجوة، وقد تغيب عنها شعبة لم ترد بعد أو وجهة أخفتها الخصوصية. يحمي TLS/SIPS النقل من طرف خارج المسار، لا من كل وسيط موثوق أصبح خبيثًا.
- لا تكفي الشجرة لتبرير القرار. يلزم ربطها بالقاعدة المنفذة ومالكها وبياناتها وهوية الفاعل وحالة الشعب وتحويل الخصوصية والمعاملة اللاحقة والنتيجة الفعلية. السجل يصف الطريق ولا يملك سلطة اختياره.
لماذا لا تكفي خريطة سليمة لحسم النزاع
لنتصور رقم طوارئ تابعًا لمؤسسة كبيرة. يفترض أن تنتقل المكالمة عند الازدحام إلى مركز احتياطي معتمد، لكن متصلًا وصل إلى متعهد لم يعد ضمن العقد. تعرض منصة التشغيل شجرة History-Info منظمة: الرقم العام، عنوان المركز الرئيسي، ثم تطبيق المتعهد. الفهارس صحيحة والفرع الأخير أعاد استجابة ناجحة، فتصف المنصة المسار بأنه «معتمد».
هذه الصفة لم يرسلها بروتوكول SIP.
تثبت الشجرة أن نسخة معينة من الرسالة، في نقطة رصد معينة، احتوت على أهداف معينة. لا تحدد من فعّل قاعدة التحويل، أو نسخة الدليل التي اختارت المتعهد، أو ما إذا كان التفويض ما زال نافذًا، أو إن كانت هناك شعبة داخلية معلقة، أو إن أخفت خدمة خصوصية وجهة أخرى، أو عدّل وسيط على المسار الإدخالات، أو وصلت وسائط الصوت، أو قدم المتعهد الخدمة المطلوبة.
يعالج RFC 7044 فقدانًا محددًا في الإشارة. عندما يغير وسيط Request-URI، تصبح الوجهة الجديدة هي الظاهرة وتضيع السابقة عادة من الطلب المرسل. يحفظ History-Info الأهداف السابقة للطلبات الأولية أو الخارجة عن حوار قائم. لا يوحّد السياسة المحلية التي قررت تلك الأهداف.
القرار يسبق الرواية
يتيح RFC 3261 لوكيل SIP تحديد الهدف بالاستعانة بخدمة موقع أو رد إعادة توجيه أو معلومات Route أو إعداد محلي. يرسل الوكيل الطلب إلى الهدف الحالي. ومن دون امتداد إضافي قد لا يعرف المستقبل كيف وصل الاختيار إلى هذا العنوان.
يسمي RFC 7044 العملية retargeting عندما تغير جهة Request-URI وفق قواعد تحديد الهدف ثم تمرر الطلب. الشيفرة العاملة في الوكيل أو PBX أو B2BUA أو التطبيق هي التي أنشأت الواقعة التشغيلية. أما History-Info فيدوّن جزءًا من نتيجتها.
يمنح المعيار لغة مشتركة، وتسجل IANA معاملات SIP أسماء History-Info وhistinfo وhistory وrc وmp وnp. التسجيل يثبت تخصيص الاسم، لا انتشار التنفيذ أو صحة البيانات أو حق المؤسسة في تغيير الوجهة.
وللامتداد حد زمني واضح: الطلبات الأولية أو الخارجة عن الحوار. لا يسجل كل ما يحدث بعد قيام الحوار؛ فالإشارة اللاحقة والوسائط والتسجيل والفوترة وتجربة المتصل طبقات أخرى.
الفهرس يرسم النسب، لا الساعة
يحتوي كل إدخال على URI مستهدف وعلى hi-index. تضع أعداد صحيحة غير سالبة تفصلها نقاط كل عقدة في مكانها. يمد الابن فهرس أبيه، ويولد التفريع إخوة تحت أصل واحد. يرتب المرسل الإدخالات وفق المرور القبلي حتى يستطيع المستقبل بناء الشجرة.
تحمي هذه البنية من خطأ شائع: تحويل شعبتين متوازيتين إلى عمليتي إعادة توجيه متتابعتين في قائمة مسطحة. لكنها ليست خطًا زمنيًا. لا يقيس الفهرس مدة، ولا يزامن ساعات العقد، ولا يثبت أي فرع انتهى أولًا.
تصف معاملات الآلية نوع الحافة:
- تعني
rcأن Request-URI تغير بينما يرى الوسيط أن المستخدم المستهدف بقي نفسه، مثل حل عنوان عام إلى Contact مسجل؛ - وتعني
mpالانتقال إلى مستخدم مستهدف آخر أو عنوان تسجيل آخر؛ - وتعني
npتغير القفزة التالية من دون تغير Request-URI.
هذه أوصاف يضعها الوسيط، وليست أحكام صلاحية. لا تثبت rc أن هويتين تتبعان الشخص المسؤول نفسه مؤسسيًا. لا تمنح mp إذنًا بالتحويل. ولا تشهد np بنزاهة القفزة التالية. يجب مقارنة التصنيف بالقاعدة والبيانات التي أنتجته.
الفجوة قد تكون سلوكًا صحيحًا
الدعم اختياري. يعلن الطرف histinfo في Supported، ولا يستخدمه لإجبار كل قفزة عبر Require أو Proxy-Require. عقدة لا تعرف الامتداد قد تقطع التاريخ المرئي من دون سوء نية.
وقد تستمر إدخالات RFC 4244 القديم الذي ألغاه RFC 7044. يلزم المعيار الجديد بتمريرها، لكنه يمنع عقدة لاحقة من اختراع rc أو mp أو np لقرار لم تشهده. غياب المعامل قد يعني أثرًا قديمًا، لا غياب إعادة الاستهداف.
إذا وصل Request-URI لا يطابق آخر إدخال، يضيف المستقبل إدخالًا بالنيابة عن الجهة السابقة. يعرف أن الهدف تغير، لكنه لم يشاهد الآلية. لذلك لا يزعم معاملًا. الإدخال يعترف بحدود المعرفة بدل أن يخفيها.
يكشف التفريع حدًا آخر. يعرض RFC 7044 مثالًا يعيد فيه فرع 200 بينما ما زال فرع شقيق ينتظر. لا تستطيع الاستجابة الناجحة حمل مستقبل الفرع المعلق. لذلك قد تكون الشجرة الملتقطة عند الفائز صحيحة وغير شاملة في الوقت نفسه.
وتخفي الخصوصية فروعًا عن قصد. تبين أمثلة RFC 4244 أن الطرف الأعلى قد يعيد محاولة هدف لأنه لا يعرف أن فرعًا خاصًا جربه من قبل. ليست هذه حجة لإلغاء الخصوصية، بل لكتابة سلوك آمن عند نقص البيانات.
العبارة القابلة للتدقيق هي: «احتوت هذه النسخة في هذه النقطة على هذه الإدخالات». أما «هذا هو كل الطريق» فتحتاج أدلة من خارج الحقل.
Reason تفسير بروتوكولي محدود
يمكن إدراج Reason في جزء headers من URI داخل History-Info. يعرّف RFC 3326 أسباب SIP وQ.850 ويسمح بأكثر من فضاء بروتوكولي. يستخدم RFC 7044 هذه المعلومات لبعض ردود الفشل والمهل.
من المفيد معرفة أن فرعًا أبلغ بأنه مشغول أو انتهت مهلته. لكن القيمة لا تثبت نية الإنسان الذي ضبط التحويل أو صحة السياسة أو صدق النظام أو السبب التجاري للحادثة. ويمكن تعديلها أو حذفها إذا غابت سلامة النقل. لذا يلزم حفظ الرسالة والجهة ونقطة الرصد معها.
يسجل سجل تصحيحات RFC 7044 ثلاثة بنود بحالة Reported تتعلق بفهرسة فجوة وفئات الاستجابة الخاصة بـ Reason وإحالة تحريرية، إضافة إلى بندين Rejected. لا تعني Reported أنها Verified. هي أسئلة اختبار، لا تعديلات معيارية نافذة.
الخصوصية تقلص الحقيقة المرئية عمدًا
قد يكشف سجل Request-URI جهازًا شخصيًا أو اسمًا بديلًا أو قسمًا داخليًا أو بريدًا صوتيًا أو طوبولوجيا. يشرح RFC 3323 حاجة خصوصية SIP إلى الوسطاء لأنهم هم من يضيفون بيانات المسار.
يضيف RFC 7044 قيمة الخصوصية history. يمكن أن تشمل الحماية التاريخ المعني أو إدخالًا محددًا. ويجوز للنطاق إخفاء مساره الداخلي حتى إن لم يطلب الوارد خصوصية. ويمكن لـ UAS ألا يكشف الهدف النهائي للمنشئ. وعند الحد قد يستبدل وسيط الخصوصية URI بعنوان تحت anonymous.invalid.
قد يكون هذا تنفيذًا صحيحًا للسياسة، لا تلاعبًا عدائيًا. لكنه يضيق ما يستطيع المدقق في النطاق التالي إثباته. ينبغي تسجيل الحد والقاعدة والتحويل، مع خريطة محمية متاحة للمراجعة المخولة إذا سمحت السياسة.
سلطة اختيار الهدف وسلطة إخفائه ليستا سلطة واحدة. يجب ألا يبتلعهما حدث مبهم اسمه «تطبيع المسار».
TLS يحمي القناة ولا يزكي كل وسيط
يوصي RFC 7044 بقوة باستخدام TLS أو بيئة آمنة. يمنع SIPS طرفًا عشوائيًا خارج المسار من العبث ضمن نموذج ثقته. أما الوسطاء داخل المسار فيقرؤون History-Info ويضيفون إليه.
يستطيع وسيط خبيث أو مخترق حذف الإدخالات أو تغيير ترتيبها أو كتابتها. يصرح RFC 7044 بأن الامتداد لا يمنع هذا السلوك ولا يكشفه. يحصل الحقل على أمن بقية رؤوس SIP في المسار، لا أكثر.
لذلك تحفظ السلسلة نظير TLS ونتيجة الشهادة ونطاق الثقة وبصمة الرسالة ونقطة الالتقاط. «مر عبر SIPS» وصف للنقل، وليس تصديقًا من طرف إلى طرف على صدق كل راوٍ.
على التطبيق أن يعلن كيف يقرأ الشجرة
يطلب RFC 7044 من التطبيقات تعريف سلوكها عند غياب التاريخ أو نقصه. وقد تختار خدمات مختلفة مواضع rc مختلفة.
قد يبحث PBX مؤسسي وبريد صوتي استهلاكي عن هويتين مختلفتين. إذا حدث تحويل قبل دخول الطلب إلى المؤسسة، فإن قاعدة «اختر أول rc» قد تنسب المكالمة إلى طرف خارجي. ويبين RFC 4458 أن معلومات target وcause في البريد الصوتي قد تظهر في Request-URI الحالي أو في History-Info بحسب دعم الوكلاء والمسار.
لا توجد خوارزمية عالمية داخل الشجرة. يجب أن يعلن التطبيق غرضه، والنطاقات التي يثق بها، وكيف يعالج الفجوات والخصوصية والتعارض. يتفق ذلك مع تصور Heng Lu للمواصفة الأولية الدنيا: تنسق الطبقة المشتركة، وتبقى القرارات اللاحقة العادية عند أصحاب السياق والخسارة. لكن القاعدة المحلية يجب أن تكون قابلة للتصدير والاعتراض.
ملف قرار يمكن الدفاع عنه
تبدأ السلسلة بحفظ الطريقة وRequest-URI الوارد والصادر وCall-ID وCSeq وVia branch والوقت ونقطة الرصد وبصمة مضبوطة.
ثم تحفظ الشجرة الواردة والصادرة منفصلتين: الترتيب والفهرس وURI وإشارة rc/mp/np وReason والخصوصية والصيغة القديمة ونتيجة التحليل وإدخال الفجوة. لا يُملأ المجهول بتخمين صامت.
ويسجل القرار نفسه: معرف القاعدة ونسختها ومصدر الاستعلام ونتيجته ورد إعادة التوجيه والمرشحون والاختيار وترتيب الاحتياط وإنشاء الشعب وهوية الخدمة والمستأجر والمالك والموافقة ومدة النفاذ.
وتفصل الثقة عن الخصوصية: نطاق الدخول والخروج ونظير TLS والتحويل والسياسة والخريطة المحمية والصلاحيات والاحتفاظ.
وأخيرًا تربط معاملات الشعب والردود والمهل وCANCEL والفائز وخريطة ساقي B2BUA والحوار والوسائط والتطبيق والتسجيل والفوترة والشكوى.
يجب ألا تختفي التناقضات: فائز بلا فرع شقيق معروف، أو rc يعبر حد مستأجر، أو Reason يخالف سجل التطبيق، أو شجرة صحيحة في B2BUA بلا خريطة ساقين، أو 200 بلا صوت. هذه الخلافات تحدد موضع انقطاع الواقع. تلخيصها في «مسار معتمد» يمنح المجمّع سلطة لم يكسبها.
المصادر
- RFC 7044 — سجل طلبات SIP
- RFC 4244 — المواصفة السابقة الملغاة
- RFC 3261 — SIP
- RFC 3326 — Reason
- RFC 3323 — خصوصية SIP
- RFC 4458 — عناوين البريد الصوتي
- تصحيحات RFC 7044
- معاملات SIP لدى IANA
- Heng Lu — Running-Code Primacy
- Heng Lu — Minimum Initial Specification
- Heng Lu — Reality Layers
- Heng Lu — Data Sovereignty
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات
