SMS jest programem pozwalającym na wysyłanie wiadomości na telefony komórkowe operatorów polskich sieci komórkowych (Era, Plus, Idea, Heyah).
Obecna wersja (2.x) jest kompletnym przepisaniem wersji poprzednich. Całość została napisana zupełnie od nowa.
Autor: Mikołaj Rydzewski <miki@ceti.pl>Program ten udostępniony jest na zasadach licencji GPL v2, bądź późniejszej. Treść licencji dostępna jest w pliku COPYING w archiwum z kodem programu, bądź na stronie http://www.gnu.org.
Pozwala on wysyłać krótkie wiadomości tekstowe (SMS) poprzez internet z komputera wprost na telefon komórkowy. Do wysłania wiadomości nie jest potrzebna interakcja z użytkownikiem, może być więc ona wysłana w sposób automatyczny. Typowe zastosowania programu to:
Z racji na używanie (z reguły) bezpłatnych bramek www->sms nie powinno się uzależniać od działania programu istotnych aplikacji. Jeśli uruchamia ktoś poważną usługę wymagającą wysyłania smsów, to z reguły też stać go na wykupienie stosownego abonamentu i/lub modemu GSM.
Nie zgłębiając się w szczegóły ;-) program udaje przeglądarkę www i wypełnia formularze na stronach odpowiednich operatorów. Po wypełnieniu takiego formularza 'wysyła' go do serwera, co skutkuje (na ogół) wysłaniem wiadomości. W zależności do strony, program musi się czasami przedtem zalogować, lub dokonać innych czynności. W niektórych przypadkach program może tylko wysłać maila do bramki operatora.
Są też takie nieszczęśliwe przypadki, kiedy program nie może poradzić sobie ze stroną. Tak jest np. w przypadku bramki SMSowej Idei - konieczność podania tekstu z graficznego tokena skutecznie zablokowała wysyłanie SMSów przez tę bramkę.
Wszystkie te czynności są dla użytkownika zupełnie niewidoczne. Podaje on tylko numer telefonu, treść wiadomości do wysłania. Niekiedy musi jeszcze określić przez którą bramkę wiadomość ma zostać wysłana.
Ogólnie mowiąc, wywołanie programu ma postać:
sms [opcje]
Przy starcie program odczytuje swoje pliki konfiguracyjne (w zależności od systemu będą to /etc/smsrc lub /usr/local/etc/smsrc i ~/.smsrc). O ile jest zdefiniowana zmienna środowiska CONFIG_DIR to zamiast pliku ~/.smsrc odczytywany jest plik $CONFIG_DIR/smsrc. Każda opcja podana w linii poleceń może być zastąpiona odpowiednim wpisem w pliku konfiguracyjnym. W szczególności możnaby wogole nie podać żadnych opcji w linii poleceń.
Plik konfiguracjny zawiera w każdej linii pary nazwa, wartość oddzielone znakiem równości; linie zaczynające się od znaku hasha (#) traktowane są jak komentarze; podczas odczytywania pliku konfiguracyjnego można korzystać z analogicznego jak w skryptach shellowych podstawiania wartości zmiennych, czyli:
Poniżej podana jest lista parametrów dostępnych w linii poleceń (w nawiasach klamrowych podana jest nazwa opcji w pliku konfiguracyjnym) - niektóre opcje dostępne w pliku konfiguracyjnym nie mają odpowiednika w linii poleceń. W archiwum programu dostępny jest przykładowy plik konfiguracyjny README.smsrc.
[gateway]
-g <bramka>
Podaje bramkę przez którą należy wysłać SMSa. W tej chwili zdefiniowane są następujące bramki: era, eranet, plus, plusmail, miastoplusa, ideambox.
[phone_no]
-n <numer telefonu>
Numer telefonu na który należy wysłać wiadomość. Numer można podać w formacie międzynarodowym, w przeciwnym wypadku dosmyślnie zostanie przypisany prefiks +48.
[message]
-m <wiadomosc>
Wiadomość do wysłania. W przypadku podania znaku '-' (pauza) tekst wiadomości zostanie odczytany ze standardowego wejścia.
-c <plik>
Czyści poprzednie odczytane parametry po czym odczytuje podany plik konfiguracyjny.
-o <opcja=wartosc>
Pozwala podać w linii poleceń dowolną opcję w formacie takim, w jakim jest w pliku konfiguracyjnym, np.: -o phone_no=602111111.
-t <podpis>
Definiuje podpis dołączany do wiadomości. Podpis jest wstawiany w miejsce wystąpienia zmiennej ${signature}.
-p <czesci>
Określa maksymalną liczbę SMSow na którą może być podzielona treść. Innymi słowy jest to maksymalna liczba 160-znakowych fragmentów tekstu.
-h
Pokazuje ekran pomocy.
[verbose]
-v
Włącza tryb pokazywania szczegółowych informacji podczas działania programu.
[stats]
-s
Jeśli dana bramka obsługuje, to pokazane zostaną dodatkowe informacje - np. ilość wysłanych/pozostałych SMSow.
[notify]
-r
Jeśli dana bramka obsługuje, to podczas wysyłki zostanie włączona opcja wysyłania potwierdzeń doręczenia SMSa.
-V
Pokaąe informacje o bieżącej wersji programu.
-C
Sprawdzi czy dostępna jest nowa wersja programu. Jeśli tak, to program zakończy się ze statusem 0, w przeciwnym razie ze statusem 1.
Przykłady wywołania:
sms -g era -n 602123123 -m "wszystko ok"
/usr/bin/check | sms -g ideambox -n 502123123 -m -
Aby program zainstalować należy dysponować w miarę nowym kompilatorem C++. Dodatkowo w systemie muszą być zainstalowane następujące biblioteki:
Do kompilacji wymagany jest pakiem GNUmake (gmake). Po rozpakowaniu archiwum można rozpocząć kompilację wpisując gmake bądź make. W razie błędów należy ewentualnie poprawić plik Makefile.
Program jest chyba najczęściej używany właśnie do tego celu. Zresztą dlatego też go kiedyś napisałem ;-) Poniższy opis ma zastosowanie w środowisku Unix/Linux z tak skonfigurowanym systemem poczty, ze możliwe jest korzystanie z programu procmail.
W katalogu contrib znajduje się przykładowy plik procmailrc, który po dostosowaniu do lokalnych potrzeb należy umieścić w katalogu domowym pod nazwą .procmailrc.
Pomocny może się także okazać perlowy skrypt mimecut, także dostępny w tym samym katalogu. Pozwala on usunąć niepotrzebne (często w HTMLu) śmieci z maili przed wysłaniem ich na komórkę.
Po więcej informacji odsyłam na: