Hi, Guys,
I deployed a GVP solution using CTI through IVR Server mode.
and developed routing strategy to attach userdata “userdata1” and route to a place group of GVP ( CTIC behind mode) , then trigger a ivr apps.
IVR app can be triggered , but userdata pass always failed.
The following is related MCP log.
2012-08-08 14:36:09.878 DBUG 00F30102-10002E1E 4380 0C000000 IfRuntime.cxx:59 Execute() Started, event type: -1
2012-08-08 14:36:09.878 DBUG 00F30102-10002E1E 4380 0C000000 Runtime.cxx:560 EvaluateCond(): Condition [AppState.g_CTICCall == ‘false’]
2012-08-08 14:36:09.878 DBUG 00F30102-10002E1E 4380 0C000000 Runtime.cxx:585 EvaluateCond(): Result was ‘true’
2012-08-08 14:36:09.878 DBUG 00F30102-10002E1E 4380 0C000000 Runtime.cxx:77 RuntimeFactory(): Called for [SimplePrompt] at line [150]
2012-08-08 14:36:09.878 DBUG 00F30102-10002E1E 4380 08500000 SessionConfiguration.C:112 SessConfig::GetValue - Param=[vxmli.conformance.strict_tts_mode]; Value=[FALSE]; [Global]
2012-08-08 14:36:09.878 DBUG 00F30102-10002E1E 4380 0C000000 SimplePromptRuntime.cxx:33 Execute() Started
2012-08-08 14:36:09.878 DBUG 00F30102-10002E1E 4380 0C000000 Runtime.cxx:77 RuntimeFactory(): Called for [If] at line [150]
2012-08-08 14:36:09.878 DBUG 00F30102-10002E1E 4380 0C000000 IfRuntime.cxx:59 Execute() Started, event type: -1
2012-08-08 14:36:09.878 DBUG 00F30102-10002E1E 4380 0C000000 Runtime.cxx:560 EvaluateCond(): Condition [session.com.genesyslab.userdata != undefined]
2012-08-08 14:36:09.882 DBUG 00F30102-10002E1E 4380 0C000000 Runtime.cxx:585 EvaluateCond(): Result was ‘true’
2012-08-08 14:36:09.882 DBUG 00F30102-10002E1E 4380 0C000000 Runtime.cxx:77 RuntimeFactory(): Called for [SimplePrompt] at line [151]
2012-08-08 14:36:09.882 DBUG 00F30102-10002E1E 4380 08500000 SessionConfiguration.C:112 SessConfig::GetValue - Param=[vxmli.conformance.strict_tts_mode]; Value=[FALSE]; [Global]
2012-08-08 14:36:09.882 DBUG 00F30102-10002E1E 4380 0C000000 SimplePromptRuntime.cxx:33 Execute() Started
2012-08-08 14:36:09.882 DBUG 00F30102-10002E1E 4380 0C000000 Runtime.cxx:77 RuntimeFactory(): Called for [If] at line [151]
2012-08-08 14:36:09.882 DBUG 00F30102-10002E1E 4380 0C000000 IfRuntime.cxx:59 Execute() Started, event type: -1
2012-08-08 14:36:09.882 DBUG 00F30102-10002E1E 4380 0C000000 Runtime.cxx:560 EvaluateCond(): Condition [getUserDataVariable(‘userdata1’) != undefined]
2012-08-08 14:36:09.882 DBUG 00F30102-10002E1E 4380 0C000000 Runtime.cxx:585 EvaluateCond(): Result was ‘false’
2012-08-08 14:36:09.882 DBUG 00F30102-10002E1E 4380 0C000000 Runtime.cxx:560 EvaluateCond(): Condition [true]
2012-08-08 14:36:09.882 DBUG 00F30102-10002E1E 4380 0C000000 Runtime.cxx:585 EvaluateCond(): Result was ‘true’
2012-08-08 14:36:09.882 DBUG 00F30102-10002E1E 4380 0C000000 Runtime.cxx:77 RuntimeFactory(): Called for [SimplePrompt] at line [154]
2012-08-08 14:36:09.882 DBUG 00F30102-10002E1E 4380 08500000 SessionConfiguration.C:112 SessConfig::GetValue - Param=[vxmli.conformance.strict_tts_mode]; Value=[FALSE]; [Global]
2012-08-08 14:36:09.882 DBUG 00F30102-10002E1E 4380 0C000000 SimplePromptRuntime.cxx:33 Execute() Started
2012-08-08 14:36:09.882 DBUG 00F30102-10002E1E 4380 0C000000 Runtime.cxx:77 RuntimeFactory(): Called for [Throw] at line [154]
2012-08-08 14:36:09.882 DBUG 00F30102-10002E1E 4380 0C000000 ThrowRuntime.cxx:38 Execute() Started, event type: -1
2012-08-08 14:36:09.882 DBUG 00F30102-10002E1E 4380 08500000 SessionConfiguration.C:112 SessConfig::GetValue - Param=[vxmli.maintainer.log_message.on_error]; Value=[TRUE]; [Global]
2012-08-08T14:36:09.882 Int 50034 00F30102-10002E1E 4380 event error.com.genesyslab.composer.invalidkey:1|Missing InteractionData key ‘userdata1’
2012-08-08T14:36:09.882 Int 50080 00F30102-10002E1E 4380 event_handler_enter :error .|http://b030688:8080/HelloWorld/src-gen/Main.vxml
2012-08-08 14:36:09.882 DBUG 00F30102-10002E1E 4380 0C000000 CatchRuntime.cxx:131 Execute() Started, event type: -1
the following is the VXML code, it looks like AppState.g_CTICCall == ‘false’ caused the invalidkey issue.
I used lower case userdata name, and configured userdata-map-trans-prefix = ‘X-Genesys-’ for userdata mapping.
<block>
[b] <if cond="AppState.g_CTICCall == 'false'" >
<if cond="session.com.genesyslab.userdata != undefined">
<if cond="getUserDataVariable('userdata1') != undefined">
<assign name="AppState.userdata1" expr="getUserDataVariable('userdata1')" />
<else/>
<throw event="error.com.genesyslab.composer.invalidkey" message="Missing InteractionData key 'userdata1'"/>[/b]
</if>
<if cond="getUserDataVariable('userdata2') != undefined">
<assign name="AppState.userdata2" expr="getUserDataVariable('userdata2')" />
<else/>
<throw event="error.com.genesyslab.composer.invalidkey" message="Missing InteractionData key 'userdata2'"/>
</if>
</if>
<else/>
<!-- CTIC Case -->
<script>
var Action = "GetData";
var KeyName1 = "userdata1";
var KeyName2 = "userdata2";
</script>
<gvp:send namelist="Action KeyName1 KeyName2" async="false"/>
<gvp:receive maxtime="10s"/>
<if cond="isCTICResult( application.lastmessage$ ) == 'false'">
<throw event="error.com.genesyslab.composer.receiveerror" messageexpr="'The received message has invalid content-type.'" />
</if>
any thoughts?
thanks in advance.
Kevin