Author Message
MichaelDailous_deprecated
Joined: Nov 11, 2013
Messages: 171
Offline
I have a "starter" ccxml application that loads a different ccxml application depending on some situation. I am trying to pass the session object via the fetchparam attribute, and various other variables via the namelist attribute. The code looks like the following:

<createccxml next="'outgoing.ccxml'" fetchparam="'session'" namelist="param1 param2 param3" />

In the logs for the outgoing.ccxml application, I can see when the ccxml application is loaded, the information passed via the "queryArgs" parameters, but I have no idea how to access this information:

Example

queryArgs: [
param1: "192.168.1.188"
param2: "true"
param3: "Test"
__AVAYA_FETCH_PARAM_TYPE: "session"
__VPapploggingurl: "https://10.10.2.20/axis/services/VPReport4"
__VPapplog: "/axis2/services/VPAppLogService"
__VPvpms: "10.10.2.20"
__VPappvars: "/axis2/services/VPAppVarsService"
__VPVarAppDate: "0"
__VPVarAppURL: "https://10.10.2.20/axis/services/VPAppRuntimeVars"
__VPVarGlobalDate: "1265733203015"
__VPbreadcrumb: "disabled"
__VPmaxbackuplogfiles: "10"
__VPlogname: "%default%Ba0FgR0EhNdjIYci"
__VPlogpassword: "v/ywfDJZk4xD23bGUYVg6yvIqjSQEkTOQeZEKurxcDbHCMWzLPYNx5Cr5mQ5IEqu"
__VPappname: "Michael Test"
]

As you can see, param1, param2 and param3 are listed with the correct values. Additionally, the __AVAYA_FETCH_PARAM_TYPE is indicative of "session".

1) How do I access the values of param1, param2 and param3? I have tried "session.values.param1", "session.values.avaya.param1", "session.values['param1']", "session.param1" to no avail. :(

2) How do I access the session information that was passed using the <createccxml fetchparam... /> call?
RossYakulis
Joined: Nov 6, 2013
Messages: 2652
Offline
I just tried this both in simulation and on the platform and it worked for me per the CCXML specification. Please use the CreateSession example application to test this.

         <var name="paramparameters" expr="'parametersvalue'" />
         <createccxml
            next="'<%=locationLocal%>/ccxml/child.jsp?x=a'"
            method="'post'"
            namelist="paramnamelist"
            parameters="paramparameters"
            fetchparam="'session'"
            sessionid="childId" />


Then in the child ccxml I dump out the session object and see:

values.mpp.vpms_net_addr:acb70.sv.avaya.com
values.paramparameters:parametersvalue
ioprocessors.basichttp:https://148.147.10.89:10443/mpp/ccxml/basichttp.php




