Temat: 3ginfo dla modemów Alcatel (HiLink)

Cześć,
ponieważ wsparcie w 3ginfo udało się dla modemów Huawei wybitnie fajnie, czy jest szansa na wsparcie również dość popularnych Alcateli 850V (Magentowa sieć ich trochę posprzedawała)?

Modem zwraca trochę informacji o sobie pod linkami:
http://192.168.1.1/goform/getWanInfo?rand=$rand
http://192.168.1.1/goform/getImgInfo?rand=$rand
gdzie rand=losowa liczba

Zwracane są JSONy i nie trzeba żadnej autoryzacji, ani ciastek.
getWanInfo:

{  
   "wan_state":2,
   "dur_time":241,
   "network_type":11,
   "network_name":"T-Mobile.pl",
   "roam":1,
   "wan_ip":"100.66.241.38",
   "ip4_pri_dns":"213.158.199.1",
   "ip4_sec_dns":"213.158.199.5",
   "wan_ip6":"0::0",
   "ip6_pri_dns":"0::0",
   "ip6_sec_dns":"0::0",
   "download":100000000,
   "upload":50000000,
   "Speed_Dl":12879,
   "Speed_Ul":462,
   "usage":806656,
   "error":0
}

i getImgInfo

{  
   "chg_state":2,
   "signal":5,
   "sim_state":7,
   "pin_state":3,
   "sms":2,
   "sms_new_count":12,
   "error":1
}

Nie namierzyłem nigdzie bardziej zaawansowanej diagnostyki połaczenia, ale jest przynajmniej siła sygnału (niestety w skali "kreskowej" - signal przybiera wartości 0 do 5), prędkość "połączenia" (download/upload), technologię połączenia (network_type)

Możliwe wartości network_type:

var MACRO_NETWORKTYPE_NO_SERVICE = 0;
var MACRO_NETWORKTYPE_GPRS = 1;
var MACRO_NETWORKTYPE_EDGE = 2;
var MACRO_NETWORKTYPE_HSDPA = 3;
var MACRO_NETWORKTYPE_HSUPA = 4;
var MACRO_NETWORKTYPE_UMTS = 5;
var MACRO_NETWORKTYPE_CDMA = 6;
var MACRO_NETWORKTYPE_EV_DO_A = 7;
var MACRO_NETWORKTYPE_EV_DO_B = 8;
var MACRO_NETWORKTYPE_GSM = 9;
var MACRO_NETWORKTYPE_EV_DO_C = 10;
var MACRO_NETWORKTYPE_LTE = 11;
var MACRO_NETWORKTYPE_HSPA_PLUS = 12;
var MACRO_NETWORKTYPE_DC_HSPA_PLUS  = 13;

2

Odp: 3ginfo dla modemów Alcatel (HiLink)

Można by zrobić prosty skrypcik, parametrów za wiele nie ma, choć problem jest ideologiczny - trzeba odróżnić huawei od alcatela jakoś. Albo zrobię dodatkowy parametr żeby określić nazwę skryptu który ma się wykonywać.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: 3ginfo dla modemów Alcatel (HiLink)

Cezary napisał/a:

Można by zrobić prosty skrypcik, parametrów za wiele nie ma, choć problem jest ideologiczny - trzeba odróżnić huawei od alcatela jakoś. Albo zrobię dodatkowy parametr żeby określić nazwę skryptu który ma się wykonywać.

Można by albo w ciemno uderzać w któryś z jego URLi z statsami (zakładam, że Huawei by 404 wypluł) albo ciut ładniej powinno zadziałać:

if cat /sys/kernel/debug/usb/devices | grep "Vendor=1bbb" > /dev/null; then

4

Odp: 3ginfo dla modemów Alcatel (HiLink)

I jeszcze:
raczej powinno działać z innymi Alcatelami w ten sam sposób - patrząc po kodzie frontendu modemu to jest uniwersalny do kilku modeli w tym do jakiś MiFi/routerów LTE z WiFi więc po Vendorze chyba nie będzie to aż tak brzydkie jak się by mogło wydawać.

5

Odp: 3ginfo dla modemów Alcatel (HiLink)

Zrób

cd /tmp
wget http://dl.eko.one.pl/test/alcatel_hilink.sh
chmod 755 /tmp/alcatel_hilink.sh
/tmp/alcatel_hilink.sh 192.168.1.1

I pokaż co wyszło.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

6

Odp: 3ginfo dla modemów Alcatel (HiLink)

root@f4f26ddd6afe:/tmp# ./alcatel_hilink.sh 192.168.1.1
awk: /tmp/getWanInfo: No such file or directory
^SYSINFOEX:x,x,x,x,,x,"-",,"-"
awk: /tmp/getWanInfo: No such file or directory
+COPS: 0,0,,x
awk: /tmp/getImgInfo: No such file or directory
+CSQ: 0,99
awk: /tmp/getSystemInfo: No such file or directory
DEVICE:Alcatel
rm: can't remove '/tmp/getWanInfo': No such file or directory
rm: can't remove '/tmp/getImgInfo': No such file or directory
rm: can't remove '/tmp/getSysteminfo': No such file or directory

