Записи с меткой ‘dongle’

Баланс сим-карты на почту

В прошлой статье мы подключили наш E1550 к asterisk.

Продолжая тюнинг и «обвес» системы. Сегодня мы будем отправлять входящие на симку сообщения и USSD-запросы на почту.

Показать »

Нам потребуются:

  • asterisk + chan_dongle
  • почтовый клиент
  • php

Установим php:

Установим почтовый клиент:

Можно любой другой, но настроить mini-sendmail у меня например не хватило терпения =)

Настроим SMTP-клиент:

В первом файле прописываем настройки соединения. Второй нужен чтобы не приходилось формировать заголовок письма вручную.

Проверим результат:

Если все правильно, вы получите письмо с текстом test.

Добавим в контекст донгла экстеншены для обработки sms и ussd-сообщений:

Создадим скрипт для обработки входящих сообщений:

Корректировки:

По умолчанию наш астериск стартует от имени пользователя nobody, поэтому скрипт не запускается — прав не хватает. Я исправил в файле /etc/asterisk/asterisk.conf имя пользователя, от имени которого запускается астер, на root.

Делаем релоад, пробуем:

получаем на почту письмо:

Установка Asterisk+chan_dongle на роутер dir-320 с прошивкой OpenWRT

В предыдущем посте описан процесс установки asterisk+chan_dongle на роутер dir-320 с прошивкой от Олега. Попробовал, настроил — не понравилось. Да, большим плюсом является возможность собрать модуль донгла прямо на роутере, но лично мне не понравилась сама прошивка — неудобный веб-интерфейс, странности при настройке, внешний носитель монтируется «на соплях» и периодически отваливается модем. Поэтому было решено попробовать собрать все тот же паровоз, но на прошивке OpenWRT (даже несмотря на крики умных людей «акстись, отрок! не соберешь ты донгл на опенврт»).

Но мы упорные »

Итак, первым делом для сбора кастомной прошивки нам потребуется Linux. Сразу оговорюсь, Ubuntu 12.04 не подходит (во всяком случае при компиляции на ней модуль донгла у меня так и не собрался), поэтому я использовал Debian Squeeze, довольно-таки старую сборку, стоящую на одном из удаленных серверов (а чего мощностям простаивать, лучше нагрузить компиляцией Core Quad, чем домашний Celeron Dual Core)

Сборка

Итак, первым делом убеждаемся, что у нас есть 5 гиг свободного места (да-да, нужно не менее 4.5 гиг, сам офигел). Я собирал в папке /tmp, т.к. в /home у меня свободного места не нашлось =)

Итак, сперва установим все необходимые пакеты:

Далее, скачиваем Buildroot OpenWrt:

Скачиваем и устанавливаем дополнительные пакеты и патчи:

Собираем tools и toolchain необходимой архитектуры:

На этом этапе заодно проверится все ли нужные пакеты у нас установлены, если нет-доустанавливаем.

Добавляем к конфигу модуль донгла:

В скачанном мейкфайле меняем версию астериска на устанавливаемую (глянуть какая будет ставиться можно в feeds/net/asterisk1.8.x/Makefile)

Тут есть еще 1 момент: на момент написания статьи на сайте OpenWRT последняя версия астера 1.8.8.0, но собранные пакеты — только для 1.8.7.1. Поэтому я поменял в Makefile версию с 1.8.8.0 на 1.8.7.1 и переписал MD5SUM на a732a608ce60fd523646be618e9da616

После этого я смог устанавливать пакеты с репозитариев, не сломав модуль донгла.

Конфигурируем прошивку:

В процессе конфигурирования, нужно выбрать систему, пакеты, и настроить будущую прошивку.

Выбираем систему:

Выбирать пакеты можно как для установки в прошивку, так и просто для сборки. Пакеты, собранные без установки образуют наш мини-репозиторий, из которого их можно будет устанавливать уже после заливки прошивки в роутер. Памяти в DIR-320 всего 4 МБ, причём обязательно должно остаться немного свободного места для использования JFFS2. Так что будем устанавливать минимально необходимый набор пакетов, а остальное соберём для последующей установки на внешний носитель. Чтобы выбрать пакет для установки в прошивку, нужно нажать Y. Я добавил в прошивку пакеты, требуемые для монтирования флешки:

Остальные пакеты ( в том числе астериск) будем ставить модулями. Кроме того, в главном меню появится пункт Asterisk Telephony dongle driver — это наш модуль донгла, не забываем собрать его.

В данном списке много нужных пакетов, я установил модулем еще mc, nano, LuCI (веб-интерфейс, позже пригодится)

Сохраняем конфиг, выходим, собираем:

Параметр j определяет количество потоков, которые мы сможем использовать для сборки. Эксперты советуют ставить этот параметр равным кол-ву ядер+1.

Этот процесс, пожалуй, самый длительный-у меня он занял пару часов.

После завершения сборки, в папке bin будут находиться созданные образы прошивки в различном формате и собранные пакеты. Нам понадобится образ прошивки в формате squashfs — openwrt-brcm47xx-squashfs.trx.

Прошивка