------------ FULL SESSION DUMP -------------
@2013-10-15 08:15:40,223||FINEST|CXI|26878|Session=acb70-2013288151539-02001|Received event from CCXML interpreter:
expr: " sessiondata...
[
values.application.alerting:false
values.application.app_reporting_level:Info
values.application.app_tracing_level:o|e|e|e|e|e|e
values.application.app_type:in_bound
values.application.applogging_url_vp4_2:
values.application.apploggingurl_vp4:https://148.147.10.89/axis/services/VPReport4
values.application.asr_engine_type:nuance osr
values.application.asr_grammar_type:srgs
values.application.asr_languages:en-us
values.application.asr_save_dtmf:false
values.application.asr_save_result:false
values.application.asr_save_waveform:false
values.application.bread_crumb_sample_rate:0
values.application.enable_asr:true
values.application.enable_asr_dtmf_payload:true
values.application.enable_converse_on_command:false
values.application.enable_fax_detection:false
values.application.enable_network_media_services:false
values.application.enable_perf_trace:false
values.application.enable_tts:true
values.application.enable_video:false
values.application.encrypt_ae:false
values.application.generate_ucid:false
values.application.max_uui_length:128
values.application.name:0:Ross
values.application.redirect_fax_uri:
values.application.reporting_sample_rate:1000
values.application.save_prompt_uri:false
values.application.sip_app_selection_header:either_headers
values.application.start_mode:cxi_create_session
values.application.transcriptions_sample_rate:0
values.application.transport_ucid_on_uui:false
values.application.tts_engine_type:nuance realspeak
values.application.tts_languages:en-US:Jennifer:female
values.application.tts_save_string:false
values.application.uui_mode:service_provider
values.application.var_app_date:0
values.application.var_app_url:https://148.147.10.89/axis/services/VPAppRuntimeVars
values.application.var_app_url2:
values.application.var_global_date:1381428322849
values.application.vpapplog_service_path:/axis2/services/VPAppLogService
values.application.vpappvars_service_path:/axis2/services/VPAppVarsService
values.application.vpms_ipaddress:148.147.10.89
values.avaya.telephony.native_audio_format:audio/basic
values.avaya.vp_session_id:acb70-2013288151539-02001
values.mpp.app_svr_net_addr:148.147.10.89
values.mpp.full_host_name:acb70
values.mpp.h323.active:1
values.mpp.h323.active_outbound:1
values.mpp.h323.idle:0
values.mpp.h323.in_service:5
values.mpp.h323.in_service_outbound:5
values.mpp.h323.out_service:0
values.mpp.host_name:acb70
values.mpp.mpp_home_dir:/opt/Avaya/ExperiencePortal/MPP
values.mpp.sip.active:0
values.mpp.sip.active_outbound:0
values.mpp.sip.idle:0
values.mpp.sip.in_service:5
values.mpp.sip.in_service_outbound:5
values.mpp.sip.out_service:0
values.mpp.sip_domain:spice.sv.avaya.com
values.mpp.total_vp_ports:10
values.mpp.voip_net_addr:148.147.10.89
values.mpp.vpms_net_addr:acb70.sv.avaya.com
values.paramparameters:parametersvalue
ioprocessors.basichttp:https://148.147.10.89:10443/mpp/ccxml/basichttp.php
ioprocessors.createsession:https://148.147.10.89:10443/mpp/ccxml/createsession.php
startupmode:createccxml
id:acb70-2013288151539-02001
uri:http://135.105.105.211:8080/CreateSession/ccxml/child.jsp?x=a&paramnamelist=namelistvalue&%5f%5fVPapploggingurl=https%3a%2f%2f148%2e147%2e10%2e89%2faxis%2fservices%2fVPReport4&%5f%5fVPapplog=%2faxis2%2fservices%2fVPAppLogService&%5f%5fVPvpms=148%2e147%2e10%2e89&%5f%5fVPappvars=%2faxis2%2fservices%2fVPAppVarsService&%5f%5fVPVarAppDate=0&%5f%5fVPVarAppURL=https%3a%2f%2f148%2e147%2e10%2e89%2faxis%2fservices%2fVPAppRuntimeVars&%5f%5fVPVarGlobalDate=1381428322849&%5f%5fVPbreadcrumb=disabled&%5f%5fVPmaxbackuplogfiles=10&%5f%5fVPlogname=applog&%5f%5fVPlogpassword=VqBtOgrpBbelJ68zc9lVcBJb%2bTBErE%2fX70fKfAajoMs%3d&%5f%5fVPappname=0%3aRoss&session%2evalues%2eparamparameters=parametersvalue&session%2evalues%2eapplication%2estart%5fmode=cxi%5fcreate%5fsession&session%2evalues%2empp%2esip%5fdomain=spice%2esv%2eavaya%2ecom&session%2evalues%2empp%2efull%5fhost%5fname=acb70&session%2evalues%2empp%2ehost%5fname=acb70&session%2evalues%2empp%2empp%5fhome%5fdir=%2fopt%2fAvaya%2fExperiencePortal%2fMPP&session%2evalues%2empp%2etotal%5fvp%5fports=10&session%2evalues%2empp%2evoip%5fnet%5faddr=148%2e147%2e10%2e89&session%2evalues%2empp%2evpms%5fnet%5faddr=acb70%2esv%2eavaya%2ecom&session%2evalues%2empp%2eapp%5fsvr%5fnet%5faddr=148%2e147%2e10%2e89&session%2evalues%2empp%2eh323%2eidle=0&session%2evalues%2empp%2eh323%2ein%5fservice=5&session%2evalues%2empp%2eh323%2ein%5fservice%5foutbound=5&session%2evalues%2empp%2eh323%2eout%5fservice=0&session%2evalues%2empp%2eh323%2eactive=1&session%2evalues%2empp%2eh323%2eactive%5foutbound=1&session%2evalues%2empp%2esip%2eidle=0&session%2evalues%2empp%2esip%2ein%5fservice=5&session%2evalues%2empp%2esip%2ein%5fservice%5foutbound=5&session%2evalues%2empp%2esip%2eout%5fservice=0&session%2evalues%2empp%2esip%2eactive=0&session%2evalues%2empp%2esip%2eactive%5foutbound=0&session%2evalues%2eapplication%2ename=0%3aRoss&session%2evalues%2eapplication%2eapp%5ftype=in%5fbound&session%2evalues%2eapplication%2esip%5fapp%5fselection%5fheader=either%5fheaders&session%2evalues%2eapplication%2eenable%5fasr=true&session%2evalues%2eapplication%2eenable%5ftts=true&session%2evalues%2eapplication%2eencrypt%5fae=false&session%2evalues%2eapplication%2ealerting=false&session%2evalues%2eapplication%2eenable%5fconverse%5fon%5fcommand=false&session%2evalues%2eapplication%2easr%5fsave%5fwaveform=false&session%2evalues%2eapplication%2easr%5fsave%5fresult=false&session%2evalues%2eapplication%2easr%5fsave%5fdtmf=false&session%2evalues%2eapplication%2etts%5fsave%5fstring=false&session%2evalues%2eapplication%2esave%5fprompt%5furi=false&session%2evalues%2eapplication%2eenable%5fnetwork%5fmedia%5fservices=false&session%2evalues%2eapplication%2eenable%5fasr%5fdtmf%5fpayload=true&session%2evalues%2eapplication%2etranscriptions%5fsample%5frate=0&session%2evalues%2eapplication%2eenable%5fperf%5ftrace=false&session%2evalues%2eapplication%2ereporting%5fsample%5frate=1000&session%2evalues%2eapplication%2ebread%5fcrumb%5fsample%5frate=0&session%2evalues%2eapplication%2egenerate%5fucid=false&session%2evalues%2eapplication%2etransport%5fucid%5fon%5fuui=false&session%2evalues%2eapplication%2euui%5fmode=service%5fprovider&session%2evalues%2eapplication%2emax%5fuui%5flength=128&session%2evalues%2eapplication%2eenable%5ffax%5fdetection=false&session%2evalues%2eapplication%2eenable%5fvideo=false&session%2evalues%2eapplication%2eredirect%5ffax%5furi=&session%2evalues%2eapplication%2eapploggingurl%5fvp4=https%3a%2f%2f148%2e147%2e10%2e89%2faxis%2fservices%2fVPReport4&session%2evalues%2eapplication%2eapplogging%5furl%5fvp4%5f2=&session%2evalues%2eapplication%2evpms%5fipaddress=148%2e147%2e10%2e89&session%2evalues%2eapplication%2evpapplog%5fservice%5fpath=%2faxis2%2fservices%2fVPAppLogService&session%2evalues%2eapplication%2evpappvars%5fservice%5fpath=%2faxis2%2fservices%2fVPAppVarsService&session%2evalues%2eapplication%2eapp%5freporting%5flevel=Info&session%2evalues%2eapplication%2eapp%5ftracing%5flevel=o%7ce%7ce%7ce%7ce%7ce%7ce&session%2evalues%2eapplication%2evar%5fapp%5fdate=0&session%2evalues%2eapplication%2evar%5fapp%5furl=https%3a%2f%2f148%2e147%2e10%2e89%2faxis%2fservices%2fVPAppRuntimeVars&session%2evalues%2eapplication%2evar%5fapp%5furl2=&session%2evalues%2eapplication%2evar%5fglobal%5fdate=1381428322849&session%2evalues%2eapplication%2easr%5flanguages=en%2dus&session%2evalues%2eapplication%2etts%5flanguages=en%2dUS%3aJennifer%3afemale&session%2evalues%2eapplication%2etts%5fengine%5ftype=nuance%20realspeak&session%2evalues%2eapplication%2easr%5fengine%5ftype=nuance%20osr&session%2evalues%2eapplication%2easr%5fgrammar%5ftype=srgs&session%2evalues%2eavaya%2etelephony%2enative%5faudio%5fformat=audio%2fbasic&session%2evalues%2eavaya%2evp%5fsession%5fid=acb70%2d2013288151539%2d02001&session%2eid=acb70%2d2013288151539%2d02001&session%5f%5f%5fsessionid=acb70%2d2013288151539%2d02001
parentid:acb70-2013288151539-9
_maxresource:0
_active:0
application.ccxml.objectToString:
function objectToString(obj) {
var result = " [\n";
result += extractprops("", obj);
result += " ]";
return result;
}

application.ccxml.extractprops:
function extractprops(parent, obj) {
var prop, name, result = "";
var count = 1;
if (typeof (obj) == "object") {
for (prop in obj) {
name = parent + prop;
if (typeof (obj[prop]) == "object") {
result += extractprops(name + ".", obj[prop]);
} else {
result += " " + name + ":" + obj[prop] + "\n";
}
count = count + 1;
}
} else {
if (obj == undefined) {
result += "___undefined";
} else {
result += obj;
}
}
return result;
}

application.ccxml.event$.name:ccxml.loaded
application.ccxml.event$.parent:acb70-2013288151539-9
application.ccxml.event$.sessionid:acb70-2013288151539-02001
]
MichaelDailous_deprecated
Joined: Nov 11, 2013
Messages: 171
Offline
Once I changed "namelist" to "parameters", I'm able to access the parameters via the session.values.___ variables. Thank you, Ross. :)

