Skip to content

Signal

قم بتوصيل وكيل Triggerfish الخاص بك بـ Signal حتى يتمكن الأشخاص من مراسلته من تطبيق Signal. يتواصل المحوّل مع خادم signal-cli عبر JSON-RPC، باستخدام رقم هاتف Signal المرتبط الخاص بك.

كيف يختلف Signal

محوّل Signal هو رقم هاتفك. بخلاف Telegram أو Slack حيث يوجد حساب بوت منفصل، تأتي رسائل Signal من أشخاص آخرين إلى رقمك. هذا يعني:

  • جميع الرسائل الواردة لها isOwner: false -- هي دائماً من شخص آخر
  • يرد المحوّل كرقم هاتفك
  • لا يوجد فحص مالك لكل رسالة كالقنوات الأخرى

هذا يجعل Signal مثالياً لاستقبال الرسائل من جهات الاتصال التي تراسل رقمك، مع رد الوكيل نيابة عنك.

التصنيف الافتراضي

يتم تصنيف Signal افتراضياً كـ PUBLIC. بما أن جميع الرسائل الواردة تأتي من جهات اتصال خارجية، PUBLIC هو الافتراضي الآمن.

الإعداد

الخطوة 1: تثبيت signal-cli

signal-cli هو عميل سطر أوامر تابع لجهة خارجية لـ Signal. يتواصل Triggerfish معه عبر مقبس TCP أو Unix.

Linux (بناء أصلي -- لا حاجة لـ Java):

حمّل أحدث بناء أصلي من صفحة إصدارات signal-cli، أو دع Triggerfish يحمّله لك أثناء الإعداد.

macOS / منصات أخرى (بناء JVM):

يتطلب Java 21+. يمكن لـ Triggerfish تحميل JRE محمول تلقائياً إذا لم يكن Java مثبتاً.

يمكنك أيضاً تشغيل الإعداد الموجّه:

bash
triggerfish config add-channel signal

هذا يتحقق من signal-cli، ويعرض تحميله إذا كان مفقوداً، ويرشدك خلال الربط.

الخطوة 2: ربط جهازك

يجب ربط signal-cli بحساب Signal الموجود (مثل ربط تطبيق سطح المكتب):

bash
signal-cli link -n "Triggerfish"

يطبع هذا URI tsdevice:. امسح رمز QR بتطبيق Signal على الهاتف (الإعدادات > الأجهزة المرتبطة > ربط جهاز جديد).

الخطوة 3: تشغيل الخادم

يعمل signal-cli كخادم خلفية يتصل به Triggerfish:

bash
signal-cli -a +14155552671 daemon --tcp localhost:7583

استبدل +14155552671 برقم هاتفك بتنسيق E.164.

الخطوة 4: تكوين Triggerfish

أضف Signal إلى triggerfish.yaml:

yaml
channels:
  signal:
    endpoint: "tcp://127.0.0.1:7583"
    account: "+14155552671"
    classification: PUBLIC
