Dodatki
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 wiadomość SMS została odebrana 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 wiadomość SMS została dostarczona 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

Za pomocą Webhooków Funkcja CallbackURL pozwala zdefiniować webhook dla zmiany statusu doręczenia. Webhooki to standardowe endpointy HTTP zaimplementowane w Twojej zewnętrznej aplikacji, które będą akceptować żądania HTTP z urządzenia SMSEagle. Webhooki eliminują konieczność 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 niniejszej instrukcji obsługi.
Za pomocą API
Użyj metody „read_sms”, aby pobrać dane dla wybranej wiadomości SMS w folderze sentitems. Dane będą zawierać kolumny „Status” i „DeliveryDateTime”, które zawierają informacje o statusie doręczenia wiadomości. Więcej informacji na temat możliwych wartości kolumny „Status” znajdziesz w tabeli „Field Description Of Response Data – Sentitems Folder” w APIv1 Reference.
Bezpośrednie łączenie się z bazą danych SMSEagle
Baza danych SMSEagle działa na silniku bazodanowym PostgreSQL. Możesz skorzystać z bezpośredniego dostępu do bazy danych, aby odczytywać/zapisywać wiadomości SMS bezpośrednio z/do bazy danych za pomocą zapytań SQL.
Dostęp do bazy danych dla aplikacji zewnętrznych 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żna połączyć się z bazą danych z aplikacji zewnętrznej, używając następujących danych uwierzytelniających:
Host: adres IP Twojego urządzenia
Nazwa bazy danych:
smseagleUżytkownik:
smseagleuserHasło:
postgreeagle
Wstawianie krótkich wiadomości SMS 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, SenderID = smseagle2 dla modemu 2, itd.
Wstawianie długich wiadomości SMS za pomocą SQL
Wstawianie wiadomości wieloczęściowych jest nieco bardziej skomplikowane, musisz również skonstruować nagłówek UDH i zapisać go w postaci szesnastkowej w polu UDH. Jeśli nie masz dobrego powodu, aby robić to ręcznie, skorzystaj z API.
Dla długiej wiadomości tekstowej, UDH zaczyna się od 050003, po którym następuje bajt jako referencja wiadomości (możesz wpisać dowolną wartość szesnastkową, ale powinna być różna dla każdej wiadomości, D3 w poniższym przykładzie), bajt liczby wiadomości (02 w przykładzie, powinien być unikalny dla każdej wiadomości wysyłanej do tego samego numeru telefonu) oraz bajt numeru bieżącej wiadomości (01 dla pierwszej wiadomości, 02 dla drugiej, itd.).
Na przykład, długa wiadomość tekstowa składająca się z dwóch części może 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 pojedynczej wiadomości.
Skrypty czyszczące bazę danych
Dodaliśmy kilka przydatnych skryptów, które mogą być użyte do usuwania wiadomości SMS z bazy danych za pomocą Linux CLI. Skrypty znajdują się w następującym katalogu: /opt/scripts/
db_delete – skrypt do usuwania SMS z folderów Inbox, SentItems starszych niż podana data. Użycie:
./db_delete YYYYMMDDhhmmdb_delete_7days – skrypt do usuwania SMS 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 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 wewnątrz katalogu /etc/cron.d/ o dowolnej nazwie (np. pico db_cleaner)
Przykładowa zawartość tego pliku:
0 0 1 * * root /opt/scripts/db_delete_allfoldersSpowoduje to uruchamianie skryptu czyszczącego każdego 1go dnia miesiąca.
Agent SNMP
„Simple Network Management Protocol (SNMP) to standardowy internetowy protokół do zarządzania urządzeniami w sieciach IP. Jest wykorzystywany głównie w systemach zarządzania siecią do monitorowania urządzeń podłączonych do sieci pod kątem warunków wymagających uwagi administracyjnej” (źródło: Wikipedia).
Urządzenie SMSEagle posiada wbudowanego agenta Net-SNMP. Agent SNMP zapewnia dostęp do drzewa MIB hosta Linux danego urządzenia, a dodatkowo (przy użyciu 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 to numer 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) |
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ść zostanie odrzucona przez operatora 3G/4G (najczęściej ma to miejsce, gdy środki na karcie SIM typu pre-paid się skończą) |
.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 |
SIM_State[X] gdzie X to numer modemu |
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 (dla 1. modemu) |
SIM_RegState[X] gdzie X to numer modemu |
Zwraca informację o stanie rejestracji karty SIM w sieci komórkowej. |
.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) |
Wartości wyników
Za pomocą OID
Wartości wyników dla każdej metryki niestandardowej są dostępne i można je pobrać z OID podanego w tabeli powyżej.
Za pomocą nazwy tekstowej
Alternatywnie wartości wyników dla każdej metryki niestandardowej można pobrać za pomocą nazw tekstowych z drzewa OID pod: NET-SNMP-EXTEND-MIB::nsExtendOutputFull.”[NAZWA METRYKI]”
Na przykład: Wartość wyniku dla parametru 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
Odczyt wartości wyników Aby przetestować odczyt 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 Linuksa lub iReasoning MiB-Browser dla Windows).
Przykład odczytu wartości GSM_Signal1 za pomocą biblioteki NET-SNMP
a) Komenda do odczytu wartości wyniku:
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: Wartość siły sygnału 3G/4G to 54%
Przykład odczytu wartości GSM_NetName1 za pomocą biblioteki NET-SNMP
a) Komenda do odczytu wartości wyniku:
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: Aktualnie używana sieć dla karty SIM #1 to PLAY
Przykład odczytu wartości FolderOutbox_Total przy użyciu biblioteki NET-SNMP (i tekstowej nazwy metryki)
a) Komenda do odczytu wartości wyniku:
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 outbox to 0
Przykład odczytu czasu działania systemu (uptime) z hosta Linux przy użyciu biblioteki NET-SNMP
a) Komenda do odczytu wartości wyniku:
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 nieprzerwanie od 36 godzin i 6,22 minuty
Przykład przeglądania parametrów rozszerzenia SMSEagle w drzewie MIB przy użyciu biblioteki NET-SNMP
a) Komenda do odczytu wartości wyniku:
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_Signal2” = 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 (mib-browser)

