Волгоград Linux User Group |
|
Организована 23 ноября 2002 года
Проект заморожен Птн Июл 6 02:11:14 MSD 2012 |
|
|
#!/bin/sh
### # #файл redialer # # These parameters control the attack dialing sequence. # # Maximum number of attempts to reach the telephone number(s) MAX_ATTEMPTS=10 # это количество попыток соединения # Delay between each of the attempts. This is a parameter to sleep # so use 15s for 15 seconds, 1m for 1 minute, etc. SLEEP_DELAY=15 # это задержка между попытками ### # # This is a list of telephone numbers. Add new numbers if you wish # and see the function 'callall' below for the dial process. PHONE1=931345 #PHONE2=900050 #PHONE3=960777 # номера по которым звонить ### # # If you use the # automatically. There is no need to define them here. If not, then # you will need to set the values. # ACCOUNT=логин_ваш # он же логин PASSWORD=пароль_Билла_Маму_Его_Г... # он же пароль ### # # Function to initialize the modem and ensure that it is in command # state. This may not be needed, but it doesn't hurt. # function initialize { chat -v TIMEOUT 3 \ 'Здесь_нет_пробела' \rAT \ 'OK-+++\ return # функция инициализации модема # chat -v программка дозвона с флажком -v (verbose) # TIMEOUT 3 # Это устанавливает паузу для получения ожидаемого ввода в 3 секунды. # Вы можете увеличить это значение до 5 или 10 секунд, # если вы используете медленный модем! # 'И_здесь_нет_пробела' \rAT # Не ожидаем ничего от модема, и послаем строку в него. # 'OK-+++\ # Ожидаем OK, если он не получен (потому что модем не в командном режиме), # затем посылаем +++ (стандартная строка для # которая возвращает модем в командный режим) и ожидаем OK. # Затем посылаем ATH0 (строка для завершения связи модема). # Это позволяет вашему скрипту справляться с вашим модемом, зависшим во время сеанса связи! ### # # Script to dial a telephone # function callnumber { chat -v \ ABORT '\nBUSY\r' \ ABORT '\nNO ANSWER\r' \ ABORT '\nRINGING\r\n\r\nRINGING\r' \ 'И_тут_его_не_должно_быть' ATM0L0 \ OK ATDT$1 \ CONNECT 'Блин_тут_тоже' \ ogin:--ogin: $ACCOUNT \ assword: $PASSWORD # Тут мы номер набираем # # ABORT '\nBUSY\r' # Если получена строка BUSY, то операция аварийно прекращается. # ABORT '\nNO ANSWER\r' # Если получена строка NO ANSWER, то операция аварийно прекращается. # ABORT '\nRINGING\r\n\r\nRINGING\r' # Если (повторимся) получена строка RINGING, то операция аварийно прекращается. # Это потому, что # ' ' ATM0L0 # ' ' ничего от модема не ждем, посылаем ему ATM0L0 режим, когда звук у модема выключен # OK ATDT$1 # Ожидаем OK и набираем номер, на который мы хотим позвонить. (T импульсный набор номера) # CONNECT ' ' # Дожидаемся строки CONNECT (которую наш модем посылает, когда удаленные модем отвечает) # и не посылаем в ответ ничего. # ogin:--ogin: $ACCOUNT # Снова, здесь мы вставляем # Ожидаем подсказку входа в систему (... ogin:), но если мы не получаем ее по истечении паузы, # то посылаем возврат каретки и затем ищем подсказку входа в систему снова. # Когда подсказка получена, посылаем username (сохраненное в переменной $ACCOUNT). # assword: $PASSWORD # Ожидаем запроса пароля и посылаем наш пароль (аналогично сохраненный в переменной). # # If the connection was successful then end the whole script with a # success. # if [ "$?" = 0 ]; then exit 0 fireturn ### # # Script to dial any telephone number # function callall { echo «dialing attempt number: $1" >/dev/console
# callnumber $PHONE2callnumber $PHONE1 # callnumber $PHONE2 } ### # # Initialize the modem to ensure that it is in the command state # #initialize if [ ! "$?" = 0 ]; then exit 1
fi# # Dial telephone numbers until one answers # attempt=0 while : ; do attempt=`expr $attempt + 1` callall $attempt if [ "$attempt" = "$MAX_ATTEMPTS" ]; then exit 1 fi sleep "$SLEEP_DELAY" # Да будет вам счастье. |
|
Powered by
|