Wysyłanie powiadomień SMS
SowaSQL oferuje także możliwość wysyłania powiadomień do czytelników na ich telefony komórkowe w postaci zwięzłych wiadomości tekstowych (SMS).
Wysyłanie SMSów nie jest drogie (od 4 do 16 gr za jeden, w zależności od operatora, rodzaju wiadomości i wybranej taryfy), ale ilość zdarzeń, o jakich wysyłane mogą być powiadomienia jest duża i przed decyzją o uruchomieniu usługi warto przeanalizować szacunkowy koszt i ewentualnie ograniczyć wysyłanie SMSów tylko do najważniejszych zdarzeń (np. tylko do upomnień o przetrzymaniu i informacji o pozycji do odbioru).
Za wysyłkę SMSów odpowiada zewnętrzny operator tzw. bramki SMS, z którą oprogramowanie biblioteczne współpracuje w celu nadania wiadomości SMS. System SowaSQL posiada uniwersalny moduł umożliwiający współpracę z dowolnym operatorem bramki SMS, który udostępnia publiczne API dla swoich usług.
Uruchomienie usługi powiadomień SMS w przebiega w następujący sposób:
biblioteka rejestruje konto u operatora bramki SMS - może wybrać opcję pre-paid, post-paid albo abonament. Szczegóły na stronie operatora (zob. http://www.smsapi.pl/cennik)
firma SOKRATES-software przeprowadza instalację i konfigurację modułu SMAILER - biblioteka musi jedynie dostarczyć nazwę użytkownika i hasło do API, które generuje na stronie operatora bramki SMS
administrator systemu konfiguruje parametry systemu SowaSQL, które określą dla jakich zdarzeń i o jakiej treści powiadomienia SMS będą wysyłane (niezależnie od powiadomień email)
zainteresowani czytelnicy muszą zarejestrować swój numer do powiadomień w wypożyczalni (pracownik biblioteki wprowadza go na formularzu czytelnika do pola Telefon do powiadomień SMS).
Konfiguracja
Wymagane jest skonfigurowanie modułu zewnętrznego do wysyłania poczty elektronicznej (SMAILER), a następnie ustawienie odpowiedniej wartości parametru core.notifier.default.sms_events. Parametr ten powinien zawierać kody operacji, dla których generowane będą powiadomienia SMS.
Kod operacji | Rodzaj zdarzenia |
---|---|
R | zmiana statusu zamówienia na rezerwację (pozycja do odbioru przez czytelnika) |
O | rezerwacja przechodzi w stan "do odbioru" (prośba o odbiór zarezerwowanej pozycji) |
r | skasowanie nieodebranej rezerwacji przez bibliotekarza |
m | upomnienie w sprawie przetrzymanych pozycji |
k | upomnienie w sprawie nieopłaconych należności |
p | przypomnienie o zbliżającym się terminie zwrotu pozycji |
t | przypomnienie o nieodebranych rezerwacjach |
Przykład: wysyłanie informacji o zmianie statusu zamówienia oraz o przetrzymaniach
sowizor config nazwa_katalogu core.notifier.default.sms_events Rm
Opcjonalnie biblioteka może także zmodyfikować treść powiadomień. Poniższa tabela zawiera nazwy parametrów oraz ich domyślną wartość:
Operacja | Parametr | Wartość domyślna | Przykład |
---|---|---|---|
R | SMS_TXT_ZAM2REZ | ${agenda}: Odbierz zamówienie - ${opis:25} | Wypożyczalnia Główna: Odbierz zamówienie - Wojownicza rewolta bombar |
O | SMS_TXT_ODB_P | ${agenda}: Odbierz rezerwację - ${opis:25} | Wypożyczalnia Główna: Odbierz rezerwację - Wojownicza rewolta bombar |
r | SMS_TXT_REZ_U | ${agenda}: Skasowano rezerwację - ${opis:25} | Wypożyczalnia Główna: Skasowano rezerwację - Wojownicza rewolta bombar |
m | SMS_TXT_UP | ${agenda}: Prosimy o zwrot przetrzymanych pozycji (${liczba}) | Wypożyczalnia Główna: Prosimy o zwrot przetrzymanych pozycji (15) |
k | SMS_TXT_KAR | ${agenda}: Prosimy o uregulowanie nieopłaconych należności (${kwota} zł) | Wypożyczalnia Główna: Prosimy o uregulowanie nieopłaconych należności (2,30 zł) |
p | SMS_TXT_PRZ | ${agenda}: Wkrótce upływa termin zwrotu ${liczba} pozycji | Wypożyczalnia Główna: Wkrótce upływa termin zwrotu 3 pozycji |
t | SMS_TXT_REZ_P | ${agenda}: Przypominamy o nieodebranych rezerwacjach (${liczba}) | Wypożyczalnia Główna: Przypominamy o nieodebranych rezerwacjach (55) |
Wartości domyślne zostały tak dobrane, aby zawierały możliwie precyzyjną informację i nie przekraczały 70 znaków! Wynika to z faktu, że wiadomość SMS posiadająca polskie znaki diakrytyczne ograniczona jest właśnie do 70 znaków na 1 SMS - jeśli wiadomość nadana przez system przekroczy tą granicę (nawet o jeden znak!), wówczas operator policzy taką wiadomość jako 2 lub więcej wysłanych wiadomości SMS. Maksymalnie można wysłać wiadomość złożoną z 6 SMSów, czyli 360 znaków. Więcej informacji na ten temat dostarcza operator bramki SMS.
Uwaga: W wersji STRIX SMS wysyłane są domyślnie w wersji znormalizowanej (bez polskich znaków), zatem limit obowiązujący to 160 znaków.
Możliwe jest ograniczenie wysyłki SMSów tylko do zdarzeń dotyczącej wybranych agend (np. pozwala to wykluczyć zdarzenia z czytelni). Domyślnie SMSy wysyłane są dla zdarzeń ze wszystkich agend, jeśli ma być inaczej, należy listę agend dodać do parametru CFG_SMS_AGENDY.
Przykład ustawienia parametru CFG_SMS_AGENDY
sowizor config nazwa_katalogu CFG_SMS_AGENDY '["10","11","20","21"]'
Jeśli koszt wysyłki SMSów nie stanowi dużego problemu dla biblioteki, a chce jak najprzyjaźniej informować czytelnika o wybranych zdarzeniach, może także ustawić automatyczną stopkę, doklejaną do każdej wysyłanej wiadomości SMS. Jest to parametr: SMS_TXT_FOOTER. Domyślnie jest on pusty. Np. ustawienie tego parametru:
Ustawienie "stopki" wiadomości SMS
sowizor config nazwa_katalogu SMS_TXT_FOOTER "Biblioteka Publiczna w Testowie"
spowoduje dla wiadomości dotyczącej np. zmiany statusu zamówienia książki w filii nr 5 wygenerowanie SMSa o treści: "Filia nr 5: Odbierz zamówienie - Dziady cz. III / Biblioteka Publiczna w Testowie". Taka wiadomość znacznie przekracza limit 70 znaków, dlatego operator policzy ją jako 2 wiadomości SMS.
Działania dodatkowe
Warto zmodyfikować sowa_server_profiles.xml dodając w sekcji <!-- PROGRAMS --> zapis “sms” dla uaktywnienia wysyłki ręcznej z programu klienta i ikonki sms na podglądzie czytelnika
<!-- PROGRAMS -->
<list>
<item>
<fld_idf>logged</fld_idf>
<fld_values>
sms
...
Warto dodać zapis w sowa_module_wyp_orders.xml dotyczący dodatkowych zakładek wyszukiwania na liście osób.
<item>
<fld_idf>CO</fld_idf>
<fld_name>Nr telefonu</fld_name>
</item>
<item>
<fld_idf>Cm</fld_idf>
<fld_name>Nr do SMS</fld_name>
</item>