الخيارالنوعمطلوبالوصف
endpointstringنعمعنوان خادم signal-cli (tcp://host:port أو unix:///path/to/socket)
accountstringنعمرقم هاتف Signal الخاص بك (تنسيق E.164)
classificationstringلاسقف التصنيف (الافتراضي: PUBLIC)
defaultGroupModestringلامعالجة رسائل المجموعات: always، mentioned-only، owner-only (الافتراضي: always)
groupsobjectلاتجاوزات تكوين لكل مجموعة
ownerPhonestringلامحجوز للاستخدام المستقبلي
pairingbooleanلاتمكين وضع الإقران أثناء الإعداد

الخطوة 5: تشغيل Triggerfish

bash
triggerfish stop && triggerfish start

أرسل رسالة إلى رقم هاتفك من مستخدم Signal آخر لتأكيد الاتصال.

رسائل المجموعات

يدعم Signal دردشات المجموعات. يمكنك التحكم في كيفية رد الوكيل على رسائل المجموعات:

الوضعالسلوك
alwaysالرد على جميع رسائل المجموعة (الافتراضي)
mentioned-onlyالرد فقط عند الإشارة برقم الهاتف أو @mention
owner-onlyعدم الرد أبداً في المجموعات

كوّن عالمياً أو لكل مجموعة:

yaml
channels:
  signal:
    endpoint: "tcp://127.0.0.1:7583"
    account: "+14155552671"
    defaultGroupMode: mentioned-only
    groups:
      "your-group-id":
        mode: always
        classification: INTERNAL

معرّفات المجموعات هي معرّفات مشفرة بـ base64. استخدم triggerfish signal list-groups أو راجع وثائق signal-cli للعثور عليها.

تقسيم الرسائل

لدى Signal حد 4,000 حرف للرسالة. الردود الأطول من هذا تُقسّم تلقائياً إلى رسائل متعددة، مع الفصل عند أسطر جديدة أو مسافات لسهولة القراءة.

مؤشرات الكتابة

يرسل المحوّل مؤشرات كتابة أثناء معالجة الوكيل لطلب. تختفي حالة الكتابة عند إرسال الرد.

أدوات إضافية

يكشف محوّل Signal أدوات إضافية:

  • sendTyping / stopTyping -- تحكم يدوي بمؤشر الكتابة
  • listGroups -- عرض جميع مجموعات Signal التي ينتمي إليها الحساب
  • listContacts -- عرض جميع جهات اتصال Signal

تغيير التصنيف

yaml
channels:
  signal:
    endpoint: "tcp://127.0.0.1:7583"
    account: "+14155552671"
    classification: INTERNAL

المستويات الصالحة: PUBLIC، INTERNAL، CONFIDENTIAL، RESTRICTED.

أعد تشغيل الخادم بعد التغيير: triggerfish stop && triggerfish start

ميزات الموثوقية

يتضمن محوّل Signal عدة آليات موثوقية:

إعادة الاتصال التلقائي

إذا انقطع الاتصال بـ signal-cli (انقطاع شبكة، إعادة تشغيل الخادم)، يعيد المحوّل الاتصال تلقائياً مع تراجع أسي. لا حاجة لتدخل يدوي.

فحص الصحة

عند بدء التشغيل، يتحقق Triggerfish مما إذا كان خادم signal-cli الموجود سليماً باستخدام اختبار JSON-RPC ping. إذا كان الخادم غير مستجيب، يُقتل ويُعاد تشغيله تلقائياً.

تتبع الإصدار

يتتبع Triggerfish إصدار signal-cli المعروف بأنه جيد (حالياً 0.13.0) ويحذر عند بدء التشغيل إذا كان إصدارك المثبت أقدم. يُسجّل إصدار signal-cli عند كل اتصال ناجح.

دعم مقبس Unix

بالإضافة إلى نقاط نهاية TCP، يدعم المحوّل مقابس نطاق Unix:

yaml
channels:
  signal:
    endpoint: "unix:///run/signal-cli/socket"
    account: "+14155552671"

استكشاف الأخطاء

خادم signal-cli غير قابل للوصول:

  • تحقق من أن الخادم يعمل: ابحث عن العملية أو جرب nc -z 127.0.0.1 7583
  • signal-cli يربط IPv4 فقط -- استخدم 127.0.0.1، وليس localhost
  • المنفذ الافتراضي لـ TCP هو 7583
  • سيعيد Triggerfish تشغيل الخادم تلقائياً إذا اكتشف عملية غير سليمة

الرسائل لا تصل:

  • تأكد من ربط الجهاز: تحقق من تطبيق Signal على الهاتف تحت الأجهزة المرتبطة
  • يجب أن يكون signal-cli قد استقبل مزامنة واحدة على الأقل بعد الربط
  • تحقق من السجلات بحثاً عن أخطاء الاتصال: triggerfish logs --tail

أخطاء Java (بناء JVM فقط):

  • يتطلب بناء JVM لـ signal-cli إصدار Java 21+
  • شغّل java -version للتحقق
  • يمكن لـ Triggerfish تحميل JRE محمول أثناء الإعداد إذا لزم الأمر

حلقات إعادة الاتصال:

  • إذا رأيت محاولات إعادة اتصال متكررة في السجلات، قد يكون خادم signal-cli يتعطل
  • تحقق من مخرجات stderr الخاصة بـ signal-cli بحثاً عن أخطاء
  • جرب إعادة التشغيل بخادم جديد: أوقف Triggerfish، اقتل signal-cli، أعد تشغيل كليهما