Zapoznaj się z Naszym systemem.
Do twojej dyspozycji oddajemy szeroki zbiór
tutoriali, poradników wideo i audio.
DialScript - język opisu planu rozmowy telefonicznej (tzw. dialplanu).
Przykład na początek:
graj(melodia001)
pobierz (
ile: 4
mow: Witaj. Podaj PIN.
zapisz: $A
)
http (
metoda: get
url: http://api.gdziestam.com:3000/auth/dasd3as3234az/$A
zapisz: $B
)
jezeli $B
kiedy ok
mow(Autoryzacja się powiodła. Łączę z konsultantem.)
polacz (
nr: 123456789
)
rozlacz
inaczej
mow(Brak dostępu!)
graj(reklama002)
rozlacz
koniec
Kilka słów wyjaśnienia:
Osoba dzwoniąca na tak zaprogramowaną linię telefoniczną na wstępie usłyszy uprzednio nagraną zapowiedź (zapowiedz001). Plik dźwiękowy zawierający wspomnianą zapowiedź został wcześniej uploadowany przez interfejs www lub nagrany przy użyciu telefonu.
Po odegraniu zapowiedzi system zapyta użytkownika za pomocą polecenia pobierz() o dokładnie 4 cyfry wybrane z klawiatury jego telefonu. Zauważ, że użyto tutaj parametru mow. Powoduje to zastosowanie syntezatora mowy, dzięki czemu nie trzeba samemu przygotowywać mowy, jaką usłyszy osoba dzwoniąca. Synteza mowy brzmi bardzo naturalnie i daje wrażenie, jakby zatrudniony został profesjonalny lektor. Cyfry wprowadzone przez użytkownika zapisywane są do zmiennej $A, przez co możemy je wykorzystać w dalszej części programu.
Następnie użyte zostaje polecenie http(). Jest ono kluczowe w integracji linii telefonicznych z Twoimi systemami informatycznymi. Pozwala ono na wykonanie zapytania GET lub POST na wskazany URL. W powyższym przykładzie zakładamy, że http://api.example.com:3000/auth/ba38cd85/[pin] sprawdza, czy podany numer znajduje się w Twojej bazie danych. Zauważ, że jako [pin] przesyłamy wcześniej wprowadzone cyfry ($A). Rezultat zapytania zapisany jest do kolejnej zmiennej - $B.
Kiedy już odpytamy zewnętrzne API, możemy przejść do użycia instrukcji warunkowej jezeli. W podanym przykładzie sprawdzamy zwróconą przez API zmienną $B. Kiedy jest ona równa ciągowi znaków "ok" informujemy przy użyciu syntezatora mowy o powodzeniu autoryzacji (polecenie mow()) oraz dokonujemy połączenia ze wskazanym numerem telefonu (polacz()). Dopóki nie nastąpi połączenie osoba dzwoniąca słyszy muzykę, później zaś może rozmawiać z konsultantem zupełnie tak, jakby dzwoniła bezpośrednio do niego. Po zakończeniu rozmowy wszystkie połączenia są zrywane (rozlacz()).
Jeżeli zewnętrze API zwróci cokolwiek innego niż "ok" (w tym błąd) zadziała klauzula inaczej. Dzwoniący usłyszy wówczas stosowny komunikat i odegrany dżingiel reklamowy. Następnie połączenie zostanie zakończone.
Jak widać, stworzenie własnej infolinii jest bardzo proste. Po zapoznaniu się z ogólną koncepcją możemy przejść do omówienia zasad naszego języka i konkretnych poleceń. Na przykładach przedstawimy Tobie, jak należy ich używać i co za ich pomocą można osiągnąć. W dalszej części dokumentacji czekają na Ciebie przykładowe plany rozmów wraz z komentarzami, dzięki którym będziesz mógł szybko rozpocząć tworzenie własnych rozwiązań. Zapraszamy do lektury!
Informacje wstępne:
- polskie znaki muszą być kodowane w UTF-8
- wszelkie powtarzające się spacje i tabulatory są traktowane jako jedna spacja
- komentarze zaczynają się od znaku #
Zmienne
Zmienna jest oznaczona pojedynczą wielką literą poprzedzoną znakiem $. Pozwala ona na zapamiętanie wyniku polecenia, aby można było użyć go jako parametr kolejnych poleceń. Miało to miejsce w pierwszym przykładzie, gdzie zapamiętaliśmy pod zmienną $A cyfry wpisane z klawiatury telefonu użytkownika, by potem przesłać je do zewnętrznego API. Żeby móc skorzystać ze zmiennej, musi ona posiadać uprzednio nadaną wartość. Zmienna o nienadanej wartości jest pustym ciągiem znaków. Więcej informacji o zmiennych znajdziesz w opisach poleceń wykorzystujących poszczególne zmienne.Typy funkcji:
bezargumentowaTego typu polecenia nie przyjmują żadnych parametrów. Wywołujemy je pisząc ich nazwę, opcjonalnie dodając do nazwy "()".
przykłady:
rozlacz()
rozlacz
jednoargumentowa
Polecenia jednoparametrowe przyjmują maksymalnie jeden parametr. Wywołujemy je pisząc ich nazwę i parametr pomiędzy nawiasami.
przyklady:
mow(witam i o zdrowie pytam)
wiadomosc()
wiadomosc($A)
wieloparametrowe
Polecenia mogące przyjąć więcej niż jeden parametr. Wywołujemy je pisząc nazwę polecenia i otwierając w tej samej lub nowej linii nawias. Po nawiasie w nowych liniach znajdują się pary typu parametr: wartość.
przykłady:
pobierz(
ile: 4
zapisz: $A
mow: podaj pin
)
polacz(
nr: 123456789
zapisz: $A
)
polacz(
nr: 123456789
)
Polecenie: graj
polecenie jednoparametrowe
Polecenie "graj" powoduje odegranie uprzednio utworzonego pliku dźwiękowego z Twojej biblioteki dźwięków. Nazwa dźwięku nie może zawierać spacji. Plik musi istnieć w Twojej bibliotece. Nazwę dźwięku można podać również jako zmienną, np. jeżeli odgrywany dźwięk ma zależeć od odpowiedzi zwróconej przez odpytywany przez HTTP API. Dźwięk jest odgrywany w całości, przy czym odgrywanie dźwięku można przerwać poprzez naciśnięcie dowolnego klawisza na klawiaturze telefonu.
Więcej o dźwiękach znajdziesz w dziale dzwieki.
wywołanie:
graj(NAZWA_DŹWIĘKU) - parametr alfanumeryczny bez spacji
graj(ZMIENNA)
przykład:
graj(muzyczka-12)
graj($A)
Polecenie: graj_bp
polecenie identyczne do graj(), nie pozwala jednak na przerwanie odtwarzania poprzez naciśnięcie klawisza
Polecenie: mow
polecenie jednoparametrowe
Polecenie mow() powoduje wypowiedzenie tekstu przez lektora z użyciem syntezatora mowy Ivona. Tekst musi znajdować się pomiędzy cudzysłowami. Tekst można podać też jako zmienną, jeżeli chcemy generować dynamiczne odpowiedzi, np. przez HTTP API. Wypowiedź lektora może zostać przerwana poprzez wciśnięcie dowolnego klawisza na klawiaturze telefonu. Może ona zawierać maksymalnie 1 zmienną lub być zmienną.
wywołanie:
mow(TEKST_DO_WYPOWIEDZENIA)
mow(ZMIENNA)
przykład:
mow(Witamy w infolinii!)
mow(W dzisiejszym losowaniu wylosowano numer $A)
Maksymalna długość tekstu do wypowiedzenia to 255 znaków. Tyczy się to wszystkich poleceń używających syntezy mowy.
Polecenie: mow_bp
polecenie identyczne do mow(), nie pozwala jednak na przerwanie mowy poprzez naciśnięcie klawisza
Polecenie: rozlacz
wywołanie:
rozlacz
rozlacz()
Polecenie rozlacz() powoduje bezwzględne zakończenie rozmowy (odłożenie słuchawki). Może pojawiać się w kodzie wielokrotnie (co jest zalecaną taktyką - daje pewność, że rozmowa nie zawiśnie w martwym punkcie). Przykład zastosowania znajduje się przy opisie polecenia jezeli().
Polecenie: pobierz
polecenie wieloparametrowe
Polecenie pobierz() pozwala nam pobrać cyfry z klawiatury telefonu (tony DTMF). Jeżeli chcemy odegrać zapowiedź, którą użytkownik może przerwać poprzez wciśnięcie klawisza, możemy użyć parametrów graj lub mow (polecenia te się WYKLUCZAJĄ).
parametry:
- ile: LICZBA 1-9 (wymagany) - ile liczb pobrać z klawiatury
- zapisz: ZMIENNA (wymagana) - do jakiej zmiennej zapisać wprowadzane liczby
- mow: TEKST DO WYPOWIEDZENIA, nie może zawierać zmiennych (opcjonalny, wykluczający się z parametrem graj)
- graj: PLIK DO ODEGRANIA (zamiennie z mow) może być zmienną - parametr alfanumeryczny bez spacji
- zakoncz: * LUB # (opcjonalny) - pozwala na przedwczesne (tj. zanim zostanie osiągnięte "ile") zakończenie wprowadzania cyfr
- czekaj: ile sekund czekamy na każdą kolejną liczbę (opcjonalny, domyślnie 15, przedział 1..30)
przykłady:
pobierz
(
ile: 4
czekaj: 30
graj: zapowiedz001
zakoncz: #
zapisz: $T
)
mow(napisałeś $T)
pobierz
(
ile: 1
zapisz: $Z
mow: Proszę wcisnąć klawisz na telefonie.
)
w każdym poleceniu wieloparametrowym poprawna jest również konstrukcja z nawiasem po poleceniu:
pobierz(
ile: 4
graj: zapowiedz002
czekaj: 20
zakoncz: #
zapisz: $Q
)
PORADA: używaj pobierz() z parametrami mow/graj, zamiast mow()/graj() i potem pobierz()
prawidłowe użycie - naciśnięcie klawisza, gdy jeszcze trwa wypowiedzenie "Proszę podać 2 liczby." spowoduje zapisanie pobranych cyfr do $Z
pobierz
(
ile: 2
: $Z
mow: Proszę podać 2 liczby.
)
nieprawidłowe użycie - naciśnięcie klawisza, gdy jeszcze trwa wypowiedzenie "Proszę podać 2 liczby." spowoduje tylko przerwanie tego zdania i przejście do pobierz()
mow(Proszę podać 2 liczby.)
pobierz
(
ile: 2
zapisz: $Z
)
Sterowanie przebiegiem rozmowy
Sterowanie przebiegiem rozmowy spowoduje, że Twoja linia będzie zachowywała się różnie w zależności od czynników zewnętrznych. Inaczej powinna przebiegać rozmowa w przypadku gdy, przykładowo, klient poda zły numer zamówienia lub gdy zadzwoni po godzinach pracy. Zamierzony efekt można uzyskać przy użyciu poleceń przedstawionych w tym dziale.Polecenie: powtarzaj
pętla, polecenie bezparametrowe
Kod pomiędzy powtarzaj a powtarzaj_koniec jest powtarzany (tzw. pętla) do czasu rozłączenia się użytkownika lub użycia polecenia powtarzaj_wyjdz.
przykład:
powtarzaj
mow(Ten tekst będę mówić w kółko, dopóki się nie rozłączysz)
powtarzaj_koniec
bardziej rozbudowany przykład został przedstawiony w ramach omawiania polecenia jezeli.
Polecenie: jezeli
instrukcja warunkowa, występuje razem ze słowami kiedy, inaczej, koniecPolecenie jeżeli jest kluczowe do sterowania przebiegiem rozmowy. Powoduje wykonanie poleceń w zależności od wartości zmiennej. Wymagana co najmniej 1 sekcji kiedy. Sekcja inaczej jest opcjonalna. Całość musi być zakończona słowem koniec.
wywołanie:
jezeli ZMIENNA
kiedy WARTOSC
polecenia
polecenia
kiedy WARTOSC
polecenia
polecenia
inaczej
polecenia
polecenia
koniec
przykład #1:
Potrafisz już pobrać cyfry z klawiatury telefonu ( pobierz() ). Spróbujmy więc pokierować rozmową telefoniczną w zależności od wprowadzonych cyfr.pobierz(
ile: 1
mow: Naciśnij 1, aby poznać godziny przyjęć. Naciśnij 2, żeby dowiedzieć się o naszej ofercie.
czekaj: 30
zapisz: $A
)
jezeli $A
kiedy 1
mow(Jesteśmy czynni od poniedziałku do piątku w godzinach od ósmej do szesnastej.)
rozlacz
kiedy 2
graj(oferta001)
rozlacz
koniec
mow(Do tego miejsca dzwoniący nie dojdzie, jeżeli wciśnie 1 lub 2)
przykład #2:
W tym przykładzie nie pozwolimy dzwoniącemu przejść dalej, dopóki nie poda poprawnego kodu PIN. Osiągniemy to za pomocą połączenia poleceń powtarzaj i jeżeli.# wszystko pomiędzy poleceniami powtarzaj a powtarzaj_koniec wykonywane jest w pętli
# pętla kończy się jedynie, gdy program natrafi na polecenie powtarzaj_wyjdz
powtarzaj
pobierz(
ile: 4
mow: Prosimy o podanie numeru PIN.
czekaj: 30
zapisz: $A
)
jezeli $A
kiedy 1234
mow(Pin poprawny, dziękujemy)
# wychodzimy z pętli
powtarzaj_wyjdz
inaczej
# informujemy o złym numerze PIN
# nie wychodzimy z pętli
mow(Zły PIN.)
koniec
mow(Spróbuj jeszcze raz)
# wracamy do początku
powtarzaj_koniec
# tutaj program kontynuuje pracę po wyjściu z pętli
mow(Witamy w sekcji dla zalogowanych użytkowników)
Polecenie: menu
polecenie wieloparametrowePolecenie menu pomaga w konstruowaniu typowego menu telefonicznego. Pozwala nam na ograniczenie możliwych wyborów dla użytkownika i nie przepuszcza go dalej, jeżeli wybór z klawiatury jest poza dopuszczalnym zakresem. Ten sam efekt da się uzyskać za pomocą kombinacji poleceń pobierz, jeżeli i powtarzaj, ale dzięki użyciu polecenia menu kod jest dużo krótszy.
parametry:
- wybor: ZAKRES w formie X..Y gdzie X>0, X
- zapisz: ZMIENNA do której zapisać wynik (wymagana)
- zapowiedz_mow: ZAPOWIEDZ Z UŻYCIEM SYNTEZATORA MOWY (wymagany zamiennie z zapowiedz_graj) - nie może zawierać zmiennych
- zapowiedz_graj: ZAPOWIEDZ Z PLIKU (wymagany zamiennie z zapowiedz_mow) - może być zmienną, parametr alfanumeryczny bez spacji
- ostrzegaj_mow: OSTRZEŻENIE O BŁĘDNYM WYBORZE Z UŻYCIEM SYNTEZATORA MOWY (wymagany zamiennie z ostrzegaj_graj) - nie może zawierać zmiennych
- ostrzegaj_graj: OSTRZEŻENIE O BŁĘDNYM WYBORZE Z PLIKU (wymagany zamiennie z ostrzegaj_mow) - może być zmienną, parametr alfanumeryczny bez spacji
pobierz(
ile: 1
mow: Naciśnij 1, aby poznać godziny przyjęć. Naciśnij 2, żeby dowiedzieć się o naszej ofercie.
czekaj: 30
zapisz: $A
)
jezeli $A
kiedy 1
mow(Jesteśmy czynni od poniedziałku do piątku w godzinach od ósmej do szesnastej.)
rozlacz
kiedy 2
graj(oferta001)
rozlacz
koniec
mow(Do tego miejsca dzwoniący nie dojdzie, jeżeli wciśnie 1 lub 2)
Kod jest poprawny, ale ma jedną wadę - dzwoniący może nacisnąć cyfrę np. 3, której blok jezeli..kiedy nie rozpoznaje. Przeróbmy go tak, by nie pozwalał na wpisanie niczego innego niż 1 i 2.
menu(
zapowiedz_mow: Naciśnij 1, aby poznać godziny przyjęć. Naciśnij 2, żeby dowiedzieć się
o naszej ofercie.
ostrzegaj_mow: Nieprawidłowy wybór. Wybierz 1 lub 2.
wybor: 1..2
zapisz: $A
)
jezeli $A
kiedy 1
mow(Jesteśmy czynni od poniedziałku do piątku w godzinach od ósmej do szesnastej.)
rozlacz
kiedy 2
graj(oferta001)
rozlacz
koniec
# do tego miejsca dzwoniący nigdy nie dojdzie
Przekierowywanie połączeń
Polecenie: polacz
wieloparametrowaPowoduje połączenie dzwoniącego z wybranymi numerami telefonu. Zwykle służy do łączenia użytkownika z “żywym” konsultantem. Jeżeli podany jest więcej niż 1 numer telefonu - system dzwoni pod wszystkie numery i przekazuje rozmowę do pierwszej osoby, która odbierze. Numer telefonu musi być 9-cio cyfrowy: stacjonarny z kierunkowym lub komórkowy. W tej chwili dopuszczone są tylko numery polskie.
parametry
- nr: NUMERY oddzielone przecinkami (przynajmniej 1) tylko polskie, 9 cyfr
- zapisz: ZMIENNA do której zapisać informację, czy doszło do połączenia (opcjonalny)
- dzwon: ile czasu dzwonić (domyślnie 15 sekund, przedział 5..30, opcjonalny)
- komunikat: statyczny dźwięk, jaki ma być odegrany osobie do której się dzwoni (opcjonalny), parametr alfanumeryczny bez spacji
- nagraj: tak/nie - czy nagrać rozmowę, opcjonalne. więcej o nagraniach przeczytasz w dziale nagrania.
Przykład 1
mow(W trosce o bezpieczeństwo naszych klientów, wszystkie rozmowy są nagrywane.)
polacz(
nr: 123456789
nagraj: tak
)
Przykład 2
mow(Łączę z naszym działem technicznym.)
polacz
(
nr: 123456789,12346780,22346780
komunikat: klient_dzwoni
)
Przykład 3
mow(Łączę z konsultantem.)
powtarzaj
polacz(
nr: 123456789
dzwon: 30
zapisz: $A
)
jezeli $A
kiedy odebrano
powtarzaj_wyjdz
kiedy nieodebrano
mow(Spróbujmy jeszcze raz.)
koniec
powtarzaj_koniec
mow(Mamy nadzieję, że są Państwo zadowoleni z rozmowy.)
Polecenie: kolejka
wieloparametrowaZauważ, że przykład #3 dotyczący polecenia polacz realizuje NIESPRAWIEDLIWĄ strategię połączeń. Nie kolejkuje w żaden sposób napływających rozmów. W przypadku trwającej już rozmowy i pojawieniu się dwóch innych połączeń może dojść do sytuacji, w której osoba dzwoniąca jako druga dostanie się do konsultanta przed pierwszą. W takiej sytuacji lepiej zdefiniować KOLEJKĘ rozmów. Szersze omówienie kolejek znajdziesz w dziale kolejki.
Polecenie kolejka powoduje zakolejkowanie rozmowy w uprzednio utworzonej kolejce.
parametry:
- nazwa: NAZWA_KOLEJKI, parametr alfanumeryczny bez spacji
- komunikat: statyczny dźwięk, jaki ma być odegrany osobie do której się dzwoni (opcjonalny)
- zapisz: ZMIENNA do której zapisać informację o tym, czy doszło do połączenia (opcjonalny)
- dzwon: ile czasu dzwoniący może przebywać w kolejce (przedział 30..600, domyślnie 180 sekund)
- nagraj: tak/nie - czy nagrać rozmowę, opcjonalne. więcej o nagraniach przeczytasz w dziale nagrania.
- zapisz_kto: ZMIENNA do której zapisać numer telefonu/adres SIP osoby z kolejki, która odebrała połączenie (opcjonalny)
kolejka
(
nazwa: konsultanci
nagraj: tak
)
kolejka
(
nazwa: dzial_techniczny
komunikat: przychodzace001
zapisz: $K
dzwon: 600
zapisz_kto: $G
)
numer_dzwoniacego($D)
sms
(
nr: $G
tresc: numer rozmowcy to $D
)
# uwaga
# jeżeli przez 600 sekund nikt nie odbierze - dialplan będzie kontynuowany
# jeżeli konsultant odbierze i KONSULTANT się rozłączy - dialplan będzie kontynuowany
# jeżeli dzwoniący się rozłączy - dialplan NIGDY NIE DOJDZIE DO TEGO MIEJSCA
jezeli $K
kiedy nieodebrano
mow(Przepraszamy. Nasi konsultanci nie mogą w tej chwili odebrać telefonu.
Po usłyszeniu sygnału zostaw wiadomość.)
nagraj_wiadomosc
koniec
Nagrywanie i odsłuchiwanie wiadomości
Przed nagrywaniem niektórych rozmów może być wymagana zgoda rozmówcy. Zanim zaczniesz nagrywać rozmowy skonsultuj się z prawnikiem.Polecenie: nagraj wiadomosc
polecenie z maksymalnie jednym parametrem
Powoduje nagranie wiadomości - tzw. "automatyczna sekretarka".
Opcjonalnie zapisuje ID wiadomości do zmiennej. Może być przydatne podczas późniejszego odtwarzania wiadomości.
wywołanie:
nagraj_wiadomosc
nagraj_wiamomosc(ZMIENNA do której ma zostać zapisane ID wiadomości)
przykład:
pobierz
(
mow: Jeżeli chcesz zostawić wiadomość naciśnij 0.
ile: 1
zapisz: $W
)
jezeli $W
kiedy 0
mow(Po usłyszeniu sygnału zostaw wiadomość)
nagraj_wiadomosc
koniec
Polecenie: wiadomosc
jednoparametrowe
Polecenie odtwarza wcześniej nagraną wiadomość o zadanym ID.
nagraj_wiadomosc
nagraj_wiamomosc(ZMIENNA do której ma zostać zapisane ID wiadomości)
pobierz
(
mow: Jeżeli chcesz zostawić wiadomość naciśnij 0.
ile: 1
zapisz: $W
)
jezeli $W
kiedy 0
mow(Po usłyszeniu sygnału zostaw wiadomość)
nagraj_wiadomosc
koniec
wywołanie:
wiamomosc(ID WIADMOSCI)
przykład:
mow(Nagraj się!)
nagraj_wiadomosc($A)
mow(Odtwarzam twoje nagranie)
wiadomosc($A)
Integracja z zewnętrznym API¶
Polecenie http
wieloparametrowa
Dzięki poleceniu http możesz integrować linie telefoniczne ze swoimi systemami informatycznymi np. stroną www, systemem CRM, sklepem internetowym. Więcej informacji znajdziesz w dziale Integracja z API.
Polecenie powoduje odwołanie się do zewnętrznego API i przypisanie zwróconej wartości do zmiennej (max 255 znaków)
Jeżeli strona zwróci kod HTTP 200 i Content-Type “text/plain”, to zmienna będzie równa całej treści dokumentu.
Jeżeli strona zwróci kod 200 i Content-Type “text/xml”, to system spodziewać się będzie dokumentu XML sformatowanego w następujący sposób:
<limtel>
<answer>Twoja przesyłka została wysłana.</answer>
</limtel>
Jeżeli strona zwróci kod 200 i Content-Type “application/json” to system spodziewać się będzie obiektu JSON sformatowanego w następujący sposób:
Jeżeli strona zwróci kod 200 i Content-Type “text/xml”, to system spodziewać się będzie dokumentu XML sformatowanego w następujący sposób:
{
limtel: "Twoja przysyłka została wysłana."
}
parametry:
- url: ADRES w formacie http(s)://host:
/... (wymagany, może zawierać zmienne)
- metoda: get/post (wymagany)
- param: parametry wymagane dla POST (format para1=tekst¶2=$B)
- zapisz: ZMIENNA (wymagana)
- rozlacz: tak/nie (opcjonalny - czy przeprosić rozmówcę i zakończyć połączenie w razie błędu w komunikacji z zewnętrznym API)
<limtel>
<answer>Twoja przesyłka została wysłana.</answer>
</limtel>
{
limtel: "Twoja przysyłka została wysłana."
}
przykład:
pobierz(
ile: 4
mow: Podaj numer swojej przesyłki.
zakoncz: #
zapisz: $A
)
http(
url: https://api.example.com/yhs623a1zzn1/paczka/$A/status?idtelefon
metoda: get
zapisz: $B
)
mow(Stan twojej przysyłki to $B)
przykład:
pobierz(
ile: 4
mow: Podaj swój numer klienta.
zakoncz: #
zapisz: $A
)
pobierz(
ile: 2
mow: Podaj numer pokoju.
zakoncz: #
zapisz: $B
)
http(
url: http://api.example.com:5800/rezerwacja.php
param: id$A&pokoj$B&typtelefoniczna
metoda: post
zapisz: $C
rozlacz: tak
)
mow($C)
rozlacz
UWAGA! Polecenie zwróci err, jeżeli wystąpi błąd w komunikacji z zewnętrznym API (np. oczekiwanie dłuższe niż 5 sekund). Zwykle warto wtedy zakończyć połączenie:
http(
url: http://api.example.com/api
param: id12
metoda: post
zapisz: $A
)
jezeli $A
kiedy err
mow(Przepraszamy, wystąpiły problemy techniczne.)
rozlacz
koniec
mow(Stan twojej przesyłki to $A)
Ten podobny efekt można uzyskać używając parametru "rozlacz: tak" - przy czym wtedy połączenie zakańczane jest automatycznie i nie mamy wpływu na jego dalszy przebieg.
Polecenie: sms
Polecenie powoduje wysłanie wiadomości SMS. Nadawcą SMS jest "limtel.pl".parametry:
- nr: NUMER (wymagany)
- tresc: TRESC WIADOMOSCI SMS (wymagana)
- NUMER powinien być w formacje 9-cio cyfrowym
- TREŚĆ powinna zawierać wyłącznie znaki a-z A-Z 0-9 _ . , ! ? % $ @ + - # * i spację, może mieć maksymalnie 120 znaków
- TREŚĆ zostaje automatycznie konwertowana do ASCII (bez polskich znaków)
- NUMER i TREŚĆ mogą być zmiennymi
pobierz
(
ile: 4
mow: Wpisz swój numer klienta.
zapisz: $A
)
sms
(
nr: 12345678
tresc: Klient $A zadzwonił na infolinię.
)
Polecenie: godzina
jednoparametrowePolecenie zapisuje do zmiennej PEŁNĄ godzinę. Może być bardzo przydatne, jeżeli chcemy uzależnić działanie naszej infolinii od pory dnia.
wywołanie:
godzina(ZMIENNA)
przykład:
godzina($A)
jezeli $A
kiedy 8..15
mow(Witamy w naszej firmie, łączę z konsultantem.)
kolejka
(
nazwa: dzial_obslugi
)
inaczej
mow(Prosimy dzwonić w godzinach od ósmej do szesnastej.)
rozlacz
koniec
Polecenie: dzien_tygodnia
jednoparametrowezapisuje do zmiennej dzień tygodnia, gdzie 1 to poniedziałek, 2 to wtorek itd.
wywołanie:
dzien_tygodnia(ZMIENNA)
rozszerzmy kod z przykładu podanego do polecenia godzina o rozpoznawanie dnia tygodnia:
godzina($A)
dzien_tygodnia($B)
jezeli $B
kiedy 6..7
mow(Informujemy, że nasza firma nie pracuje w weekendy.)
rozlacz
inaczej
jezeli $A
kiedy 8..15
mow(Witamy w naszej firmie, łączę z konsultantem.)
kolejka
(
nazwa: dzial_obslugi
)
inaczej
mow(Prosimy dzwonić w godzinach od ósmej do szesnastej.)
rozlacz
koniec
koniec
W powyższym przykładzie widać jeszcze jedną ważną właściwość DialScriptu - funkcje warunkowe można zagnieżdżać. Najpierw sprawdzamy, czy dzień tygodnia odpowiada trybowi pracy firmy - jeżeli tak jest, to przechodzimy do sprawdzenia, czy połączenie nastąpiło w godzinach pracy.
Polecenie: godziny_pracy
wieloparametroweSprawdza dzień tygodnia i godzinę oraz zapisuje do zmiennej, czy telefon nastąpił w trakcie czasu pracy. Pozwala na skrócenie kodu w przypadku standardowych godzin pracy infolinii.
parametry:
- wybierz zmienną, do której zapisać informacje (wymagane) - zwraca praca albo wolne
- godziny - zakres 0..23 - w jakich godzinach pracuje infolinia (wymagane)
- sobota - zakres 0..23 - w jakich godzinach w sobotę pracuje infolinia (opcjonalne, zakres dni powinien obejmować sobotę)
- niedziela - zakres 0..23 - w jakich godzinach w niedzielę pracuje infolinia (opcjonalne, zakres dni powinien obejmować niedzielę)
- dni - zakres 0..6 - w jakich dniach pracuje infolinia (0 - niedziela, 1 - poniedziałek, .. , 6 -sobota )
godziny_pracy
(
godziny: 8..16
dni: 1..5
zapisz: $T
)
jezeli $T
kiedy praca
mow(Witamy w naszej firmie, łączę z konsultantem.)
kolejka
(
nazwa: dzial_obslugi
)
inaczej
mow(Informujemy, że nasza firma pracuje od poniedziałku do piątku w godzinach od ósmej
do szesnastej)
rozlacz
koniec
Polecenie: numer_dzwoniacego
jednoparametrowaZapisuje do zmiennej numer telefonu osoby dzwoniącej.
Uwagi:
- jeżeli jest to połączenie wychodzące, to zwraca numer telefonu kanału
- zwraca Unknown, gdy numer jest ukryty (z Wielkiej litery!)
numer_dzwoniacego(ZMIENNA)
przykład:
numer_dzwoniacego(ZMIENNA)
numer_dzwoniacego($A) sms ( nr: 123123123 tresc: nastapilo polaczenie z numeru $A ) mow(Witamy w infolinii!)
Konferencje
Polecenie: pokoj
bezparametrowaPowoduje dołączenie dzwoniącego do prostej konferencji. Pierwszy użytkownik biorący udział w konferencji słyszy muzykę, dopóki nie dołączy się drugi użytkownik. W konferencji spotykają się osoby dzwoniące z tego samego kanału (numeru telefonu).
wywołanie:
pokoj
przykład:
mow(Dołączasz do konferencji.)
pokoj
Polecenie: konferencja
wieloparametrowaZaawansowana konferencja z możliwością:
- zarządzania przez interfejs www (kick/mute/unmute/volume)
- interaktywnego przekazywania kodów DTMF na wskazany URL (interaktywne gry, zgłaszanie się do odpowiedzi itp.)
- współdzielenia konferencji pomiędzy różnymi numerami telefonów (np. inny dla wykładowcy, inny dla słuchaczy)
- nagrywania całej konferencji
- nazwa: NAZWA (wymagana), parametr alfanumeryczny bez spacji
- tryb: normalny/sluchacz (wymagany)
- limit: ile użytkowników maksymalnie może być podłączonych do konferencji (max/default: 100)
- dtmf: URL na który wysyłać DTMF (format jak przy poleceniu http)
- nagraj: tak/nie (opcjonalny) czy nagrywać konferencje
- dzwoniący, który ma tryb normalny może nadawać i słuchać
- sluchacz tylko słucha (można to zmienić poprzez UNMUTE w interfejsie www)
- jeżeli wskazano dmtf URL to każde naciśnięcie klawisza spowoduje HTTP POST na dany url z parametrem user zawierającym unikalny id usera oraz parametrem key zawierającym naciśnięty klawisz
UWAGA! nagrywanie konferencji jest nieco podchwytliwe. Więcej w dziale Konferencje.
Przykłady:
mow(Witamy w konferencji!)
konferencja
(
nazwa: konf1
tryb: normalny
nagraj: tak
)
mow(Witamy na wykładzie. Jeżeli będziesz chciał zgłosić się do odpowiedzi wybierz 0
na klawiaturze swojego telefonu.)
konferencja
(
nazwa: konf2
tryb: sluchacz
limit: 30
dtmf: http://api.example.com/konf2/uj8lr3az21z/zgloszenia.php
)
Polecenie: uid
Zapisuje do zmiennej unikalny identyfikator rozmowy, identyczny jak używany przy przesyłaniu DTMF z konferencji. yyWywołanie:
uid(ZMIENNA)
może służyć do identyfikowania użytkowników konferencji:
- każdemu potencjalnemu użytkownikowi przydzielamy inny PIN powiązany z jego imieniem i nazwiskiem
- przed konferencją pobieramy PIN z klawiatury i odczytujemy UID
- przesyłamy przez HTTP parę PIN/UID
- tłumaczymy w panelu zarządzającym konferencją UID na nazwisko
Polecenie: strefa
Zapisuje do zmiennej 2 pierwsze cyfry numeru dzwoniącego, lub “SN” (Strefa Nieznana), gdy dzwoni z zagranicy, z zastrzeżonego numeru lub komórki.wywolanie:
strefa(ZMIENNA)
przykład:
strefa($A)
jezeli $A
kiedy 89
mow(Witamy w oddziale Olsztyn.)
kiedy 22
mow(Witamy w oddziale Warszawa.)
inaczej
mow(Witamy.)
koniec
Polecenie: mail
Wysyła wiadomość email na dany adres.parametry:
- do: adres email odbiorcy
- temat: temail wiadomości
- tresc: treść wiadomości
przykład:
mail
(
do: kowalski@example.com
temat: limtel
tresc: zadzwoniono na infolinię o numerze 897228989
)