aboutsummaryrefslogtreecommitdiff
sendsms

sendsms

A CLI to send SMS via twilio's API.

The CLI takes as argument the path to a configuration file that contains credentials to the API. It also has a number of sub commands, and each sub command is associated with a specific action.

For each action, a section in the configuration file is expected. The two actions currently supported are:

  • reboot
  • hello

hello is a simple one used for testing, it sends "hello world".

reboot is used to create a message that contains the host's name and the IP address of the network interface specified in the configuration file.

Usage

The tool supports sub-commands, which are profiles with predefined messages.

Output using one of the test phone numbers:

> sendsms -c sendsms-test.toml reboot
failed to send the message: (400) The 'From' number +15005550001 is not a valid phone number, shortcode, or alphanumeric sender ID.

For example, you can write a systemd unit that is triggered after a reboot to send an SMS with sendsms reboot. The SMS will contain the host's name and the IP of a predefined interface.

Configuration

A configuration looks like this:

account_sid='xxx'
auth_token='xxx'
from='+1500xxx'
to='+1415xxxxxx'

[reboot]
ifname='wlan0'

You can find the account_sid and auth_token information in the console.

Testing

For testing, you can use the testing credentials. This will not send an SMS and you won't be charged.

When testing, you can use the following phone numbers for from:

number description status code
+15005550001 This phone number is invalid. 21212
+15005550007 This phone number is not owned by your account or is not SMS-capable. 21606
+15005550008 This number has an SMS message queue that is full. 21611
+15005550006 This number passes all validation. No error
All Others This phone number is not owned by your account or is not SMS-capable. 21606

For to:

number description status code
+15005550001 This phone number is invalid. 21211
+15005550002 Twilio cannot route to this number. 21612
+15005550003 Your account doesn't have the international permissions necessary to SMS this number. 21408
+15005550004 This number is blocked for your account. 21610
+15005550009 This number is incapable of receiving SMS messages. 21614
All Others Any other phone number is validated normally. Input-dependent

Build

This can be build via nix build . from the root of the repository, or cargo build from inside the directory.