Callcentric is a popular USA-based SIP provider. In addition to a free fax-to-Web receiving-only service, they also support the T.38 protocol for transmitting and receiving faxes. However, Callcentric does not provide detailed support for this feature. This article will document the steps taken to successfully use this service, as tested on a system with Ubuntu Linux 9.10 “Karmic Koala”, the latest version of the
t38modem software, and the
efax-gtk faxing software.
This guide assumes that you are running Ubuntu Linux 9.10 “Karmic Koala”. You must already be comfortable with compiling Linux software, and have the
build-essential package installed. You will also need to have the
libpt2.6.4 packages installed, or newer versions of these packages if they become available.
Unfortunately, there are no pre-built packages available for versions of
t38modem newer than
0.8.2, and SIP support was not introduced until version
1.0.0. As of writing, the most recent version of
t38modem available from the project homepage was
1.2.0. Download this package from Sourceforge. You will also need to download the source for OPAL that matches the version of
libopal installed on your computer. These can be found from the Opal project homepage.
First, you will need to configure and compile the OPAL sources. Unfortunately, the Opal project uses DOS line endings in its text files, which will cause your call to
./configure to fail cryptically. Run this command in the root OPAL source directory to fix this problem:
find . -type f | xargs dos2unix
After this, you should be able to run
make. You should not run
make install, since you already have this installed through your package manager. The OPAL package only had to be manually compiled because
t38modem‘s subsequent compilation depends on several files that are generated during this build process.
t38modem. Change into the directory where you extracted the source package, and issue the following command:
OPALDIR=/path/to/your/opalfiles PTLIBDIR=/usr/share/ptlib make USE_OPAL=1 USE_UNIX98_PTY=1
OPALDIR is left unset, the compiler will look for your OPAL files in the directory
PTLIBDIR is required. I have entered the working location for a Ubuntu system. This command should complete successfully, and you will find your new
t38modem executable in the
obj_linux_x86_64_opal subdirectory (if you are running on an x86-64 system). You may run it from this directory without installing it systemwide.
I found that it was necessary to run as root; hence this command begins with
sudo. This is run from the
obj_linux_x86_64_opal subdirectory. Be sure to replace your ID and password as required, and note that this configuration is for sending faxes only. More advanced configurations are beyond the scope of this article.
sudo ./t38modem --sip-proxy YOUR_CALLCENTRIC_ID:YOUR_CALLCENTRIC_PASSWORD@callcentric.com \ --sip-register YOUR_CALLCENTRIC_ID@callcentric.com,YOUR_CALLCENTRIC_PASSWORD \ --no-h323 --sip-no-listen -p +/dev/ttyx0 --route 'modem:.*=sip:<dn>@callcentric.com' \ -u YOUR_CALLCENTRIC_ID --stun stun.ekiga.net
Note that, although Callcentric claims that a STUN server is unnecessary for their service, I could not get this command to work without using one.
After a few seconds, you should be able to send faxes using your application of choice. Instruct it to send on the device
ttyx0; I otherwise made essentially no changes to my application. You will most likely have to run this application as root; I used
efax-gtk as provided in Ubuntu, and started it with the command
sudo efax-gtk. Any advice on how to accomplish this without root privileges would be appreciated.
t38modem provides a lot of debugging information when the
-t command-line switch is used.
-ttt, and so on will give more detail.
t38modem --help appears to have the best and most up-to-date documentation at the moment.
Callcentric also seems to require that calling a USA number follow eleven-digit format, e.g.
1-703-555-5555, or full international-call format, e.g.