Как подключить usb модем к asterisk

Содержание
  1. 3G модем + asterisk. Часть 1: Подключение модема к компьютеру и перевод из режима «составное устройство» в режим «только модем»
  2. 1. Подключение 3G модема к компьютеру (Linux / Windows)
  3. 1.1 Подключение модема к компьютеру с linux
  4. 1.2 Проверка наличия устройств ttyUSB*
  5. 2. Сбор информации о модеме
  6. 2.1 Модель модема
  7. 2.2 Версия прошивки
  8. 2.3 Поддержка голоса модемом
  9. 2.4 Режим работы модема
  10. 2.5 Текущие vid и pid модема (в режиме по умолчанию)
  11. 2.6 vid и pid модема в режиме «только модем»
  12. 2.6.1 Перевод 3g модема в режим «только модем»
  13. 2.6.2 Текущие vid и pid модема (в режиме «только модем»)
  14. 3. Перевод 3G модема в режим «только модем» в Linux
  15. 3.1 Проверка режима работы модема в Linux
  16. 3.2 Перевод 3g модема в режим «только модем» в Linux
  17. 3.3 Проверка правильности перевода 3g модема в режим «только модем» в linux
  18. 4. Автоматический перевод 3g модема в режим «только модем» в Linux при перезагрузке компьютера
  19. 5. Поиск и подключение/создание устройств /dev/ttyUSB*
  20. 5.1 Проверка наличия устройств ttyUSB*
  21. 5.2 Ручное создание/подключение устройств /dev/ttyUSB*
  22. 6. Диагностика работы COM портов 3g модема
  23. Asterisk на роутере, или бюджетный Voip Gsm шлюз

3G модем + asterisk. Часть 1: Подключение модема к компьютеру и перевод из режима «составное устройство» в режим «только модем»

1. Подключение 3G модема к компьютеру (Linux / Windows)

1.1 Подключение модема к компьютеру с linux

Теперь мы первым делом попробуем подключить модем к компьютеру с linux, на котором впоследствии будет установлен (а возможно, что уже установлен) asterisk. Вы можете воспользоваться физическим компьютером для непосредственной установки linux, либо установить программу для работы с виртуальными машинами и установить linux в виртуальной машине. Обратите внимание: в этом случае программа для работы с виртуальными машинами (гипервизор) должна поддерживать подключение устройств к этим виртуальным машинам (например, на данный момент Microsoft Hyper-V этого не поддерживает).

1.2 Проверка наличия устройств ttyUSB*

Если Вы увидите сообщение вида:
ls: cannot access /dev/ttyUSB*: No such file or directory
это означает, что таких файлов не появилось.

Если устройства ttyUSB* или ttyACM* есть, можете смело пропустить множество других пунктов и переходить сразу к пункту 5 данной статьи.
Если устройств нет, значит драйвер модема не установлен, и необходимо сначала подробно разобраться с тем, какой модели этот модем, в каком режиме он находится и так далее. Для того, чтобы узнать все это, и решить возникшие проблемы, читайте ниже.

2. Сбор информации о модеме

Всю предварительную информацию о 3g модеме мы соберем в операционной системе Microsoft Windows, поскольку в ней, даже если модем находится в режиме «составное устройство», к нему можно посылать AT команды, и, тем самым, переводить его из режима в режим безо всяких сложностей. Если Вы подключаете 3G модем к этому компьютеру впервые, см. Приложение 2 «Работа с 3g модемом в Windows».

Нам необходимо собрать следующую информацию о модеме:

2.1 Модель модема

Модель модема может быть написана как на самом модеме (рядом с USB разъемом, на задней стенке модема, либо под крышкой рядом с раъемом для SIM карты), так и может быть получена с помощью AT-команды:
ATI
Эту команду нужно отправить на модем. Как отправлять AT-команды на 3G модем в Windows, см. Приложение 2 «Работа с 3g модемом в Windows». Узнать подробнее о команде ATI Вы можете в Приложении 1 «AT команды для 3g модемов».

2.2 Версия прошивки