One of the things I'm trying to do with passing the session object as the fetchparam is to be able to play a dialog on the incoming connection. How do I accomplish this? Every time I try to access the parent session connection id, I get an error that the connection doesn't exist... :(

Thanks again,
Michael
RossYakulis
Joined: Nov 6, 2013
Messages: 2652
Offline
namelist always goes the the where the page is fetched (start dialog, create session) and parameters are sent to the new instance (Dialog or ccxml session).

In the child you cannot access connections in the parent. The way it would work is that you would use "move" to move the connection from one session to another.

"<move> is used to move an event source (such as a Connection object) to an executing CCXML session. When an event source is moved to a session, events originating from that source MUST be delivered to that session's currently executing CCXML document. Support for the <move> element is optional in CCXML platforms. Even if <move> is supported platforms MAY only support it between a restricted set of CCXML sessions. If <move> is unsupported the CCXML platform MUST raise an error.move event."

In EP move is unsupported.
RossYakulis
Joined: Nov 6, 2013
Messages: 2652
Offline
In the child session you can create new connectoins (createcall) and send events between the parent and child session.
MichaelDailous_deprecated
Joined: Nov 11, 2013
Messages: 171
Offline
Any way to accept an incoming call in the child session? Or join a parent connection into a conference in a child session?
RossYakulis
Joined: Nov 6, 2013
Messages: 2652
Offline
The child cannot accept the connection. But I am not sure if you passed the connection id to the child and then joined the conference created in the child if that would work or not. I know the participants on a conference must be one the same MPP. I would try it out and see.
Go to:   
Mobile view