настройки модемов

Есть выход!  Скорая компьютерная помощь с доставкой. Поделитесь своими проблемами, а мы поделимся их решением!

CallBack под OS FreeBSD

Главная страница
Описание модемов
Вопрос-ответ
Статьи о модемах
Строки инициализации
Ссылки
Юмор
По сайту


Восстановление данных в Киеве ...
Словарик
AT команды
Советы
Что делать
и кто виноват
Тонкости настройки
Разборка GVC R21
Основные протоколы
V.42bis
Сетевые утилиты
RegEdit.EXE
Hyper Terminal
Работа с POP3/SMTP
через Telnet
CallBack под FreeBSD
Хостинг предоставлен:
hostia.ru
V90 рекомендует скачать FireFox с панелью инструментов Google.

   


Настройка Callback п╕д FreeBSD

В ╤нтернет╕ ╕сну╓ величезна к╕льк╕сть матер╕ал╕в про те, як треба настроювати ppp з'╓днання з провайдером користуючись FreeBSD. Найперше сл╕д зазначити Хендбук, який да╓ багато детальних порад, та сайт ╤горя Сисо╓ва, який, не зважаючи на те, що автор не займа╓ться pppd вже к╕лька рок╕в, не втратча╓ сво╓╖ актуальност╕ по ц╕й тем╕. Нажаль ц╕ джерела не дають ╕нформац╕╓ про встановлення з'╕днання з провайдером через callback. Необх╕дн╕сть використання послуги callback поста╓ через необх╕дн╕сть ощадити дуже сутт╕в╕ грош╕ за користування телефонною л╕н╕╕ю, не думаю, що це вимага╓ додаткових пояснень.

www.opennet.ru пропону╓ к╕лька статей як╕ пояснюють як настро╖ти callback. Ус╕ вони використовують pppd для встановлення першого з'╕днання з провайдером та для прийняття дзв╕нку в╕д провайдера. Використання такого п╕дходу не дало результат╕в для мого провайдера - оск╕льки в╕н через раз вида╓ р╕зне пов╕домлення запросу на лог╕н та пароль ╓ не реагу╓ на аутентикац╕ю pap-chap через pppd. З ╕ншого боку використання ppp (user ppp) з правильним ppp.conf файлом да╓ можлив╕сть п╕дключитися до провайдера незалежно в╕д того, як в╕н запрошу╓ користувача ╕дентиф╕кувати себе, та чи п╕дтриму╓ цей провайдер аутентикац╕ю PAP-CHAP.

Тут ╓ необх╕дним в╕дзначити важлив╕ моменти про провайдера, з'╓днання з яким встановлювалось. Щодо послуги callback: послуга активу╓ться на сайт╕, на який мможна зайти за допомогою гостьового (безкоштовного) п╕дключення, на сайт╕ встановлю╓ться номер, по якому провайдер передзвоню╓ до користувача, який бажа╓ користуватися послугою callback. Задля того, щоб провайдер передзвонив, необх╕дно встановити ppp з'╓днання з ним, але при введенн╕ ╕мен╕ користувача необх╕дно додати :c на к╕нц╕ (див нижче у приклад╕ ppp.conf). Назива╓ться цей провайдер Svit Online, я до нього п╕дключаюсь у м╕ст╕ Ки╓в╕. Незважаючи на це, в статтю включен╕ ╕нструкц╕╖ для б╕льш загального п╕дключення до провайдера за допомогою послуги callback.

Оск╕льки н╕що не забороня╓ використовувати user ppp для того щоб запросити провайдера передзвонити користувачев╓ ╕ пот╕м "ловити" дзв╕нок в╕д провайдера за допомогою вже pppd, користувач ма╓ можлив╕сть скористатися б╕льшою к╕льк╕стю можливостей user ppp для встановлення з'╕днання.

Для того, щоб подзвонити провайдеру ╕ встановити з ним ppp з'╓днання спершу треба внести необх╕дн╕ зм╕ни до файлу /etc/ppp/ppp.conf:

Створю╕ться в╕дпов╕дний розд╕л, що в╕дпов╕да╓ за провайдера, що п╕дтриму╓ callback. В результат╕ /etc/ppp/ppp.conf виглядатиме приблизно таким чином:

#
#-rw-------  1 root  wheel    1418  5 лип 23:18 ppp.conf
#
default:
 set log Phase Chat LCP IPCP CCP tun command
 set device /dev/cuaa0
 set speed 115200
 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" AT \
           OK-AT-OK ATE1Q0 OK ATL1 OK \\dATDP\\T TIMEOUT 50 CONNECT"
 allow user YOUR_USER_NAME

# Client side PPP

GT-no_callback:
 set phone PROVIDER_TEL_NUMBER
 set login
 set authname "user"
 set authkey "********"
 set timeout 120
 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
 add default HISADDR
 enable dns

GT:
 set phone PROVIDER_TEL_NUMBER
 set login
 set authname "user:c"
 set authkey "*******"
 set timeout 120
 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
 add default HISADDR
 enable dns

callback:
 load GT                                # load in the GT config
 set callback auth cbcp e.164 YOUR_PHONE_NUMBER
 set cbcp YOUR_PHONE_NUMBER

