06.06.2007

GPRS через телефон Samsung SGH-D100

Какое-то время во мне жила надежда, что соединения по ppp навсегда остались в каменном веке российских коммуникаций (в крайнем случае поддержкой такого соединениея озадачен DSL-модем). Но не тут-то было. Не так давно по просьбе пользователя, бежавшего от вирусов в Ubuntu, настраивал GPRS через телефон Samsung SGH-D100 и рапрекрасного оператора сотовой связи Tele2. Мне, как человеку глубоко убеждённому, что телефон это приспособление для разговоров и не для чего более, как-то не приходило в голову озадачиваться такими проблемами. Но беженцев из Майкрософта нужно всячески поощрять и поддерживать.

Вот он, этот волшебный девайс.

В общем никаких тонкостей в настройке нет, кроме обычной для GPRS строки инициализации. Сильно облегчило задачу то, что телефон подключается через COM. Однако полистать маны по pppd пришлось основательно, поскольку я уже и забыть успел что это за зверь такой.

Вообще в Ubuntu, как и в Debian для установки ppp соединений используется специальный набор конфигурационных файлов и скриптов. Подробнее об этом можно почитать в 10й главе Debian Reference (команда переводчиков до неё пока не добралась).

Понадобится создать два конфигурационных файла.

#/etc/ppp/peers/tele2
noauth
connect "/usr/sbin/chat -v -f /etc/chatscripts/tele2"

defaultroute

/dev/ttyS0 115200

passive
noipdefault
noproxyarp
novj
nodeflate
nobsdcomp
usepeerdns

user gprs
password gprs

crtscts
lcp-echo-failure 0
lcp-echo-interval 0
default-asyncmap
escape ff

holdoff 1
maxfail 0
persist

Тут важны последние три строчки. Дело в том, что соединение с первого раза не поднимается вообще никогда. Т.е. нужно чтобы pppd при неудачной попатке не унывал, а продолжал стараться до победного конца. Этому его учит „maxfail 0′. А „holdoff 1′ учит делать секундный перерыв между попытками соединения. Ноль ставить не советую, поскольку слишком быстрые обращения могут вызвать недоумение устройства.

Разумеется, „/dev/ttyS0 115200′ следует при необходимости заменить на другой COM-порт.

#/etc/chatscripts/tele2
TIMEOUT   5
ABORT     'NO CARRIER'
''        'ATZ'
OK        'ATE1'
OK        'AT+CGDCONT=1,"IP"," internet.tele2.ru"'
OK-AT-OK  'ATDT*99***1#'
CONNECT   '\c\d'

Здесь мы видим волшебную AT-команду, заставляющую телефон джипиэрэсить. Насколько мне известно, команда для всех телефонов будет одинаковой.

По поводу номера телефона толково написано вот здесь.

Обычно в chat-скриптах прописывают больше условий на прерывание (ABORT), но по моим наблюдениям, конкретно этот телефон кроме „NO CARRIER” ничего не возвращает. Так что лишние строчки я прибил.

Ну вот и всё. Теперь соединение можно поднять командой:

$ pon tele2

Если что-то не работает, причину ищите в /var/log/syslog, предварительно добавив параметр debug в /etc/ppp/peers/tele2.

Комментарии

13.07.07 07:42 virens комментирует:

Привет коллеге-дебианщику и спасибо за ещё одно толковое руководство по настройке GPRS. Сам долго мучался с wvdial и в итоге с полпинка настроил в pppd.
P.S. Подписался на RSS-фид и поставил ссылку на блог. Заходите в гости :-)

31.08.07 02:21 vig комментирует:

Привет Дебианавту. Вот, кстати, ещё одно толковое руководство по настройке GPRS через Bluetooth.
P.S. Подписался на RSS-feed и поставил ссылку на блог. Заходи в гости :lol: