No fax capabilities available even after installing spandsp and re-compiling Asterisk 13.8

Hello Asterisk experts,

I have an Asterisk 13.8-cert4 which has been working since few months.

Now I am trying to enable faxing, which requires installing spandsp.

I downloaded spandsp snapshot spandsp-20160831.tar.gz and installed the same, after which I recompiled the same Asterisk version which I previously have with pjsip support. I have confirmed with make menuselect that res_fax_spandsp is enabled.

Now after re-installing Asterisk, I see the following output:

fax show capabilities

Registered FAX Technology Modules:

0 registered modules

So how to tell Asterisk that spandsp is now available as a fax capability?

Have you looked at the console at startup to see if it was attempted to be loaded and failed? Have you looked in the /usr/lib/asterisk/modules directory to see if the module is present?

Thanks for the prompt reply!

In /usr/lib/asterisk/modules , I see res_fax_spandsp.so file available.

How to see startup output which is prior to running asterisk -rvvv ?

BTW, (module show) doesn’t display any output related to spandsp

The /var/log/asterisk/full log file generally contains information. You can also do “module show like spandsp” to see if it was loaded at all, and “module load res_fax_spandsp.so” to manually load it.

ok great.

localhost*CLI> module load res_fax_spandsp.so
Unable to load module res_fax_spandsp.so
Command ‘module load res_fax_spandsp.so’ failed.
[Jun 27 01:59:10] WARNING[2854]: loader.c:556 load_dynamic_module: Error loading module ‘res_fax_spandsp.so’: libspandsp.so.2: cannot open shared object file: No such file or directory
[Jun 27 01:59:10] WARNING[2854]: loader.c:1086 load_resource: Module ‘res_fax_spandsp.so’ could not be loaded.

That would mean that the spandsp library can’t be found. It could be installed in a different place than the system is looking. You could try running “ldconfig” to see if that helps. If not you’ll need to find where the library was installed and where things are expecting it to be. It could be that when installed it went to /usr/local but in reality it should have been /usr

In /usr/local/lib/ , I have these:

-rw-r–r-- 1 root root 3873214 Jun 27 00:50 libspandsp.a
-rwxr-xr-x 1 root root 948 Jun 27 00:50 libspandsp.la
lrwxrwxrwx 1 root root 19 Jun 27 00:50 libspandsp.so -> libspandsp.so.2.0.0
lrwxrwxrwx 1 root root 19 Jun 27 00:50 libspandsp.so.2 -> libspandsp.so.2.0.0
-rwxr-xr-x 1 root root 2399257 Jun 27 00:50 libspandsp.so.2.0.0
drwxr-xr-x 2 root root 23 Jun 27 00:50 pkgconfig

How to know what is the location where Asterisk is expecting it to be?

Running ldconfig did nothing.

The inability to find the library isn’t because of Asterisk, it’s because of the system itself. It’s configured to look in certain places for libraries and you’ve installed spandsp in a place it isn’t. The easiest way would be to rebuild spandsp and use “./configure --prefix=/usr” as that is likely where things are configured to look.

1 Like

FANTASTIC !

After running ./configure --prefix=/usr , then make and make install:

localhost*CLI> fax show capabilities

Registered FAX Technology Modules:

Type : Spandsp
Description : Spandsp FAX Driver
Capabilities : SEND RECEIVE T.38 G.711 GATEWAY

1 registered modules

Highly appreciate !