الاستغاثة

المنصة الأساسية
duress_acknowledge_incidentالاستغاثة

تُقرّ بحادثة استغاثة مفتوحة نيابةً عن المستخدم: تسجّل أنه يستجيب لها ويمكنها إيقاف المزيد من التصعيد. لا يمكن الإقرار إلا بالحوادث المفتوحة.

أكّد دائمًا أولًا. استدعِ الأداة بدون confirm للحصول على الحادثة، وأخبر المستخدم بما سيُقرّ به، ثم استدعِها مرة أخرى مع confirm: true فقط بعد موافقته.

في سير عمل، أو من وكيل، لا يعمل ذلك إلا إذا كانت خطة الاستجابة في المنشأة تسمح لسير العمل بالإقرار بالإنذارات وحلّها وإطلاقها. لإغلاق حادثة استخدم duress_resolve_incident.

المعلمات

الاسمالنوعالوصف
incidentId*stringمعرّف الحادثة (inc_...)، من duress_incidents_read list أو من مشغّل سير عمل Duress.
notestringملاحظة اختيارية، مثل "في طريقي إلى الاستقبال"
confirmbooleanاضبطه فقط بعد أن يؤكد المستخدم المعاينة التي أعادها الاستدعاء الأول
duress_buttons_readالاستغاثةDuress Configurationإدارة الجهاز

تقرأ أزرار الاستغاثة في منشأة: حالتها (البطارية، وآخر مرة التُقطت إشارتها، وآخر اختبار)، وملفاتها الكاملة (التسمية، والغرفة، والمنطقة، وموضع التركيب، والكاميرات والأبواب والشاشات المرتبطة، والتنبيهات المكتومة، وسلامة الإشراف)، وما يمكن ربطها به، والشاشات التي تنقل ضغطاتها، واختبار الإعداد لزر أُضيف حديثًا.

البطارية: low تعني 30% أو أقل (استبدلها قريبًا)، وcritical تعني 20% أو أقل (استبدلها الآن). تعني القيمة null للبطارية ولـ lastSeenAt أن أي شاشة لم تلتقط إشارة الزر بعد. الأوقات بتنسيق ISO.

الإجراءات:

  • status: حالة الأزرار. كل زر مع منطقته وغرفته وبطاريته، ووقت آخر التقاط لإشارته من شاشة، ووقت آخر اختبار له. "هل تعمل أزرار الاستغاثة؟"، "أيها يحتاج إلى بطاريات جديدة؟"
  • list: ملفات الأزرار. الملف الكامل لكل زر: ما يغيّره duress_buttons_write update، إضافةً إلى الإشارة، والشاشات التي التقطت إشارته في اليوم الأخير، وسلامة الإشراف، واختبار إعداد قيد الانتظار.
  • link_options: خيارات الربط. كاميرات المنشأة وأبوابها وشاشاتها ومناطق الوصول التي يمكن ربط زر بها (المعرّفات اللازمة لـ duress_buttons_write update).
  • receivers: أجهزة استقبال الأزرار. شاشات العرض في المنشأة التي تلتقط إشارات الأزرار وتنقل الضغطات، وما إذا كانت كل منها متصلة. تكون قيمة ready هي false عندما لا يوجد ما يمكنه التقاط إشارة زر.
  • setup_test: اختبار الإعداد. اختبار الإعداد لزر أُضيف حديثًا: waiting (أول ضغطة عليه مجرد اختبار)، أو received، أو expired، أو ended، أو none، وما إذا كانت شاشة قد التقطت إشارته منذ إضافته. يتطلب deviceSerialNumber.

المعلمات

الاسمالنوعالوصف
action*"status" | "list" | "link_options" | "receivers" | "setup_test"الإجراء المطلوب؛ كل إجراء موصوف في وصف الأداة.
facilityIdstringمعرّف المنشأة. اختياري إذا كانت المنشأة المتصلة هي المقصودة.
limitintegerعدد العناصر في كل صفحة (الافتراضي 25، والحد الأقصى 100) (status, list)
cursorstringقيمة nextCursor من الصفحة السابقة (status, list)
deviceSerialNumberstringالرقم التسلسلي للزر، من duress_buttons_read status أو list (setup_test)
duress_buttons_writeDuress Configurationالاستغاثةإدارة الجهاز

تغيّر أزرار الاستغاثة في منشأة: إضافة زر جديد، وملفات الأزرار (التسمية، والغرفة، والمنطقة، وموضع التركيب، والملاحظات، والكاميرات والأبواب والشاشات ومنطقة الوصول المرتبطة، وتنبيهات الجهاز المكتومة)، وجعل زر يصدر صفيرًا ليتمكن الموظفون من العثور عليه، وإنهاء اختبار الإعداد لزر جديد ليصبح فعّالًا، وإزالة زر.

تحتفظ الحقول غير المحددة في update بقيمها؛ وnull يمسحها. اقرأ الملف الحالي باستخدام duress_buttons_read list.

الإجراءات:

  • update: تحديث زر. يحفظ ملف الزر في المنشأة المسجّل فيها (يتطلب Duress Configuration هناك). قيمة zone بين 001 و999 وفريدة في المنشأة. يكتم alertsMutedUntil (بتنسيق ISO، بحد أقصى 30 يومًا مقدمًا) تنبيهات البطارية وانقطاع الاتصال الخاصة به. يتطلب deviceSerialNumber.
  • locate: جعل زر يصدر صفيرًا. يجعل الزر يصدر صفيرًا ويومض لمدة 30 ثانية ليتمكن الموظفون من العثور عليه، مثلًا زر يستمر في الإبلاغ عن انخفاض البطارية. ترسل شاشة قريبة منه الأمر، لذا يجب أن يكون ضمن نطاق إحدى الشاشات. لا يعمل ما دام للزر إنذار مفتوح. يتطلب deviceSerialNumber.
  • go_live: تفعيل زر جديد. ينهي فورًا اختبار الإعداد لزر أُضيف حديثًا، فتصبح ضغطته التالية إنذارًا حقيقيًا. تحقّق أولًا باستخدام duress_buttons_read setup_test. يتطلب إدارة الجهاز أو Duress Configuration في المنشأة. يتطلب deviceSerialNumber. يطلب التأكيد.
  • remove: إزالة زر. يلغي إقران الزر بالمنشأة ويحذف ملفه، مما يحرّر منطقته. لا يعمل ما دام للزر إنذار مفتوح. يتطلب إدارة الجهاز في المنشأة. يتطلب deviceSerialNumber. يطلب التأكيد.
  • add: إضافة زر. يسجّل زر استغاثة جديدًا في المنشأة باستخدام الرقم التسلسلي المطبوع عليه. افتراضيًا، تكون أول ضغطة عليه خلال الدقائق الثلاثين التالية مجرد اختبار (setupTest). تحتاج المنشأة إلى شاشة مفعّل عليها Duress alarm monitoring أو إلى IoT Gateway. يتطلب إدارة الجهاز في المنشأة. يتطلب deviceSerialNumber. يطلب التأكيد.

