Когда-то давно мне захотелось расширить возможности одного SIP-сервера и сделать через него звонки на сотовые телефоны. Посмотрев, какие цены предлагают различные поставщики VoIP-трафика — взгрустнулось. По сравнению с не самыми выгодными тарифами ОПСОСосов выходило дороже в 5-7 раз. В лучшем случае. Понятно, что за удовольствия нужно платить, но не настолько же много!

Поэтому мысль плавно перетекла в сторону собственного GSM-SIP шлюза. Так как звонить мне хотелось на местных операторов — никаких сложностей с установкой своего шлюза не было. Вот стойка, вот полка, вот коммутатор. Ставь и подключай, если надо выводи внешние антенны. Никаких проблем. Ровно до изучения цен. На дворе стоял, кажется, 2010 год и ценник за 4 портовый шлюз был на уровне 20-30 тысяч рублей. Для какого-нибудь корпоративно-офисного применения оно может быть и нормально, но для небольшого дотационного сервиса — нет.

Но звонить-то хочется! И тут в голове всплывает мысль — если раньше некоторые PCI-модемы можно было использовать в качестве FXO-плат для Asterisk’a, то наверное есть опыт аналогичной эксплуатации и 3G-модемов! Быстрый поиск подтвердил, что подобный опыт есть и всё работает достаточно стабильно для боевого применения. На тот момент наибольшая работоспособность заявлялась с модемом Huawei E1550. Которые активно продавались у Теле2 за смешную сумму в 500 рублей. Что просто фантастически дешево, по сравнению с обычным GSM-SIP шлюзом.

Да, 3G-модем это не автономная железка — ей нужен сервер. Да, не всё так гладко с подключением внешних антенн — но это и не так важно, покрытие сотовой связью у нас хорошее, достаточно встроенной в модем антенны. Главное — это цена! Минимум в десять раз дешевле, по сравнению с полноценным GSM-SIP шлюзом! Сомнений больше нет, отрываем задницу от стула и направляемся в ближайший салон Теле2.

После покупки модемов в количестве 5 штук, переходим к активным действиям. Ставим DC-Unlocker (на тот момент я еще не понял, что с модемом можно спокойно общаться через терминал), находим модем, смотрим информацию о нём… Испытываем двойственные чувства. С одной стороны приятно, что модем не залочен на оператора и можно смело пихать любую SIM-карту. С другой стороны обидно, что голосовые функции по-умолчанию не активированы и требуется их включить.

К счастью, всё уже придумано до нас. На РуТрекере обнаружилась интересная раздача, в которой есть всё необходимое и для активации голоса, и для разблокировки модема. На всякий случай я сохранил то, что нужно для разблокировки голоса у себя — Huawei E1550 Voice Activator. Нюанс в том, что утилита изначально работает только с модемами от МТС, проверяя принадлежность по IMEI. И только до определенной даты, поэтому совершая эти действия сейчас, необходимо перенастроить системное время, указав какой-нибудь 2009 год.

Берем калькулятор кодов, например «HUAWEI Calculator». Вбиваем в него IMEI модемов, получаем Unlock-коды. С помощью ResHack’а прописываем IMEI и Unlock-коды наших модемов в список утилиты (в архиве с ней идет иллюстрированная инструкция и мне лень повторять ее здесь слово в слово), сохраняем, запускаем. Если процесс прошел гладко — получаем вот такой ответ:

patch

Снова запускаем DC-Unlocker и снова смотрим информацию о модеме:

DC - Unlocker 2 Client 1.00.1018
 
Detecting modem :
 
selection :
manufacturer - Huawei modems
model - Auto detect (recommended)
 
Found modem         : E1550
Model               : Huawei E1550
IMEI                : 359124034XXXXXX
Serial NR.          : B54CAA19C1XXXXXX
Firmware            : 11.608.12.10.209
Compile date / time : Sep 28 2009 11:18:40
Hardware ver.       : CD6ATCPU
Dashboard version   : UTPS11.302.09.06.209_MAC11.301.09.04.209_LNX11.301.06.05.209
Chipset             : Qualcomm MSM6246
NAND Flash          : samsung_K5D1G13ACH
Voice feature       : enabled
SIM Lock status     : Locked (Card Lock)
Wrong codes entered : 0 (unlock attempts left : 10)

Если Voice feature стало enabled — процесс прошел успешно. Но после применения такого патча, модем оказывается залочен на МТС. Берем unlock-код посчитанный ранее, вводим AT^CARDUNLOCK=»Код» в окошке DC-Unlocker’a (прямо там, где выводится текст), нажимаем Enter, получаем в ответ «ОК», обновляем информацию о модеме, если SIM Lock status изменилось на unlocked — значит всё закончилось хорошо и теперь у нас есть отвязанный модем с голосовыми функциями.

А дальше с ним можно сделать что угодно. Прикрутить к Asterisk, FreeSwitch, какой-нибудь виндовой софтине типа Oktell SIP-GSM. Настроить отправку SMS-сообщений для системы мониторинга типа Zabbix или научить сервер выполнять какие-то действия по входящим SMS-командам. И в большинстве случаев реализация будет удобнее и гибче, чем в случае автономного GSM-SIP шлюза.

Многие рекомендуют отключить в модеме лишние функции, вроде карт-ридера и CD-ROM’а. Во-первых, это не нужно для звонков, во-вторых иногда создает проблемы в определении модема под Linux. Чаще всего можно использовать usb-modeswitch, но к чему лишние сущности? Введя в терминале команду AT^U2DIAG=0 мы отключим всё, кроме непосредственно модема.

В случае возникновения проблем с односторонней слышимостью, переодически отвалом модема при звонке или еще каких-то странностях — в первую очередь нужно обратить внимание на питание модема. Потребляет он в режиме звонка немало. На какой-то десктопной материнке от Intel у меня не запускалось больше 1 модема. После установки активного USB-хаба с мощным блоком питания — всё заработало как должно.

Полезные ссылки:

Huawei E1550 как дешевая альтернатива GSM-шлюзу

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *