Signal
The Signal channel connects Open Astra agents to Signal via the signal-cli REST bridge. Signal does not have an official bot API, so this integration requires running a separate signal-cli service that manages a registered Signal phone number.
Prerequisites
- A dedicated phone number for the Signal bot (not your personal number)
- The signal-cli REST API running and registered with that phone number
- Network access from the Astra gateway to the signal-cli REST API
Setup
First, run the signal-cli REST API using Docker:
bash
docker run -d \\
--name signal-api \\
-p 8080:8080 \\
-v signal-data:/home/.local/share/signal-cli \\
bbernhard/signal-cli-rest-api
# Register your phone number
curl -X POST http://localhost:8080/v1/register/+15551234567 \\
-H 'Content-Type: application/json' \\
-d '{"use_voice": false}'
# Verify with the SMS code
curl -X POST http://localhost:8080/v1/register/+15551234567/verify/123456Then configure Astra:
bash
SIGNAL_API_URL=http://localhost:8080
SIGNAL_PHONE_NUMBER=+15551234567Configuration in astra.yml
yaml
channels:
signal:
enabled: true
defaultAgent: assistant-agent
allowedPhoneNumbers: [] # Empty means all contacts allowed
pollIntervalMs: 3000 # How often to poll for new messages⚠Signal does not support webhooks — the integration polls the signal-cli REST API at the configured interval. Set a reasonable poll interval to avoid overwhelming the signal-cli service.