Файл /etc/ppp/ppp.conf ма╓ належати користувачу root та мати доступ 600. Маючи файл /etc/ppp.conf як показано вище (при умов╕, що ви зм╕нили слова YOUR_USER_NAME, user, ********, PROVIDER_TEL_NUMBER та YOUR_PHONE_NUMBER на Ваш лог╕н на Вашому комп'ютер╕, лог╕н до провайдера, пароль, номер телефону провайдера та номер Вашого телефону) ви можете встановити з'╓днання з провайдером за допомогою наступно╖ команди:

ppp -a GT-no_callback

(для того, щоб таке з'╓дання можна було встановити без прав суперкористувача (root) необх╕дно бути членом групи network (див. файл /etc/group)

Розрива╓ться таке з'╓днання командою:

killall ppp

П╕сля встановлення цього з'╓днання буде зм╕нено файл /etc/resolv.conf так, що в ньому з'являться IP адреси первинного та другорядного DNS сервер╕в провайдера. Тому раджу це з'╓днання встановити хочаб один раз. Оск╕льки таке з'╓днання не використову╓ callback, використовувати його п╕сля першого разу нам (в межах ц╕╓╖ статт╕) не ц╕каво.

Як вже зазначено вище - м╕й провайдер передзвонить, якщо до ╕мен╕ користувача додати :c на к╕нц╕. Тому, якщо запустити команду:

ppp -b GT

буде встановлене ppp з'╓днання з провайдером, яке в╕н роз╕рве ╕ передзвонить (за зазначеним на сайт╕ номером).

Для б╕льш загального випадку, якщо провайдер може отримати в╕д користувача номер (на який треба передзвонити) п╕д час першого з'╓днання скористу╓мось розд╕лом настройок /etc/ppp/ppp.conf з назвою callback. Цей розд╕л використову╓ ус╕ настройки розд╕лу GT та п╕сля встановлення з'╓днання переда╓ провайдеру номер, за яким провайдер ма╓ передзвонити. ╢ два способи передач╕ ╕нформац╕╖ про callback до провайдера через ppp, тож використаймо ╖х обидва для впевненност╕. Можна поекспериментувати - закоментувати той чи ╕нший.

Тож для того, щоб ╕н╕ц╕ал╕зувати callback в╕д провайдера необх╕дно запустити наступну команду:

ppp -b callback

П╕сля запуску ц╕╓╖ команди буде встановлене ppp з'╓днання з провайдером, яке провайдер роз╕рве, отримавши необх╕дну йому ╕нформац╕ю. В консол╕ буде видане пов╕домлення що встановлення з'╓днання не вдалось.

Невдовз╕ провайдер передзвонить, ╕ треба буде прийняти в╕д нього з'╓днання... вручну. Для цього, до того як задзвонить телефон (паралельний до модему) треба виконати наступне -- запустити ppp, вв╕йти у терм╕нальний режим, та в╕дпов╕сти на вх╕дний дзв╕нок. В консол╕ це вигляда╓ приблизно так:

%ppp
Working in interactive mode
Using interface: tun0
ppp ON localhost> term
deflink: Entering terminal mode on /dev/cuaa0
Type `~?' for help
...

Дал╕, коли буде отримано вх╕дний дзв╕нок, ви побачите:

RING

якщо ви це побачили треба набрати:

ata

Це команда модему в╕дпов╕сти на вх╕дний дзв╕нок. Дал╕, п╕сля того, як ви побачити строчку, яка почина╓ться на PPP (заглавними л╕терами - це важливо) треба прокласти до провайдера default route (тобто встановити, за якою адресою операц╕йна система ма╓ звертатися, якщо вона не зна╓ адреси мережевого ресурсу). Це робиться командою:

add default HISADDR

Точн╕с╕нько як в /etc/ppp/ppp.conf ! Все - з'╓днання встановлено за допомогою callback. П╕сля цого ppp можна перевести у бекграунд, або просто залишити консоль, в як╕й робилися вс╕ згадан╕ вище операц╕╖. Роз╕рвати з'╓днання можна як ╕ ран╕ше командою: killall ppp .

Цей спос╕б - хоча ╕ ╓ зовс╕м незручним, да╓ можлив╕сть вручну прощупати процеси, як╕ в╕дбуваються п╕д час встановлення з'╓днання користуючись послугою callback. Можливо ╕ варто все це в╕дтворити, для того, щоб краще зрозум╕ти що в╕дбува╓ться... Весь процес пода╓ться в деталях, для того, щоб побачити, ус╕ моменти, як╕ щоразу повторюються. В╕дм╕тивши ╖х, можна "навчити" операц╕йну систему реагувати на них так само, як у наведеному вище алгоритм╕ реагу╓ оператор. Так ми п╕дходимо до автоматизац╕╖ процесу встановлення ppp з'╓днання з провайдером з використанням callback.

Виходячи з усього, написаного вище - для того щоб встановити з'╓днання з провайдером користуючись callback необх╕дно подзвонити провайдеру (для того, щоб передати ╕нформац╕ю про абонента, який бажа╓ встановити з'╓днання користуючись callback), в╕дпов╕сти на вх╕дний дзв╕нок, встановити по ньому ppp з'╓днання, та встановити на цьому з'╓днанн╕ defaultroute. Оск╕льки процедура задана ╕ не зм╕ню╓ться - ╖╖ можна автоматизувати. Для того щоб подзвонити провайдеру вже все готово. Залишилось лише подбати про автоматичне в╕дпов╕дання на вх╕дний дзв╕нок та встановлення робочого ppp з'╓днання.

В╕дпов╕сти на вх╕дне з'╓днання можна за допомогою pppd використовуючи простий chat скр╕пт:

#
#-r-xr-x---  1 root  network   111 28 сер 01:21 callback.script
#
#!/bin/sh
#
#accept incoming connection

""              AT
OK              ATL1
OK              ATZ
TIMEOUT         125
RING            ATA
"}"             "\\с"

Цей скр╕пт збер╕га╓ться у файл╕ /etc/ppp/callback.script До цього файлу мають мати доступ користувач╕ групи network. В л╕ву колонку знесено те, що оч╕ку╓ться в╕д модему, а у прав╕й колонц╕ даються йому команди (за винятком строки TIMEOUT 125 - це ╓ заданням зм╕нно╖). Протестувати цей скр╕пт можна програмою chat без використання модему, за допомогою наступно╖ команди:

chat -v -s -f /etc/ppp/callback.script

При цьому на екран консол╕ будуть видаватися пов╕домлення в╕д chat про те що в╕н оч╕ку╓, ╕ дати йому це можна з клав╕атури.

Для того, щоб pppd запускав цей скр╕пт необх╕дно мати наступного вигляду файл /etc/ppp/options:

#
#-rw-------  1 root  wheel     481 27 сер 21:28 options
#
/dev/cuaa0 115200

crtscts         # enable hardware flow control
modem           # modem control line
connect "/usr/bin/chat -f /etc/ppp/callback.script"
noipdefault     # remote PPP serve must supply your IP address
                # if the remote host doesn't send your IP during
                # IPCP negotiation, remove this option
passive         # wait for LCP packets

defaultroute    # put this if you want that PPP server will be
                # your default router
asyncmap 0
debug

важливим ╓ те, що цей файл ма╓ належати користувачу root та мати доступ 600, ╕накше pppd не запуститься. /dev/cuaa0 не треба м╕няти лише у тому випадку, якщо модем, який викроистову╓ться для п╕д'╓днання до ╤нтернет п╕дключений до першого посл╕довного порту (COM1). Про те, що означають вс╕ ц╕ строки написано багато до мене, ╕ я повторювати не буду, варто лише звернути увагу на на строку яка почина╓ться з connect - у н╕й зада╓ться скр╕пт, який буде використовуватись при встановленн╕ з'╓днання, це якраз той скр╕п, який описано вище.

Якщо приведений файл /etc/ppp/options на м╕сц╕, pppd (здатний в╕дпов╕сти на вх╕дний дзв╕нок) запуска╓ться просто - командою:

pppd

Але для того щоб проавайдер подзвонив потр╕бно зробити перше з'╓днанян з ним - так як описано вище. Тому об'╓дна╓мо дзв╕нок до провайдера та отримання вх╕дного дзв╕нка в╕д нього у наступний скр╕пт:

#
#-r-xr-x---  1 root  network   120 27 сер 21:30 callback
#
#!/bin/sh
#
# dial for callback
ppp -b callback

# answering...
pppd

if [ "$?" = "0" ]; then
        exit 0
fi

exit 1

Цей скр╕пт збер╕га╓ться у файл╕ /etc/ppp/callback , належить користувачу root ╕ ╓ доступним користувачам з групи network.

На цьому все! Тепер, для того, щоб встановити з'╓днання з провайдером, користуючись послугю callbak достатньо запустити команду:

/etc/ppp/callback

Роз╕рвати з'╓днання, або перервати його у процес╕ становлення (якщо заглючив модем, або якщо Ви забули його включити) можна командою:

killall pppd

Вс╕ команди запускаються користувачем, який належить до групи network. Ще можна створити красив╕ кнопочк╕, як╕ встановлюють з'╓днання з провайдером та розривають його та розм╕стити ╖х на десктоп╕ для користувача, який може не мати ан╕ крапл╕ уяви про те, що ╕ як в╕дбува╓ться коли в╕н ╖х натиска╓.

Л╕тература:

1. FreeBSD Handbook: http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/index.html

2. Персональний сайт ╤горя Сисо╓ва: http://www.sysoev.ru

3. Стаття на www.opennet.ru про настройку callback: http://www.opennet.ru/base/modem/cbcp_pppd.txt.html

4. Л╕ст╕нг стандартних терм╕нальних команд модему: http://fan.nb.ca/cfn/info/help/com-prog/modemcommandslist.html

Updated 2004 Sep 10
by Stan.




 

 |  Модемы |  Статьи |  Поиск по сайту |  Обратная связь |  Реклама на сайте | 


Если Вы нашли ошибку на странице - выделите её мышью и нажмите Ctrl+Enter