Extras
Raporty doręczenia
Oprogramowanie SMSEagle umożliwia włączenie raportów doręczenia dla każdej wysłanej wiadomości SMS. Raporty doręczenia to funkcja, która pozwala otrzymać potwierdzenie, że SMS został odebrany na telefonie odbiorcy.
Aby włączyć raporty doręczenia, przejdź do web-GUI > menu Settings i ustaw „Delivery Reports” na „Yes”
Po włączeniu raportów doręczenia w web-GUI, możesz zweryfikować, czy SMS został dostarczony do odbiorcy:
W web-GUI W menu Folders > Sent items > otwórz wiadomość, którą chcesz sprawdzić. Naciśnij „Show Details“ w prawym górnym rogu wiadomości. Pole „Modem Status” zawiera informacje o statusie doręczenia
Korzystanie z Callback URL Funkcja CallbackURL umożliwia zdefiniowanie webhooka dla zmiany statusu doręczenia. Webhooki są standardowymi punktami końcowymi HTTP zaimplementowanymi w Twojej zewnętrznej aplikacji, które przyjmują żądania HTTP z urządzenia SMSEagle. Webhooki eliminują potrzebę ciągłego wysyłania żądań do urządzenia SMSEagle w celu sprawdzenia statusu wiadomości. Więcej szczegółów znajdziesz w rozdziale Callback URL tego Podręcznika Użytkownika.
Korzystanie z API
Użyj metody „read_sms”, aby pobrać dane dla wybranego SMS-a w folderze sentitems. Dane będą zawierać kolumny „Status” i „DeliveryDateTime” zawierające informacje o statusie doręczenia wiadomości. Aby uzyskać więcej informacji o możliwych wartościach kolumny „Status”, zapoznaj się z dokumentacją API SMSEagle, tabela „Field Description Of Response Data – Sentitems Folder.”
Łączenie się bezpośrednio z bazą danych SMSEagle
Baza danych SMSEagle działa na silniku bazy danych PostgreSQL. Możesz użyć bezpośredniego dostępu do bazy danych do odczytu/zapisu wiadomości SMS bezpośrednio z/do bazy danych za pomocą zapytań SQL.
Dostęp do bazy danych dla zewnętrznych aplikacji jest domyślnie wyłączony. Aby go włączyć, przejdź do webGUI > menu Settings i włącz następujące ustawienie:
Po włączeniu dostępu do bazy danych możliwe jest połączenie się z bazą danych z zewnętrznej aplikacji, używając następujących danych uwierzytelniających:
Host: adres IP Twojego urządzenia
Nazwa bazy danych:
smseagleUżytkownik:
smseagleuserHasło:
postgreeagle
Wstrzykiwanie krótkiego SMS-a za pomocą SQL
Najprostszym przykładem jest krótka wiadomość tekstowa (ograniczona do 160 znaków):
INSERT INTO outbox (
DestinationNumber,
TextDecoded,
CreatorID,
Coding,
Class,
SenderID
) VALUES (
'1234567',
'This is a SQL test message',
'Program',
'Default_No_Compression',
-1,
'smseagle1'
);
INSERT INTO user_outbox (
id_outbox,
id_user
) SELECT CURRVAL(pg_get_serial_sequence('outbox','ID')), 1;
W powyższym przykładzie wiadomość będzie należeć do użytkownika o id_user 1 (domyślnie «admin»). Wartości id_user dla innych użytkowników znajdziesz w tabeli public.”user”. Pole SenderID zawiera numer identyfikacyjny modemu SMSEagle. Dla modemu 1 SenderID = smseagle1, a dla modemu 2 SenderID = smseagle2.
Wstrzykiwanie długiego SMS-a za pomocą SQL
Wstawianie wiadomości wieloczęściowych jest trochę bardziej skomplikowane, musisz również skonstruować nagłówek UDH i zapisać go w formie zapisanej szesnastkowo w polu UDH. O ile nie masz dobrego powodu, aby zrobić to ręcznie, użyj API.
Dla długiej wiadomości tekstowej, UDH zaczyna się od 050003, po którym następuje bajt jako referencja wiadomości (możesz umieścić tam każdą wartość szesnastkową, ale powinna być inna dla każdej wiadomości, D3 w poniższym przykładzie), bajt określający liczbę wiadomości (02 w przykładzie, powinien być unikalny dla każdej wiadomości wysyłanej na ten sam numer telefonu) oraz bajt określający numer bieżącej wiadomości (01 dla pierwszej wiadomości, 02 dla drugiej itd.).
Na przykład, długa wiadomość tekstowa złożona z dwóch części mogłaby wyglądać następująco:
INSERT INTO outbox (
"DestinationNumber",
"CreatorID",
"MultiPart",
"UDH",
"TextDecoded",
"Coding",
"Class",
"SenderID"
) VALUES (
'1234567',
'Program',
'true',
'050003D30201',
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, qui',
'Default_No_Compression',
-1,
'smseagle1'
)
INSERT INTO outbox_multipart (
"ID",
"SequencePosition",
"UDH",
"TextDecoded",
"Coding",
"Class"
) SELECT
CURRVAL(pg_get_serial_sequence('outbox','ID')),
2,
'050003D30202',
's nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.',
'Default_No_Compression',
-1;
INSERT INTO user_outbox (
id_outbox,
id_user
) SELECT
CURRVAL(pg_get_serial_sequence('outbox','ID')),
1;
Uwaga: Dodanie UDH oznacza, że masz mniej miejsca na tekst, w powyższym przykładzie możesz użyć tylko 153 znaków w jednej wiadomości.
Skrypty czyszczące bazę danych
Dodaliśmy kilka przydatnych skryptów, które mogą być używane do usuwania wiadomości SMS z bazy danych poprzez Linux CLI. Skrypty znajdują się w następującym katalogu: /mnt/nand-user/scripts/
db_delete – skrypt do usuwania SMS-ów z folderów Inbox, SentItems starszych niż podana data. Użycie:
./db_delete YYYYMMDDhhmmdb_delete_7days – skrypt do usuwania SMS-ów z folderów Inbox, Sentitems starszych niż 7 dni. Użycie:
./db_delete_7daysdb_delete_allfolders – skrypt do czyszczenia folderów bazy danych PostgreSQL (Inbox, SentItems, Outbox). Zaprojektowany specjalnie do okresowego uruchamiania przez cron. Użycie:
./db_delete_allfoldersdb_delete_select - skrypt do usuwania SMS-ów z wybranego folderu bazy danych (Inbox, Outbox, SentItems, Trash). Użycie:
./db_delete_select {inbox|outbox|sentitems|trash}
Dodawanie skryptu do demona systemowego cron
Utwórz plik w katalogu /etc/cron.d/ o żądanej nazwie (np. pico db_cleaner)
Przykładowa zawartość tego pliku:
0 0 1 * * root /mnt/nand-user/scripts/db_delete_allfoldersSpowoduje to uruchamianie skryptu czyszczącego każdego 1go dnia miesiąca.
Agent SNMP
„Simple Network Management Protocol (SNMP) to internetowy standardowy protokół do zarządzania urządzeniami w sieciach IP. Jest wykorzystywany głównie w systemach zarządzania sieciami do monitorowania urządzeń podłączonych do sieci w celu wykrywania warunków wymagających uwagi administracyjnej” (źródło: Wikipedia).
Urządzenie SMSEagle posiada wbudowany agent Net-SNMP. Agent SNMP zapewnia dostęp do drzewa MIB Linux Host urządzenia, a dodatkowo (za pomocą rozszerzenia NET-SNMP-EXTEND-MIB) umożliwia dostęp do niestandardowych metryk specyficznych dla SMSEagle.
Dostępne metryki SNMP opisujące stan urządzenia SMSEagle to:
Nazwa metryki |
Opis |
OID |
|---|---|---|
GSM_Signal1 |
Zwraca siłę sygnału 3G/4G w procentach dla modemu 1. Zakres wartości: 0-100. Jeśli modem jest odłączony od sieci komórkowej, GSM_Signal zwraca 0. |
.1.3.6.1.4.1.8072.1.3.2.3.1.2.11.71.83.77.95.83.105.103.110.97.108.49 |
GSM_Signal[X] |
Zwraca siłę sygnału 3G/4G w procentach dla modemu X. Zakres wartości: 0-100. Jeśli modem jest odłączony od sieci komórkowej, GSM_Signal zwraca 0. |
.1.3.6.1.4.1.8072.1.3.2.3.1.2.11.71.83.77.95.83.105.103.110.97.108.[48+X] |
GSM_NetName1 |
Zwraca nazwę sieci komórkowej na modemie 1 |
.1.3.6.1.4.1.8072.1.3.2.3.1.2.12.71.83.77.95.78.101.116.78.97.109.101.49 |
GSM_NetName[X] |
Zwraca nazwę sieci komórkowej używanej na modemie X |
.1.3.6.1.4.1.8072.1.3.2.3.1.2.12.71.83.77.95.78.101.116.78.97.109.101.[48+X] |
GSM_ModemState[X] gdzie X jest numerem modemu |
Zwraca informację o stanie modemu enabled/disabled |
.1.3.6.1.4.1.8072.1.3.2.3.1.2.11.77.111.100.101.109.83.116.97.116.101.49 (dla 1. modemu) .1.3.6.1.4.1.8072.1.3.2.3.1.2.11.77.111.100.101.109.83.116.97.116.101.50 (for 2nd modem) |
FolderOutbox_Total |
Zwraca liczbę wiadomości SMS w folderze Outbox (długość kolejki wychodzącej) |
.1.3.6.1.4.1.8072.1.3.2.3.1.2.18.70.111.108.100.101.114.79.117.116.98.111.120.95.84.111.116.97.108 |
FolderInbox_Total |
Zwraca liczbę wiadomości SMS w folderze Inbox |
.1.3.6.1.4.1.8072.1.3.2.3.1.2.17.70.111.108.100.101.114.73.110.98.111.120.95.84.111.116.97.108 |
FolderSent_Last24H |
Zwraca liczbę wiadomości SMS wysłanych z urządzenia w ciągu ostatnich 24 godzin |
.1.3.6.1.4.1.8072.1.3.2.3.1.2.18.70.111.108.100.101.114.83.101.110.116.95.76.97.115.116.50.52.72 |
FolderSent_Last1M |
Zwraca liczbę wiadomości SMS wysłanych z urządzenia w ciągu ostatniego miesiąca |
.1.3.6.1.4.1.8072.1.3.2.3.1.2.17.70.111.108.100.101.114.83.101.110.116.95.76.97.115.116.49.77 |
FolderSent_Last24HSendErr |
Zwraca liczbę wiadomości SMS wysłanych z błędem w ciągu ostatnich 24h. Błąd występuje, gdy modem 3G nie może wysłać wiadomości SMS lub wiadomość jest odrzucona przez operatora 3G/4G (najczęściej dzieje się to, gdy środki na karcie SIM typu pre-paid zostały wykorzystane) |
.1.3.6.1.4.1.8072.1.3.2.3.1.2.25.70.111.108.100.101.114.83.101.110.116.95.76.97.115.116.50.52.72.83.101.110.100.69.114.114 |
Temp |
Zwraca ostatnią wartość temperatury (w °C) z wewnętrznego czujnika DHT22. Wymaga włączenia czujnika. |
.1.3.6.1.4.1.8072.1.3.2.4.1.2.4.84.101.109.112.1 |
Humidity |
Zwraca ostatnią wartość wilgotności (w %) z wewnętrznego czujnika DHT22. Wymaga włączenia czujnika. |
.1.3.6.1.4.1.8072.1.3.2.3.1.2.8.72.117.109.105.100.105.116.121 |
Temp[X] (where X is between 1 and 4) |
Zwraca ostatnią wartość temperatury (w °C) z: Temp1: wewnętrznego czujnika temperatury. Temp2-Temp4: zewnętrznych czujników temperatury 1-Wire. |
.1.3.6.1.4.1.8072.1.3.2.4.1.2.5.84.101.109.112.49.1 (for 1st sensor) .1.3.6.1.4.1.8072.1.3.2.4.1.2.5.84.101.109.112.50.1 (for 2nd sensor), etc. |
SIM_State[X] where X is the no of modem |
Zwraca informację o fizycznym stanie karty SIM |
.1.3.6.1.4.1.8072.1.3.2.3.1.2.10.83.73.77.95.83.116.97.116.101.49 (for 1st modem) .1.3.6.1.4.1.8072.1.3.2.3.1.2.10.83.73.77.95.83.116.97.116.101.50 (for 2nd modem) |
SIM_RegState[X], gdzie X to numer modemu |
Zwraca informacje o stanie rejestracji karty SIM w sieci mobilnej. |
.1.3.6.1.4.1.8072.1.3.2.3.1.2.13.83.73.77.95.82.101.103.83.116.97.116.101.49 (dla 1. modemu) .1.3.6.1.4.1.8072.1.3.2.3.1.2.13.83.73.77.95.82.101.103.83.116.97.116.101.50 (dla 2. modemu) |
Wartości wynikowe
Za pomocą OID
Wartości wynikowe dla każdej niestandardowej metryki są dostępne i można je pobrać z OID podanego w tabeli powyżej.
Za pomocą nazwy tekstowej
Alternatywnie wartości wynikowe dla każdej niestandardowej metryki można pobrać, używając nazw tekstowych z drzewa OID pod: NET-SNMP-EXTEND-MIB::nsExtendOutputFull.”[METRIC NAME]”
For example:
Result value for parameter GSM_Signal1:
NET-SNMP-EXTEND-MIB::nsExtendOutputFull.”GSM_Signal1”Jeśli wybrane narzędzie SNMP nie może uzyskać dostępu do obiektów NET-SNMP-EXTEND-MIB, możesz pobrać definicje MIB z: https://www.smseagle.eu/download/NET-SNMP-EXTEND-MIB.txt
Odczytywanie wartości wynikowych Aby testowo odczytać wartości parametrów z agenta SNMP, możesz użyć dowolnych narzędzi dostępnych dla protokołu SNMP (na przykład: biblioteki NET-SNMP dla systemu Linux lub iReasoning MiB-Browser dla systemu Windows).
Przykład odczytu wartości GSM_Signal1 za pomocą biblioteki NET-SNMP
a) Komenda do odczytu wartości wynikowej:
snmpget -v 2c -c public localhost .1.3.6.1.4.1.8072.1.3.2.3.1.2.11.71.83.77.95.83.105.103.110.97.108.49
Wynik:
NET-SNMP-EXTEND-MIB::nsExtendOutputFull.”GSM_Signal1” = STRING: 54
Komentarz: Siła sygnału 3G/4G wynosi 54%
Przykład odczytu wartości GSM_NetName1 za pomocą biblioteki NET-SNMP
a) Komenda do odczytu wartości wynikowej:
snmpget -v 2c -c public localhost .1.3.6.1.4.1.8072.1.3.2.3.1.2.12.71.83.77.95.78.101.116.78.97.109.101.49
Wynik:
NET-SNMP-EXTEND-MIB::nsExtendOutputFull.”GSM_NetName1” = STRING: PLAY
Komentarz: Sieć aktualnie używana przez karte SIM #1 to PLAY
Przykład odczytu wartości FolderOutbox_Total za pomocą biblioteki NET-SNMP (i tekstowej nazwy metryki)
a) Komenda do odczytu wartości wynikowej:
snmpget -v 2c -c public ip-of-smseagle «NET-SNMP-EXTEND-MIB::nsExtendOutputFull.”FolderOutbox_Total”»
Wynik:
NET-SNMP-EXTEND-MIB::nsExtendOutputFull.”FolderOutbox_Total” = STRING: 0
Komentarz: Liczba wiadomości SMS czekających w kolejce wychodzącej wynosi 0
Przykład odczytu czasu działania systemu (uptime) z hosta Linux za pomocą biblioteki NET-SNMP
a) Komenda do odczytu wartości wynikowej:
snmpget -v 2c -c public ip-of-smseagle system.sysUpTime.0
Wynik:
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (216622) 0:36:06.22
Komentarz: System Linux działa od 36 minut i 6,22 sekundy
Przykład przeglądania parametrów rozszerzenia SMSEagle w drzewie MIB przy użyciu biblioteki NET-SNMP
a) Komenda do odczytu wartości wynikowej:
snmpwalk -v 2c -c public ip-of-smseagle .1.3.6.1.4.1.8072.1.3.2.3.1.2
Wynik:
NET-SNMP-EXTEND-MIB::nsExtendOutputFull.”GSM_Signal1” = STRING: 54
NET-SNMP-EXTEND-MIB::nsExtendOutputFull.”GSM_NetName1” = STRING: PLAY
NET-SNMP-EXTEND-MIB::nsExtendOutputFull.”GSM_NetName2” = STRING: PLAY
NET-SNMP-EXTEND-MIB::nsExtendOutputFull.”FolderInbox_Total” = STRING: 15
NET-SNMP-EXTEND-MIB::nsExtendOutputFull.”FolderSent_Last1M” = STRING: 19
NET-SNMP-EXTEND-MIB::nsExtendOutputFull.”FolderOutbox_Total” = STRING: 0
NET-SNMP-EXTEND-MIB::nsExtendOutputFull.”FolderSent_Last24H” = STRING: 0
NET-SNMP-EXTEND-MIB::nsExtendOutputFull.” FolderSent_Last24HSendErr” = STRING: 0
Przykład przeglądania parametrów rozszerzenia SMSEagle w drzewie MIB przy użyciu przeglądarki MIB
Konfiguracja kontroli dostępu SNMP v3
Domyślnie urządzenia SMSEagle korzystają z kontroli dostępu SNMP v2. Użycie wersji v3 może zwiększyć bezpieczeństwo, jednak nie jest to obowiązkowe. Aby łatwo przełączyć się na kontrolę dostępu SNMP v3, przygotowaliśmy specjalny skrypt shell znajdujący się w katalogu /mnt/nand-user/smseagle.
Zaloguj się przez SSH na konto root
Przejdź do: cd /mnt/nand-user/smseagle/
Skrypt konfiguracyjny: ./snmpv3
Skrypt można uruchomić z następującymi parametrami:
add
del
enablev2
disablev2
Aby dodać USER dla v3, uruchom:
./snmpv3 add USERNAME PASSWORD ENCRYPTIONPASSWORD
Aby usunąć USER, uruchom:
./snmpv3 del
Aby wyłączyć politykę dostępu v2, uruchom:
./snmpv3 disablev2
Aby włączyć politykę dostępu v2, uruchom:
./snmpv3 enablev2
Przekazywanie logów do zewnętrznego serwera
Nasze urządzenia korzystają z rsyslog do zarządzania logami. Tutaj opisujemy, jak skonfigurować dodatkowe reguły dla demona rsyslog: rsyslogd. Jest to tylko krótki wyciąg z podręcznika rsyslog dostępnego na stronie internetowej. Pełne informacje są dostępne na: http://www.rsyslog.com/
Konfiguracja rsyslogd jest zarządzana za pomocą pliku konfiguracyjnego znajdującego się w /etc/rsyslog.conf
Na końcu pliku konfiguracyjnego dodaj:
*.* action(type=”omfwd” target=”SERVER_IP” port=”PORT” protocol=”PROTOCOL”
action.resumeRetryCount=”10”
queue.type=”linkedList” queue.size=”10000”)
gdzie: SERVER_IP – adres IP (lub FQDN) serwera odbierającego PORT – port na serwerze odbierającym PROTOCOL – jedna z wartości: tcp, udp
Przykład:
*.* action(type=”omfwd” target=”192.168.0.250” port=”10514” protocol=”tcp”
action.resumeRetryCount=”10”
queue.type=”linkedList” queue.size=”10000”)
Szyfrowanie SSL ruchu logów: prosimy zapoznać się z tym artykułem: https://www.rsyslog.com/doc/v8-stable/tutorials/tls_cert_summary.html
Automatyczne sprawdzanie aktualizacji oprogramowania
Oprogramowanie SMSEagle jest w procesie ciągłego doskonalenia. Słuchamy naszych klientów, a nowe wydania powstają na podstawie ich uwag/prośb. Aktualizacje oprogramowania są wydawane często i dają dostęp do nowych funkcji oraz poprawek zgłoszonych problemów. Web-GUI daje możliwość automatycznego sprawdzania nowych aktualizacji oprogramowania. Można to zrobić w dwóch sposobach:
Ręczne SPRAWDZANIE
Aby ręcznie sprawdzić dostępność aktualizacji oprogramowania, przejdź do menu Settings > zakładka Updates. Kliknij przycisk „Check for software update now”. W górnej części ekranu pojawi się czerwony baner z informacją, czy oprogramowanie jest aktualne.
Automatyczne sprawdzanie
Aby włączyć automatyczne sprawdzanie aktualizacji oprogramowania, przejdź do menu Settings > zakładka Updates i zaznacz opcję „Automatically check for software updates”. Włączy to okresowe sprawdzanie (raz w miesiącu) dostępności aktualizacji oprogramowania. Jeśli nowa aktualizacja jest dostępna, w menu Settings> Sysinfo pojawi się komunikat „Update Available” – przy numerze aktualnej wersji oprogramowania.
Jeśli wybierzesz opcję „Notify Admin about new software version by SMS”, urządzenie dodatkowo wyśle SMS do domyślnego konta administratora (jeśli w koncie wprowadzono numer telefonu) z powiadomieniem o nowej aktualizacji oprogramowania.
Uwaga: Aby ta funkcja działała, urządzenie SMSEagle musi mieć połączenie HTTPS z adresem updates.smseagle.eu.
Baza wiedzy i portal wsparcia
Więcej informacji i przydatnych wskazówek dotyczących konfiguracji urządzenia SMSEagle można znaleźć w naszej internetowej bazie wiedzy i na portalu wsparcia pod adresem: https://support.smseagle.eu