Integracja z systemami zewnętrznymi
Wbuduj w swoją aplikację funkcjonalność telefonu.
Platforma Limtel.pl pozwala na integrowanie stworzonych w niej linii telefonicznych z Twoimi systemami teleinformatycznymi.
Dzięki poleceniu http możesz przesłać dowolne dane do swojego API i wedle jego odpowiedzi pokierować dalej rozmową.
Twoja aplikacja może być w dowolnym języku np. PHP, Ruby, Python, C#, Java. Jedynym warunkiem jest możliwość przesłania do niej poprzez protokół HTTP zapytań GET i/lub POST. Sposób zrealizowania tego warunku od Twojej strony zależy tylko od Ciebie - może to być strona w PHP pracująca pod kontrolą serwera Apache, aplikacja w Ruby On Rails, Sinatra, Django, czy nawet jedynie dodatkowy daemon przyjmujący połączenia HTTP i piszący do wspólnej bazy danych z Twoją aplikacją.
Jeżeli dzwoniący wciśnie 1 w menu głównym zostanie przekierowany do automatu pytającego go o numer zamówienia (pobierz). Wpisany numer zamówienia zapisywany jest do zmiennej $B, która poprzez polecenie http przesyłana jest jako parametr id na wskazany URL. Odpowiedź z API zapisywana jest jako $C i w zależności od jej wartości wypowiadany jest inny komunikat. W przypadku, gdy zmienna $C równa jest wstrzymana następuje dodatkowo połączenie z działem reklamacji.
W razie problemów z połączeniem pomiędzy platformą Limtel.pl a twoim API polecenie http zapisze err do zmiennej $C. W ten sposób będziesz mógł odpowiednio obsłużyć taki błąd w swojej infolinii.
Porada
Twoja infolinia będzie dużo lepiej działać, jeżeli teksty dla mow() będą wpisane w planie rozmowy, a nie pobierane ze zmiennej zwróconej przez http(). Konstruuj swoje plany z wykorzystaniem jezeli..kiedy, tak jak w powyższym przykładzie, zamiast przekazywać zawartość zmiennej do mow().
Unikaj takich konstrukcji:
Bezpieczeństwo
Jeżeli chcesz szyfrować transmisję pomiędzy serwerami Limtel a swoim systemem, to w parametrze url polecenia http() zacznij od https://. Pamiętaj, że Twój serwer http musi wspierać protokół HTTPS dla domeny, z którą się łączysz.
Powinieneś też filtrować połączenia do swojego API tak, by tylko serwery Limtel mogły się do niego dostawać. Aktualnie zapytania mogą być wysyłane z następujących numerów IP:
78.133.250.196
Jeżeli adresy się zmienią, zostaniesz poinformowany o tym za pomocą email.
Twoja aplikacja może być w dowolnym języku np. PHP, Ruby, Python, C#, Java. Jedynym warunkiem jest możliwość przesłania do niej poprzez protokół HTTP zapytań GET i/lub POST. Sposób zrealizowania tego warunku od Twojej strony zależy tylko od Ciebie - może to być strona w PHP pracująca pod kontrolą serwera Apache, aplikacja w Ruby On Rails, Sinatra, Django, czy nawet jedynie dodatkowy daemon przyjmujący połączenia HTTP i piszący do wspólnej bazy danych z Twoją aplikacją.
Przykład 1: Sprawdzenie stanu paczki w sklepie internetowym.
Użytkownik prowadzi sklep internetowy. Chce, żeby klienci dzwoniący na jego infolinię mogli bez udziału konsultanta sprawdzić stan swojego zamówienia. Przygotowuje więc prostą podstronę na swoim serwerze www służącą jako API dla linii telefonicznej. Pobiera ona z bazy danych sklepu informacje o statusie przesyłki i zwraca odpowiedź do infolinii:- wyslana - jeżeli paczka została już wysłana
- wstrzymana - jeżeli paczka została wstrzymana z ważnego powodu
- namagazynie - jeżeli paczka jest aktualnie pakowana
- platnosc - jeżeli paczka oczekuje na płatność
graj(powitanie001)
menu
(
zapowiedz_mow: Naciśnij 1, jeżeli chcesz sprawdzić stan swojej paczki. Naciśnij 0,
jeżeli chcesz połączyć się z konsultantem.
ostrzegaj_mow: Zły wybór, spróbuj jeszcze raz.
wybor: 0..1
zapisz: $A
)
jezeli $A
kiedy 0
kolejka
(
nazwa: konsultanci
)
kiedy 1
pobierz
(
mow: Proszę podać numer paczki i zakończyć krzyżykiem.
ile: 8
zakoncz: #
zapisz: $B
)
http
(
url: http://api.example.com/sklep/paczki.php?id=$B
zapisz: $C
metoda: get
)
jezeli $C
kiedy wyslana
mow(Twoja paczka została wysłana. Wkrótce zostanie dostarczona przez kuriera.)
kiedy namagazynie
mow(Twoja paczka aktualnie jest pakowana. Wkrótce zostanie dostarczona do kuriera.)
kiedy platnosc
mow(Oczekujemy na twoją płatność. Jak tylko wpłata zostanie zaksięgowana na naszym koncie,
przejdziemy do realizacji zamówienia.)
kiedy wstrzymana
mow(Twoje zamówienie zostało wstrzymane. Za chwilę połączysz się z konsultantem
w ceku wyjaśnienia sprawy.)
kolejka
(
nazwa: reklamacje
)
kiedy err
mow(Wystąpił problem techniczny w trakcie sprawdzania twojego zamówienia.
Spróbuj później.)
inaczej
mow(Przykro nam. Takie zamówienie nie istnieje w naszym systemie.)
koniec
koniec
Jeżeli dzwoniący wciśnie 1 w menu głównym zostanie przekierowany do automatu pytającego go o numer zamówienia (pobierz). Wpisany numer zamówienia zapisywany jest do zmiennej $B, która poprzez polecenie http przesyłana jest jako parametr id na wskazany URL. Odpowiedź z API zapisywana jest jako $C i w zależności od jej wartości wypowiadany jest inny komunikat. W przypadku, gdy zmienna $C równa jest wstrzymana następuje dodatkowo połączenie z działem reklamacji.
W razie problemów z połączeniem pomiędzy platformą Limtel.pl a twoim API polecenie http zapisze err do zmiennej $C. W ten sposób będziesz mógł odpowiednio obsłużyć taki błąd w swojej infolinii.
Porada
Twoja infolinia będzie dużo lepiej działać, jeżeli teksty dla mow() będą wpisane w planie rozmowy, a nie pobierane ze zmiennej zwróconej przez http(). Konstruuj swoje plany z wykorzystaniem jezeli..kiedy, tak jak w powyższym przykładzie, zamiast przekazywać zawartość zmiennej do mow().
Unikaj takich konstrukcji:
http
(
url: http://api.example.com/res
zapisz: $A
metoda: get
)
mow($A)
Przykład 2: Teleankieta
UWAGA W pierwszym pytaniu używamy funkcji menu zamiast pobierz, żeby zawęzić wybór. W drugim musimy już użyć instrukcji warunkowej, ponieważ menu dopuszcza cyfry z przedziału 0..9.menu
(
zapowiedz_mow: Co głównie decyduje o wyborze szamponu przez Ciebie? 1 Cena, 2 Reklama TV,
3 Opinie w internecie.
ostrzegaj_mow: Zły wybór, wybierz z klawiatury telefonu jeden, dwa lub trzy.
wybor: 1..3
zapisz: $A
)
powtarzaj
pobierz
(
mow: Ile godzin dziennie spędzasz przed telewizorem? Wybierz na klawiaturze telefonu
cyfrę i naciśnij krzyżyk.
ile: 3
zapisz: $B
zakoncz: #
)
jezeli $B
kiedy 0..18
powtarzaj_wyjdz
inaczej
mow(Czy na pewno? Odpowiedz jeszcze raz na pytanie.)
koniec
powtarzaj_koniec
mow(Dziękujemy za wzięcie udziału w ankiecie.)
http
(
url: http://example.com:5555/api.php
metoda: post
param: q1=$A&q2=$B
zapisz: $Z
)
Strona w PHP zbierająca wyniki mogłaby wyglądać następująco:
<php
$pobrana_informacja_numer_1 = $_GET[q1];
$pobrana_informacja_numer_2 = $_GET[q2];
$lista_wyboru = array( '1' => 'Odpowiedź 1', '2' => 'Odpowiedź 2');
echo "Pobrano Wynik dla kampanii: ".$pobrana_informacja_numer_1;
echo "Klient wybrał następującą odpowiedź: ".$lista_wyboru[$pobrana_informacja_numer_2];
?>
Bezpieczeństwo
Jeżeli chcesz szyfrować transmisję pomiędzy serwerami Limtel a swoim systemem, to w parametrze url polecenia http() zacznij od https://. Pamiętaj, że Twój serwer http musi wspierać protokół HTTPS dla domeny, z którą się łączysz.
Powinieneś też filtrować połączenia do swojego API tak, by tylko serwery Limtel mogły się do niego dostawać. Aktualnie zapytania mogą być wysyłane z następujących numerów IP:
78.133.250.196
Jeżeli adresy się zmienią, zostaniesz poinformowany o tym za pomocą email.