Ruby ASPSMS is a Ruby script which is both a command line SMS client in the style of
gem install aspsms).
ASPSMS.com is a Switzerland-based SMS gateway featuring an XML interface, at rather low prices, and neither setup nor monthly fees, ideal for low to medium volume usage.
Note that I am in no way affiliated with
Vadian.net, just a happy customer.
Usage: aspsms [-M] [-v] [-c file] [-o orig] [-t [n]] [-f] [-b] rcpt [...] aspsms -C [-v] [-c file] aspsms -O [-v] [-c file] [-o orig] aspsms -U [-v] [-c file] [-o orig] [-u code] Actions: -M send text message read from stdin (implied if recipients are given) -C retrieve credit balance -O check originator authorization -U send originator unlock code; unlock if used with -u Parameters: -o specify originator (phone number or up to 11 characters) -t truncate message to n bytes, or 160 if used without argument -f/-b flashing/blinking text SMS -u specify unlock code -c specify config file (default: ~/.aspsms, [/usr/local]/etc/aspsms) -v verbose -h/-V show help/version and exit Recipient phone number format: international format, e.g. +41XXXXXXXXX
Supported are the following actions:
- Send text messages, with arbitrary originator, multiple recipients, arbitrary message length, optional truncating, flashing, blinking.
- Retrieve the credit balance.
- Check originator authorization.
- Unlock a new originator.
The underlying ruby library also supports a few additional, advanced features such as delivery notifications. Read the source for more information.
The command line interface was designed to be scriptable and cronjob
The exit status can be relied upon, errors are printed to standard
error and unless verbose mode is used, no or only minimal
output is written to standard output, ready to be used within
backticks in scripts (e.g.
credits=$(aspsms -C) or
aspsms -A -o "$originator" || exit 1).
Sending SMS and check for for success:
$ echo 'Hello world!' | aspsms +41791234567 $ echo $? 0
Sending SMS in verbose mode (
-v) to multiple recipients:
$ echo 'Hello world!' | aspsms -v +41791234567 +41797654321 message delivered (2 credits used)
Sending flashing SMS (
-f) with custom originator (
$ echo 'Hello world!' | aspsms -f -o 'sms.roe.ch' +41791234567
Retrieve credit balance from server:
$ aspsms -C 338.5
Check originator authorization and unlock new originator:
$ aspsms -O -v -o +41790000000 not authorized $ aspsms -U -v -o +41790000000 sent unlock code $ aspsms -U -v -o +41790000000 -u <unlock code received by mobile> unlocked originator $ aspsms -O -v -o +41790000000 authorized
gem install aspsms
The script reads the configuration file from
/etc/aspsms. Make sure to set sensible permissions (0600 is a good start).
# ASPSMS configuration file userkey [USERKEY] password [PASSWORD] #originator [DEFAULT ORIGINATOR] #gateway [GATEWAY OVERRIDE]
Userkey and password deliberately cannot be specified on the command line, as the parameters could then be seen by all users on a shared system (eg. using
HTTP proxy settings are read from the environment variable
http_proxy and character set of strings passed as command line arguments or read from stdin is expected to be in the charset defined by the locale as defined by the environment (
Please send patches my way or fork the project on GitHub and send me a pull request.
To Do List
- Rewrite error handling to use custom exception classes in the
- Support (non-)delivery notifications from the command line and
- Support for reading password from a file descriptor or from a keychain
- Write manual page and improve rdoc
The latest version is available as a ruby gem (see Installation).
An older version of the script, before moving to GitHub and RubyGems is still available: aspsms.rb r95
The ruby script is a rewrite of a previous, more limited aspsms.pl perl script.