SKRYPTY SMS README http://sms.jfiok.org Jacek Fiok 05.03.2003 SZYBKI START ------------------------------------------------------------------------------- Uruchom skrypt ./configure. Odpowiedz na pojawiające się pytania. Od tej pory możesz już śmiało wysyłać SMS-y, zarówno przez "sh [uzytkownik] [haslo]" (ostatnie dwa parametry - dla bramek wymagających zalogowania się), jak i przez dodatkowy tekstowo-okienkowy (ncurses-dialog) programik "sms-dialog". Jedyne, co musisz ew. dalej zrobić, to ustawić sobie powiadamianie o przychodzącej poczcie - tego się nie da zrobić automatem, ponieważ istnieje dużo systemów dostarczania poczty. Prawdopodobnie na Twoim komputerze jest używany sendmail+procmail, postfix, exim lub qmail. Jeśli jesteś zainteresowany powiadamianiem o poczcie, wejdź na stronę sms.jfiok.org, strona "instrukcja obsługi", sekcja "Podczepianie skryptu do programu pocztowego". Poniżej dla wygody publikuję skrótową informację na ten temat: SZYBKI START POWIADAMIANIA O POCZCIE -------------------------------------- -> Wersja dla Qmaila Sprawdź, czy masz w katalogu domowym plik .qmail. Jeśli nie, to musisz go teraz utworzyć. Przeedytuj ten plik i dopisz na jego początku (w pierwszej linijce) cos takiego: | /bin/sh .powiadom, a w drugiej linijce wpisz ./Mailbox lub odpowiednią nazwę Twojego pliku-skrzynki pocztowej. -> Wersja dla Sendmaila + Procmaila Tu musisz przeedytowac dwa pliki: .forward i .procmailrc. W pierwszym wpisz: | /usr/bin/procmail czyli ścieżkę dostępu do programu procmail (możesz ją sprawdzić pisząc "which procmail"). W drugim dopisz na początku następujący fragment: :0 c | /bin/sh .powiadom Czasem potrzebne są jeszcze następujące zmiany: Na niektórych systemach procmail jest uruchamiany automatycznie - jeśli taki jest u Ciebie to skasuj plik .forward, jest on zbędny. DOKLADNIEJSZE OPISY. ------------------------------------------------------------------------------- Wszystkie skrypty korzystają z podstawowych narzędzi systemowych (sed, grep, tr, cut). Skrypty oznaczone jako "sh" powinny działać z każdą wersją sh: bash, ksh, zsh i innymi. Jeśli z Twoją nie działają: napisz. ------------------------------------------------------------------------------- Opis skryptu powiadom (wersja: sh): Skrypt można łatwo podpiąć do większości stosowanych serwerów pocztowych, podsyłając mu na standardowe wejście treść wiadomości. Skrypt jest tak ustawiony, żeby z każdej przychodzącej poczty wycinać nadawcę oraz temat i wysyłać je w SMSsie. Dodatkowo, jeśli w polu Subject: znajdują się ciągi znaków: "ważne!", "ważne !", "wazne!", "wazne !" itp. (bez rozróżniania wielkości liter) to dodatkowo jest wysyłana treść listu - można to wyłączyć. Dodatkowo "powiadom" jest przystosowany do użycia filtra kodowania QP/Base64, dostępnego jako "nopl". ------------------------------------------------------------------------------- Opis skryptu nc-emulator (wersja: sh): Ten w sumie prosty skrypt zastępuje program znany pod nazwą netcat (nc) - jego jedyną funkcją jest wysyłanie danego ciągu znaków (otrzymanego na standardowym wejściu) do zdalnego serwera o podanej nazwie, oraz odczytanie odpowiedzi i przekazanie je na standardowe wyjście. ------------------------------------------------------------------------------- Opis skryptu nopl (wersja: sh): Skrypt "nopl" wykorzystuje program "mmencode" z pakietu "metamail", żeby odkodować występujące w nagłówkach listu fragmenty kodowane jako Quoted-Printable (QP) albo Base64 (B64). Oznacza to np. taki kawałek: =?ISO-8859-2?Q?pi=EA=E6?=, co jest równoznaczne z napisem "pięć". Dodatkowo skrypt może zamieniać polskie znaki na znaki ascii (ą->a itp.), aczkolwiek jeżeli polskie literki nam nie przeszkadzają, to można to wyłączyć. Można go wykorzystać do formatowania smsów, zamieniając występujące w liście "robaczki" na czytelny tekst (co przy okazji zmniejsza też długość smsa) ------------------------------------------------------------------------------- Opis skryptu sms-dialog: Skrypt "sms-dialog" wykorzystuje polecenie "dialog" do stworzenia w miare wygodnego (?) i funkcjonalnego interfejsu do wysylania SMSów... W samym skrypcie trzeba ustawić zmienną "LISTA", która jest ścieżką dostępu do listy telefonów. Taka lista ma format: ... ------------------------------------------------------------------------------- Opis skryptów bramka-* (wersja: sh): Skrypt "bramka" ma być pomocą dla osób które próbują stworzyć własną bramkę mail->SMS lub www->SMS. Program "bramka-common" wczytuje ze standardowego wejścia kolejno najpierw w pierwszej linii numer telefonu, dalej treść wiadomości. W zależności od wybranego numeru wybiera listę bramek, która nadaje się dla tego właśnie numeru, po czym próbuje wysłać SMSa przez każdą z nich, aż do pierwszej udanej próby. Ten skrypt podczepiamy do jednego ze skryptów "bramka-mail" lub "bramka-www", które zamieniają list/formularz na postać czytelną dla "bramka-common". Reszta to już tylko napisanie odpowiedniej strony WWW lub zrobienie odpowiedniego wpisu dla procmaila. "bramka-www" wymaga dodatkowo programu mmencode. ------------------------------------------------------------------------------- Opis poszczególnych skryptów do wysyłania: ------------------------------------------------------------------------------- Plik: sms.plusmail Bramka: text.plusgsm.pl (mailowa) Prefixy numerów: 601 603 605 607 609 691 693... Max. długość: 1470 Max. podzielenie: 10 Max. wiadomości/czas: bez ograniczeń Zawodność: b. mała Wymagane podprogramy: sendmail lub zastępnik (np. qmail-inject, lub skrypt emulujący sendmaila) Dołączany tekst: adres z którego przyszedł SMS (pole From: z maila) Uwagi: ------------------------------------------------------------------------------- Plik: sms.pluswww Bramka: www.text.plusgsm.pl (WWW) Prefixy numerów: 601 603 605 607 609 691 693 ... Max. długość: 1470 Max. podzielenie: 10 Max. wiadomości/czas: bez ograniczeń Zawodność: b. mała Wymagane podprogramy: nc lub skrypt shellowy o analogicznych funkcjach Dołączany tekst: nazwa nadawcy pisana w polu formularza: w tym wypadku "SMS" Uwagi: ------------------------------------------------------------------------------- Inne: patrz komentarze w samych plikach skryptów (sytuacja za szybko się zmienia, żeby robić z tego plik README). Jacek Fiok