الخلاصة
- أتاح RFC 3149 لوكيل MGCP بعيد أن يفسّر أرقام مفاتيح الوظائف، ويضبط النصوص والمصابيح، ويفرض حالة الخط، ويعرض واجهة XML؛ غير أن بلاغ المفتاح لم يكن دليلاً على الوظيفة أو نتيجتها.
- لأن حالة الشاشة قد تسير على توقيت غير توقيت الإشارة الهاتفية، منحها النص نقطة نهاية مستقلة باسم يبدأ بـ
disp/، وجعل طبقة XML ترى بعض ضغطات المفاتيح قبل طبقة الهاتف. - بقي مستوى الرنين والسماعة ومكبر الصوت، والانتقال الفوري بين مساري الصوت، وكتم الميكروفون ومؤشره شؤوناً محلية، فظل للمستخدم حد مادي داخل معمارية ذات ذكاء خارجي.
أرسل الهاتف رقماً لا اسماً وظيفياً
بدأ Media Gateway Control Protocol من قرار معماري قوي: منطق المكالمة يقيم في Media Gateway Controller، أو وكيل المكالمات، لا في البوابة. تكفي لحافة هاتفية بسيطة حزمة صغيرة من الأحداث والإشارات. أما هاتف المكتب فيضيف أزرار التحويل والانتظار والمؤتمر وإعادة الطلب والرسائل، ومفاتيح قابلة للبرمجة، وشاشة، ومفاتيح لينة، ومكبر صوت، وزر كتم.
عرّف RFC 3149 ثلاث عائلات تكمل هذا السطح. حزمة Feature Key، المسماة KY، تصف مفاتيح غير DTMF وما يرتبط بها من مصابيح وتسميات. وحزمة Business Phone، المسماة BP، تضيف فرض رفع الخط ووضعه وإصدار الصفارة. أما Display XML فتوفر قناة بين وكيل المكالمات والشاشة.
كان حدث المفتاح منخفض المستوى عن قصد. يمكن للهاتف أن يبلغ بأن المفتاح رقم 1 ضُغط، لكن الوكيل هو الذي يملك الخريطة التي تجعل الرقم 1 يعني انتظاراً أو تحويلاً أو ظهور خط أو وظيفة أخرى. وقد يستخدم طراز ثان الرقم 23 للانتظار، أو لا يملك المفتاح نفسه. لذلك لم يحمل الرقم معنى تجارياً ثابتاً عبر الأجهزة.
ينشأ هنا فرق حاسم في الإثبات. يثبت إشعار صحيح أن نقطة نهاية أبلغت عن رقم مفتاح ضمن مجموعة أحداث مطلوبة. وللقول إن المستخدم ضغط «انتظار» نحتاج إلى خريطة ذلك الطراز وإصدارها النشط في تلك اللحظة. وللقول إن المكالمة وُضعت فعلاً على الانتظار نحتاج كذلك إلى قرار الوكيل، والمعاملة التي طلبت الإشارات، وتحوّل حالة الاتصال، وأثر قابل للرصد في مسار الوسائط.
إذا اختُصرت هذه السلسلة في حقل من نوع button=hold، فقد صارت الخلاصة اسماً لبيانات ناقصة. السجل القابل للمراجعة يحتفظ بالطراز والبرمجية الثابتة وإصدار الخريطة ورقم المفتاح وطلب الحدث والإشعار وفرع القرار ونتيجة الإشارة ونتيجة الصوت، ولا يدمجها في حقيقة واحدة.
التسمية والمصباح مخرجان لا برهانان
استطاع الوكيل أن يطلب إضاءة مؤشر مفتاح أو إطفاءه، وأن يضع نصاً حراً قرب المفتاح إن كانت الشاشة تسمح. هكذا يمكن لجهاز عام أن يتخذ شكل هاتف أعمال تتغير وظائفه مع التطبيق، من دون طباعة معنى كل مفتاح في العتاد.
لكن المرونة صنعت فجوة بين العرض والعمل. قد تبقى كلمة «انتظار» بعد تبديل الخريطة. وقد يضيء المصباح لأن الجهاز قبل إشارة، بينما تفشل عملية المكالمة المقصودة. وقد يرسل المفتاح رقمه على نحو سليم فيما يقرأ المستخدم تسمية أخرى أو يلمس مفتاحاً مجاوراً. النجاح في الرسم على الشاشة ليس النجاح في الخدمة.
تعمدت الوثيقة تحديد مجموعة أولية صغيرة من الأحداث والإشارات وتجنب الحركة المكررة. فإذا كان الوكيل يريد معرفة حصول الضغط فقط، فلا ضرورة إلى إرسال إشعاري الضغط والتحرير. هذا اقتصاد مفيد في الواجهة السلكية، لكنه يعني أيضاً أن سجل البروتوكول ليس تصويراً كاملاً لحركة اليد أو للواجهة التي شاهدها الشخص.
لذلك يلزم وصل الإيصالات من دون صهرها: موضع المفتاح ورقمه، الخريطة النافذة، النص والمصباح المرئيان، طلب RQNT وإشعار NTFY، قرار الوكيل، حالة الإشارة، مسار الوسائط، وما ظهر فعلاً للمستخدم.
صارت الشاشة نقطة نهاية مستقلة
لم يعامل RFC 3149 الشاشة كزينة ملحقة بحالة الهاتف. قال إن حالة العرض قد تكون غير متزامنة مع حالة الإشارة، ولذلك توقع اسماً مستقلاً لنقطة نهاية العرض يتكون بإضافة disp/ قبل اسم نقطة نهاية الهاتف.
يبين المثال سبب ذلك. تصل مكالمة ويبدأ الرنين، فيما تعرض الشاشة خيار توجيهها فوراً إلى البريد الصوتي. اختيار المستخدم يولّد XML post، ويمكن أن يلغي مؤقتات الرنين. لكن ظهور الخيار، وضغطه، ووصول الحدث، وإلغاء المؤقت، وتغير الإشارة، وتجربة الطرف البعيد ليست لحظة واحدة. لكل منها ساعة وإيصال.
أتاحت الحزمة للوكيل تحديد deck وcard وإرسال قيم بديلة وتلقي إدخال أو اختيار. ويمكن للبطاقة أن تضم نصاً وقائمة وحقل إدخال ومؤقتاً وتنقلاً. وعندما يشترك مفتاح بين الواجهة والشغل الهاتفي، ترى طبقة XML الضغط أولاً: إما أن تستهلكه، وإما أن تمرره إلى طبقة الهاتف.
الأولوية في التوزيع ليست سلطة على الواقع. استهلاك البرنامج النصي رقماً يثبت قرار توجيه محلياً، لا أنه رسم البطاقة الصحيحة، ولا أن القيمة وصلت إلى المتحكم الصحيح، ولا أن المكالمة تحولت. الاسم المنفصل جعل الاختلاف قابلاً للعنونة؛ ولم يجعل الحالتين متطابقتين تلقائياً.
كان الطراز اختصاراً للاكتشاف لا شهادة عتاد
احتاج وكيل المكالمات إلى معرفة المفاتيح وقدرة العرض في الهاتف. كان ممكناً ابتكار اكتشاف تفصيلي لكل خاصية، لكن الوثيقة اختارت معلومة تجريبية أبسط هي X-UA: سلسلة تعرف الصانع والطراز بصورة فريدة، كي يختار المتحكم ملف قدرات معروفاً.
هذه المعلومة فهرس اقتصادي وليست تصديقاً للآلة. قد تُتجاهل لأنها غير مدعومة، أو تكون قديمة قياساً إلى البرمجية الثابتة، أو تشير إلى ملف ناقص، أو لا تطابق لوحة مفاتيح مستبدلة. كما لا تثبت أبعاد الشاشة ولا توصيل المصابيح ولا صلاحية الميكروفون ومكبر الصوت.
حرف X رسم بدوره حد توافق. كان على بوابة لا تعرف المعلمة التجريبية أن تتجاهلها بدلاً من رفض التفاعل كله. لذلك لا تعني الاستجابة الغائبة وجود لوحة افتراضية؛ إنها تعني أن القدرة مجهولة. وعلى المتحكم أن يستخدم مساراً احتياطياً محدوداً لا أن يخترع أزراراً.
يتطلب الإثبات حفظ السلسلة المسترجعة مع هوية المخزون والبرمجية الثابتة وإصدار ملف القدرات وملاحظة للسطح الفعلي. يستطيع التصنيف أن يختار سلوكاً مرجحاً، لكن الكود الجاري والعتاد العامل يملكان حق الاعتراض.
احتفظت يد المستخدم بسلطة فورية
يرسم القسم الرابع أوضح خط في الوثيقة. ينبغي تنفيذ مستوى صوت الرنين والسماعة ومكبر الصوت محلياً. وإذا كان مكبر الصوت نشطاً، ينبغي أن يستطيع المستخدم رفع السماعة والتحول إليها، ثم الرجوع إلى مكبر الصوت، من دون أي تفاعل مع وكيل المكالمات. وينبغي أيضاً أن يكون زر كتم الميكروفون ومصباحه الاختياري محليين.
لا يناقض ذلك نموذج الذكاء الخارجي. إنه يحدد مداه. يحتفظ المركز بمعاني وظائف تتبع تطبيق الاتصال ويمكن أن تتبدل. ويحتفظ الجهاز بأفعال يمس بها الإنسان مسار الصوت فوراً. مركزية التأويل لا تصبح بذلك ملكية لكل آلية في الحافة.
قد تبدو فوائد التأخير المنخفض أو العمل أثناء الانقطاع أو الخصوصية تفسيرات معقولة، لكن النص لا يقدم قياسات ولا نظرية اكتمال للأعطال. الادعاء المسند أضيق: أسندت هذه الوظائف إلى الهاتف محلياً، واشترط صراحة ألا يحتاج الانتقال بين السماعة ومكبر الصوت إلى الوكيل.
ومع ذلك فالمحلي ليس مرادفاً للصحيح. ضغطة الكتم ليست حالة الكتم، والمصباح ليس دليلاً على توقف الصوت، وتغير مسار الجهاز لا يثبت ما سمعه الطرف الآخر. يجب رصد الإدخال المادي والحالة الداخلية والمؤشر وعينات الوسائط مستقلة.
قابل الأمر البعيد مقاومة محلية
أتاحت حزمة BP للوكيل أن يفرض off-hook أو on-hook على مكبر الصوت وأن يطلب صفارة. وكان ذلك مفيداً في دمج الهاتف مع تطبيق حاسوبي يختار رقماً ويبدأ الاتصال. إلا أن الوثيقة قالت أيضاً إن المستخدم يستطيع إبطال force off-hook بوضع السماعة.
هذه الجزئية تمنع قصة الحاكم المركزي الكامل. الأمر البعيد بداية مسار لا نهايته: يفسره الجهاز، ويتغير العتاد، وقد يبدأ إعداد المكالمة، ثم يستطيع فعل محلي أن يناقض الحالة. الطلب والقبول وحالة الخط وتجربة المستخدم ساعات مختلفة.
ويجب ضبط لغة الأمن بالمثل. قول RFC 3149 إنه لا يضيف اعتبارات أمنية تتجاوز MGCP الأساسي لا يعني أن XML أو خرائط المفاتيح أو فرض الخط آمنة بذاتها. المصادقة والتفويض والسلامة والسرية خصائص نشر وبروتوكول أساسي تحتاج إلى دليل. ووضع كلمة المرور الذي يخفي المحارف على الشاشة لا يثبت تشفير النقل أو سلامة معالجتها عند الوكيل.
تضع ملاحظة IESG حداً تاريخياً آخر. وثّق RFC 3149 بروتوكولاً غير تابع لـ IETF كان مستخدماً في منتجات، بينما كان Megaco/H.248 القياسي يعالج المجال نفسه. هذه حقيقة عن الوضع الوثائقي؛ لا تمحو السلوك الذي نفذه MGCP، ولا تثبت انتقالاً عاماً، ولا تمنح المواصفة اللاحقة سلطة رجعية على الأجهزة القديمة.
انقسم الذكاء بحسب أثر القرار
لا تقول القصة إن المحلي أفضل دائماً أو إن المركز فشل. قسّم RFC 3149 السلطات. احتفظ البرنامج المركزي بالمعاني المتغيرة: وظيفة الرقم، والتسمية، والبطاقة المعروضة، وكيف يؤثر اختيار في منطق المكالمة. واحتفظ الهاتف بالحركة المباشرة في الصوت والكتم.
خففت هذه القسمة الحاجة إلى برمجة كل خدمة في كل جهاز، وأبقت في الوقت نفسه سطحاً مادياً صغيراً لا ينتظر رحلة إلى المتحكم. لكنها خلقت تبعيات قابلة للانفصال: قد يستمر الكتم المحلي حين تنهار الوظائف الموزعة؛ وقد يغير تحديث للوكيل معنى زر من دون تغيير البلاستيك؛ وقد تنحرف بطاقة العرض عن الإشارة.
الكود الجاري يحسم النزاع بين الطبقات. إذا سمّى الوكيل الرقم 1 «انتظاراً» وبقيت الوسائط كما هي، فلم تتحقق النتيجة المعلنة. إذا أضاء مصباح الكتم وبقي صوت الميكروفون خارجاً، اختلف العرض عن الواقع. وإذا عرض disp/ تحويلاً بينما استمر الرنين، فقد ظهرت اللامزامنة التي حذرت منها المعمارية.
زر صغير يصبح بذلك حداً دستورياً. يجوز للمركز أن يسمي الوظائف وينسق المكالمات، لكن استقباله للأحداث لا يعطيه حيازة كل فعل جسدي.
المصادر
- نص RFC 3149
- سجل RFC 3149
- RFC 3149 بصيغة HTML
- تاريخ وثيقة RFC 3149
- RFC 2705 — MGCP 1.0
- RFC 2805 — متطلبات التحكم في بوابات الوسائط
- RFC 3015 — Megaco/H.248
- RFC 3435 — MGCP 1.0 المنقح
- RFC 3525 — بروتوكول التحكم في البوابات
- RFC 3660 — حزم MGCP الأساسية
- RFC 2897 — حزم MGCP الصوتية المتقدمة
- توصية XML 1.0 لعام 1998
- أولوية الكود الجاري
- حول طبقات الواقع
- المواصفة الأولية الدنيا
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات
