Cisco Cisco Unified Customer Voice Portal 10.0(1) Guía Del Usuario
C
HAPTER
2:
Unified CVP
C
OMPONENTS IN
D
ETAIL
U
SER
G
UIDE FOR
C
ISCO
U
NIFIED
CVP
VXML
S
ERVER
AND
C
ISCO
U
NIFIED
C
ALL
S
TUDIO
45
The Unified CVP decision element XML file would be named “IsCallerAWinner” and be saved
in
in
AUDIUM_HOME/applications/Example2/data/misc.
The XML file content will be:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE knowledge_base SYSTEM "../../../../dtds/DecisionKnowledgeBase.dtd">
<knowledge_base>
<rule name="NameStartsWith" default_exit_state=”not a winner”>
<exit_state name="no name" conjugate="and">
<boolean value="false" check_existence="yes">
<user_info>
<demographic type="name"/>
</user_info>
</boolean>
</exit_state>
<exit_state name="is a winner" conjugate="or">
<string operator="starts_with">
<user_info>
<demographic type="name"/>
</user_info>
<!DOCTYPE knowledge_base SYSTEM "../../../../dtds/DecisionKnowledgeBase.dtd">
<knowledge_base>
<rule name="NameStartsWith" default_exit_state=”not a winner”>
<exit_state name="no name" conjugate="and">
<boolean value="false" check_existence="yes">
<user_info>
<demographic type="name"/>
</user_info>
</boolean>
</exit_state>
<exit_state name="is a winner" conjugate="or">
<string operator="starts_with">
<user_info>
<demographic type="name"/>
</user_info>
<data>
<element name="GetRandomLetter” variable="letter1"/>
</data>
</string>
<string operator="starts_with">
<user_info>
<demographic type="name"/>
</user_info>
<data>
<element name="GetRandomLetter” variable="letter2"/>
</data>
</string>
</exit_state>
</rule>
</knowledge_base>
</data>
</string>
<string operator="starts_with">
<user_info>
<demographic type="name"/>
</user_info>
<data>
<element name="GetRandomLetter” variable="letter2"/>
</data>
</string>
</exit_state>
</rule>
</knowledge_base>
Notes:
•
The “no name” exit state is listed first. This is because before we try to analyze the user’s
name, we have to first know that it exists. So we check if the name does not exist first and if
it fails it means the name exists and we can go on.
name, we have to first know that it exists. So we check if the name does not exist first and if
it fails it means the name exists and we can go on.
•
The second exit state must check if the name begins with the first or second letter but the last
exit state must check if the name does not begin with the first and second letter.
exit state must check if the name does not begin with the first and second letter.
XML Decision Example #3
An application named “Example3” is designed to trigger a flag named “account menu” when a
caller chooses to manage their account. As of June 15, 2004, the menu options were changed for
the account menu. We want to tell people the options have changed, but only if we know they’ve
visited that part of the application before June 15. If not, there is no reason to say anything
because the caller is experiencing this for the first time. A decision element is needed that
distinguishes between those to play the changed audio to from those who should encounter the
menu normally. A tricky part of the rule is that it must deal with the day, month, and the year,
caller chooses to manage their account. As of June 15, 2004, the menu options were changed for
the account menu. We want to tell people the options have changed, but only if we know they’ve
visited that part of the application before June 15. If not, there is no reason to say anything
because the caller is experiencing this for the first time. A decision element is needed that
distinguishes between those to play the changed audio to from those who should encounter the
menu normally. A tricky part of the rule is that it must deal with the day, month, and the year,