Administrivia.
Repo moving.
Note about contributing.
I wrote these to make my life as a jmp.chat user a bit easier. Hopefully others will find them of use.
To install commtools, clone the repo and use luarocks make to build
and install using luarocks.
git clone https://git.2mb.codes/~cmb/commtools
cd commtools
luarocks make --local # For per-user installation, or
sudo luarocks make # For system-wide installation.
System-wide installation is recommended. If you do that, the commands
should be in /usr/local/bin or /usr/bin, depending on your luarocks configuration.
If you do a per-user install, the scripts will show up in ~/.luarocks/bin or the like.
khard2xmpp is a script to import contacts from the khard tool into
an XMPP roster.
bscmd is a script for controlling baresip.
The khard2xmpp script needs to be able to find your XMPP account.
It uses a fairly simple configuration file in TOML format named ~/.config/commtools/commtools.conf.
Here is a sample configuration:
default-xmpp-account = "chris"
[xmpp-account-chris]
jid = "chris@chat.number89.net"
password = "not4u2know"
The configuration file allows for the possibility of multiple accounts,
though this feature isn't used right now. Accounts are identified by
a short name, like chris, and configured in sections named
[xmpp-account-SHORTNAME]. The default-xmpp-account variable holds the
short name of the default account.
Additional configuration options will probably be added later. For instance, it would be nice not to store plaintext passwords in config files, but instead, fetch them out of a secret store.
bscmdbscmd expects to be able to control a long-running baresip program over DBus.
Typically I run baresip as a per-user service in a service manager,
and it stays up from boot-up to shutdown. The details are beyond the scope
of this document. You'll need some configuration options set in ~/.baresip/config:
module_app menu.so
module_app ctrl_dbus.so
ctrl_dbus
ctrl_dbus_use session
You'll want to disable all of the UI modules like stdio.so and cons.so, because
you're running it as a service and controlling it with bscmd.
Once baresip is up and running, type bscmd --help at a shell prompt
to get a list of commands. Most things are self-explanatory.
Some commands, like sndcode will only work during a call.
Many baresip commands haven't been added yet but will soon™.
Examples:
bscmd dial '+18005551212' # Dial a phone number.
bscmd hangup # Self-explanatory.
bscmd dial 'sip:904@mouselike.org' # SIP test call.
bscmd dial --contact Chris
# If you have contact info in khard for someone named Chris, it'll dial
# them. If you have multiple contacts named Chris, you can choose from
# a menu.
khard2xmppThis command takes no options and no arguments, though at some point
I'll add a --account option. It pulls your XMPP roster and adds
number@cheogram.com-style items to the roster for contacts that
aren't already there. For instance, if you have a contact named Chris
with a phone number of +18005551212, khard2xmpp will add an item
with the JID +18005551212@cheogram.com and named Chris (phone) to
your roster.
MIT/X11, same as Lua itself.
I bundle a version of Matthew Wild's verse Lua XMPP library, because there isn't a recent version in luarocks and it is a bit of a chore to clone and build.
The easiest way is to send email to my public inbox with either patches, or the URL of a fork of this repository.