Overview
Whisper provides an HTTP API for sending SMS messages to devices, useful for remote device control, alerts, and out-of-band communication when network connectivity is limited.Configuration
Docker Compose
Environment variables
| Variable | Description | Default |
|---|---|---|
PORT | Service port | 8081 |
STREAM_API_URL | MediaMTX API endpoint | Required |
POCKETBASE_URL | PocketBase connection URL | Required |
JOYSTICK_API_URL | Joystick service URL | Required |
Dependencies
Whisper uses Android SMS Gateway integration:Features
SMS sending
- Send to phone numbers - Direct SMS to any phone number
- Device targeting - Send to device phone numbers from database
- Message templates - Support for templated messages
- Delivery tracking - Track message delivery status
Android SMS Gateway integration
Whisper integrates with Android SMS Gateway app:- Gateway authentication - Secure API access
- Multiple gateways - Support for multiple SMS gateway devices
- Fallback support - Switch between gateways on failure
- Status monitoring - Monitor gateway health and message queue
Use cases
Remote device control
Send SMS commands to devices without network connectivity:Alert notifications
Send critical alerts via SMS:Out-of-band management
Control devices when primary network is down:Status requests
Request device status via SMS:API endpoints
Send SMS
Get message status
List sent messages
deviceId- Filter by devicestatus- Filter by statuslimit- Number of messages to return
Health check
Android SMS Gateway setup
Install gateway app
- Install Android SMS Gateway app on Android device
- Configure gateway credentials
- Enable SMS permissions
- Start gateway service
Configure Whisper
Set gateway credentials in PocketBase or environment:Test connection
Message templates
Support for message templating:Integration examples
Integration with Baker
Schedule SMS alerts:Integration with Studio
Send SMS when media event occurs:Integration with Switcher
SMS notification on slot switch:Message status codes
queued- Message queued for sendingsent- Message sent to gatewaydelivered- Message delivered to recipientfailed- Delivery failedpending- Delivery pending
Rate limiting
Whisper implements rate limiting to prevent abuse:- Per device - Limit messages per device per hour
- Global - Overall message throughput limit
- Gateway - Respect gateway provider limits
Error handling
Common error scenarios:Gateway offline
Invalid phone number
Rate limit exceeded
Best practices
Keep messages concise
SMS has character limits:Use message templates
Standardize message formats:Handle failures gracefully
Implement retry logic:Monitor gateway health
Regularly check gateway status:Troubleshooting
Messages not sending
- Verify gateway is connected
- Check phone number format
- Review gateway logs
- Verify SMS permissions on gateway device
Delivery failures
- Check recipient phone number is valid
- Verify gateway has cellular signal
- Check gateway message queue
- Review error logs
Performance issues
- Check gateway queue size
- Monitor rate limits
- Review message volume
- Consider multiple gateways