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، أعد تشغيل كليهما