Данная статья не претендует на звание детального мануала по установке и настройке, а выступает больше в роли хорошей шпаргалки.
Итак 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.