Konfiguracja kontroli dostępu SNMP v3
Domyślnie urządzenia SMSEagle wykorzystują kontrolę dostępu SNMP v2. Użycie wersji v3 może zwiększyć poziom bezpieczeństwa, 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 /opt/smseagle.
Zaloguj się przez SSH, używając konta root
Przejdź do: cd /opt/smseagle/
Skrypt konfiguracyjny: ./snmpv3
Skrypt może być uruchamiany z następującymi parametrami:
add
del
enablev2
disablev2
Aby dodać użytkownika v3, uruchom:
./snmpv3 add USERNAME PASSWORD ENCRYPTIONPASSWORD
Aby usunąć użytkownika, 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 serwera zewnętrznego
Nasze urządzenia korzystają z rsyslog do zarządzania logami. Poniżej opisujemy, jak skonfigurować dodatkowe reguły dla demona rsyslog: rsyslogd. To tylko krótki wyciąg ze strony podręcznika rsyslog. Pełne informacje dostępne są pod adresem: https://www.rsyslog.com/
Konfiguracją rsyslogd zarządza się za pomocą pliku konfiguracyjnego znajdującego się w /etc/rsyslog.conf
Na dole 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: zapoznaj 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 sugestii i próśb. Aktualizacje oprogramowania są wydawane często i oferują dostęp do nowych funkcji oraz poprawek zgłoszonych problemów. Web-GUI umożliwia automatyczne sprawdzanie dostępności nowych aktualizacji oprogramowania. Można to zrobić na dwa sposoby:
Ręczne SPRAWDZANIE
Aby ręcznie sprawdzić dostępność aktualizacji oprogramowania, przejdź do menu Settings > zakładka Maintenance. Kliknij przycisk „Check manually now”. Na górze pojawi się czerwony dymek z informacją, czy oprogramowanie jest aktualne.
Sprawdzanie automatyczne
Aby uruchomić automatyczne sprawdzanie dostępności 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 dostępna jest nowa aktualizacja, w menu Settings> Sysinfo pojawi się komunikat „Update Available” – obok numeru aktualnej wersji oprogramowania.
Jeśli zaznaczysz opcję „Notify Admin about new software version by SMS”, urządzenie dodatkowo wyśle SMS na domyślne konto administratora (jeśli w koncie wprowadzono numer telefonu) z powiadomieniem o nowej aktualizacji oprogramowania.

Zrzut ekranu z „General settings-Updates”
Uwaga: Twoje urządzenie SMSEagle musi mieć połączenie HTTPS z adresem www.smseagle.eu, aby ta funkcja działała.
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 portalu wsparcia pod adresem: https://support.smseagle.eu