المعلمات

الاسمالنوعالوصف
action*"update" | "locate" | "go_live" | "remove" | "add"الإجراء المطلوب؛ كل إجراء موصوف في وصف الأداة.
facilityIdstringمعرّف المنشأة. اختياري إذا كانت المنشأة المتصلة هي المقصودة.
deviceSerialNumberstringالرقم التسلسلي للزر، من duress_buttons_read status أو list
labelstringnullالاسم الذي يطلقه الموظفون على الزر، مثل "مكتب الاستقبال" (update)
roomstringnullالغرفة الموجود فيها (update, add)
zonestringnullمنطقة مركز المراقبة، من 001 إلى 999 (update)
placement"fixed" | "carried" | "null"fixed (مثبّت) أو carried (قلادة محمولة) (update)
notesstringnullملاحظات للموظفين (update)
cameraIdsarraynullالكاميرات المرتبطة بالزر (المعرّفات من duress_buttons_read link_options)؛ وnull أو [] يمسحها (update)
doorIdsarraynullالأبواب المرتبطة بالزر (المعرّفات من duress_buttons_read link_options)؛ وnull أو [] يمسحها (update)
screenIdsarraynullالشاشات المرتبطة بالزر (المعرّفات من duress_buttons_read link_options)؛ وnull أو [] يمسحها (update)
accessZoneIdstringnullمنطقة الوصول الموجود فيها الزر (update)
alertsMutedUntilstringnullالتاريخ والوقت بتنسيق ISO الذي تُكتم تنبيهات الجهاز حتى حلوله؛ وnull يلغي الكتم (update)
muteReasonstringnullسبب كتم تنبيهاته (update)
setupTestbooleanالافتراضي true: أول ضغطة مجرد اختبار (add)
confirmbooleanاضبطه فقط بعد أن يؤكد المستخدم المعاينة التي أعادها الاستدعاء الأول
duress_end_testالاستغاثة

تنهي فورًا اختبار الاستغاثة الجاري في منشأة، فتصبح الضغطة التالية إنذارًا حقيقيًا. تصدر النتائج بعد نحو 10 دقائق، كما في أي اختبار.

المعلمات

الاسمالنوعالوصف
facilityIdstringمعرّف المنشأة. اختياري إذا كانت المنشأة المتصلة هي المقصودة.
duress_incidents_readالاستغاثة

تقرأ حوادث إنذار الاستغاثة (ضغط أحد الموظفين زر استغاثة، أو أطلق سير عمل إنذارًا): القوائم، والخط الزمني لحادثة واحدة وعمليات التسليم الخاصة بها، وتقرير ما بعد الحادثة، ولقطات الدوائر التلفزيونية المغلقة المحيطة بالإنذار.

الحالات: open (لم يُقرّ بها أحد بعد)، وacknowledged (يستجيب لها شخص ما)، وresolved (مغلقة، مع نتيجة: genuine أو false_alarm أو test أو unknown). تعني active أنها open أو acknowledged. تأتي الحوادث التجريبية (isTest) من اختبارات الأزرار؛ وtestType 'unplanned' هو إنذار أُطلق على أنه حقيقي ثم حلّه أحد المستجيبين على أنه اختبار.

حالة التسليم: sent، وacknowledged (أكّد المستلم)، وfailed (راجع error)، وshadow (تشغيل تجريبي، لم يُرسل شيء). تُجمع عمليات التسليم إلى مركز المراقبة أيضًا ضمن monitoringCentre. تذكر النتائج أسماء الأشخاص لكنها لا تتضمن أبدًا أرقام الهواتف أو عناوين البريد الإلكتروني. الأوقات بتنسيق ISO.

الإجراءات:

  • list: عرض الحوادث. الأحدث أولًا. scope: facility (الافتراضي؛ المنشأة المحددة أو المتصلة) أو organisation (كل منشأة فيها يمكنك رؤيتها؛ والافتراضي منظمة المنشأة).
  • get: الحصول على حادثة. الحالة، والأزرار التي ضُغطت، والخط الزمني (الضغطات وعمليات التصعيد والإقرارات والملاحظات)، وكل محاولة تسليم إشعار أو تسليم إلى مركز المراقبة مع نتيجتها. يتطلب incidentId.
  • report: تقرير الحادثة. لمراجعة ما بعد الحادثة: الحادثة، والثواني حتى الإقرار والحل، والخطوات التي بُلغت، وكل إدخال في الخط الزمني، وما أُرسل عبر كل قناة وما فشل، وما إذا احتُفظ باللقطات. استخدمه مع duress_incidents_write add_note لإضافة مراجعة ما بعد الحادثة إلى الحادثة. يتطلب incidentId.
  • footage_previews: لقطات الإنذار. كل كاميرا في لقطات الإنذار: حالتها، وعدد الإطارات والمقاطع، والمقاطع المرفوعة، والإطار الأقرب إلى الضغطة (posterSeconds). مع cameraId، تلك الكاميرا فقط إضافةً إلى ثواني Unix لكل إطار (frameSeconds). يتطلب الدوائر التلفزيونية المغلقة في المنشأة. يتطلب incidentId.
  • footage_frame: إطار من لقطات الإنذار. إطار واحد من التصوير المتقطع (timelapse) في لقطات الإنذار، يُعاد كصورة: نسخة محفوظة بعد الاحتفاظ باللقطات، وإلا فالإطار المباشر ضمن نافذة الإنذار. قيمة seconds هي قيمة posterSeconds أو frameSeconds من footage_previews. يتطلب incidentId وcameraId وseconds.