О там, как прошить кастомную прошивку на дир320, написано миллион тем, останавливаться на этом подробно не буду.

Вкратце:

  1. Устанавливаем на нашем компьютере с windows ip 192.168.0.2
  2. Подключаем сетевым кабелем к компьютеру наш DIR-320. Кабель подключаем не в WAN-порт,а в 1-й.
  3. Создаем на диске c: папку bin
  4. Копируем туда нашу прошивку openwrt-brcm47xx-squashfs.trx
  5. Переименовывем ее в firmware.bin
  6. Скачиваем по ссылке в папку c:bin пакетный файл для прошивки
  7. Отключаем DIR-320 от питания
  8. Запускаем пакетный файл flashing.cmd
  9. Скрипт попросит нажать любую клавишу. Нажимаем пробел или ENTER
  10. Включаем питание роутера

Должен начаться процес прошивки и в итоге мы должны получить сообщение

*** Start Flashing ****
Успешная передача: 3092480 байт за 11 сs, 281134 байт/с

После того, как загорится индикатор статуса (~2-3 мин.), можно менять сетевые настройки на получение IP по DHCP и подключаться к маршрутизатору по адресу 192.168.1.1

Перенос системы на внешний носитель

Делал все по этой статье, взлетело с первого раза

Тюнинг

Если предыдущий пункт выполнен по инструкции — у нас есть доступ на роутер по SSH. Заходим любым SSH-клиентом (я использовал верный Putty) и делаем

У нас имеется установленный FTP-клиент и веб-интерфейс. Подключаемся к FTP и заливаем папку Packages, в которую у нас собрались доп. модули.

Переходим в нее и выполняем

Остальные пакеты устанавливаем по необходимости.

Я доставил codec_alaw,codec_ulaw,chan_local.

Также, благодаря нашему шаманству с мейкфайлами, мы теперь можем устанавливать модули для астерискане из локального репозитария, а с net-repository openwrt (очень удобно кстати из свежеустановенного веб-интерфейса LuCI, там есть вкладка где это можно сделать 1 щелчком мыши)

Дальше все как всегда при работе с донглом — проверяем чтобы в системе появились /dev/ttyUSBx, если нету-проверяем взлетел ли модуль kmod-usb-serial, kmod-usb-serial-option, если не взлетел-делаем:

Проверяем VID & PID модема (для настроенного Huawei e1550 это 12d1 & 1001)

делаем:

Устройство появляется в /dev как /dev/ttyUSB0-2

Настраиваем модуль dongle:

если не взлетает — подобрать /dev/ttyUSB для data-порта.

Как только определится-можно привязывать модем не портом, а IMEI-модема


Источники, откуда я черпал вдохновение:
Раз
Два
Три
Четыре

Отправка баланса модемов huawei e1550 на почту

Asterisk — отправка баланса модемов huawei e1550 на почту с консоли в Debian Linux, Ubuntu Linux и других NIX системах.

Дружим GSM-модем c Asterisk

Нередко у пользователей, использующих Asterisk в работе, возникает необходимость подключить в систему мобильные номера. Основная причина такой необходимости — дешевые (или даже бесплатные) звонки на мобильные номера. Да и клиентам гораздо проще и дешевле звонить на мобильный номер, чем платить по 0.5-1.2 грн\мин за звонок на городской.

Как оказалось, украинское законодательство в этом плане довольно категорично — «приземлять» мобильные номера в стационарную сеть запрещено. Из 3 основных операторов только Астелит в данный момент предоставляет транспорт мобильных номеров в SIP. В представительствах же Киевстар и МТС мне вежливо отказали, предложив хитроумные схемы с использованием городских номеров и переадресаций.

Но задача остается задачей — в итоге пришлось остановиться на 2 вариантах: использовать GSM-шлюз или GSM-модемы. О шлюзе напишу попозже — в данный момент они в пути, а в этом посте более подробно остановлюсь на GSM-модемах.

У клиента есть: сервер с CentOS 15, asterisk 1.8+Elastix. В качестве модема используется Huawei e1550  как наиболее распространенный и наименее проблемный.

Итак, приступим-с.

Для начала, установим rpmforge (можно и без него, но он мне здорово облегчил жизнь):

Теперь без танцев с бубном установим  usb-modeswitch:

Перезагрузимся и проверим, появился ли модем в системе:

Теперь установим модуль поддержки для Asterisk. Тут у нас целых 2 варианта: chan_datacard или chan_dongle

Я остановился на chan_dongle, но в целом оба модуля работают одинаково неплохо.

в конфигурационном файле нужно будет самую малость пошаманить, а именно указать /dev/ttyUSB*, соответствующий собственно аудио-и дата-каналам. по умолчанию это ttyUSB0 и ttyUSB1, но могут быть другие (у мена например выглядит так:)

 

Еще 1 причина, по которой был выбран dongle — у него есть возможность «прибить» логическое стройство к IMEI, что очень помогает в некоторых случаях (например, при наличии нескольких модемов при отключении они могут поменяться местами)

Подгружаем модуль и проверяем его работу:

Собственно, настройка закончена. Диалплан буду писать завтра.

Авторизация