LINUX.ORG.RU

Принципы работы звонилки


0

0

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

Расскажите мне как работают звонилки в Линуксе? а то я после этой винды в которой пару АПИшек и ты в интернете! нифига понять не могу...

Что нужно знать чтобы написать собственную звонилку?

pppd нужно запускать с нужными параметрами, посмотри в доке там есть 
скрипт на chat'e который звонит и перезванивает и так-далее...

И звонилок к линуксе и так дофига, и в кде и в гноме и консольных туча.

anonymous
()

в linux такие вопросы решаются просто - берутся исходники и...

например: kppp, wvdial.

но вопрос нафига писать еще один велосипед?

fghj ★★★★★
()

подобной функциональностью обладает kppp или wvdial плюс пара скриптов.

fghj ★★★★★
()

Здесь на самом деле не одна задача, а две. Первая -- это работа с модемом. Вторая -- с сетевым интерфейсом. Это разные задачи, и решаются они разными программами. Сама звонилка решает только первую задачу, а для второй использует другую программу, которая называется "pppd".

В общем случае звонилка работает так:

1) Открывает файл последовательного порта, к которому подключен внешний модем (или который имитируется внутренним модемом). Настраивает этот файл (скорость и флаги).

2) Записывает в этот файл AT-команды модему. Нужна как минимум одна команда -- на дозвон ("atdНомерТелефона\r").

3) Читает из файла сообщение об установлении соединения ("^(CONNECT|CARRIER)") или об ошибке ("^(ERROR|BUSY|NO)").

4) Если задана минимальная скорость, берет ее из сообщения о соединении.

5) Запускает pppd и ждет появления сетевого интерфейса (обычно "ppp0"). Закрывает файл порта.

6) Смотрит статистику по интерфейсу (например, из "/proc/net/dev"). При пропадании интерфейса повторяет все с пункта #1.

7) Когда нужно завершить соединение, убивает с помощью SIGTERM процесс pppd (PID которого лежит в "/var/run/pppN.pid", где N -- номер интерфейса, обычно 0). Дожидается исчезания интерфейса и завершает работу.

Про работу с модемом (равно как и с любым другим терминальным устройством) можно почитать в документации на libc. Команда:

info libc

Описание лежит в теме "Low-Level Terminal Interface". Кроме того, есть довольно подробный Serial-HOWTO.

Подробнее про pppd можно прочитать в его мане ("man pppd"). Про сетевую подсистему рассказывается в Net-HOWTO.

Описания AT-команд модемов можно извлечь из инструкции к собственному модему. Если инструкции нет, эту инфу можно надыбать в инете (google поможет).

nobody ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.