Сергей Маликов
16.03.2020
834345

Настройка chan_dongle

В статье описана настройка chan_dongle — модуля для работы с 3g модемами. Установить пакет chan_dongle Если все прошло корректно, Далее необходимо установить usb-modeswitch Для установки требуемых пакетов usb_modeswitch usb_modeswitch-data ввести команду(должен быть установлен репозиторий epel-release): Если USB модем подключен, он должен отображаться: lsusb Если не установлен lsusb: 12d1 означает производитель (huawei) 1436 означает устройство (в […]

В статье описана настройка chan_dongle — модуля для работы с 3g модемами.

Установить пакет chan_dongle

git clone https://github.com/wdoekes/asterisk-chan-dongle.git
cd asterisk-chan-dongle/
./bootstrap
./configure --with-astversion=13.28.1 #если установлена другая версия астериск-отредактировать
Для того, чтобы узнать установленную версию астериск выполните команду: asterisk -V
make
make install
cp ./etc/dongle.conf /etc/asterisk/

Если все прошло корректно,

Корректное завершение установки  chan_dongle
Корректное завершение установки chan_dongle

Далее необходимо установить usb-modeswitch

Для установки требуемых пакетов usb_modeswitch usb_modeswitch-data ввести команду(должен быть установлен репозиторий epel-release):

yum install usb_modeswitch*
Корректное завершение установки  usb_modeswitch
Корректное завершение установки usb_modeswitch

Если USB модем подключен, он должен отображаться:

ls -la /dev | grep ttyUSB
 Вывод подключеннных USB устройств
Вывод подключеннных USB устройств

lsusb

Если не установлен lsusb:

yum install usbutils
Вывод lsbusb (шина, устройство, ID)
Вывод lsbusb (шина, устройство, ID)

12d1 означает производитель (huawei)

1436 означает устройство (в д.сл. — E173)

Модем должен быть в состоянии «только модем».

Для смена режима работы 3g модема E173 необходимо выполнить следующую команду:

usb_modeswitch -v 0x12d1 -p 0x1436 -H -s -M "55534243123456780000000000000011060000000000000000000000000000"

Общий вид:

usb_modeswitch -v DefaultVendor -p DefaultProduct -V TargetVendor -P TargetProduct -M "сообщение"

DefaultVendor и DefaultProduct — параметры, определенные с помощью АТ команд в режиме «составное устройство»;

TargetVendor и TargetProduct — параметры, определенные с помощью АТ команд в режиме «только модем»;

Сообщение — передающийся в модем параметр для измененния режима работы.

Необходимую строку инициализации usb_modeswitch можно найти здесь.

Для различных модемов используемые АТ команды будут различаться, что необходимо уточнить в документации.

Результат выполнения usb_modeswitch
Результат выполнения usb_modeswitch

При возникновении ошибок, например «No devices in default mode found” необходимо проверить подключение к модему

Ошибка usb_modeswitch
Ошибка usb_modeswitch

Если при установке по умолчанию не создаются локфайлы в /var/lock/ и в консоли asterisk есть ошибки

Ошибки в консоли Asterisk
Ошибки в консоли Asterisk

То необходимо создать скрипт, который меняет владельца /var/lock/ и добавить его в автозагрузку

nano /etc/asterisk/lockfs.sh
#!/bin/bash
chown asterisk:asterisk /var/lock/
chmod 755 /etc/asterisk/lockfs.sh

Создадим сервис

nano /etc/systemd/system/donglepermis.service
[Unit]
Description=Chan_dongle permission service
After=network.target

[Service]
Type=simple
ExecStart=/etc/asterisk/lockfs.sh
TimeoutStartSec=0

[Install]
WantedBy=default.target
Создание сервиса, меняющего владельца директории
Создание сервиса, меняющего владельца директории

Добавление в автозагрузку

systemctl daemon-reload
systemctl enable donglepermis.service

Добавление пользователя asterisk в dialout,audio

usermod -a -G dialout,audio asterisk
Создание, добавление вспомогательного сервиса
Создание, добавление вспомогательного сервиса

Для проверки отображения 3G модема в консоли Астериск необходимо набрать

dongle show devices
Проверка отображения 3G модема
Проверка отображения 3G модема

Дальше открываем для редактирования конфигурационный файл /etc/asterisk/dongle.conf

nano /etc/asterisk/dongle.conf

В котором необходимо прописать параметры:

в [general]
interval — кол-во секунд между попытками подключения к устройствам

в [defaults]
context (контекст, куда попадают входящие вызовы)
rxgain — увеличение громкости входящих; допускаются отрицательные значения
txgain — увеличение громкости исходящих; допускаются отрицательные значения
usecallingpres — использование АОН (yes/no.)
callwaiting — разрешение/отключение ожидающих вызовов, значения yes/no.
dtmf – контроль обнаружения входящего DTMF. Значения — off(выключено), inband(обнаружение тонов DTMF), по умолчанию — relax(как и inband, но с возможностью relaxdtmf).

А также указать IMEI и IMSI. Если указан только IMEI – линия будет привязана только к модему. Только IMSI – только к sim карте.

Настройка конфигурационного файла  dongle.conf
Настройка конфигурационного файла dongle.conf

Добавляем модуль в автозагрузку. Для этого в /etc/asterisk/modules.conf необходимо ввести соответствующую запись.

echo "load => chan_dongle.so" >> /etc/asterisk/modules.conf

После установки/настройки chan_dongle, также, необходимо добавить правила в маршрутизацию вызовов.

(при использовании freePBX — /etc/asterisk/extensions_custom.conf)

nano /etc/asterisk/extensions.conf
[outgoing]
;диалплан для исходящих вызовов(напр. вызов на номера +7XXXXXXXX через устройство dongle0)
exten => _+7XXXXXXXX.,1,Dial(Dongle/dongle0/${EXTEN})
exten => h,1,Hangup()
[incoming]
;диалплан для поступивших входящих вызовов(напр. - все звонки на доб. 111)
exten => s,n,Dial(SIP/111)
exten => h,1,Hangup()
;диалплан для входящих sms, напр. указываем файл для записи входящих sms
exten => sms,1,System(echo '${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} — ${DONGLENAME} от ${CALLERID(num)} Текст: ${BASE64_DECODE(${SMS_BASE64})}' >> /var/log/asterisk/sms.txt)
exten => sms,n,Hangup()
;диалплан для входящих ussd, напр., указываем файл для записи входящих ussd
exten => ussd,1,System(echo '${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} — ${DONGLENAME} Запрос: ${BASE64_DECODE(${USSD_BASE64})}' >> /var/log/asterisk/ussd.txt)
exten => ussd,n,Hangup()

Для применения сделанных изменений необходимо зайти в консоль астериск и набрать(не прерывает текущие звонки):

sip reload
dialplan reload
dongle reload now
avatar
  Подписаться  
Уведомление о

Остались вопросы?

Я - Виталий Шелест, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование

ближайшие курсы

ближайшие Вебинары

10 доводов в пользу Asterisk

Распространяется бесплатно.

Asterisk – программное обеспечение с открытым исходным кодом, распространяется по лицензии GPL. Следовательно, установив один раз Asterisk вам не придется дополнительно платить за новых абонентов, подключение новых транков, расширение функционала и прочие лицензии. Это приближает стоимость владения станцией к нулю.

Безопасен в использовании.

Любое программное обеспечение может стать объектом интереса злоумышленников, в том числе телефонная станция. Однако, сам Asterisk, а также операционная система, на которой он работает, дают множество инструментов защиты от любых атак. При грамотной настройке безопасности у злоумышленников нет никаких шансов попасть на станцию.

Надежен в эксплуатации.

Время работы серверов некоторых наших клиентов исчисляется годами. Это значит, что Asterisk работает несколько лет, ему не требуются никакие перезагрузки или принудительные отключения. А еще это говорит о том, что в районе отличная ситуация с электроэнергией, но это уже не заслуга Asterisk.

Гибкий в настройке.

Зачастую возможности Asterisk ограничивает только фантазия пользователя. Ни один конструктор шаблонов не сравнится с Asterisk по гибкости настройки. Это позволяет решать с помощью Asterisk любые бизнес задачи, даже те, в которых выбор в его пользу не кажется изначально очевидным.

Имеет огромный функционал.

Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.

Интегрируется с любыми системами.

То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.

Позволяет телефонизировать офис за считанные часы.

В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.

Отличная масштабируемость.

Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.

Повышает управляемость бизнеса.

Asterisk дает не просто набор полезных функций, он повышает управляемость организации, качества и комфортности управления, а также увеличивает прозрачность бизнеса для руководства. Достичь этого можно, например, за счет автоматизации отчетов, подключения бота в Telegram, санкционированного доступа к станции из любой точки мира.

Снижает расходы на связь.

Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.