#!/bin/sh # sms.pluswww - interfejs do wysyłania SMSów na telefony sieci Plus # Sebastian Zagrodzki # Jacek Fiok # Strona domowa: sms.jfiok.org # # wersja wysyłająca przez formularz WWW Plusa [ -r /usr/local/share/sms/smsrc ] && . /usr/local/share/sms/smsrc [ -r /etc/smsrc ] && . /etc/smsrc [ -r $HOME/etc/smsrc ] && . $HOME/etc/smsrc [ -r $HOME/.smsrc ] && . $HOME/.smsrc [ -z "$KATALOG" ] && KATALOG=/usr/local/share/sms [ -z "$NETCAT" ] && [ -x /bin/nc -o -x /usr/bin/nc ] && NETCAT="nc" [ -z "$NETCAT" -a -f "$KATALOG/nc-emulator" ] && NETCAT=". $KATALOG/nc-emulator" if [ -z "$NETCAT" ]; then echo "Nie moge znalezc netcata!" exit 127 fi [ -z "$TIMEOUT" ] && TIMEOUT=20 [ -z "$PRZEGLADARKA" ] && PRZEGLADARKA="Links (current; Linux 2.2.14 i586)" NUMER="$1" NUMER=${NUMER#00} NUMER=${NUMER#+} NUMER=${NUMER#48} PREFIX="`echo $NUMER | cut -c 1-3`" NUMER="`echo $NUMER | cut -c 4-9`" WIADOMOSC="$2" # WIADOMOSC="`echo $WIADOMOSC | cut -c 1-1600`" ZOSTALO=$(( 1470 - ${#WIADOMOSC} )) if [ "$ZOSTALO" -lt 0 ]; then WIADOMOSC="`echo \"${WIADOMOSC}\" | cut -c 1-1470`" fi WIADOMOSCENCODED=$( echo "$WIADOMOSC" | tr '\n' ' ' | sed -e 's/%/%25/g' -e 's/\@/%40/g' -e 's/\!/%21/g' -e 's/\#/%23/g' -e 's/\$/%24/g' -e 's/\^/%5e/g' -e 's/&/%26/g' -e 's/\*/%2a/g' -e 's/)/%29/g' -e 's/(/%28/g' -e 's/_/%5f/g' -e 's/\+/%2b/g' -e 's/-/%2d/g' -e 's/=/%3d/g' -e 's/\\/%5c/g' -e 's/|/%7c/g' -e 's/\//%2f/g' -e 's/,/%2c/g' -e 's/:/%3a/g' -e 's/;/%3b/g' -e 's/'\''/%27/g' -e 's/\"/%22/g' -e 's/ /+/g' -e 's/+$//' ) DLUGOSC=$(( 67 + ${#WIADOMOSCENCODED} )) ODP=$( echo -e 'POST /sms/sendsms.php HTTP/1.1\r\nConnection: close\r\nReferer: http://www.text.plusgsm.pl/sms/\r\nUser-Agent: '"$PRZEGLADARKA"'\r\nHost: www.text.plusgsm.pl\r\nContent-type: application/x-www-form-urlencoded\r\nContent-length: '"$DLUGOSC"'\r\n\r\ntprefix='"$PREFIX"'&numer='"$NUMER"'&odkogo=SMS&termin=0&tekst='"$WIADOMOSCENCODED"'&godz=00&min=00' | $NETCAT -w "$TIMEOUT" www.text.plusgsm.pl 80 ) if { echo "$ODP" | grep -q "200 OK" ; [ "$?" = "1" ] ;} 2>/dev/null then echo "Blad przy polaczeniu! Wiadomość mogła nie zostać wysłana..." echo "Odpowiedź serwera: $ODP" exit 1 elif { echo "$ODP" | grep -q "podano zły numer" ;} 2>/dev/null then echo "podano zły numer!" exit 2 elif { echo "$ODP" | grep -q "przekroczenia limitów" ;} 2>/dev/null then echo "przekroczony limit wiadomości" exit 3 elif { echo "$ODP" | grep -q "nie została wysłana" ;} 2>/dev/null then echo "$ODP" echo "Błąd wysyłania". exit 127 elif { echo "$ODP" | grep -q "została wysłana" ;} 2>/dev/null then # echo "$ODP" echo "Wszystko OK" exit 0 else echo -e "Nieznana odpowiedz:\n$ODP" exit 127 fi