AskiaField 5.6.1
For this major version, a huge amount of underground work has been done on improving WebProd performance, particularly in terms of dealing with database calls (writing/updating), optimising AskiaScripts and CPU usage, as well as the implementation of pre-compiled ADC/ADP scripts. All of this will increase the user experience when dealing with larger surveys.
In the meantime, we have also implemented less invisible stuff!
Table of Contents
- Synchronisation between WebProds
- Quota Window Improvements
- Managing Mixed-Mode Surveys
- End Date & Time for CAWI Surveys
- Database Improvements
- Password Security Features
- Logs Creation by Interval
- Restrict Multiple Web Sessions
- Supervisor Restriction for Packages
- Reload Survey in CcaWebAPI
- Client Applications Available as 64-bit Versions
- Upload Multiple Files At Once
- WebProd Licence Management from Supervisor
- Populate List with DoPanel links
Synchronisation between WebProds
Fact: Server hopping happens. Whatever we put in place, Barracuda or session cookies: once in a while interviews jump from one server to another which is potentially not good for data, as we store interviews in memory. For that we have implemented two new features.
- Masque Revision Increment (MRI)
To detect if the version of the interview we are reading is the correct one, we have added a new parameter in all pages called MRI (Masque Revision Increment). After each page (back and forward), this MRI is incremented and stored in the masque. This MRI is encrypted.
https://[MyWebprodServer]/WebProd/cgi-bin/AskiaExt.dll?Action=DoInterview&Survey=30S1KPCWSJA60I09&Intvw=30S16W0Z6UOG2GEB&Mri=fQ==
If at one point a URL requests that the interview should at MRI 50 and we have in memory MRI 40, we know that we do not have the latest version of the interview. So we have a detection of the problem.
- RabbitMQ Implementation
For the fix of the above problem, we are using RabbitMQ. We created a broadcast channel called WebProd. If we realise we have the wrong interview, we send a broadcast with the key being: survey.XX.intvw.NN.mri.ii where XX is the ID of the survey, NN the ID of the interview and ii the desired increment, along with GUID as a unique identifier of the WebProd.
In parallel each WebProd listens to the RabbitMQ WebProd channel with 2 types of bindings:
- One for all types of surveys which are loaded: survey.XX.intvw. * . mri . *
If a message is received there, the WebProd looks to see if it has the right interview in memory with the right increment. In that case, it saves the interview into SQL Server, unloads it from memory and sends a message with the key: instance.ZZ.intvw.NN and with the following body {"action":"acknowledgeInterview","surveyId":XX,"interviewId":NN,"masqueIncrement":ii} where ZZ is the GUID of the sender. - One for its own GUID to receive the acknowledgeInterview instance.zz.#
The settings of the RabbitMQ are stored in the WP_Const table of the WebProd database:
- RabbitMQUserName: User for your RabbitMQ instance
- RabbitMQHost: Hosts URL for your account. Example: toto.rmq.cloudamqp.com
- RabbitMQPort: Default port is 5672
- RabbitMQPassword: Password for your RabbitMQ Instance
- RabbitMQVirtualHost: same as RabbitMQUserName
You can tune the various timeouts when using RabbitMQ with these settings:
- RabbitMQTimeOut: this is the time the thread is blocked (in seconds) while waiting for an interview, if the increment does not match (can be decimal) - default is 10 seconds.
- RabbitMQStartPanelTimeOut: this is the time the thread is blocked (in seconds) when a DoExternalPanel is launched to check if another WebProd has a copy of the interview. This number directly impacts the usability because in a normal cases no WebProd has a copy of the interview (can be decimal) - default is 1 second.
- RabbitMQRedirections: this is the number of times we show the "attempt to retrieve your interview from servers" if we have not managed to retrieve the interview after the RabbitMQTimeOut timeout - default is four times.
- InterviewRestartTimeOut: this is the number of seconds after which we consider an interview to be abandoned and which will mean a RestartRotuing will be triggered if the interview comes back to it (it's now different from the InterviewsInMemoryTimeout_min) - default is 120 seconds.
- RetrieveInterviewDelay: indicates how long (in seconds) the browser stays on the screen ""attempt to retrieve your interview from servers" - default is 10 seconds.
Quota Window Improvements
We have added some options that will help with the readability of the quota window. These options are available in the Customize section of a quota window:
- Colour by questions
The colour has been added to differentiate the questions and have a clearer quota window.
- Hide DK/NA/Invalid
We have added an option, in the Quota tab, in Customize section, to allow you to hide the DK/NA/Invalid responses on your quota monitor:
- Split running count
Now, you can have a distinct running count between the running interviews and the Reserved interviews (those reserved in Preview dialing and those reserved for predictive dialing).
- Quota blocked and To Do
Now, you can block a quota without losing the To Do information as in previous versions. The To do information is set into brackets.
- Move up/down a quota question
Now, you can drag and drop quota questions up and down into the quota tree (on the same level):
Managing Mixed-Mode Surveys
We have developed two major features in 5.6 that will extend the usage of mixed-mode surveys.
- Switch contacts from CATI to CAWI
This option allows you to send interview data to the WebProd and make the contact available for Web (Mode = Web). When doing this, you can send mails with a DoPanel link to the respondents and allow them to finish the survey in web.
The option is available in 3 locations:
- Contextual menu on sample list
- Scheduled task on sample list
- Contextual menu on selected contact in find/edit contact(s) window
When activating this feature, you can select what kind of contacts you want to send to:
- Include contacts which haven't been called
- All available called contacts
- All available called contacts with a selection of last call result
That will allow you to send an email to the respondent to invite it to continue his interview on web.
- Send email to CATI contacts
This option has been designed for a mixed-mode survey where you already have switched back contacts from web to telephony or when your contacts are set as Mode = telephony
This option is part of sending mails dialog (invitation & reminder) when checking "Include telephony contacts":
You can select all available telephony contacts or on some specific last call result.
This option will not transfer any data from the survey to WebProd. It will only allows you to send emails to CATI contacts.
End Date & Time for CAWI Surveys
In task properties > WebProd tab, we have added a new option that allows you to automatically set the survey offline on a chosen date & time:
Database Improvements
- Updates on the SurveysQuota table
For AskiaRapide integration and other reporting purposes, we have implemented a regular update of quota values into the SQL table "SurveysQuota". Two new settings are involved:
- Global setting for the "delay"
In the CCA Settings dialog > Tasks > Surveys, there is a new setting that allows you to set the delay, in seconds, to save the quota information into the database. By default, it's 300 seconds.
It needs to be applied on the survey properties side (on the default level or on the survey level). The setting is named "Save quota state periodically to database:"
Default properties > Quota tab:
Ribbon > Quota > Settings:
Cca.SurveysQuota will be updated with all the live quota numbers:
- CompletedCount
- IncompletedCount
- AppointmentCount
- AppointmentInQuotaCount
- AvailableForTelephonyCount
- AvailableForWebCount
- AvailableCount
- AllocatedForFaceMinimumCount
- AllocatedForFaceMaximumCount
- AllocatedForWebMinimumCount
- AllocatedForWebMaximumCount
Web survey connections
A new table has been added to the CCA database: SurveysWebConnections. It contains all the surveys presents on WebProd, with their Online status:
Password Security Features
We have added some password features for Supervisor, CATI and AskiaFace Windows:
- Password security policies
- Expiration date
These settings (deactivated by default during an initial setup or update) can be activated in the CCA settings dialog, under each socket settings:
- Password Security policies
When applied, with an expiration date, a password must be changed in order to fit with new security policies. That happens on the very first Supervisor or CATI connection to CCA after the setting has been applied.
At the first connection, after having entered your current password, you will be invited to change it:
You must enter your current password another time and then set a new password that must fit with current policies, as described in the dialog:
- Expiration date
This password security policies feature goes along with an expiration date that you set at the same place as the Password policies setting. By default, the value is set on 0 (no expiration), but you can enter any value as needed.
The date & time of the change of password is stored into a new field in Cca.Agents table > PasswordModifyTime.
Logs Creation by Interval
In the case of heavy usage of AskiaField applications, the daily logs created can become quite large (up to several GB). That is not helpful either for debugging or for the amount of disk space used (even if these logs are compressed on regular basis).
We have added an extra setting that allows you to split these daily logs by a certain amount of minutes. You can set it into CCA Settings, under the general settings section:
Restrict Multiple Web Sessions
There is a new feature that allows you to prevent a respondent from opening multiple tabs/browser within the same survey link.
This new feature works along with the Internet Settings > Final pages > Pause page in Design in order to warn the respondent when they are opening the survey link in another tab/browser.
The multiple session is active until the end of the timeout session, set on your WebProd.
To activate it, simply open your web survey properties in Supervisor, go to the WebProd tab and tick the "restrict multiple sessions" checkbox:
This Is also accessible through CcaWebAPI, in GET call for CcaWebAPI/SurveysTasks/{{SurveyID}} as "BlockedMultipleSessions" parameter.
Supervisor Restriction for Packages
We have added two new settings for Supervisor restrictions:
- Allow Survey Package creation
- Allow Survey Package importation
These settings are in Supervisor's Restriction properties > Management tab (unchecked by default):
Reload Survey in CcaWebAPI
We have implemented two new API calls to reload Surveys and Surveys and Lists.
- SurveyTasks/{id}/ReloadSurvey
{
"Request": {
"Method": "POST",
"Url": "http://127.0.0.1/ccawebapi/SurveyTasks/2126/ReloadSurvey"
},
"Version": "5.6.1.0",
"StatusCode": 200
}
- SurveyTasks/{id}/ReloadSurveyAndLists
{
"Request": {
"Method": "POST",
"Url": "http://127.0.0.1/ccawebapi/SurveyTasks/2126/ReloadSurveyAndLists"
},
"Version": "5.6.1.0",
"StatusCode": 200
}
These reload calls are allowed (or not) according to the Supervisor login attached to the API token.
Client Applications Available as 64-bit Versions
Cati, AskiaFace and Supervisor are now only available in 64-bit versions. It implies some changes in registry and in file locations. The automatic updates will take care of these changes.
During the automatic update (or a manual update), registry values for the application will be moved from
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Peter Holmes
to
HKEY_LOCAL_MACHINE\SOFTWARE\Peter Holmes
And file locations will be set from:
C:\Program Files (x86)\AskiaField
to
C:\Program Files\AskiaField
Upload Multiple Files At Once
You have the ability to upload/download multiple file at once. As usual, you click on "Download file from Cca" or "Upload file to CCA" from the Supervisor ribbon.
On the "Select Remote file(s) accessible by CCA" or "Select local file(s) to upload window" windows, you can use the usual Windows methods:
CTRL Key:
- Click on one of the files or folders you want to select.
- Hold down the control key (Ctrl).
- Click on the other files or folders that you want to select while holding the control key.
Shift Key (for grouped files):
- Click the first file or folder, and press and hold Shift.
- While holding Shift, click the last file or folder.
Mouse:
- Drag the mouse across the files or folders you want to select while holding down the mouse the entire time.
- Continue dragging the mouse until you select all the files or folders you want.
- Release the mouse.
WebProd Licence Management from Supervisor
The management of the WebProd licence is now available directly from Supervisor > Web connections > Web node > Manage Licence:
When you're in need to increase or decrease the number of WebProd positions, you need to:
1/ Enter the number of requested positions, generate the security code and copy/paste into an email to support@askia.com
2/ You can safely close the window
3/ Askia support will send you two key files to upload on the corresponding names:
4/ Then click on the "Validate" button to apply the new WebProd licence. It will prompt a window with the result:
This feature comes along with a Supervisor restriction > Management tab > "Allow Managing WebProd licence":
Populate List with DoPanel links
There is a new contextual menu on Sample lists > Web > Populate AskDoPanelLink Field:
That allows you to write the DoPanelLinks for each contact into the sample list. The link will be visible in Find/Edit contacts module:
And will also be in the exported list.
That could be useful if you want to keep the DoPanel imports if you're outsourcing the mailing.