المعلمات

الاسمالنوعالوصف
action*"list" | "get" | "report" | "footage_previews" | "footage_frame"الإجراء المطلوب؛ كل إجراء موصوف في وصف الأداة.
scope"facility" | "organisation"الافتراضي facility (list)
facilityIdstringمعرّف المنشأة. اختياري إذا كانت المنشأة المتصلة هي المقصودة. (list)
organisationIdstringعندما تكون قيمة scope هي organisation. الافتراضي منظمة المنشأة. (list)
status"active" | "open" | "acknowledged" | "resolved"تعني active أنها open أو acknowledged (list)
fromstringالتاريخ والوقت بتنسيق ISO: الحوادث المفتوحة في هذا الوقت أو بعده (list)
tostringالتاريخ والوقت بتنسيق ISO: الحوادث المفتوحة في هذا الوقت أو قبله (list)
limitintegerعدد العناصر في كل صفحة (الافتراضي 25، والحد الأقصى 100) (list)
cursorstringقيمة nextCursor من الصفحة السابقة (list)
incidentIdstringمعرّف الحادثة (inc_...)، من duress_incidents_read list أو من مشغّل سير عمل Duress. (get, report, footage_previews, footage_frame)
cameraIdstringكاميرا في لقطات الإنذار، من footage_previews (footage_previews, footage_frame)
secondsintegerstringوقت الإطار بثواني Unix المكوّنة من 10 أرقام (footage_frame)
duress_incidents_writeالاستغاثةDuress Configuration

تغيّر حادثة استغاثة دون المساس بالإنذار نفسه: تسمّيها، وتضيف ملاحظات الموظفين، وتحتفظ بلقطات الدوائر التلفزيونية المغلقة المحيطة بها أو تحرّرها. لا يُنبَّه أحد. للإقرار أو الحل أو إبلاغ المستجيبين استخدم duress_acknowledge_incident أو duress_resolve_incident أو duress_post_update.

الإجراءات:

  • rename: تسمية حادثة. يسمّي الحادثة ليسهل العثور عليها لاحقًا، مثل "زائر عدواني عند مكتب الاستقبال". يؤدي الاسم الفارغ أو null إلى إزالة الاسم. تظهر الأسماء في وحدة تحكم Duress والتقارير. يتطلب incidentId.
  • add_note: إضافة ملاحظة. يضيف ملاحظة إلى الخط الزمني للحادثة، مثل ما وجده المستخدم أو من حضر. لأي حالة؛ لا يرى الملاحظات إلا الموظفون ولا تغيّر الحادثة. اكتبها بكلمات المستخدم وأكّد الصياغة معه أولًا. يتطلب incidentId وnote.
  • keep_footage: الاحتفاظ بلقطات الإنذار. يحتفظ بلقطات الدوائر التلفزيونية المغلقة المحيطة بإنذار حقيقي تم حلّه كي لا تُحذف مع التسجيلات العادية، باستخدام دقائق خطة الاستجابة وكاميراتها. يحدث ذلك بعد بضع دقائق، بمجرد رفعها. لا يُستخدم للاختبارات أو الإنذارات المفتوحة أو اللقطات المحتفظ بها أو المحرّرة مسبقًا. يتطلب incidentId.
  • release_footage: تحرير اللقطات المحتفظ بها. يتخلى عن اللقطات المحتفظ بها لإنذار: تعود المقاطع إلى الاحتفاظ العادي وتُحذف الإطارات المحتفظ بها، فلا يمكن عرضها بعد انتهاء صلاحية التسجيلات العادية. يتطلب Duress Configuration في المنشأة. يتطلب incidentId. يطلب التأكيد.

المعلمات

الاسمالنوعالوصف
action*"rename" | "add_note" | "keep_footage" | "release_footage"الإجراء المطلوب؛ كل إجراء موصوف في وصف الأداة.
incidentIdstringمعرّف الحادثة (inc_...)، من duress_incidents_read list أو من مشغّل سير عمل Duress.
namestringnullالاسم؛ والقيمة الفارغة أو null تزيله (rename)
notestringالملاحظة (add_note)
confirmbooleanاضبطه فقط بعد أن يؤكد المستخدم المعاينة التي أعادها الاستدعاء الأول
duress_lift_lockdownالاستغاثة

ترفع الإغلاق الشامل لإنذار استغاثة: تسمح الأبواب التي أغلقها بدخول الأشخاص مجددًا. تعمل أيًا كانت حالة الإنذار.

أكّد أولًا. استدعِ الأداة بدون confirm لرؤية الإغلاق الشامل، وأخبر المستخدم، ثم استدعِها مرة أخرى مع confirm: true بعد موافقته.

المعلمات

الاسمالنوعالوصف
incidentId*stringمعرّف الحادثة (inc_...)، من duress_incidents_read list أو من مشغّل سير عمل Duress.
confirmbooleanاضبطه فقط بعد أن يؤكد المستخدم المعاينة التي أعادها الاستدعاء الأول
duress_post_updateالاستغاثة

تنشر تحديثًا للأشخاص الذين يستجيبون لإنذار استغاثة، مثل "الشرطة في الطريق" أو "زال الخطر، غادر الشخص". يظهر التحديث في صفحة الإنذار لديهم وفي تطبيق Duress، وفي الإنذار الحقيقي يمكن لخطة الاستجابة أيضًا إرساله برسالة نصية إلى كل من تلقى رسالة نصية بشأن الإنذار. يمكن نشر التحديثات حتى 24 ساعة بعد حل الإنذار.