Версию прошивки 3g модема можно узнать с помощью AT-команды:
ATI
Эту команду нужно отправить на модем. Как отправлять AT-команды на 3G модем в Windows, см. Приложение 2 «Работа с 3g модемом в Windows». Узнать подробнее о команде ATI Вы можете в Приложении 1 «AT команды для 3g модемов».

2.3 Поддержка голоса модемом

Вы сразу же (до начала любых действий с модемом) можете определить, поддерживает он голосовые вызовы (и решить для себя, нужно ли перепрошивать модем и т.д.). Определить поддержку голоса 3g модемом можно, отправив AT-команду:
AT^CVOICE=?
Эту команду нужно отправить на модем. Как отправлять AT-команды на 3G модем в Windows, см. Приложение 2 «Работа с 3g модемом в Windows». Узнать подробнее о команде AT^CVOICE Вы можете в Приложении 1 «AT команды для 3g модемов».

2.4 Режим работы модема

Для чего нужно определить текущий режим работы 3g модема? Дело в том, что в разных режимах модем имеет разные vid и pid. Например, модем Huawei 1550:
в режиме по умолчанию (AT^U2DIAG=255) vid=12D1, pid=14AC;
в режиме «модем + CDROM» (AT^U2DIAG=1) vid=12D1, pid=1003;
в режиме «только модем» ( AT^U2DIAG=0) vid=12D1, pid=1001;

READ  Как подключить hdd led к материнской плате asus

Чтобы устранить эти неясности, Вам необходимо определить, в каком режиме на данный момент работает Ваш модем. Для этого используется AT-команда:
AT^GETPORTMODE
и (в дополнение к ней) AT команда:
AT^U2DIAG?
Узнать подробнее об этих командах Вы можете в Приложении 1 «AT команды для 3g модемов». Как подключиться в Windows к модему, чтобы вводить AT команды, см. Приложение 2 «Работа с 3g модемом в Windows». Обратите внимание: эти команды могут срабатывать не для всех моделей 3G модемов. Например, модель Huawei E1550 не понимает ни «AT^GETPORTMODE», ни «AT^U2DIAG?».

2.5 Текущие vid и pid модема (в режиме по умолчанию)

Узнать текущие vid и pid можно в windows сразу после подключения модема (и установки драйверов 3g модема), когда модем находится в режиме «составное устройство». О том, как это сделать, написано в Приложении 2 «Работа с 3g модемом в Windows».
Запишите найденные значения для себя как DefaultVendor (vid) и DefaultProduct (pid).

2.6 vid и pid модема в режиме «только модем»

2.6.1 Перевод 3g модема в режим «только модем»

Для того, чтобы перевести 3g модем в режим «только модем», достаточно послать ему AT команду:
AT^U2DIAG=0
или
AT^SETPORT=»A1,A2;1,2,3″
(зависит от модели модема)
Узнать подробнее об этих командах Вы можете в Приложении 1 «AT команды для 3g модемов». Как подключиться в Windows к модему, чтобы вводить AT команды, см. Приложение 2 «Работа с 3g модемом в Windows».

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

Теперь убедитесь, что модем находится в режиме «только модем»:

2.6.2 Текущие vid и pid модема (в режиме «только модем»)

Текущие vid и pid можно узнать так же, как и в пункте 2.5 (см. Приложение 2 «Работа с 3g модемом в Windows»). Обратите внимание: новые vid и pid должны отличаться от тех, которые были в режиме «составное устройство»! Точнее, скорее всего, будет отличаться только pid модема.
Запишите их значения для себя как TargetVendor (vid) и TargetProduct (pid).

3. Перевод 3G модема в режим «только модем» в Linux

Теперь нам необходимо перевести 3G модем в режим «только модем» в системе linux, чтобы в следующих шагах настроить chan_dongle и asterisk для работы с этим модемом.

3.1 Проверка режима работы модема в Linux

Для начала необходимо проверить, сразу после подключения модема, в каком режиме он находится. Для этого (сделав паузу в несколько секунд после подключения) выполните команду:
lsusb
Подробнее об этой команде Вы можете прочитать в Приложении 3 «Работа с 3g модемом в Linux». Сравните vid и pid Вашего 3g модема c DefaultVendor (vid) и DefaultProduct (pid), полученные Вами в системе Windows. Если они совпадают, значит модем находится в режиме по умолчанию, и его надо будет сменить на режим «только модем». Если же vid и pid совпадают с TargetVendor (vid) и TargetProduct (pid), полученные Вами в Windows, то Ваш 3g модем уже находится в режиме «только модем» и Вам ничего делать не нужно, достаточно перейти к следующему пункту.

