i1h1s2 Łukasz Śledzik SWP lab2(1)

background image

WOJSKOWA AKADEMIA TECHNICZNA

im. Jarosława Dąbrowskiego

WYDZIAŁ CYBERNETYKI






Sprawozdanie z laboratorium

nr 2

Temat: Standard VXML: zmienne, wyrażenia,

formularze, subdialog. Sterowanie
porządkiem interpretacji w dokumencie
VXML.







Autor:

Prowadzący:

inż Łukasz Śledzik

dr inż. Andrzej Wiśniewski

W a r s z a w a 2012

background image

Treść zadania:

Wykorzystując standard VXML zaimplementować sposoby sterowania porządkiem
interpretacji wewnątrz formularza.

1. Opracować scenariusz dialogu.

2. Sformułować program z funkcjami sterującymi (goto, if)

3. Zastosować w formularzu pole <field> z atrybutami:

expr

cond

4. Zastosować subdialog:

tag <subdialog> z atrybutami name (zmienna wejściowa) i src

tag <param> z atrybutami name i expr

tag <return> z atrybutem namelist

5. Dokonać testowania programu na portalu głosowym Voxeo.

background image

Rozwiązanie:


1.

Scenariusz (przykład)


S - IVR
U - użytkownik


S: Welcome In automatic call center. Please enter Your phone number.

U: (entering phone number)

S: Please enter Your password.

U: (entering password)

S: Login correct. What would You like to do? You can choose between: balance, validity, my
services, available services, manage services.

U: Balance

S: Your account balance is 10 $. What would You like to do? You can choose between:
balance, validity, my services, available services, manage services.

U: Validity

S: Your account validity is 30 days.

U: (disconnected)



SCHEMAT BLOKOWY:

background image

2.

Zastosowanie funkcji sterujących goto oraz if:

Funkcje sterujące goto zostały zastosowane w celu przejścia do formularzy o
wskazanych nazwach. Należy jednak pamiętać, iż przez zastosowanie tejże instrukcji
niemożliwe będzie zapamiętanie wartości pól.

W instrukcji sterującej if sprawdzany jest warunek cond, który może mieć wartość
logiczną true bądź false.

Poniższy przykład pokazuje zarówno wykorzystanie funkcji if, jaki i przejście z
subdialogu count do subdialogu delivery z wykorzystaniem funkcji sterującej goto:

<subdialog name="SubD_1" src="Subdialog_File.xml">
<param name="question" expr="' Welcome in automatic call center. Please enter
Your phone number. Please enter Your password.
Login correct. What would You like to do? You can choose between: balance,
validity, my services, available services, manage services.'"/>

background image

<filled>

<if cond="SubD_1.response =='balance'">

<prompt>

Your account balance is 10$.

</prompt>

<elseif cond="SubD_1.response =='validity'"/>

<prompt>

Your account validity is 30 days.

</prompt>


<elseif cond="SubD_1.response =='my services'"/>

<prompt>

Your services one two three.

</prompt>

<elseif cond="SubD_1.response =='available services'"/>

<prompt>

Available services one two three.

</prompt>

<elseif cond="SubD_1.response =='manage services'"/>

<prompt>

You have chosen manage services option.

</prompt>

<goto nextitem="SubD_2"/>


<else/>

<nomatch>

Sorry, I didn't get that. Please repeat.

<reprompt/>

</nomatch>
<noinput>

Sorry, I can't hear you. Please repeat.

<reprompt/>

</noinput>

</if>


<goto nextitem="SubD_1"/>

</filled>
</subdialog>




background image

3.

Zastosowanie pola <field> z atrybutami expr i cond:

Atrybut expr nadaje danemu polu wartość tego atrybutu. W poniższym przykładzie
atrybut expr zapewnia nam odczytanie przez IVR wiadomości, natomiast w
przyszłości można go użyć do potwierdzenia poprawności rozpoznania słowa
wypowiedzianego przez użytkownika z odpowiednikiem w zdefiniowanej gramatyce:

<param name="question" expr="'You can choose between buy and delete service.
What would You like to do?'"/>

Co do atrybutu cond, to decyduje on o wejściu do pola. Jest to atrybut reprezentujący
warunek. W przypadku jego realizowane jest polecenie, np.:

<if cond="SubD_2.response=='buy'">

<prompt>

You have chosen buy service option.