أكّد أولًا. استدعِ الأداة بدون confirm للتحقق من الحادثة، واعرض على المستخدم الصياغة الدقيقة، ثم استدعِها مرة أخرى مع confirm: true بعد موافقته. لما يجب ألا يراه إلا الموظفون، استخدم duress_incidents_write add_note بدلًا من ذلك.

المعلمات

الاسمالنوعالوصف
incidentId*stringمعرّف الحادثة (inc_...)، من duress_incidents_read list أو من مشغّل سير عمل Duress.
text*stringالتحديث، حرفيًا
confirmbooleanاضبطه فقط بعد أن يؤكد المستخدم المعاينة التي أعادها الاستدعاء الأول
duress_raise_alarmالاستغاثة

تطلق إنذار استغاثة حقيقيًا في المنشأة، كما لو ضُغط زر: تُنفَّذ خطة الاستجابة (يُنبَّه الأشخاص، ويتبع ذلك التصعيد والتذكيرات، وتُنفَّذ إجراءات الاستجابة) ويذكر الإنذار أنه أُطلق بواسطة سير العمل هذا، مع السبب.

  • reason: ما حدث، مثل "فُتح الباب عنوةً عند المخرج الخلفي" (حتى 200 حرف).
  • deviceSerialNumber: اختياري. زر يُستخدم موقعه؛ وفي هذه الحالة فقط يُبلَّغ مركز المراقبة أيضًا، مع منطقة ذلك الزر.

فقط كخطوة في سير عمل، في المنشآت التي تسمح خطة الاستجابة فيها لسير العمل بالإقرار بالإنذارات وحلّها وإطلاقها. ما دام إنذار سير العمل هذا مفتوحًا فلن يُطلق إنذارًا آخر؛ بل يعيد ذلك الإنذار بدلًا من ذلك.

المعلمات

الاسمالنوعالوصف
facilityIdstringمعرّف المنشأة. اختياري إذا كانت المنشأة المتصلة هي المقصودة.
reason*stringما حدث
deviceSerialNumberstringزر في المنشأة (اختياري)
duress_reports_readالاستغاثةDuress Configuration

تقارير امتثال Duress لمنشأة أو علامة تجارية أو منظمة: أوقات الاستجابة (P50/P95)، والحوادث حسب النتيجة ومعدل الإنذارات الكاذبة، وتغطية الاختبارات والمنشآت المتأخرة، ومدة تشغيل الأزرار، ونجاح التسليم إلى مركز المراقبة، وتصدير لكل حادثة على حدة. إضافةً إلى التنبيهات غير المسلَّمة لآخر إنذار في منشأة واحدة.

الأيام بالتوقيت المحلي للمنشأة؛ وتُختصر الفترات التي تتجاوز 400 يوم (range.capped). تُحتسب الحوادث الحقيقية والتجريبية بشكل منفصل. المدد بالمللي ثانية (p50Ms وp95Ms). لا تغطي تقارير العلامة التجارية إلا المنشآت التي يمكنك الوصول إليها ما لم تكن لديك صلاحية وصول على مستوى المنظمة (scope.restrictedToAccessibleFacilities).

الإجراءات:

  • overview: نظرة عامة على تقرير Duress. الإجماليات، والاتجاه الشهري، والمقاييس لكل منظمة ولكل علامة تجارية ولكل منشأة (incidents وtestCoverage وdeviceUptime وdeliveries). المنشآت مقسّمة إلى صفحات.
  • compliance_summary: ملخص امتثال Duress. ما يعرضه ملف PDF للامتثال: تغطية الاختبارات مع المنشآت المتأخرة، ومدة تشغيل الأزرار، ونجاح التسليم، والاختبارات الأخيرة (testHistory)، ولكل منشأة آخر اختبار وآخر تمرين وآخر إنذار حقيقي مع مدة تشغيل كل زر. المنشآت مقسّمة إلى صفحات.
  • incident_export: تصدير حوادث Duress. صف واحد لكل حادثة، الأقدم أولًا، بأعمدة تصدير CSV: المنشأة، واختبار أو حقيقي، والحالة، والنتيجة، والأوقات المحلية، والثواني حتى الإقرار والحل، ومن أقرّ ومن حلّ، وأعداد الأزرار وعمليات التسليم.
  • delivery_problems: تنبيهات الإنذار غير المسلَّمة. آخر إنذار أو اختبار في المنشأة (مع نافذة الاختبار بأكملها) والتنبيهات التي لم تصل قط، حسب القناة. تكون قيمة problems هي null عندما يصل كل شيء. يتطلب Duress أو Duress Configuration هناك.

المعلمات

الاسمالنوعالوصف
action*"overview" | "compliance_summary" | "incident_export" | "delivery_problems"الإجراء المطلوب؛ كل إجراء موصوف في وصف الأداة.
scope"facility" | "brand" | "organisation"الافتراضي: المعرّف الأكثر تحديدًا من بين المعرّفات المقدَّمة، وإلا فالمنشأة المتصلة. (overview, compliance_summary, incident_export)
facilityIdstringمعرّف المنشأة. اختياري إذا كانت المنشأة المتصلة هي المقصودة.
brandIdstringمعرّف العلامة التجارية، لقالب العلامة التجارية بدلًا من منشأة (overview, compliance_summary, incident_export)
organisationIdstringيتطلب صلاحية وصول إلى Duress على مستوى المنظمة (overview, compliance_summary, incident_export)
fromstringاليوم الأول، YYYY-MM-DD بالتوقيت المحلي للمنشأة (الافتراضي 30 يومًا قبل to) (overview, compliance_summary, incident_export)
tostringاليوم الأخير، YYYY-MM-DD بالتوقيت المحلي للمنشأة، شاملًا (الافتراضي اليوم) (overview, compliance_summary, incident_export)
limitintegerعدد العناصر في كل صفحة (الافتراضي 25، والحد الأقصى 100) (overview, compliance_summary, incident_export)
cursorstringقيمة nextCursor من الصفحة السابقة (overview, compliance_summary, incident_export)
duress_resolve_incidentالاستغاثة

