Однажды душным августовским вечером одному моему знакомому взгрустнулось. Внезапно он осознал, что время быстротечно, жизнь проходит, а минуты, которые ежемесячно предоставляет оператор Yota, не используются и пропадают!! в модеме.. Было решено собрать подзабытый всеми старинный модуль chan_dongle для Asterisk, чтобы пробалтывать, использовать эти минуты через 3G modem. По фигу с кем, но использовать их!
Конечно же ,собрать его требовалось на FreeBSD 12. Описания присутствуют в этих ваших интернетах, но они не годятся, так как не приводят к нужному результату. Без лишних вопросов — приступаем..
Для начала обновляем пакеты FreeBSD и ядро оси. Теперь устанавливаем нужные для сборки пакеты, а именно — autotools и gmake:
# Установим нужный для сборки софт # pkg install -y autotools gmake git |
Теперь клонируем пакет с GIT-хаба и готовим его к сборке :
# Клонируем пакет # git clone https://github.com/oleg-krv/asterisk-chan-dongle cd dongle/ # Готовимся к сборке # aclocal autoconf automake -a ./configure |
Теперь пара важных моментов — нужно внести исправления в конфиг файла Makefile, а именно — в опции компилятора добавить ключ -fblocks и указать компилятору верный путь до библиотеки libiconv. Для этого находим строчку CFLAGS в файле Makefile и добавляем туда опцию -fblocks
А также в строке LIB = указываем путь LIBS = /usr/local/lib/
# Редактируем нужный файл # vi Makefile CFLAGS = -g -O2 -O6 -I$(srcdir) ... -fblocks LIBS = /usr/local/lib/ |
Теперь компилируем пакет:
# Компилируем и устанавливаем пакет # gmake gmake 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/local/lib/asterisk
Астериск получил плагин для звонков через 3G modem. Теперь можно настраивать его.
# Устанавливаем Asteriks # pkg search asterisk13 # В настоящий момент в пакетах собран asterisk13-13.34.0_1, # устанавливаем его. pkg install asterisk13-13.34.0_1 # Добавляем в rc.conf sysrc asterisk_enable="YES" # Добавляем пользователя asterisk в группу dialer # pw groupmod dialer -m asterisk # Стартуем asteriks # /usr/local/etc/rc.d/asterisk start |
Вероятнее всего, что астериск стартанет и будет работать. Теперь требуется создать конфиг для плагина chan_dongle — файл /usr/local/etc/asterisk/dongle.conf и написать в нем примерно следующее.
[general] interval=15 [defaults] context=default group=0 rxgain=0 txgain=0 autodeletesms=yes resetdongle=yes u2diag=-1 usecallingpres=yes callingpres=allowed_passed_screen disablesms=no [beeline] imei=35870507777777 context=beeline-incoming exten=+79051111111 audio=/dev/cuaU0.1 data=/dev/cuaU0.2 group=1 rxgain=2 txgain=2 resetdatacard=yes u2diag=0 usecallingpres=yes callingpres=allowed_passed_screen disablesms=no |
У меня вышло только с строчкой
LIBS = /usr/local/lib/libiconv.so