</prompt>

Natomiast warunek cond może posłużyć również do opracowania prostego
uwierzytelniania użytkowników poprzez sprawdzenie poprawności podanego przez
owego użytkownika hasła.

4.

Zastosowanie subdialogu (tag <subdialog> z atrybutami name i src; tag <param>

z atrybutami name i expr; tag <return> z atrybutem namelist)

:


Subdialog pozwala na przenie sienie sterowania do innego pliku *.xml, pozwalając na
przekazanie i zwracanie wartości parametrów. Poniżej przykład w praktyce:
Fragment pliku subD.xml:

<subdialog name="SubD_1" src="Subdialog_File.xml">
<param name="question" expr="' Welcome in automatic call center. Please
enter Your phone number. Please enter Your password.
Login correct. What would You like to do? You can choose between:
balance, validity, my services, available services, manage services.'"/>

<filled>

<if cond="SubD_1.response =='balance'">

<prompt>

Your account balance is 10$.

</prompt>

<elseif cond="SubD_1.response =='validity'"/>

<prompt>

Your account validity is 30 days.

</prompt>


<elseif cond="SubD_1.response =='my services'"/>

<prompt>

Your services one two three.

</prompt>

<elseif cond="SubD_1.response =='available services'"/>

background image

<prompt>

Available services one two three.

</prompt>

<elseif cond="SubD_1.response =='manage services'"/>

<prompt>

You have chosen manage services option.

</prompt>

<goto nextitem="SubD_2"/>


<else/>

<nomatch>

Sorry, I didn't get that. Please repeat.

<reprompt/>

</nomatch>
<noinput>

Sorry, I can't hear you. Please repeat.

<reprompt/>

</noinput>

</if>


<goto nextitem="SubD_1"/>

</filled>
</subdialog>

Fragment pliku SubdialogFile.xml:

<field name="response" cond="true">

<grammar type="text/gsl"> [balance validity my services available services
manage services] </grammar>
<grammar type="text/gsl"> [buy delete] </grammar>
<grammar type="text/gsl"> [yes no] </grammar>



<prompt>
<value expr="question"/>
</prompt>

<filled>
<return namelist="response"/>
</filled>

</field>






Uwagi dotyczące testowania aplikacji na portalu głosowym Voxeo z wykorzystaniem
Skype:

background image


W czasie realizacji zadania napotkano dziwne zachowanie serwera głosowego Voxeo
przy połączeniu przez Skype. Otóż aplikacja czasami nie chciała się uruchomić.
Nawiązywane było połączenie, natomiast dopiero po kilku próbach aplikacja
startowała. W pozostałych przypadkach połączenie albo było zrywane bez żadnej
informacji, albo aplikacja nie reagowała na wprowadzane dane głosowe.

Jeśli chodzi o pozostałe trudności związane z testowaniem aplikacji, związane były
one z początkowymi literówkami w kodzie xml. Wbudowany debbuger pozwolił
jednak na wskazanie i poprawienie popełnionych błędów.
Nr Skype:

+990009369996159568


Wyszukiwarka

Podobne podstrony:
Spr7 Łukasz Śledzik I1H1S2(1)
I1H1S2 PSBI SledzikLukasz, WAT, SEMESTR IX, psbi, 0zadaniaPSBI-SAiI
I1H1S2 Sledzik Lukasz(1)
Śledzik Łukasz I1H1S2 Miw(1)
Łukasz Okła I1H1S2 lab2(1)
I1H1S2 Sledzik Lukasz(1)
Śledzik Łukasz I1H1S2 Miw(1)
WdA Lab2 Lukasz Skrodzki
Projekt sprawozdanie Śledzik Łukasz(1)
Sprawozdanie4 Śledzik Łukasz(1)
I9M1S1 Nawrot Gudanowicz lab2
IWP JP2 Lab2 Struktury
Lab2 OZE id 259328 Nieznany
Ćw 03c Izolacja limfocytów ze śledziony oraz określanie żywotności komórek
lrm sprawozdanie kck lab2
LAB 4 Lab2 WprowadzenieMATLAB 2 Nieznany
SLEDZIE w zalewie pomidorowej - pyszne, Inne, KULINARIA
Uraz śledziony, MEDYCYNA, RATOWNICTWO MEDYCZNE, BTLS+chirurgia

więcej podobnych podstron