تحلّ حادثة استغاثة: تغلق الإنذار، وتوقف التصعيد، وتسجّل النتيجة. يمكن حل الحوادث المفتوحة والمُقرّ بها.

  • disposition: genuine (حالة طوارئ حقيقية)، أو false_alarm، أو test، أو unknown.
  • note: ما حدث. مطلوب للإنذار الحقيقي.

أكّد دائمًا أولًا. استدعِ الأداة بدون confirm للحصول على الحادثة، وأخبر المستخدم بالإنذار الذي سيغلقه وبالنتيجة، ثم استدعِها مرة أخرى مع confirm: true فقط بعد موافقته.

في سير عمل، أو من وكيل، لا يعمل ذلك إلا إذا كانت خطة الاستجابة في المنشأة تسمح لسير العمل بالإقرار بالإنذارات وحلّها وإطلاقها.

المعلمات

الاسمالنوعالوصف
incidentId*stringمعرّف الحادثة (inc_...)، من duress_incidents_read list أو من مشغّل سير عمل Duress.
disposition*"genuine" | "false_alarm" | "test" | "unknown"النتيجة
notestringما حدث. مطلوب عندما تكون قيمة disposition هي genuine.
confirmbooleanاضبطه فقط بعد أن يؤكد المستخدم المعاينة التي أعادها الاستدعاء الأول
duress_settings_readالاستغاثةDuress Configuration

تقرأ إعدادات Duress: خطط الاستجابة (من يُنبَّه، وبأي ترتيب وكيف، في منشأة أو كقالب للعلامة التجارية)، والخطة المحسومة التي يستخدمها محرك الإنذار فعليًا، والأشخاص والأدوار الذين يمكن إضافتهم، وتنبيهات الأجهزة (مشكلات البطارية وانقطاع الاتصال والتغطية والتسليم)، وقواعد جهات الاتصال للعلامة التجارية وحالة الخطة، ونظرة عامة على أزرار علامة تجارية أو منظمة، ووجهة الإنذارات إلى مركز المراقبة.

تتبع المنشأة قالب علامتها التجارية (وإلا فقالب منظمتها)، أو توسّعه بجهات اتصال إضافية (mode extend)، أو تستبدله بخطتها الخاصة (mode replace). غيّر الإعدادات باستخدام duress_settings_write. الأوقات بتنسيق ISO.

الإجراءات:

  • response_plan: خطة الاستجابة. الخطة السارية في منشأة (effective) وما يحتويه كل مستوى (المصادر: facility وbrand وorganisation)، أو مع brandId فقط قالب العلامة التجارية. جهات الاتصال كما هي محفوظة، وجاهزة للتعديل والحفظ مجددًا.
  • resolved_plan: الخطة المحسومة. من يتصل بهم محرك الإنذار في المنشأة، مستوى تلو الآخر: الأدوار موسّعة إلى أشخاص، والقنوات التي يمكن الوصول إلى كل منهم عبرها، والتأخيرات، والتحذيرات التي يجب إصلاحها قبل وقوع إنذار. الأسماء فقط، بدون أرقام هواتف أو عناوين بريد إلكتروني.
  • contact_options: خيارات جهات الاتصال. الأشخاص والأدوار الذين يمكن إضافتهم إلى خطة المنشأة (يتطلب Duress Configuration هناك)، أو مع brandId فقط إلى قالب العلامة التجارية، وفق قواعد جهات الاتصال للعلامة التجارية.
  • device_alerts: تنبيهات الأجهزة. من يُبلَّغ بانخفاض البطاريات والأزرار غير المتصلة وفقدان التغطية وفشل التسليم: القواعد في كل مستوى والمستلمون المحسومون للمنشأة، أو مع brandId فقط قواعد العلامة التجارية.
  • contact_rules: قواعد جهات الاتصال للعلامة التجارية. الأدوار التي يمكن لمنشآت العلامة التجارية إضافتها إلى الخطط: يخفي allowAllExcept الأدوار المدرجة، ولا يعرض manual سواها. يتطلب ما يتطلبه تعديل خطة العلامة التجارية. يتطلب brandId.
  • plan_status: حالة خطة العلامة التجارية. كل منشأة في العلامة التجارية: ما إذا كانت تتبع القالب أو توسّعه أو لديها خطتها الخاصة، وعدد جهات الاتصال التي أضافتها، وتحذيرات خطتها. يتطلب brandId.
  • buttons_summary: نظرة عامة على الأزرار. كل منشأة في علامة تجارية أو منظمة: أعداد الأزرار والبطاريات المنخفضة وغير المتصلة، والاختبار التالي والأخير. بيانات النظرات العامة في Brands & Customisation وفي المنظمة.
  • monitoring: توجيه مركز المراقبة. كيف تغادر الإنذارات المنشأة: eaAlarmType بالقيمة none، أو cid (اتصال بمركز مراقبة عبر eaAlarmProvider)، أو relay (لوحة سلكية عبر eaRelayModel)، والمزوّدون الذين يمكنها استخدامهم.

المعلمات

الاسمالنوعالوصف
action*"response_plan" | "resolved_plan" | "contact_options" | "device_alerts" | "contact_rules" | "plan_status" | "buttons_summary" | "monitoring"الإجراء المطلوب؛ كل إجراء موصوف في وصف الأداة.
facilityIdstringمعرّف المنشأة. اختياري إذا كانت المنشأة المتصلة هي المقصودة. (response_plan, resolved_plan, contact_options, device_alerts, monitoring)
brandIdstringمعرّف العلامة التجارية، لقالب العلامة التجارية بدلًا من منشأة (response_plan, contact_options, device_alerts, contact_rules, plan_status, buttons_summary)
organisationIdstringمعرّف المنظمة (buttons_summary)
duress_settings_writeDuress Configuration

تغيّر إعدادات Duress: خطط الاستجابة (في منشأة، أو قالب علامة تجارية أو منظمة)، وتنبيهات الأجهزة، وقواعد جهات الاتصال للعلامة التجارية، ووجهة الإنذارات إلى مركز المراقبة. يطلب كل تغيير التأكيد لأنه يغيّر من يُنبَّه.