3.2 Перевод 3g модема в режим «только модем» в Linux

Для смена режима работы Вашего 3g модема выполните следующую команду

3.3 Проверка правильности перевода 3g модема в режим «только модем» в linux

Чтобы убедиться, что Вы всё выполнили правильно, необходимо проверить, что модем переключился в режим «только модем». Для этого выполните команду:
lsusb

Полезная информация: если Вам, несмотря ни на что, не удалось перевести 3g модем в режим «только модем» в системе Linux (например, Вы не нашли команду инициализации, MessageContent), то Вы можете решить эту проблему следующим образом:

4. Автоматический перевод 3g модема в режим «только модем» в Linux при перезагрузке компьютера

Обратите внимание: если Вам успешно удалось перевести Ваш 3g модем в режим «только модем» в Linux, то это еще не значит, что он теперь всегда будет оставаться в таком режиме.После физического извлечения из компьютера (и последующего подключения) модем снова окажется в режиме «составное устройство» (если при первом подключении к Linux он был в этом режиме). Обратите также внимание, что если Вы не извлекали модем из компьютера, то даже после перезагрузки Linux модем может остаться в режиме «только модем» (а сбросить этот режим может физическое извлечение модема из компьютера).

READ  Как подключить стим гуард на телефон андроид

Внимание! Не торопитесь автоматически переводить модем в режим «только модем»! Вам может понадобиться установка драйверов модема [драйверов для Linux], находящихся на виртуальном компакт-дисководе модема! Подробнее об этом см. следующую часть статьи.

Рассмотрение настройки udev / usb_modeswitch для автоматизации смены режимы работы модема выходит за рамки этой статьи. Информацию Вы можете найти в интернете.

5. Поиск и подключение/создание устройств /dev/ttyUSB*

Обратите внимание: переведя 3g модем в режим «только модем», Вы можете как получить сразу, та и не получить устройства /dev/ttyUSB0, /dev/ttyUSB1 и т.д.! Разумеется, эти устройства могут сразу же автоматически появиться в системе, однако это не обязательно так.

5.1 Проверка наличия устройств ttyUSB*

Если Вы увидите сообщение вида:
ls: cannot access /dev/ttyUSB*: No such file or directory
это означает, что таких файлов не появилось.

Если устройства ttyUSB* или ttyACM* есть, можете смело пропустить оставшиеся шаги на этом этапе.
Если устройств нет, значит драйвер usbserial не сработал для Вашего модема, и теперь необходимо производить настройку вручную.

5.2 Ручное создание/подключение устройств /dev/ttyUSB*

В случае, если команда выполнена успешно, Вы увидите сообщение типа:
insmod /lib/modules/2.6.32-431.17.1.el6.i686/kernel/drivers/usb/serial/usbserial.ko vendor=0x12d1 product=0x1506

Если же никаких сообщений не появилось, или выдано сообщение об ошибке, то скорее всего, подключить USB как COM порт не удалось.

6. Диагностика работы COM портов 3g модема

Теперь необходимо проверить, действительно ли модем «откликается» по требуемым портам, сможет ли с ним работать asterisk? Для этого необходимо подключиться к COM портам (ttyUSB* или ttyACM*) и попробовать ввести несколько AT команд модема, чтобы убедиться, что модем работает нормально.
Для подключения к COM портам предназначена программа minicom. В RHEL / CentOS установить её можно следующей командой:
yum install minicom

Подробно о том, как пользоваться программой minicom, Вы можете прочитать в интернете. Здесь приводится только краткая инструкция по проверке работы 3g модема. Выполните ее строго по порядку:

Настройка модема в Linux закончена:

Обратите внимание: в случае перезагрузки системы и/или извлечения USB модема инициализацию в Linux надо будет производить повторно! (Если Вы не настроили автоматическую смену режима работы 3g модема при подключении).

Вы читаете статью «3G модем + asterisk», состоящую из нескольких частей:

Статья опубликована: июль 2014, обновлена: 19.11.2017

Источник

Asterisk на роутере, или бюджетный Voip Gsm шлюз

Многие из нас имеют в быту замечательные WIFI роутеры ASUS.

В данной статье речь пойдет о варианте применения этих роутеров, в частности моделей RT-N16, WL-500GP, WL-500W в качестве сервиса VOIP телефонии на базе продукта Asterisk, в том числе с построением шлюза GSM Asterisk VOIP.

В результате получаем:
— вполне работоспособную IP – телефонию на роутере, без лишних затрат и дополнительных точек отказа в виде дополнительного железа
— очень бюджетное решение по VOIP2GSM терминации для личных нужд (на базе 3G модемов HUAWEI)

Насколько это нужно — решать Вам!

Я лично использую эту схему (при минимальных затратах на «железо») для:
— недорогих звонков за границу с мобильного телефона (GSM->VOIP->GSM or Landline)
— экономии расходов на связь в роуминге (c помощью Callback на «местную» или туристическую симку)
— в качестве VOIP GSM шлюза в одной из стран, где цены на локальные звонки и интернет вполне адекватные, а вот VOIP трафик стоит немало.

1. Собственно указанный роутер ASUS RT-N16, WL-500GP, WL-500W (возможно список моделей может быть шире)

2. Для GSM VOIP шлюза – нужен 3G модем HUAWEI E1550 или E173 (опять же – список может быть шире, но тестировались именно эти модели). Шлюз GSM-VOIP в виде сервиса мегафона «Мультифон» — остается за рамками нашей темы.

Процессу настройки ASTERISK посвящено немало статей на Хабрахабре, приведу ссылки на некоторые из них:
habrahabr.ru/blogs/voip/104026
habrahabr.ru/blogs/voip/113707

Постараюсь не повторяться а осветить особенности установки Asterisk именно на роутере.

Итак, Часть 1-я, «Установка Asterisk»

1. Ставим на роутер прошивку на ядре 2.6* «от энтузиастов» на базе прошивки Oleg’а.

Адрес проекта с прошивками code.google.com/p/wl500g. Нужна прошивка rtn, подходящая к Вашей модели роутера.

Почему эта, а не dd-wrt, tomato и тд – работает быстро, проект динамично обновляется(спасибо «энтузиастам»).

2. Для пакета asterisk и прочих зависимостей памяти роутера нам будет явно недостаточно, поэтому понадобится внешний USB накопитель (1 gb- вполне устроит). Вместо флешки – мы можем воспользоваться опцией замечательных 3g модемов Huawei e1550 и E173 (кстати – все еще продается по акции мегафона за 750 рублей, в комплекте с симкой на 1 мес бесплатного мобильного интернета) – которые имеют слот для Micro SD Card, совмещая в себе функции флешки. Таким образом, этот чудесный модем воплощает в себе одновременно 3 свойства:
— 3G модем (интернет на роутер можем получать через него)
— Флешка (при вставленной micro sd) для установки доп. пакетов на роутере
— GSM шлюз с поддержкой голоса, SMS, USSD

READ  Как подключить усилитель к самодельной антенне

3. Подключаем модем-флешку или просто флешку, логинимся в роутер по SSH, и производим первоначальную конфигурацию и установку необходимых пакетов.
Процесс неплохо описан здесь wl500g.info/showthread.php?t=3171, я приведу основные этапы:

d) Ставим софт для удобства работы
ipkg install nano mc findutils grep wget
echo «export TERMINFO=/opt/share/terminfo» >> /usr/local/root/.profile
echo «export TERM=xterm» >> /usr/local/root/.profile
flashfs save
flashfs commit
flashfs enable

4. Ставим Asterisk 16
ipkg install asterisk16

5. Запускаем asterisk

и получаем……… «Segmentation Fault» (может быть Вам повезет больше? )

Небольшое лирическое отступление: все бы хорошо, но Asterisk «вылетает». Я потратил немало времени, пробовал компилировать Asterisk на роутере – вполне благополучно (с некоторыми хитростями), но тоже вылетает. Пробовал кросс компиляцию – аналогично.

