The symptoms are:
In file included from app.c:21:0:
/usr/include/asterisk/version.h:1:2: error: #error "Do not include 'asterisk/version.h'; use 'asterisk/ast_version.h' instead."
app.c: In function 'app_register':
app.c:162:3: warning: passing argument 2 of 'ast_register_application2' from incompatible pointer type [enabled by default]
In file included from app.c:20:0:
/usr/include/asterisk/module.h:458:5: note: expected 'int (*)(struct ast_channel *, const char *)' but argument is of type 'int (*)(struct ast_channel *, void *)'
make: *** [app.o] Error 1
Solution:
Download patched sources
autoconf and autmake should be installed
uzip sources
cd to unzipped folder
issue commands: aclocal, autoconf, automake -a
install chan_dongle as usual ./configure, make, make install.
then I got next error
# sudo make install
./config.status
config.status: creating Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
strip chan_dongle.so
/usr/bin/install -c -m 755 chan_dongle.so
/usr/bin/install: missing destination file operand after `chan_dongle.so'
Try `/usr/bin/install --help' for more information.
make: *** [install] Error 1
Error because on chan_dongle installed on 64 bit OS. In that case DESTDIR should be: DESTDIR="/usr/lib64/asterisk/modules
after that you can run asterisk console and load module:
CLI> module load chan_dongle.so
but then next error comes:
WARNING[24644]: chan_dongle.c:218 opentty: unable to open /dev/ttyUSB2: Permission denied
that because of wrong permissions.
That usually happens when asterisk running in non root mode. Set the correct permissions to /dev/ttyUSB
#chmod 666 /dev/ttyUSB*
after all chan_dongle is up and runnin, but after adding second dongle, problem with permissions comes back. The silution is to set permission automatically. Create file in /etc/udev/rules.d/92-dongle.rules
and add
KERNEL=="ttyUSB*", MODE="0666", OWNER="asterisk", GROUP="uucp"