Patrząc na powód:
wget: unrecognized option: t - w - nie mam wgeta z paczki tylko standardowy ( /bin/wget -> uclient-fetch )

Więc po wywaleniu -t 3 i zmianie w files na files="getWanInfo getImgInfo getSystemInfo" (case-sensitive)

wyrzuca przy rozłaczonym:

root@f4f26ddd6afe:/tmp# ./alcatel_hilink.sh 192.168.1.1
^SYSINFOEX:x,x,x,x,,x,"-",0"wan_ip","-"
+COPS: 0,0,0"wan_ip",x
+CSQ: 0,99
DEVICE:Alcatel

przy połączonym (LTE)

root@f4f26ddd6afe:/tmp# ./alcatel_hilink.sh 192.168.1.1
^SYSINFOEX:x,x,x,x,,x,"-",2"network_type","-"
+COPS: 0,0,2"network_type",x
+CSQ: 0,99
DEVICE:Alcatel

Wygląda na to, że rand powinien być rand wink bo inaczej wypluwa tą samą odpowiedź co przy wcześniejszym odpytaniu więc dodałbym jeszcze coś w stylu:

rand=`awk 'BEGIN{srand();print int(rand()*(99000-1000))+1000 }'`

7

Odp: 3ginfo dla modemów Alcatel (HiLink)

To sobie doinstaluj wget bo lede używasz. I tak jest coś źle. Pokaż zawartość plików getWanInfo getImgInfo getSystemInfo

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

8 (edytowany przez Cezary 2016-09-16 09:35:37)

Odp: 3ginfo dla modemów Alcatel (HiLink)

w sumie można, ale bez "retry" też zadziała.
Oczywiście mea culpa - getSysteminfo więc zamiast poprawiać w files trzeba było zmienić wielkość w linijce 41 (raz robią camel-case raz nie..)

odpowiedź przy połączonym teraz

root@f4f26ddd6afe:/tmp# ./alcatel_hilink.sh 192.168.1.1
^SYSINFOEX:x,x,x,x,,x,"-",2"network_type","-"
+COPS: 0,0,2"network_type",x
+CSQ: 0,99
DEVICE:Alcatel "L850_FC_01.16_01""hard_ver"

i zawartość plików:

root@f4f26ddd6afe:/tmp# cat getImgInfo
{"chg_state":2,"signal":1,"sim_state":7,"pin_state":3,"sms":2,"sms_new_count":50,"error":1}
root@f4f26ddd6afe:/tmp# cat getSysteminfo
{"soft_ver":"L850_FC_01.16_01","hard_ver":"H.4","dev_mac":"","webui_ver":"L850_JRDRESOURCE_FC_01_2998","dev_name":"L850","dev_imei":"8634xxxxxxxxxxx","dev_msisdn":"","model":"L850","firmware_ver":"L850_QDSP_FC_01.16_01_2978","error":0}
root@f4f26ddd6afe:/tmp# cat getWanInfo
{"wan_state":2,"network_type":11,"network_name":"T-Mobile.pl","roam":1,"dur_time":1387,"wan_ip":"100.65.107.70","ip4_pri_dns":"213.158.199.1","ip4_sec_dns":"213.158.199.5","wan_ip6":"0::0","ip6_pri_dns":"0::0","ip6_sec_dns":"0::0","download":100000000,"upload":50000000,"Speed_Dl":16,"Speed_Ul":16,"usage":97271,"error":0}

9

Odp: 3ginfo dla modemów Alcatel (HiLink)

Ok, bo to nie jest linia po linii jak pokazałeś. Zaktualizowałem skrypt, pobierz go jeszcze raz i uruchom.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

10

Odp: 3ginfo dla modemów Alcatel (HiLink)

root@f4f26ddd6afe:/tmp# ./alcatel_hilink.sh 192.168.1.1
^SYSINFOEX:x,x,x,x,,x,"LTE",11,"LTE"
+COPS: 0,0,"T-Mobile.pl",x
+CSQ: 6,99
DEVICE:Alcatel L850

Nadal jest do zmiany getSystemInfo na getSysteminfo wszędzie

Wygląda lepiej smile

11

Odp: 3ginfo dla modemów Alcatel (HiLink)

Ok, będzie getSysteminfo. W sumie to tyle, parę informacji będzie się wyświetlać. Poziom sygnału jest oczywiście przybliżony - 0 to 0 później całość pokroiłem na 5 przedziałów i zakładam że 5 to będzie 100% a nie od 80 do 100%.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

12