В общем, чтобы заставить его работать – пришлось сделать небольшую процедуру «обрезания» библиотек-модулей, оказавшихся «крайними». У меня есть несколько вариантов работоспособных конфигураций сочетания модулей, но приведу самый простой пример заставить asterisk запуститься и без неприятного сообщения «Segmentation Fault».

Вот он:
mkdir /opt/lib/asterisk/modules_backup
mv /opt/lib/asterisk/modules/res* /opt/lib/asterisk/modules_backup/

Т.е. все res_* отключаем, надеюсь что Вам это будет некритично.

7. Запускаем опять asterisk, и «ВУАЛЯ»!
Asterisk Ready.
*CLI>

Процесс конфигурирования оставлю в покое, немало мано-факов по той тебе исписано, лишь сделаю ремарку, что для себя в /opt/etc/asterisk использую лишь эти конфигурационные файлы:
asterisk.conf cdr.conf extensions.conf indications.conf logger.conf modules.conf rtp.conf sip.conf
И для GSM модема еще dongle.conf (или datacard.conf)

Часть 2, Установка GSM Шлюза

С установкой Asterisk закончили, перейдем к установке GSM шлюза на базе 3G модемов HUAWEI, моделей E1550 и E173.

1. Нам нужен модем указанной модели с активированной функцией голоса (инструкции и софт по анлоку от оператора и активации голосовых функций доступны в открытом доступе в Интернете, если потребуется – могу описать процесс подробнее).
Как я упоминал, актуальное на данный момент для Москвы предложение – модем модели HUAWEI e173 в комплекте с сим картой и безлимитным интернетом на месяц – 750 руб. dv.device.megafon.ru/specifications/usbModem/e173).

Первый – простой… использовать для шлюза готовый скомпилированный модуль chan_datacard.so

Берем его отсюда iqlab.ru/downloads/chan_datacard.so и кладем в папку modules астериска.

cd /opt/lib/asterisk/modules
wget http: //iqlab.ru/downloads/chan_datacard.so

Дальше добавляем в /opt/etc/asterisk/ конфигурационный файл datacard.conf примерно следующего содержания

>>>>>>>>>>>>>>>>>>>>>>>>>>>
[datacard0]
audio=/dev/ttyUSB1 ; tty for audio connection
data=/dev/ttyUSB2 ; tty for AT commands
context=datacard-incoming ; context for incoming calls
group=1 ; calling group
rxgain=3 ; increase the incoming volume
txgain=3 ; increase the outgoint volume
resetdatacard=yes ; reset datacard during initialization
u2diag=256 ; set U2DIAG parameter (256 = modem+card_reader)
usecallingpres=yes ; use the caller ID presentation or not
callingpres=allowed_passed_screen ; set caller ID presentation

И далее, уже в файле extensions.conf создаем раздел [datacard-incoming] и добавляем туда свои правила диалплана. Для теста, например,

>>>>>>>>>>>>>>>>>>>>>>>>>>>>
[datacard-incoming]
exten => s,1,Playback(demo-echotest) ; Let them know what’s going on.
exten => s,2,Echo ; Do the echo test.
exten => s,1,Playback(demo-echodone)

Вариант второй – посложнее, но и возможностей больше.

Состоит он в том, чтобы скомпилировать на роутере расшиенную версию GSM модуля для Huawei, под названием chan_dongle.so (http://code.google.com/p/asterisk-chan-dongle/downloads/list) – СПАСИБО Bg1.

Для этого ставим на роутер необходимые для компиляции пакеты:

ipkg install buildroot optware-devel make

Скачиваем модуль chan_dongle, распаковываем, компилируем (configure && make), копируем в /opt/lib/asterisk/modules и создаем конфигурационный файл /opt/etc/asterisk/dongle.conf (описание есть здесь code.google.com/p/asterisk-chan-dongle/source/browse/trunk/etc/dongle.conf?spec=svn4&r=4)

Далее настраиваем диалплан, и наслаждаемся работающим сервисом Asterisk с GSM шлюзом на роутере!

Вот, в общем то, все, если кратенько…

Если нужно что-то детализировать или описать подробнее – welcome!

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.

Источник

Поделиться с друзьями
Как подключить и установить...
Adblock
detector