Asterisk on RaspberryPI + Centos7 + E173 Modem

Данная статья не претендует на звание детального мануала по установке и настройке, а выступает больше в роли хорошей шпаргалки.

Итак Centos7 мы уже установили, кто не знает как, в моих статьях есть мануал поищите.

Качаем астериск:

Теперь распаковываем:

Устанавливаем мр3 поддержку:

Подготавливаем астериск к сборке(если у вас возникнет потребность в каких то зависимостях установите их):

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

Собираем устанавливаем:

Устанавливаем основные конфигурационные файлы:

Если создавали отдельного юзера для запуска астериск, назначим права на папки:

Проверяем что мы установили:

Если все ок то видим следующее:

Для выхода пишем:

Теперь установим наш USB модем:

Если модем находится не в режиме модема, а в режиме CD-ROM могут возникнуть проблемы подключения.
Для решения этой проблемы установим usb_modeswitch:

Затем переключим модем в режим модема:
Нужно убедится что VID и PID совпадают.

После этого модем определяется как:

По идее после установки usb_modeswitch он должен добавить правила в /usr/lib/udev/rules.d/40-usb_modeswitch.rules
Которые нужно залинковать или скопировать в /etc/udev/rules.d
При этом убедившись что файл содержит строку нашего модема, которая должна выглядеть примерно вот так:

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

Так же можно использовать автоматический вариант немного поднастроив систему:
В /etc/usb_modeswitch.conf в конец добавим

И в /etc/rc.local перед exit 0 добавим:

Теперь переключать режимы можно вот так из консоли:

А после перезагрузки модем переключится автоматически.

Заходим в CLI asterisk и подгружаем наш модуль модема:

Просматриваем наличие модема:

Значения IMEI и IMSI прописываем в /etc/asterisk/dongle.conf и закоментируем ;exten=+1234567890.
Небольшой туториал по работе в dongle.conf:

Если указать только IMEI — в этом случае привязка линии будет осуществляться по IMEI модема (мобильного терминала). Вы можете менять SIM-карты или разъемы USB. Линия будет закреплена за модемом.

Если указать только IMSI — в этом случае привязка линии будет осуществляться по IMSI номеру SIM-карты. Вы можете заменить модем на другой, можете поменять разъем USB. Линия будет закреплена именно за SIM-картой.

Если указать интерфейсы audio и data. В этом случае линия будет привязана к контроллеру USB (по факту к гнезду USB). Это очень неудобный способ и оставлен в новых версиях Dongle только для совместимости со старыми версиями и с некоторыми операционными системами, где обнаружение по IMEI и IMSI не работает.

Настройка Asterisk.

Добавим модуль в автозагрузку:

Делаем базовую настройку sip.conf:

Создадим диалплан в extensions.conf тут мы будем принимать и отправлять звонки вместе с SMS:

Для отправки SMS и USSD можно делать так:

Для очистки памяти модема можно делать так:

#Для переключения режима работы модема

И если у вас на этом же сервере есть PHP и веб сервер, можно читать наши SMS и USSD из WEB скриптик smsr.php:

Если астериск стоит за NAT то делаем следующее в SIP.conf обязательны последние две строки
где localnet ваша локальная сеть и externip ваш внешний IP

И конечно в настройках вашего NAT укажем что все что приходит на внешний IP на UDP порт 5060,5160,10000-10500 отправлять на внутренний IP Asterisk
RTP порты 10000-10500 указываем в rtp.conf rtpstart=10000 rtpend=10500.

P.S. В итоге мы имеем полноценную IP телефонию, на основе USB модема, можем совершать исходящие и принимать входящие звонки, а так же принимать и отправлять SMS.

Оставить комментарий

Пожалуйста, будьте вежливы. Мы ценим это. Обязательные поля отмечены *