مرّر واحدًا من facilityId (الافتراضي: المنشأة المتصلة) أو brandId أو organisationId. تتطلب خطط المنشآت Duress Configuration هناك؛ وتتطلب القوالب مسؤول منظمة لديه Duress Configuration، أو بالنسبة إلى علامة تجارية Duress Configuration في كل منشأة فيها. اقرأ أولًا باستخدام duress_settings_read.

الإجراءات:

  • save_response_plan: حفظ خطة استجابة. مستويات جهات الاتصال التي تُنبَّه بعد afterSeconds من الضغطة (تصاعديًا، والأول عادةً 0)، وackRequired، وreminders، وresponseActions. يمكن للمنشأة بدلًا من ذلك توسيع قالبها (mode extend) بإضافات. تحتفظ الحقول غير المحددة بقيمها المحفوظة؛ وتُدمج responseActions حسب الإجراء. يطلب التأكيد.
  • remove_response_plan: إزالة خطة استجابة. يحذف الخطة المحفوظة في هذا المستوى، فتعود المنشأة إلى اتباع قالبها وتعود العلامة التجارية إلى قالب المنظمة. يطلب التأكيد.
  • save_device_alerts: حفظ تنبيهات الأجهزة. يستبدل قواعد تنبيهات الأجهزة في هذا المستوى: حتى 10 قواعد، كل منها مجموعة من الأحداث وجهات الاتصال (push أو sms أو email). احتفظ بمعرّفات القواعد المقروءة من duress_settings_read device_alerts. يتطلب rules. يطلب التأكيد.
  • remove_device_alerts: إزالة تنبيهات الأجهزة. يحذف قواعد تنبيهات الأجهزة في هذا المستوى، فيعود إلى اتباع المستوى الأعلى التالي. يطلب التأكيد.
  • save_contact_rules: حفظ قواعد جهات الاتصال للعلامة التجارية. الأدوار التي يمكن لمنشآت العلامة التجارية إضافتها إلى الخطط: يخفي allowAllExcept القيم roleIds، ولا يعرض manual سوى roleIds. تبقى جهات الاتصال المحفوظة مسبقًا؛ وتُحدَّث الخطط المحسومة. يتطلب brandId وmode وroleIds. يطلب التأكيد.
  • save_monitoring: حفظ توجيه مركز المراقبة. وجهة الإنذارات: eaAlarmType بالقيمة none، أو cid (يتطلب eaAlarmProvider، أحد المزوّدين الذين يعرضهم duress_settings_read monitoring)، أو relay (eaRelayModel). يتطلب Duress Configuration في المنشأة. يتطلب eaAlarmType. يطلب التأكيد.

المعلمات

الاسمالنوعالوصف
action*"save_response_plan" | "remove_response_plan" | "save_device_alerts" | "remove_device_alerts" | "save_contact_rules" | "save_monitoring"الإجراء المطلوب؛ كل إجراء موصوف في وصف الأداة.
facilityIdstringمعرّف المنشأة. اختياري إذا كانت المنشأة المتصلة هي المقصودة. (save_response_plan, remove_response_plan, save_device_alerts, remove_device_alerts, save_monitoring)
brandIdstringمعرّف العلامة التجارية، لقالب العلامة التجارية بدلًا من منشأة (save_response_plan, remove_response_plan, save_device_alerts, remove_device_alerts, save_contact_rules)
organisationIdstringمعرّف المنظمة، لقالب المنظمة (save_response_plan, remove_response_plan, save_device_alerts, remove_device_alerts)
mode"replace" | "extend"لخطط المنشآت فقط: replace (مستوياتها الخاصة) أو extend (إضافات إلى القالب) (save_response_plan, save_contact_rules)
tiersarrayمستويات الخطة (mode replace والقوالب) (save_response_plan)
additionsarraymode extend: جهات اتصال إضافية لكل مستوى في القالب (tierId وafterSeconds منه) (save_response_plan)
ackRequiredbooleanما إذا كان التصعيد يستمر حتى يُقرّ أحدهم (save_response_plan)
remindersobjectnullتكرار التنبيهات كل everySeconds (القيمة 0 توقفها) حتى stopAfterSeconds (save_response_plan)
responseActionsobjectالإجراءات حسب الاسم، كل منها { enabled, ... }: unlockOnAcknowledge (doorIds)، lockdown، staffScreenAlerts، buttonAcknowledge، dashboardCctv، dashboardDoorControls، dashboardResolve، updateTexts، aiSummary، workflowControl، retainFootage (minutesBefore, minutesAfter, cameras) (save_response_plan)
rulesarrayالقواعد؛ والقائمة الفارغة لا تحفظ أي قاعدة (لا يُنبَّه أحد في هذا المستوى) (save_device_alerts)
roleIdsarrayمعرّفات الأدوار التي ينطبق عليها mode (save_contact_rules)
eaAlarmType"none" | "cid" | "relay"none أو cid أو relay (save_monitoring)
eaAlarmProviderstringnullلـ cid: رمز المزوّد (save_monitoring)
eaRelayModel"none" | "numato-rl80001"لـ relay: لوحة المرحّل (save_monitoring)
confirmbooleanاضبطه فقط بعد أن يؤكد المستخدم المعاينة التي أعادها الاستدعاء الأول
duress_start_lockdownالاستغاثة

تفرض إغلاقًا شاملًا على المنشأة بسبب إنذار استغاثة: يتوقف كل باب عن السماح بدخول الأشخاص حتى رفع الإغلاق الشامل (duress_lift_lockdown، أو من وحدة التحكم). لا يحصل الإنذار إلا على إغلاق شامل واحد.

لا يُستخدم أبدًا للإنذارات التجريبية أو التي تم حلّها. يتطلب Door/Gate Access في المنشأة.

أكّد أولًا. استدعِ الأداة بدون confirm للتحقق من الحادثة، وأخبر المستخدم بأن كل الأبواب ستُقفل، ثم استدعِها مرة أخرى مع confirm: true بعد موافقته.

المعلمات

