Po sukcesie usługi feedback, o której pisałem tutaj zaczęły pojawiać się nowe pomysły na wykorzystanie Asteriska. Najciekawszym z nich był projekt wysyłki sms-ów głosowych do klientów. Wysyłka sms-a głosowego polegała na tym, że automat dzwonił na wybrany numer i jeśli ktoś odebrał odtwarzał mu przygotowane wcześniej nagranie.
Drobne szczegóły
Asterisk pozwala na zaplanowanie ile razy aplikacja ma dzwonić do klienta w przypadku gdy ten nie odbiera. Jaka ma być minimalna przerwa między kolejnymi połączeniami oraz ile dzwonków ma minąć nim automat się rozłączy.
Dialplan – co to takiego?
Scenariusz jak ma zachować sie Asterisk w przypadku gdy klient odbierze lub nie odbierze. Czy coś ma się wydarzyć jeśli wciśnie przycisk itp.
Zaczęło się od prostego scenariusza. Ktoś zrobił nagranie informujące o zbliżającym się terminie płatnosci za rachunek, przesłał je do mnie. Ja je przekonwertowałem na odpowiedni dla Asteriska format. Następnie utworzyłem odpowiedni dialplan w którym zaimplementowałem odtworzenie tego nagrania. Kolejnym krokiem było udostępnienie interface-u web-owego dla użytkownika, w którym mógł wgrać listę numerów telefonów do których mają być wysłane sms-y głosowe. Później pojawiło się więcej nagrań więc prócz wgrywania listy numerów, użytkownik wybierał jeszcze jakie nagranie ma być dla nich odtworzone. Ponieważ co jakiś czas pojawiała się potrzeba dodania nowej akcji smsowej postanowiłem dodać do aplikacji webowej możliwość samodzielnego wgrywania plikow z nagraniami. A w zasadzie to nie tylko wgrywania plików ale całego konfigurowania akcji sms głosowy.
Użytkownik po zalogowaniu się do aplikacji mógł dodać nową akcję sms-ową. Aby to zrobić musiał przede wszystkim mieć plik z nagraniem. Prócz tego ustalał też jej nazwę oraz podawał długość nagrania. Była ona potrzebna aby ułatwić raportowanie czy klient odsłuchał całe nagranie czy tylko część. Po dodaniu akcji, można już było planować wysyłkę sms-ów głosowych. Planować, ponieważ była możliwość ustawienia kiedy ma się rozpocząć oraz kiedy ma się zakończyć. Możliwości były dwie. Albo podawało się daty początku i końca albo tylko datę początku a koniec następował gdy wszystkie sms-y zostały odsłuchane lub podjęto wyznaczoną ilość prób ale nikt nie odebrał.
Drobne szczegóły c.d.
Całe rozwiązanie składało się z 5 oddzielnych maszyn. Jedna z serwerem bazodanowym (początkowo był do PostgreSQL, później MySQL). Druga z aplikacją web-ową napisaną w C# (serwer IIS). Trzy pozostałe były to Asteriski z kartami ISDN 30B+D. Łącznie do dyspozycji było 90 kanałów telefonicznych (a w pewnym momencie jeśli dobrze pamiętam nawet 120) a mimo wszystko bywało tak, że brakowało przepustowości.
Dzisiaj (w 2019 roku) może sie to wydawać niewiarygodne, że jakaś firma przekazywała informację o płatnościach, zaległościach, awariach itp. za pomocą sms-ów głosowych. Jednak wtedy (mniej-więcej lata 2008-2010) telefony stacjonarne były jeszcze wciąż popularne i taki sposób był naprawdę skuteczny i przede wszystkim bardziej opłacalny niż zwykły sms.
Tak się zdyszałem czytając ten tekst, że se musziałem usiąść w autobusie mpk… i teraz wiem czemu tak się stało! Interpunkcja, tak „przecineczki i kropeczki” – tego jest za mało 😉
PS. Potrzebujesz redaktora?