Odp: 3ginfo dla modemów Alcatel (HiLink)

Super. Z sygnałem to wiadomo - nic się lepszego z ich podziałki nie wyciągnie.
Dzięki wielkie za ogarnięcie tematu smile

Swoją drogą modem bardzo przyzwoity i przynajmniej w moim doświadczeniu mniej kłopotliwy od Huawei E3372 - trochę mniej prądu bierze, mniej się grzeje i zachowuje naprawdę stabilnie. I występuje w jednej wersji wink

13

Odp: 3ginfo dla modemów Alcatel (HiLink)

Zainstaluj sobie nową wersję 3ginfo-text z http://dl.eko.one.pl/test/ i zobacz jak działa. Oczywiście /etc/config/3ginfo ustaw poprawnie.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

14

Odp: 3ginfo dla modemów Alcatel (HiLink)

Chyba coś nie do końca sad

Status: Rozłączony
Czas polaczenia: -
Przeslano danych: - / -
Operator: ---
Tryb pracy: -
Sila sygnalu: 0%
Urzadzenie: -
MCC MNC: - -
LAC: - (-)
LCID: - (-)
RNC: - (-)
eNB: - (-)
CID: - (-)
TAC: - (-)
CSQ: -
RSSI: - dBm
RSCP: - dBm
Ec/IO: - dB
RSRP: - dBm
RSRQ: - dB

3ginfo-test:

root@ec086b4f49c0:/tmp# 3ginfo-test

---------------------------------------------------------------
/dev/tty    /dev/ttyS0
---------------------------------------------------------------

T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480  MxCh= 1
B:  Alloc=  0/800 us ( 0%), #Int=  1, #Iso=  0
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev= 4.04
S:  Manufacturer=Linux 4.4.19 ehci_hcd
S:  Product=EHCI Host Controller
S:  SerialNumber=ehci-platform
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms

T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  3 Spd=480  MxCh= 0
D:  Ver= 2.01 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=1bbb ProdID=0195 Rev= 2.28
S:  Manufacturer=Alcatel
S:  Product=MobileBroadBand
S:  SerialNumber=0123456789ABCDEF
C:* #Ifs= 3 Cfg#= 1 Atr=80 MxPwr=500mA
A:  FirstIf#= 0 IfCount= 2 Cls=e0(wlcon) Sub=01 Prot=03
I:* If#= 0 Alt= 0 #EPs= 1 Cls=e0(wlcon) Sub=01 Prot=03 Driver=rndis_host
E:  Ad=82(I) Atr=03(Int.) MxPS=   8 Ivl=32ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=rndis_host
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=(none)
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=125us
E:  Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
---------------------------------------------------------------
3ginfo.@3ginfo[0]=3ginfo
3ginfo.@3ginfo[0].device='192.168.1.1'
3ginfo.@3ginfo[0].http_port='81'
3ginfo.@3ginfo[0].language='pl'
3ginfo.@3ginfo[0].network='wan'

15

Odp: 3ginfo dla modemów Alcatel (HiLink)

sh -x /usr/share/3ginfo/cgi-bin/3ginfo.sh zrób i pokaż wynik.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

16

Odp: 3ginfo dla modemów Alcatel (HiLink)

Forum chyba nie lubi długich wklejek bo serwuje za kazdym razem 403jkę.

Wrzuciłem zrzut na http://pastebin.com/J1Yz3TZ2

17

Odp: 3ginfo dla modemów Alcatel (HiLink)

Samo /usr/share/3ginfo/scripts/alcatel_hilink.sh 192.168.1.1 wykonaj.

Czy zainstalowałeś wgeta?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

18

Odp: 3ginfo dla modemów Alcatel (HiLink)

Ale wstyd - jasne,  że wget.

jeszcze tylko jeden fehler - pokazuje rozłaczony pomimo, że połączenie jest:

# 3ginfo
Status: Rozłączony
Czas polaczenia: -
Przeslano danych: - / -
Operator: T-Mobile
Tryb pracy: DC HSPA+
Sila sygnalu: 100%
Urzadzenie: Alcatel L850
MCC MNC: 260 02
LAC: - (-)
LCID: - (-)
RNC: - (-)
eNB: - (-)
CID: - (-)
TAC: - (-)
CSQ: 31
RSSI: -51 dBm
RSCP: - dBm
Ec/IO: - dB
RSRP: - dBm
RSRQ: - dB

19

Odp: 3ginfo dla modemów Alcatel (HiLink)

Pokaż uci show network

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

20 (edytowany przez marcoos 2016-09-20 17:33:15)

Odp: 3ginfo dla modemów Alcatel (HiLink)

Znowu mea culpa - przecież powinien być podany konkretny interfejs a nie zone. Poprawiłem i działa idealnie smile

Jeszcze raz - dziękuje bardzo za pomoc i dodanie obsługi smile