الاسمالنوعالوصف
incidentId*stringمعرّف الحادثة (inc_...)، من duress_incidents_read list أو من مشغّل سير عمل Duress.
confirmbooleanاضبطه فقط بعد أن يؤكد المستخدم المعاينة التي أعادها الاستدعاء الأول
duress_start_testالاستغاثة

تبدأ اختبار استغاثة في منشأة فورًا. حتى انتهائه، تكون كل ضغطة اختبارًا وليست إنذارًا حقيقيًا:

  • walk: يضغط الموظفون كل زر؛ ولا تُنبَّه إلا الخطوة الأولى من خطة الاستجابة، مع التسمية TEST.
  • drill: تُنفَّذ خطة الاستجابة بأكملها، مع التسمية TEST.

تُبلَّغ جهات اتصال الاختبار في المنشأة ببدئه وتتلقى النتائج بعد نحو 10 دقائق من انتهائه. اختبار واحد في كل مرة لكل منشأة. أنهِه مبكرًا باستخدام duress_end_test؛ واحجز الاختبارات مسبقًا باستخدام duress_tests_write.

أكّد أولًا. استدعِ الأداة بدون confirm، وأخبر المستخدم بأن الضغطات لن تطلق إنذارات حقيقية لمدة durationMinutes، ثم استدعِها مرة أخرى مع confirm: true بعد موافقته. في سير عمل، أو من وكيل، لا يعمل ذلك إلا إذا كانت خطة الاستجابة في المنشأة تسمح لسير العمل بالإقرار بالإنذارات وحلّها وإطلاقها.

المعلمات

الاسمالنوعالوصف
facilityIdstringمعرّف المنشأة. اختياري إذا كانت المنشأة المتصلة هي المقصودة.
type"walk" | "drill"walk (الافتراضي) أو drill
durationMinutesintegerالمدة التي تكون فيها الضغطات اختبارات (الافتراضي 60)
monitoringCentreMode"test-codes" | "none"يرسل `test-codes` إشارات اختبار إلى مركز المراقبة؛ ولا يرسل `none` إليه شيئًا
confirmbooleanاضبطه فقط بعد أن يؤكد المستخدم المعاينة التي أعادها الاستدعاء الأول
duress_tests_readالاستغاثةDuress Configuration

تقرأ اختبارات أزرار الاستغاثة: الجداول التي تحجزها (walk أو comms أو drill، مرة واحدة أو متكررة، لمنظمة أو علامات تجارية أو منشآت)، ونوافذ الاختبار التي تنشئها في كل منشأة (المجدولة والنشطة والمكتملة والملغاة، إضافةً إلى الاختبارات المخصصة)، ونتائج نافذة (الأزرار التي ضُغطت أو فاتت، ومن أُبلغ، وإشارات مركز المراقبة، وأوقات الإقرار).

لا تُذكر هوية من حجز اختبارًا أو غيّره أو ألغاه؛ ويُحجب مستلمو التسليم. الأوقات بتنسيق ISO؛ وlocalDate وlocalStartTime بالمنطقة الزمنية للمنشأة. احجز الاختبارات أو غيّرها باستخدام duress_tests_write؛ وابدأ اختبارًا فورًا باستخدام duress_start_test.

الإجراءات:

  • schedules: جداول الاختبار. scope بالقيمة facility (الافتراضي؛ كل جدول يغطيها، بما في ذلك الجداول المشتركة التي تتخطاها أو تستبدلها)، أو brand (brandId)، أو organisation (الافتراضي: منظمة المنشأة). الأحدث تغييرًا أولًا.
  • windows: نوافذ الاختبار. نوافذ الاختبار لمنشأة من from إلى to (الافتراضي من نحو أسبوع مضى إلى شهر مقبل)، أو مع organisationId فقط النوافذ القادمة للمنظمة عبر منشآتها.
  • results: نتائج الاختبار. نافذة ونتائجها: تُخزَّن بعد إرسالها، وتُحسب مباشرةً أثناء تشغيل الاختبار (قائمة تحقق اختبار walk)، وتكون null للنوافذ المجدولة أو الملغاة. يتطلب Duress في المنشأة. يتطلب startsAtKey.

المعلمات

الاسمالنوعالوصف
action*"schedules" | "windows" | "results"الإجراء المطلوب؛ كل إجراء موصوف في وصف الأداة.
scope"facility" | "brand" | "organisation"الافتراضي facility (schedules)
facilityIdstringمعرّف المنشأة. اختياري إذا كانت المنشأة المتصلة هي المقصودة.
brandIdstringمعرّف العلامة التجارية، لقالب العلامة التجارية بدلًا من منشأة (schedules)
organisationIdstringعندما تكون قيمة scope هي organisation (schedules, windows)
includeCancelledbooleanتضمين الاختبارات الملغاة (schedules, windows)
limitintegerعدد العناصر في كل صفحة (الافتراضي 25، والحد الأقصى 100) (schedules, windows)
cursorstringقيمة nextCursor من الصفحة السابقة (schedules, windows)
fromstringالتاريخ والوقت بتنسيق ISO (windows)
tostringالتاريخ والوقت بتنسيق ISO (windows)
startsAtKeystringنافذة الاختبار (startsAtKey)، من duress_tests_read windows (results)
duress_tests_writeDuress Configurationالاستغاثة

يحجز جداول اختبارات Duress ويغيّرها ويلغيها، ويحدد كيف تتبع منشأة واحدة جدولًا مشتركًا، ويلغي نافذة اختبار قادمة واحدة. كل تغيير يحجز النوافذ المستقبلية أو يعيد كتابتها ويرسل بريدًا إلكترونيًا إلى أصحاب المصلحة، لذا يطلب كل إجراء التأكيد.

تتطلب الجداول Duress Configuration على كامل نطاقها المستهدف (مسؤول المنظمة للجداول على مستوى المنظمة). الأوقات بالمنطقة الزمنية لكل منشأة. اقرأ الجداول والنوافذ أولًا باستخدام duress_tests_read؛ وابدأ اختبارًا الآن باستخدام duress_start_test.

