Projekt "3ginfo"
Informacja o statusie połączenia 3GOstatnia zmiana: 2013-04-30 08:54
1. Wymagania
2. Instalacja
3. Konfiguracja
3.1. Limit danych
3.2. Lista stacji BTS
4. Testy
4.1. Informacja tekstowa
4.2. Strona WWW
4.3. Informacje diagnostyczne
4.4. Siła sygnału
5. Problemy
6. Modemy sprawiające problemy
7. Lista testowanych modemów
8. Historia zmian
Celem projektu jest graficzna wizualizacja statusu połączenia 3G (komórkowego) przez stronę www. Poniżej zaprezentowano przykładowy zrzut ekranu:

Sam projekt w całości napisany został jako skrypty shella i wykorzystuje komponenty standardowo dostępne w normalnej instalacji OpenWrt. Nie jest zależny od konkretnej platformy sprzętowej więc powinien działać na każdym urządzeniu wspieranym przez OpenWrt, zależy za to od kilku zewnętrznych pakietów.
Działa z większością modemów GSM na USB oraz telefonami podłączonymi na kablu USB.
UWAGA UWAGA UWAGA
Jeżeli po uruchomieniu są problemy z wyświetlaniem danych - proszę po odpowiednim ustawieniu urządzenia (patrz konfiguracja) wykonać program
# 3ginfo-test
Wymagania
Program wymaga do działania urządzenia potrafiącego zwracać informacje przy pomocy komend AT. Ponieważ zwykle taki modem wykorzystywany jest także do połączenia sieciowego, wymagane jest istnienie drugiego interfejsu ("diagnostycznego") który umożliwi komunikację z modemem niezależnie od nawiązanego połączenia. Lista modemów na których testowano projekt znajduje się na dole dokumentu. Nie koniecznie musi działać na innych urządzeniach. Nie wszystkie urządzenia mogą zwracać także użyteczne informacje (np. E170 nie wspiera profilu UMTS QoS), w związku z tym część parametrów może nie być dostępna.
Instalacja
Należy zainstalować pakiet 3ginfo:
# opkg update
# opkg install 3ginfo
# /etc/init.d/3ginfo enable
# /etc/init.d/3ginfo start
Jeżeli chcemy mieć obsługę SMSów należy dodatkowo zainstalować pakiet gnokii
# opkg install gnokii
# opkg install ussd159
# opkg install kmod-usb-serial kmod-usb-serial-option
Konfiguracja
Plik konfiguracyjny zawarty jest w /etc/config/3ginfo. Możliwe opcje do ustawienia:- device - opcjonalny, interfejs diagnostyczny modemu USB. Wartość pusta powoduje automatycznie wykrycie i przypisane pierwszego znalezionego portu (UWAGA: niekoniecznie jest to poprawny port, bo np. dla Huawei wykorzystywany jest jako port do połączenia).
- http_port - opcjonalny, port na którym będzie nasłuchiwał demon www (domyślnie :81)
- pincode - opcjonalny, kod PIN do karty SIM
- clf - opcjonalny, link do pliku z listą stacji BTS, pobraną z serwisu http://btsearch.pl (plik w formacie CLF 3.0 - HEX)
- script - opcjonalny, skrypt realizujący pobranie danych o pozostałym limicie, obecnie dostępne są:
mbank: mBank na kartę
ofnk: Orange Free na Kartę
ofnk2: Orange Free na Kartę (dla modemów zwracających wyniki w kodach hex - MF100)
play_fresh: Play Fresh z Pakietami Internetowymi
play_fresh2: Play Fresh z Pakietami Internetowymi (dla modemów zwracających wyniki w kodach hex - MF100)
play_fresh_pdu: Play Fresh z Pakietami Internetowymi (dekodowanie wiadomości w PDU)
tmobile_pdu: Blueconnect na kartę (dekodowanie wiadomości w PDU)
- qos - opcjonalny, jeżeli zostanie ustawiony na 1 to skrypt może wyświetlać informacje o wynegocjowanej prędkości ze stacja bazową (o ile modem to wspiera). UWAGA: z niewiadomych powodów wartość ta dziwnie narasta i może być źle sygnalizowana przez modem.
- language - opcjonalny, możliwość wyboru języka interfejsu (o ile istnieją odpowiednie pliki językowe). Obecnie obsługiwane języki: Polski (pl), Angielski (en)
Jeżeli opcja device jest pusta (lub jej nie ma) program automatycznie wykryje pierwszy port na którym jest możliwa komunikacja z modemem i zapisze go w pliku konfiguracyjnym. Nie zawsze może to być właściwy port, w przypadku złego wykrycia lub w przypadku podłączenia większej ilości modemów właściwy port można ustawić poleceniami
# uci set 3ginfo.@3ginfo[0].device=/dev/ttyUSB1
# uci commit 3ginfo
UWAGA: Jeżeli korzystasz z systemu z kernelem 2.4 to urządzenie może nazywać się /dev/usb/tts/1!
Dla urządzeń korzystających ze sterowników HSO powinno się podać /dev/ttyHSx (w zależności od posiadanego urządzenia), dla urządzeń CDC ACM zwykle jest to /dev/ttyACM0. Za "x" należy oczywiście podstawić odpowiedni numer interfejsu.
Aby program poprawnie działał, modem MUSI być zarejestrowany w sieci operatora. W przypadku kart posiadających kod PIN należy albo zdefiniować sekcję w pliku network i podać prawidłowy kod PIN, lub zdefiniować opcję pincode w pliku 3ginfo.
Ustawienie kodu pin:
# uci set 3ginfo.@3ginfo[0].pincode=1234
# uci commit 3ginfo
Limit danych
Po ustawieniu w/w opcji na głównym ekranie pojawi się link do podstrony z możliwością sprawdzenia pozostałego limitu danych. UWAGA: Operatorzy często zmieniają sposób odczytu danych czy polecenie jakim można to wykonać. Więc podane skrypty niekoniecznie muszą jeszcze działać, zależy od operatora.
Bluconnect na kartę
Wersja dla modemów z kodowaniem PDU
# uci set 3ginfo.@3ginfo[0].script=tmobile_pdu
# uci commit 3ginfo
# uci set 3ginfo.@3ginfo[0].script=cyfrowy_polsat
# uci commit 3ginfo
Wynikiem jest napis typu:
Okres rozliczeniowy: 2010-11-21 - 2010-12-21
SUMA OPLAT: 0,00 zł z VAT
Aktywne pakiety:
Pakiet Promocyjny: pozostalo 2.9 GB z 200.0 MB wazne do 2010-12-21.
# uci set 3ginfo.@3ginfo[0].script=ofnk
# uci commit 3ginfo
# uci set 3ginfo.@3ginfo[0].script=ofnk2
# uci commit 3ginfo
Pozostalo Ci 1035,6 darmowych MB z bonusu za doladowanie waznych do 01.12.2013r. oraz 287,1 MB w ramach Twojej kwoty na koncie glownym waznych do 30.11.2013r.
Play Fresh z Pakietami Internetowymi
Dostępne są trzy wersje pluginów
Wersja dla modemów z kodowaniem PDU
# uci set 3ginfo.@3ginfo[0].script=play_fresh_pdu
# uci commit 3ginfo
# uci set 3ginfo.@3ginfo[0].script=play_fresh
# uci commit 3ginfo
# uci set 3ginfo.@3ginfo[0].script=play_fresh2
# uci commit 3ginfo
"Promocyjne MB : 22 MB wazne do 2011-08-19 23:59"
Lista stacji BTS
3ginfo potrafi wyświetlać informacje o BTS do którego jest podłączony modem. Aby to było możliwe należy najpierw pobrać listę stacji ze strony http://btsearch.pl/nobbimonitor.php zaznaczając opcje jak poniżej:
lub wybierając tylko interesujące nas dane (np. tylko Plus i Mazowieckie). Plik należy umieścić na routerze (uwaga: po zaznaczeniu wszystkich parametrów plik może się nie zmieścić do wewnętrznej pamięci flash routera, warto go umieścić np. na karcie SD w modemie), a następnie skonfigurować odpowiednią opcję:
# uci set 3ginfo.@3ginfo[0].clf='/mnt/sda1/26001.clf'
# uci commit 3ginfo
Testy
Informacja tekstowa
Wystarczy uruchomić program
# 3ginfo
root@OpenWrt:# 3ginfo
Status: Rozlaczony
Operator: Plus
Tryb pracy: UMTS
Sila sygnalu: 41%
Urzadzenie: huawei E17X
MCC MNC: 260 01
LAC: 2B22 (11042)
LCID: - (-)
RNC: - (-)
CID: A2BF (41663)
CSQ: 13
RSSI: -87 dBm
Strona WWW
Program dynamicznie generuje stronę www przy pomocy której można odczytać parametry połączenia. Strona obsługiwana jest przez osobny proces serwera www nasłuchującego na porcie 81, czyli można odwołać się do niej wpisują w przeglądarkę adres routera z podanym portem, np. http://192.168.1.1:81.
Wyświetlane informacje:
- status połączenia: połączony/rozłączony - (pojawia się tylko jeżeli została zdefiniowana odpowiednia sekcja w /etc/config/network)
- czas połączenia, ilość danych wysłanych i odebranych w sesji (pojawia się tylko jeżeli została zdefiniowana odpowiednia sekcja w /etc/config/network)
- operator: nazwa operatora
- tryb pracy: standard telefonii komórkowej (GPRS/EDGE/UMTS/HSDPA/HSPA/HSPA+/LTE/CDMA)
- siła sygnału: w skali procentowej (liczone liniowo wg CSQ: 0 - 0%, 31 - 100%)
- wizualny wskaźnik siły sygnału - kolorowany wg schematu:
30 - 45%: pomarańczowy (-93:-85 dBm)
46 - 61%: żółty (-83:-75 dBm)
62 - 100%: zielony (-73:-51 dBm)
- przycisk do podstrony z możliwością wysłania SMS (pojawia się tylko w przypadku instalacji pakietu gnokii)
- przycisk do podstrony z możliwością wysłania kodów USSD (pojawia się tylko w przypadku instalacji pakietu ussd159)
- przycisk do podstrony z możliwością sprawdzenia pozostałego limitu danych (po zdefiniowaniu odpowiedniego parametru w konfiguracji)
- przycisk z możliwością odświeżenia zawartości
- przycisk z możliwością nawiązania/rozłączenia połączenia (pojawia się tylko jeżeli została zdefiniowana odpowiednia sekcja połączenia w /etc/config/network)
- siła sygnału: wynik CSQ - czyli to co jest odczytywane bezpośrednio z modemu
- siła sygnału: wynik RSSI w dBm
- profil UMTS QoS: maksymalne możliwe wynegocjowane ze stacją bazową pasmo pobierania oraz wysyłania. Wyświetlany jest tylko jeżeli dany modem obsługuje to polecenie, połączenie jest aktywne oraz została włączona odpowiednia opcja konfiguracyjna.
- międzynarodowy identyfikator MCC oraz MNC
- LAC - postać hex i dziesiętna
- LCID - tzw. długi CID - postać hex i dziesiętna
- RNC - postać hex i dziesiętna
- CID - postać hex i dziesiętna, z linkiem do strony http://btsearch.pl z możliwością wyszukania BTSa
- nazwa lokalizacji która jest jednocześnie linkiem, po kliknięciu wyświetla się Google Maps z zaznaczoną lokalizacją
- nazwa urządzenia: producent i model
Informacje diagnostyczne
# 3ginfo-test
Siła sygnału
Dostępna jest także podstrona prezentująca samą siłę sygnału. Dane automatycznie odświeżane są co 3s. Adres podstrony: http://192.168.1.1:81/signal.html.Problemy
- wyświetla się "Brak urządzenia /dev/ttyUSB2!"
- brak wyświetlania danych - same kreski
- wyświetlana jest tylko część informacji
Modemy sprawiające problemy
- Sierra Wireless 309, C855, C889
- Samsung GT-Y3100
- Vodafone K3760
- Huawei E3276
Lista testowanych modemów
- Huawei E156G
- Huawei E169
- Huawei E170
- Huawei E173
- Huawei E220
- Huawei E1820
- Huawei E182E
- Huawei E367
- Option Icon 225
- Samsung GT-Y3100
- Sierra Wireless C855/C885/C889/C307
- ZTE MF100
- ZTE MF668
Historia zmian
- 2013.04.30
- dodano możliwość inne sposobu odczytu czasu połączenia
- 2013.04.06
- mała modyfikacja skryptu limitu dla Orange Free na Kartę
- 2013.02.14
- 2013.01.06
- zmiany w kodzie obsługi modemów ZTE
- 2012.12.09
- 2012.11.24
- 2012.10.09
- 2012.09.14
- modyfikacje przy odczycie profilu QoS
- 2012.09.12
- 2012.09.11
- 2012.09.02
- 2012.08.11
- 2012.08.05
- lekka poprawa skryptów sprawdzających limit dla Play Fresh
- 2012.07.30
- dodanie obsługi kodów USSD
- 2012.07.24
- 2012.06.23
- 2012.04.22
- 2012.02.23
- 2012.02.19
- 2011.10.06
- 2011.09.16
- 2011.09.15
- dodatkowy skrypt dla Orange Free na Kartę - PDU
- zmiana nazwy pluginu na 3ginfo-plugin-pdu
- 2011.09.03
- ujednolicenie wyglądu linków zewnętrznych
- nowa podstrona reprezentująca dynamicznie siłę sygnału
- 2011.08.28
- 2011.08.13
- 2011.08.11
- dodatkowy skrypt sprawdzający limit dla Play Fresh
- dodatkowy plugin sprawdzający limit dla Play Fresh dla modemów odpowiadających w formacie PDU
- obsługiwany modem ZTE MF100
- 2011.08.09
- dodano możliwość dekodowania wiadomości PDU
- drobne zmiany związane z Aero2
- 2011.08.06
- 2011.08.04
- 2011.08.03
- 2011.07.16
- 2011.05.20
- 2011.05.14
- 2011.02.01
- 2010.12.27
- 2010.11.25
- wyświetlanie używanej technologii dla modemów Novatel, np. Ovation MC990D
- sprawdzenie limitu dla Cyfrowego Polsatu
- 2010.11.19
- 2010.11.13
- 2010.11.04
- 2010.10.27
- 2010.10.19
- 2010.10.18
- 2010.10.12
- 2010.10.05
- 2010.09.19
- 2010.09.01
- dodano szukanie lokalizacji wg krótkiego CID i operatora na portalu btsearch.org
- 2010.08.30
- 2010.08.29
- zmiany w skryptach: oczyszczenie kodu, sprawdzenie istnienia urządzenia oraz poprawności zwracanych parametrów
- kolorowanie wskaźnika siły sygnału
- 2010.08.28