Skip to content

Signal ​

Ikonekta ang iyong Triggerfish agent sa Signal para makapa-message ito ng mga tao mula sa Signal app. Nakikipag-communicate ang adapter sa isang signal-cli daemon sa pamamagitan ng JSON-RPC, gamit ang iyong linked Signal phone number.

Paano Naiiba ang Signal ​

Ang Signal adapter ay ang iyong phone number. Hindi tulad ng Telegram o Slack kung saan may separate bot account, ang mga Signal messages ay mula sa ibang tao papunta sa iyong number. Ibig sabihin:

  • Lahat ng inbound messages ay may isOwner: false -- palagi itong mula sa iba
  • Tumutugon ang adapter bilang ang iyong phone number
  • Walang per-message owner check tulad ng ibang channels

Perpekto ang Signal para sa pagtanggap ng messages mula sa mga contacts na nagme-message sa iyong number, kung saan tumutugon ang agent sa iyong ngalan.

Default Classification ​

Naka-default ang Signal sa PUBLIC classification. Dahil lahat ng inbound messages ay mula sa external contacts, PUBLIC ang ligtas na default.

Setup ​

Step 1: Mag-install ng signal-cli ​

Ang signal-cli ay isang third-party command-line client para sa Signal. Nakikipag-communicate ang Triggerfish dito sa pamamagitan ng TCP o Unix socket.

Linux (native build -- walang Java na kailangan):

I-download ang latest native build mula sa signal-cli releases page, o hayaan ang Triggerfish na i-download ito para sa iyo habang nagse-setup.

macOS / ibang platforms (JVM build):

Kailangan ng Java 21+. Pwedeng automatic na mag-download ang Triggerfish ng portable JRE kung hindi naka-install ang Java.

Pwede ka ring mag-run ng guided setup:

bash
triggerfish config add-channel signal

Chine-check nito ang signal-cli, nag-ooffer na i-download kung wala, at gina-guide ka sa pag-link.

Kailangan i-link ang signal-cli sa iyong existing Signal account (parang pag-link ng desktop app):

bash
signal-cli link -n "Triggerfish"

Magpi-print ito ng tsdevice: URI. I-scan ang QR code gamit ang iyong Signal mobile app (Settings > Linked Devices > Link New Device).

Step 3: I-start ang Daemon ​

Nare-run ang signal-cli bilang background daemon na kinokonekta ng Triggerfish:

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

Palitan ang +14155552671 ng iyong phone number sa E.164 format.

Step 4: I-configure ang Triggerfish ​

Idagdag ang Signal sa iyong triggerfish.yaml:

yaml
channels:
  signal:
    endpoint: "tcp://127.0.0.1:7583"
    account: "+14155552671"
    classification: PUBLIC
OptionTypeRequiredDescription
endpointstringOosignal-cli daemon address (tcp://host:port o unix:///path/to/socket)
accountstringOoAng iyong Signal phone number (E.164 format)
classificationstringHindiClassification ceiling (default: PUBLIC)
defaultGroupModestringHindiGroup message handling: always, mentioned-only, owner-only (default: always)
groupsobjectHindiPer-group configuration overrides
ownerPhonestringHindiReserved para sa future use
pairingbooleanHindiI-enable ang pairing mode habang nagse-setup

Step 5: I-start ang Triggerfish ​

bash
triggerfish stop && triggerfish start

Magpadala ng message sa iyong phone number mula sa ibang Signal user para kumpirmahin ang connection.

Group Messages ​

Sumusuporta ang Signal ng group chats. Pwede mong kontrolin kung paano tumutugon ang agent sa group messages:

ModeBehavior
alwaysTumugon sa lahat ng group messages (default)
mentioned-onlyTumugon lang kapag binanggit gamit ang phone number o @mention
owner-onlyHuwag kailanman tumugon sa groups

I-configure nang global o per-group:

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

Ang mga Group IDs ay base64-encoded identifiers. Gamitin ang triggerfish signal list-groups o tingnan ang signal-cli documentation para mahanap ang mga ito.

Message Chunking ​

Ang Signal ay may 4,000-character message limit. Ang mga responses na mas mahaba dito ay automatic na hina-hatiin sa maraming messages, ini-break sa newlines o spaces para sa readability.

Typing Indicators ​

Nagpapadala ang adapter ng typing indicators habang nagpo-process ng request ang agent. Naci-clear ang typing state kapag naipadala na ang reply.

Extended Tools ​

Nag-eexpose ang Signal adapter ng mga karagdagang tools:

  • sendTyping / stopTyping -- Manual typing indicator control
  • listGroups -- I-list ang lahat ng Signal groups na kasapi ang account
  • listContacts -- I-list ang lahat ng Signal contacts

Pagpapalit ng Classification ​

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

Mga valid na levels: PUBLIC, INTERNAL, CONFIDENTIAL, RESTRICTED.

I-restart ang daemon pagkatapos magbago: triggerfish stop && triggerfish start

Mga Reliability Feature ​

Kasama sa Signal adapter ang ilang reliability mechanisms:

Auto-Reconnection ​

Kung mawala ang connection sa signal-cli (network interruption, daemon restart), automatic na nagre-reconnect ang adapter na may exponential backoff. Walang manual intervention na kailangan.

Health Checking ​

Sa startup, chine-check ng Triggerfish kung healthy ang existing signal-cli daemon gamit ang JSON-RPC ping probe. Kung unresponsive ang daemon, kini-kill at nire-restart ito nang automatic.

Version Tracking ​

Tina-track ng Triggerfish ang known-good signal-cli version (kasalukuyang 0.13.0) at nagbabala sa startup kung mas luma ang installed version mo. Nilo-log ang signal-cli version sa bawat successful connection.

Unix Socket Support ​

Bukod sa TCP endpoints, sumusuporta rin ang adapter ng Unix domain sockets:

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

Troubleshooting ​

Hindi maabot ang signal-cli daemon:

  • I-verify na tumatakbo ang daemon: tingnan ang process o subukan ang nc -z 127.0.0.1 7583
  • IPv4 lang ang bina-bind ng signal-cli -- gamitin ang 127.0.0.1, hindi localhost
  • TCP default port ay 7583
  • Auto na ire-restart ng Triggerfish ang daemon kung may maka-detect na unhealthy process

Hindi dumadating ang mga messages:

  • Kumpirmahin na naka-link ang device: tingnan ang Signal mobile app sa Linked Devices
  • Kailangan ng signal-cli na makatanggap ng kahit isang sync pagkatapos mag-link
  • Tingnan ang logs para sa connection errors: triggerfish logs --tail

Java errors (JVM build lang):

  • Kailangan ng signal-cli JVM build ang Java 21+
  • I-run ang java -version para tingnan
  • Pwedeng mag-download ang Triggerfish ng portable JRE habang nagse-setup kung kailangan

Reconnection loops:

  • Kung nakikita mo ang paulit-ulit na reconnection attempts sa logs, baka nagcra-crash ang signal-cli daemon
  • Tingnan ang sariling stderr output ng signal-cli para sa errors
  • Subukan ang pag-restart na may fresh daemon: ihinto ang Triggerfish, patayin ang signal-cli, i-restart pareho