الإجراءات:

  • create_schedule: حجز جدول اختبار. يحجز النوافذ لمدة تصل إلى عام تقريبًا مسبقًا في كل منشأة ضمن target ويرسل تأكيد الحجز بالبريد الإلكتروني. يتطلب name وtype وtarget وstartDate وlocalStartTime وrecurrence. يتطلب name وtype وtarget وstartDate وlocalStartTime وrecurrence. يطلب التأكيد.
  • update_schedule: تغيير جدول اختبار. تحتفظ الحقول غير المرسلة بقيمها. تُعاد كتابة النوافذ المستقبلية (وتُترك النوافذ التي بدأت) ويتلقى أصحاب المصلحة إشعارًا بالتغيير. استخدم ownerScope الوارد في النتيجة بعد ذلك. يتطلب ownerScope وscheduleId. يطلب التأكيد.
  • cancel_schedule: إلغاء جدول اختبار. يلغي الجدول ونوافذه المستقبلية، ويرسل الإلغاء بالبريد الإلكتروني. تحتفظ المنشآت التي لديها نسختها الخاصة بها. يتطلب ownerScope وscheduleId. يطلب التأكيد.
  • set_facility_override: تغيير جدول مشترك لمنشأة واحدة. mode هو follow (تشغيل الجدول المشترك هنا مجددًا) أو skip (إيقافه هنا) أو own (استبداله هنا بنسخة مبنية من schedule). يتطلب Duress Configuration في تلك المنشأة فقط. يتطلب ownerScope وscheduleId وmode. يطلب التأكيد.
  • cancel_window: إلغاء نافذة اختبار واحدة. يلغي اختبارًا مجدولًا واحدًا في منشأة (ويستمر الجدول) ويرسل بريدًا إلكترونيًا إلى أصحاب المصلحة. يتطلب Duress في المنشأة؛ أما الاختبار النشط فيُنهى باستخدام duress_end_test بدلًا من ذلك. يتطلب startsAtKey. يطلب التأكيد.

المعلمات

الاسمالنوعالوصف
action*"create_schedule" | "update_schedule" | "cancel_schedule" | "set_facility_override" | "cancel_window"الإجراء المطلوب؛ كل إجراء موصوف في وصف الأداة.
namestringيظهر في رسائل البريد الإلكتروني والتقويم (create_schedule, update_schedule)
type"walk" | "comms" | "drill"walk (الضغط على كل زر)، أو comms (ضغطة واحدة لكل مسار مراقبة)، أو drill (استجابة متدرَّب عليها) (create_schedule, update_schedule)
targetobjectالمنشآت المعنية: المنظمة بأكملها، أو brandIds، أو facilityIds (create_schedule, update_schedule)
startDatestringأول تكرار، بصيغة YYYY-MM-DD بالمنطقة الزمنية لكل منشأة (create_schedule, update_schedule)
localStartTimestringبصيغة HH:mm بالمنطقة الزمنية لكل منشأة (create_schedule, update_schedule)
durationMinutesintegerالقيمة الافتراضية 60 (create_schedule, update_schedule)
recurrence"once" | "monthly" | "quarterly" | "twice-yearly" | "yearly"once أو monthly أو quarterly أو twice-yearly أو yearly (create_schedule, update_schedule)
repeatOnobjectnullالتكرار في يوم الأسبوع رقم n من الشهر بدلًا من التاريخ نفسه؛ القيمة null تمسحه (create_schedule, update_schedule)
monitoringCentreMode"test-codes" | "none"test-codes يرسل الإشارات بوصفها اختبارات؛ none يُبقي مركز المراقبة خارج الاختبار (create_schedule, update_schedule)
extraEmailsarrayيتلقون أيضًا بالبريد الإلكتروني الحجز والتذكيرات والنتائج (create_schedule, update_schedule)
organisationIdstringالافتراضي: منظمة المنشأة المتصلة (create_schedule, update_schedule, cancel_schedule, set_facility_override)
ownerScopestringمن جداول duress_tests_read، مثل brand#b-123؛ وقد يتغير عند تغيّر target (update_schedule, cancel_schedule, set_facility_override)
scheduleIdstringمن جداول duress_tests_read (update_schedule, cancel_schedule, set_facility_override)
facilityIdstringمعرّف المنشأة. اختياري عندما تكون المنشأة المتصلة هي المقصودة. (set_facility_override, cancel_window)
mode"follow" | "skip" | "own"follow أو skip أو own (set_facility_override)
scheduleobjectعند mode own: حقول النسخة (target هو هذه المنشأة دائمًا)؛ الحقول غير المرسلة تؤخذ من الجدول المشترك (set_facility_override)
startsAtKeystringنافذة الاختبار (startsAtKey)، من نوافذ duress_tests_read (cancel_window)
confirmbooleanاضبطه فقط بعد أن يؤكد المستخدم المعاينة التي أعادها الاستدعاء الأول
duress_unlock_doorsالاستغاثة

يفتح الأبواب لإنذار استغاثة، مثلًا لإدخال الشرطة أو المسعفين: الأبواب المرتبطة بالزر المضغوط، وإلا فأبواب خطة الاستجابة. اترك doorIds لفتحها جميعًا، أو حدد بعضها. يُسجَّل كل فتح في الخط الزمني للحادث وفي سجلات الوصول.

لا يُستخدم أبدًا لإنذارات الاختبار أو الإنذارات المحلولة. يتطلب Door/Gate Access في المنشأة.

أكِّد أولًا. استدعِ الأداة دون confirm لمعرفة الأبواب التي ستُفتح، وأخبر المستخدم، ثم استدعِها مجددًا مع confirm: true بعد موافقته.

المعلمات

الاسمالنوعالوصف
incidentId*stringمعرّف الحادثة (inc_...)، من duress_incidents_read list أو من مشغّل سير عمل Duress.
doorIdsarrayبعض الأبواب المدرجة عند الاستدعاء دون confirm. اتركه لفتحها جميعًا.
confirmbooleanاضبطه فقط بعد أن يؤكد المستخدم المعاينة التي أعادها الاستدعاء الأول