Asterisk. Usługa potwierdzania numerów.
Dzień dobry.
Potrzebne jest opracowanie serwisu do potwierdzania numerów za pomocą Asterisk.
Mówię od razu – zwykły Asterisk w jądrze, bez interfejsów webowych typu FreePBX i innych.
Wynikiem ma być skonfigurowany serwer, który otrzymuje od klientów numer do potwierdzenia, a cyfry, które mają być odczytane, po zadzwonieniu na odpowiedni numer.
Wynik musi być zapisany w bazie MySQL zlokalizowanej lokalnie, a także wysyłany API-plew do serwera billingowego w celu zarejestrowania faktu udanego połączenia.
Klientów może być kilku.
Przybliżony algorytm wygląda następująco:
Istnieje już strona internetowa, która zarządza klientami. Gdy klient aktywuje usługę, ta strona wysyła API-plew do Asterisk, który zawiera następujące parametry:
- Identyfikator klienta oraz token autoryzacyjny, na podstawie którego serwer Asterisk będzie w przyszłości autoryzować klienta.
- Pliki głosowe wav, które Asterisk ma odtwarzać podczas połączenia. Czyli powitanie oraz cyfry (jeśli klient chce własne), lub w przypadku braku plików dźwiękowych z cyframi – Asterisk, aby korzystał z własnych.
- Liczba cyfr, które robot ma odczytać.
- Identyfikator trunku, z którego ma być wykonane połączenie (może być kilka trunków).
- Tablica numerów, z których może być wykonane połączenie. Numer ma być pobierany losowo z tablicy.
- URL WebHook do wysłania odpowiedzi do klienta ze statusem po wykonaniu połączenia. Jeśli to pole jest puste – wysyłka odpowiedzi nie jest wykonywana.
Następnie klient musi mieć możliwość wysyłania API-plew do Asterisk, przesyłając numer do potwierdzenia oraz cyfry, które mają być odczytane.
Asterisk wykonuje połączenie, odtwarza powitanie głosowe i odczytuje cyfry potwierdzenia. Po wykonaniu próby powinno się wykonać:
- Zapis zdarzenia w lokalnej bazie MySQL
- Wysłanie na nasz główny serwer billingowy, otrzymanie odpowiedzi o zmianach klienta (blokować czy nie)
- Wysłanie WebHook do klienta z wynikiem.
- Warto również przewidzieć, że jeśli którykolwiek z serwerów (nasz billingowy lub klienta) nie odpowiada kodem 200, to nie powinno to zatrzymywać procesów Asterisk, a następnie należy podjąć kilka kolejnych prób.
Asterisk może zgłosić błąd w przypadku:
- Nieprawidłowego tokenu autoryzacyjnego
- Niezgodnej liczby cyfr do weryfikacji z ustawieniami
- Nieaktywnego konta klienta (zablokowanego)
Należy kontrolować wynik połączenia, a w przypadku, gdy połączenie zakończy się niepowodzeniem z winy dostawcy (np. gdy nie jest to abonent, jest poza zasięgiem, zajęty, rozłączony, lub nasz numer jest zablokowany z powodu braku płatności, lub braku linii trunkowej), trzeba wykonać następną próbę z innego numeru (z tablicy) i odnotować ten incydent oddzielnie.
Implementację skryptów najlepiej wykonać w PHP. System operacyjny CentOS. Instalacja Asterisk na serwerze również jest częścią tego zadania.
-
198 Dzień dobry, jesteśmy zespołem programistów, którzy potrafią to zrobić, już realizowaliśmy podobne projekty i możemy odpowiedzieć na wszystkie pytania, myślę, że lepiej porozmawiać telefonicznie lub w wiadomościach.
-
663 3 0 **Dzień dobry. Nazywam się Maria. Uważnie przeanalizowałam Twój projekt. Jestem gotowa do realizacji.**
📞 **Algorytm działania serwisu**
1. **Odbiór zapytania od klienta:**
- Klient wysyła zapytanie API do serwera z parametrami:
- Identyfikator klienta i token autoryzacyjny.
- Pliki głosowe (powitanie i cyfry) lub wskazanie użycia standardowych.
- Liczba cyfr do odczytania.
… - Identyfikator tranku do połączenia.
- Tablica numerów, z których można wykonywać połączenia.
- URL do WebHooka z wynikami.
2. **Inicjacja połączenia:**
- Serwer sprawdza autoryzację klienta.
- Wybiera numer z podanej tablicy.
- Inicjuje połączenie przez Asterisk, używając wybranego tranku.
- Odczytuje powitanie i cyfry potwierdzenia.
3. **Przetwarzanie wyników:**
- Rejestruje wynik połączenia w bazie danych MySQL.
- Wysyła wynik do serwera rozliczeniowego.
- Wysyła wynik do klienta przez WebHook (jeśli URL został podany).
4. **Obsługa błędów:**
- W przypadku nieudanej próby połączenia z winy dostawcy (np. numer zablokowany), serwis:
- Próbuje wykonać połączenie z innego numeru z tablicy.
- Rejestruje incydent w bazie danych.
**Gotowa do omówienia szczegółów!**
-
345 Witam, realizuję Twoje zadanie dla doświadczenia.
...................
....,..............
...................
...................
Aktualne zlecenia dla freelancerów w kategorii DevOps
Integracja respond i CRM w celu przesyłania raportu o pierwszej wiadomościMusimy śledzić czas pierwszego kontaktu z leadem. W tym celu należy przesyłać dane przez n8n do Respond. Ustawienia CRM po naszej stronie. DevOps, Konfigurowanie oprogramowania i serwerów ∙ 1 dzień 18 godzin temu ∙ 15 ofert |
Integracja Google Analytics z CRM przez n8nDzień dobry, Potrzebna pomoc w połączeniu Google Analytics i CRM przez n8n. Wszystkie ustawienia po stronie CRM są zrobione. Teraz trzeba tylko skonfigurować ustawienia z analityki przez n8n, aby przekazywane były zdarzenia sprzedaży. DevOps, Administracja systemem i siecią ∙ 2 dni 2 godziny temu ∙ 18 ofert |
Konfiguracja systemu kopii zapasowej i optymalizacja infrastruktury serwerowejCel prac: Zapewnienie niezawodnego przechowywania danych systemu CRM i aplikacji poprzez wdrożenie zautomatyzowanego systemu tworzenia kopii zapasowych (Backups), a także przeprowadzenie szeregu poprawek serwerowych w celu zwiększenia stabilności, bezpieczeństwa i wydajności… DevOps, Bazy danych i SQL ∙ 10 dni 21 godzin temu ∙ 29 ofert |