~specrules strip_html
~Comment
Created By:
Study Name: Multi Modal Demo
Study Code: multidemo
Client: CfMCDemo
Programmed by:
Server name:
Date: 2013-11-08 03:06:01
Software Version: 8.5
'' ========== BASIC DATA DEFINES
''>Ifdefine" compile switches (use '' to comment out)
============================
>DEFINE @STUDY multidemo '' Study name
>DEFINE @CASELENGTH 32000 '' Data Case Length
>DEFINE @VERSION 1.0 '' Study version
>DEFINE @QDATE 110813 '' Q'naire Date
>DEFINE @WAVE 1 '' Study Wave
>DEFINE @SAVETERM '' Save Terminate Data Toggle
''>DEFINE @TEST
>DEFINE @DIALER ''Using a dialer, if not set, dialer quotas ignored
>DEFINE @CALLNOTES ''If you use call notes you need "HistoryNoteLen=64" in the .fon file
'' ========== STUDY HEADER
>PURGESAME
>LOCFORMAT 1
>FILLDEFINESINQUOTES
''~SPEC_RULES CLN_CHK
~PREPARE COMPILE SPECS MENTOR
[@STUDY,&
@CASELENGTH,&
SPECWID=1500, &
TRIPLEQUOTAS, &
allowunsetquotas,&
CASEID=1.6, &
TEXTSTART=20001, &
WORKSTART=15001, &
FONETEXTLENGTH=4900, &
''LANGUAGE=(CHAR_SET=EXTENDED_ASCII SET=(EN) DEFAULT_LANGUAGE=** SPEAKING=EN),& '' Multilanguage header keyword
''QFFNAME=QFFNAME, & '' Multi-QFF study keyword
]
''{!STRIP_HTML } '' Strip HTML from QFF/DB/DEF (for data processing only!)
''Web controls
''============
{!display_mode=websurvent } ''Make sure specs conform to web standards
{!html_dataquestions_only} ''Only apply !html statements to data asking qs
{!html_checkboxes=200} ''If <= 200 codes use checkboxes not dropdown
{!html_radiobuttons=200} ''If <= 200 codes use radiobuttons not dropdown
'' ========== AESTHETIC DEFINES
>DEFINE @LINE \+
\* '' Left justified line for spacing questions
>DEFINE @SPACE5 \+ \* '' 5 HTML spaces for indenting
>Define @LINEBREAK \+
\*
'' ========== EXTERNAL TMPL CONTROLS
''{!HTML_DEFINE URL http://demos.cfmc.com//cfmcdemo/multidemo3/index.php } '' Pipe URL for suspend.tmpl info
{!HTML_DEFINE TITLE Multi Modal Demo 3 }
{!-HTML_DEFINE SECHEAD Section Header }
'' ========== COLOR LIST
{!COLOR_LIST maincolor altcolor } '' Defines COLOR and ALTCOLOR classes, can also use hex colors
''!Html globals and blocks
''========================
'' Sets default grid error formatting
'' Griderror CSS class:
'' .error - formats the grid error and error message for all qtypes
{!html_griderror_prefix= }
{!html_griderror_suffix=
}
'' Default look - formats all basic FLD, VAR, NUM and TEX questions that
'' do not require table formatting.
'' Default CSS classes are as follows:
'' .error - formats the grid error and error message for all qtypes
'' .qtext - formats the question text for all qtypes
'' .qlabel - formats response text in FLD questions
'' .qcomment - formats comment lines (=) in FLD questions
'' .qnum - formats span enclosing text input in NUM questions
'' .qnumexp - formats exception text in NUM questions
'' .qvar - formats span enclosing text input in VAR questions
'' .qtex - formats span enclosing text input in TEX questions
{Default: !start_cd_block }
{!html_error_prefix=}
{!html_error_suffix=
}
{!html_text_prefix=}
{!html_text_suffix=
}
{!html_rc_prefix=}
{!html_rc_suffix=}
{!html_rx_prefix=}
{!html_rx_suffix=}
{!html_rl_prefix=}
{!html_rl_suffix=
}
{!html_rlc_prefix=
}
{!html_rt_prefix=}
{!html_rt_suffix=
}
{!html_num_input_prefix=}
{!html_num_input_suffix=
}
{!html_num_exception_prefix=}
{!html_num_exception_suffix=}
{!html_var_input_prefix=}
{!html_var_input_suffix=
}
{!html_textquestion_input_prefix=}
{!html_textquestion_input_suffix=
}
{!html_field_n_input_prefix=}
{!html_field_n_input_suffix=}
{!end_cd_block }
'' Rating and Attribute List. Uses table-based structure to
'' display items on left side and radio buttons in separate cells.
'' Headers and footers must be created in grids.
'' NOTE: ERROR_PREFIX colspan must match table columns.
'' Rating CSS classes are as follows:
'' .error - formats the error row below the FLD row
'' .item - formats the left cell that holds the item / attribute
{Rating: !start_cd_block }
{!html_error_prefix= }
{!html_error_suffix= |
}
{!html_question_text_prefix=}
{!html_question_text_suffix= | }
{!html_response_code_prefix=}
{!html_response_code_suffix=}
{!html_response_text_prefix=}
{!html_response_text_suffix=}
{!html_response_list_item_prefix=}
{!html_response_list_item_suffix= | }
{!html_response_list_comment_prefix=}
{!html_response_list_comment_suffix=}
{!html_response_table_prefix=}
{!html_response_table_suffix=
}
{!html_num_input_prefix=}
{!html_num_input_suffix=}
{!html_num_exception_prefix=}
{!html_num_exception_suffix=}
{!html_var_input_prefix=}
{!html_var_input_suffix=}
{!html_textquestion_input_prefix=}
{!html_textquestion_input_suffix=}
{!html_field_n_input_prefix=}
{!html_field_n_input_suffix=}
{!end_cd_block }
'' Constant Sum Formatting. Uses table-based structure to
'' display items on left side and numeric inputs in cell on
'' right. Header must be created in grid.
'' Numtab CSS classes are as follows:
'' .error - formats the error row below the FLD row
'' .item - formats the left cell that holds the item / attribute
{Numtab: !start_cd_block }
{!html_error_prefix= }
{!html_error_suffix= |
}
{!html_question_text_prefix=}
{!html_question_text_suffix= | }
{!html_response_code_prefix=}
{!html_response_code_suffix=}
{!html_response_text_prefix=}
{!html_response_text_suffix=}
{!html_response_list_item_prefix=}
{!html_response_list_item_suffix=}
{!html_response_list_comment_prefix=}
{!html_response_list_comment_suffix=}
{!html_response_table_prefix=}
{!html_response_table_suffix=}
{!html_num_input_prefix=}
{!html_num_input_suffix= | }
{!html_num_exception_prefix=}
{!html_num_exception_suffix=}
{!html_var_input_prefix=}
{!html_var_input_suffix=}
{!html_textquestion_input_prefix=}
{!html_textquestion_input_suffix=}
{!html_field_n_input_prefix=}
{!html_field_n_input_suffix=}
{!end_cd_block }
'' Clear block. Erases all previous formatting for manually-designed grids.
{Clear: !start_cd_block }
{!html_error_prefix=
}
{!html_error_suffix=
}
{!html_question_text_prefix=}
{!html_question_text_suffix=}
{!html_response_code_prefix=}
{!html_response_code_suffix=}
{!html_response_text_prefix=}
{!html_response_text_suffix=}
{!html_response_list_item_prefix=}
{!html_response_list_item_suffix=}
{!html_response_list_comment_prefix=}
{!html_response_list_comment_suffix=}
{!html_response_table_prefix=}
{!html_response_table_suffix=}
{!html_num_input_prefix=}
{!html_num_input_suffix=}
{!html_num_exception_prefix=}
{!html_num_exception_suffix=}
{!html_var_input_prefix=}
{!html_var_input_suffix=}
{!html_textquestion_input_prefix=}
{!html_textquestion_input_suffix=}
{!html_field_n_input_prefix=}
{!html_field_n_input_suffix=}
{!html_num_input_prefix=}
{!end_cd_block }
'' ========== OVERALL QUOTA TARGETS GO HERE
{!TARGET COMPLETES=99999 }
{!target callback=0}
{!target noanswer=0}
{!target busy=0}
{!target numberchange=0}
{!target leftmessage=0}
{!target sendfax=0}
{!target voicemail=0}
{!target refused=0}
{!target disconnect=0}
{!target nonbusiness=0}
{!target languageprob=0}
{!target faxmodem=0}
{!target opintercept=0}
{!target wrongnumber=0}
{!target notatlocation=0}
{!target nolongerinbus=0}
{!target wantmorecomp=0}
{!target waitlist=0}
{!target putback=0}
{!target remove=0}
{!target terminated=0}
''Dialer statuses automatically updated
>ifdefine @dialer
{!target dialer_connect=0}
{!target dialer_no_answer=0}
{!target dialer_busy=0}
{!target dialer_busy_to_na=0}
{!target dialer_trunkline_busy=0}
{!target dialer_nuisance=0}
{!target dialer_answering_machine=0}
{!target dialer_no_ringback=0}
{!target dialer_ser_g_status=0}
{!target dialer_hung_up_phone=0}
{!target dialer_connect_then_abort=0}
{!target dialer_number_not_dialed=0}
{!target dialer_timedcall_notdialed=0}
{!target dialer_unknown_number=0}
{!target dialer_out_of_service=0}
{!target dialer_incomplete=0}
{!target dialer_bad_number=0}
{!target dialer_modem_answered=0}
{!target dialer_disconnected=0}
{!target dialer_forced_resolved=0}
{!target dialer_changed_number=0}
{!target dialer_number_toooldtocall=0}
{!target dialer_allother=0}
>endif
'' ========== SPECIFIC QUOTA TARGETS GO HERE
'' ========== SAMPLE INFO + INITIAL SHELL
''Data variables
''==============
{!-DoMentor}
{CaseIdent: 1.6 hide
Case Id
!var,,6,0}
{!DoMentor}
''LISA
{device: 1924.7 hide ''device values: sphone, deskto
!var}
{!SPC,L,device,1,7} ''from the USER_DATA hidden input on index page
{!HTML_DEFINE DEVICE \|device}
{STATCODE: 10.3 HIDE '' Statcodes for Base (Data)
!FLD
001 Complete
002 Refused
003 Language Problem
004 Terminate In Screener
005 Non-Working Number
006 Non-Residential Number
007 Non-Business Number
013 Other Terminate at Contact Screen
014 Over Quota Completes
015 Terminate In Screener
}
{!-DoMentor}
{QnaireVersion: 62.4
@Version
!spc,9}
{chkfone: 67.3
!EXPR,Z,0 }
{DateTime1: 70.18
Date/time interview started (yyyymmddhhmmssdjjj)
!spc,3,L }
{Date1: [datetime1+2.6] hide
Date of interview (yymmdd)
!var,,6}
{Time1: [datetime1+8.4] hide
Time of interview (hhmm)
!var,,4}
{!DoMentor}
{NiceDateTime: 89.27
Formatted Date/time of interview
(eg. Thu, Jan 20, 2010 10:23pm)
!spc,4}
{!-DoMentor}
{!-Rfton}
{Intvwrinfo: 116.120
Interviewer info from employee file
!spc,5,1,120 }
{!Rfton}
{!DoMentor}
{Intvwrid: [Intvwrinfo.4] hide
Interviewer Id
!var,,4,0}
{IntvwrName: [Intvwrinfo+5.30] hide
Interviewer Name
!var,,30,0}
{!-DoMentor}
{IntvwrSpectypes: [Intvwrinfo+31.9] hide
Interviewer special types
!field,,9
>rep $A=1,...,9
$A Intvwr is Special type $A
>endrepeat
}
{IntvwrModes: [Intvwrinfo+41.4] hide
Interviewer modes
!field,,4
B Break, Abort or Change interviews
C Change interviews
D Debug mode
N No capabilities, no view
E Echocats mode
L Do interviewer logging
Q Do debug logging after every question
}
{IntvwrExtra: [Intvwrinfo+45.75] hide
Extra info from employee file
!var,,75,0}
{!-Rfton}
{Studyinfo: 236.162
Study information
!spc,7,1,162}
{!Rfton}
{IvrDeviceNumber: [studyinfo+19.5] hide
Device number
!var,,5,0}
{Ivrtimezone: [studyinfo+44.2] hide
Interviewer time zone
!var,,2,0}
{IvrStationType: [studyinfo+47.2] hide
Station type
!field
01 Ansi
02 Dialup
03 unknown
04 Vt220
05 Wyse 50
06 Wyse 160
07 Wyse 85
08 Ibm 3151
09 Hp
10 Adm3
11 Adds
12 Hp 700/41
13 Att 705
14 Hp 700/96
15 Hp 700/98
16 Wyse 60
PC Personal Computer
WC WebCati
WS WebSurvent
}
{IvrPhoneExtn: [studyinfo+50.4] hide
Phone extension
!var,,4,0}
{StudyName: [studyinfo+111.30] hide
Study name
!var,,30,0}
{LanguagesHave: [studyinfo+142.20] hide
Languages available in study
!var,,20,0}
{WAVE: 398.2 '' Store Wave to Data
!EXPR,,@WAVE }
{PREPTIME: 400.10 '' Compile time, compare with RPREPTIM if resume issues
!SPC,7,56,10 }
{CURRLANG:410.2 '' Store Language (if multilanguage study)
!SPC,7,110,2}
{USERIP: 412.40
!SPC,I,A }
{USERAGENT: 452.200
!SPC,I,I }
''Start actual interview
''======================
{!if websurvent() = 1
!PHONE,4 } '' Get Fone Record
{!if websurvent() <> 8
!goto Continue
}
{!-AllowSuspend}
{!-AllowTerminate}
{!if IntvwrModes(D)
Note: this is a DEBUG mode interview.
!display }
''Start Sample Info
''=================
{!-Rfton}
{ DialType: 652.1 ''Store the dialer mode for this station.
!Expr,,Dialer() } ''0=Manual, 1=Predictive, 2=Power/Preview
{!Rfton}
{Getphone: 653.25
!if Dialtype <> 1
\+
\* Enter phone number to pull up specific record, or click "Next" for next available. \+
\*
\+\*Phone Number\+\*: \_ \+
\*
!var,bp,25,10}
{!if [Getphone$]<>" " and Dialtype <> 1
!phone,5,61,50,Getphone } ''Get number specified at "Getphone"
{!IF Dialtype=1
\+
\*
\+\* DIALER IS CALLING, PLEASE WAIT ... \+
\*
!DISP}
{getnumb:
!phone,1 } ''Get the next phone number from the fonefile
{DialStat: 678.3 ''Store phone status in the data
!expr,z,fonestatus() } ''is 0 unless you are in predictive mode
{Dialprob:
!If DialType=1 and DialStat <> 800 ''Got a screen pop in predictive mode but
''call was not a connect (status=800)
\+
\*INTERVIEWER: REPORT THE FOLLOWING TO YOUR SUPERVISOR!
\+
\*Phone Number \[1.3] - \[4.3] - \[7.4] has a status of \|DialStat| and should NOT
have been given to you.
\+
\*Click 'Next' to get another number
!display }
{!if DialType =1 and DialStat <> 800
!Spc,B }
''Example Check Sample Quotas
''===========================
{!comment
Put quota checks based on Sample here!
Use Phone,Gs to get the information and do the check. If numbers are over-quota you
can disgard them and the dialer will NOT dial them if you are in power/preview
mode.
Lines below are a sample of how you might check quotas
QValGet1: 681.2 ''Get the information from position 101-102
!phone,g,101,2 ''of phone File so can Check Quotas
QVal1: [QvalGet1] ''Set up a Fld,A question on top of where
!field,a ''data was loaded so can both reference data
01 Group A ''on If statements and put text on the screen
02 Group B
03 Group C
(Skipto BadQuota) ?? Bad Quota Group
''Check to make sure under quota. If okay, then continue on.
!if (QVal1(01) and Quota(GroupA) < Quota(GroupA.T)) or &
(QVal1(02) and Quota(GroupB) < Quota(GroupB.T)) or &
(QVal1(03) and Quota(GroupC) < Quota(GroupC.T))
!goto DoneChk
''If got here, number is over quota.
''Put screen up for interiewer
Quota Group \:Qval1 is now full.
Cannot dial the number \[1.3] - \[4.3] - \[7.4]
Will try for another. Please wait.
!display,3,1
!phone,S,15 ''Set call status for over quota
!quota,,overquota,+1,now ''Add to 'overquota' quota
!spc,h ''Abort the interview and immediately try for another number
Donechk: !goto
}
''Sample Variables
''================
{!DoMentor}
{PhoneNumber: 683.18
Phone number
!phone,g,phonenumber,18}
{!-DoMentor}
{Areacode: [Phonenumber.3] hide
Area Code
!var,,3}
{Exchange: [Phonenumber+3.3] hide
Phone number exchange
!var,,3}
{Digits: [Phonenumber+6.12] hide
Phone number digits
!var,,12}
{PhSpecType: 701.1
Phone record special type
!phone,g,specialtype,1}
{PhTimezone: 702.2
Respondent time zone
!phone,g,timezone,2}
{PhCaseid: 704.10
Phone record caseid
!phone,g,caseid,10}
{PhCallbackTime: 714.16
Callback time
!phone,g,callbacktime_a,16}
{PhReplicate: 730.3
Replicate group
!phone,g,replicate,3}
''Bug: no international dialing option
{!If DialType < 2 ''If you are not in power mode then
!goto DialText } ''go to the Status screen
{!phone,d,PhoneNumber } ''Dial the number. If PhoneNumber is
''changed, dialer will dial new number
{
\+
\*The number being dialed is: \+\*(\|Areacode|) \|Exchange| - \|Digits| \+
\*
!display }
{DialStatPower: [DialStat] ''Reget the Status if you are in Power/Preview Mode
!EXPR,Z,FoneStatus() }
{!If [DialStat#800] ''If you got a connect, go to status screen
!goto B4Status }
{!If DialStat <> 800 ''If dialer returned a non-connect status
!goto DialCode } ''then go where dialer statuses are handled
{DialText: [DialType] ''Change text on the screen for different modes
!field,ab
0 to dial
1 on the phone
}
''Status Screen
{B4Status: !grid }
{!if [Phonenumber+10.1$]=" "
The number \:DialText: is: \+\*(\|Areacode|) \|Exchange| - \|Digits| \+
\*
!display }
{!if [Phonenumber+10.1$]<>" "
The number \:DialText: is: \+\*\|Phonenumber|\+
\*
!display }
>ifdefine @Callnotes
{!phone,2,3,1,shownote } ''Show last 3 and first call histories on the screen
>else
{!phone,2,3,1 } ''Show last 3 and first call histories on the screen
>endif
{
\+
\* Callbacks \+ |
\*
'' Status Table, Callbacks
>rep $CODE=01,...,06;&
$STATUS="No Answer","Busy","Callback","Number Change","VM - Left Message","VM - No Message";
\+
\*$CODE \+ | \*$STATUS \+ |
\*
>endrep
\+
\* Non-Callbacks \+ |
\*
'' Status Table, Non-Callbacks (2 Column)
>rep $LCODE=11,...,16;& '' Left Column Codes
$LSTATUS="Refused","Disconnected","Non-Business","Language Problem","Fax/Modem","Operator Intercept";&
$RCODE=17,...,22;& '' Right Column Codes
$RSTATUS="Wrong Number","Not at Location","Out of Business","Compensation","Waiting List","Remove from List";
\+\*
$LCODE
\+ | \*
$LSTATUS
\+ | \*
$RCODE
\+ | \*
$RSTATUS
\+ |
\*
>endrep
\+
\*
!disp}
{Status: 733.2
\+
\+Click "Next" to Continue, or Assign Call Status:\* \-Call Status\* \_
\+ |
---|
\*
!FLD,N
01 No answer ''Status 101
02 Busy ''102
03 Callback ''104
04 Number change
05 VM - Left message ''110
06 VM - No message ''112
11 Refused ''60
12 Disconnected ''61
13 Non-business number ''62
14 Language problem ''63
15 Fax/Modem/Electronic device ''64
16 Operator intercept ''65
17 Wrong number ''66
18 No longer at location ''67
19 No longer in business ''68
20 Wants more compensation ''69
21 Waiting list ''70
22 Remove from list ''20
99 Return number to file ''211
(-mentor)^^ Start interview }
{!endgrid }
>repeat $A=01,02,03,04,05,06,&
11,12,13,14,&
15,16,17,18,19,&
20,21,22,99;&
$B=NoAnswer,Busy,SchedCallBk,NumberChange,VMLeftMessage,VMNoMessage,&
Refused,Disconnect,Nonbusiness,LanguageProb,&
Faxmodem,OpIntercept,WrongNumber,NotAtLocation,NoLongerInbus,&
WantMoreComp,Waitlist,Remove,Putback;
{!if Status($A)
!goto $B }
>endrep
{!goto Continue }
{DialCode: [DialStat] ''Convert the dialer status to text and
!field,ab ''skip the interview to appropriate section
(Skipto DialHgUp) 101 Dialer No Answer
(Skipto DialHgUp) 851 Dialer No Answer
(Skipto DialHgUp) 102 Dialer Busy
(Skipto DialHgUp) 852 Dialer Busy
(Skipto DialHgUp) 106 Dialer Abandon Call
(Skipto DialHgUp) 856 Dialer Abandon Call
(Skipto DialHgUp) 107 Dialer Answering Machine
(Skipto DialHgUp) 857 Dialer Answering Machine
(Skipto DialHgUp) 157 Dialer Trunk Line Busy
(Skipto DialHgUp) 854 Dialer Trunk Line Busy
(Skipto DialNoRingBack) 183 Dialer No Ring Back
(Skipto DialNoRingBack) 863 Dialer No Ring Back
(Skipto DialHgUp) 073 Dialer Unknown Number
(Skipto DialHgUp) 803 Dialer Unknown Number
(Skipto DialHgUp) 075 Dialer Not in Service
(Skipto DialHgUp) 805 Dialer Not in Service
(Skipto DialHgUp) 076 Dialer Call Not Completed
(Skipto DialHgUp) 806 Dialer Call Not Completed
(Skipto DialHgUp) 077 Dialer Bad Number
(Skipto DialHgUp) 807 Dialer Bad Number
(Skipto DialHgUp) 078 Dialer Fax/Modem
(Skipto DialHgUp) 808 Dialer Fax/Modem
(Skipto NumberChange) 082 Dialer Number Changed
(Skipto NumberChange) 812 Dialer Number Changed
(Skipto DialHgUp) 071 Dialer Number Not Dialed/Status Unknown
(Skipto DialHgUp) 801 Dialer Number Not Dialed/Status Unknown
(Skipto DialHgUp) 072 Dialer Timed Number Not Dialed/Status Unknown
(Skipto DialHgUp) 802 Dialer Timed Number Not Dialed/Status Unknown
(Skipto DialHgUp) 079 Dialer Disconnected Status
(Skipto DialHgUp) 809 Dialer Disconnected Status
(Skipto DialHgUp) 080 Dialer Forced Resolved
(Skipto DialHgUp) 810 Dialer Forced Resolved
(Skipto DialHgUp) 095 Dialer Number too old
(Skipto DialHgUp) 815 Dialer number too old
(Skipto DialHgUp) 858 Dialer SER G status
(Skipto DialHgUp) 859 Dialer Hung Up phone
(Skipto DialHgUp) 861 Dialer connect then abort
(-mentor)??? Other Status ??? No Matching Status }
{ ''If got here, there is a dialer status
''unaccounted for in DialCode and
''questionnaire should be updated to handle it.
Report to the questionnaire programmer that status \|DialStat| needs to
be added to the list. Let them know what you heard on the phone for this
call.
!display }
{!goto Hangup }
{DialNoRingBack: 735.1 ''If No Ring Back, ask if want to retry number
\+
The number that was just dialed did not go through for some reason.\*
\-Problem dialing number\*
\+
\* Do you want ...
!field
1 Immediately Try the number Again
(Skip DialHgUp) 2 Try Again Later }
{!Phone,S,0 } ''Reset Dialing Status to 0
{!Reset, PhoneNumber } ''Reset to Top of Interview to retry number
{DialHgUp:
!spc,h } ''Immediately abort and try for the next call.
{!sys,c,default} ''Start default html formatting
{SchedCallBk: !phone,s,104 } ''Set call status to 104 for specific-time call
>ifdefine @CallNotes
{Callnote: 736.64
\+
\*INTERVIEWER: Enter any callback notes (max 64 characters)\+
\*
!var,,64,0}
{!If Callnote$<>" "
!phone,z,36,callnote,64}
>endif
{!quota,,Callback,+1,now } ''Add 1 to the Callbacks counter
{!goto Hangup} ''Skip to label hangup to end this interview
{NumberChange: 800.25 ''Collect new phone number
\+
\*Please enter in the new phone number \+
\*
\+\*New Phone Number\+\*: \_ \+
\*
!var,p,25,10}
{!phone,c,NumberChange,19 } ''Store new number in the phone file
{!if Dialtype=0
!quota,,NumberChange,+1,now} ''Add 1 to the NumberChange quota if not dialer
{!if DialType <> 1
!reset,Phonenumber } ''Reset back to top after number change
{!phone,s,111} ''Jim R. sez set status to 111 and abort if predictive mode
{!spc,b}
{VMLeftMessage: !phone,s,175, 2 days}
{!quota,,VMLeftMessage,+1,now}
{!goto Hangup }
>repeat $A=60,61,62,63,64,65,66,67,68,69,70,101,102,211,20,112;&
$C=Refused,Disconnect,Nonbusiness,LanguageProb,FaxModem,OpIntercept,WrongNumber,&
NotAtLocation,NoLongerInBus,WantMoreComp,WaitList,NoAnswer,Busy,Putback,Remove,VMNoMessage;
{$C: !phone,s,$A} ''Set call status
{!quota,,$C,+1,now } ''Add 1 to quota cell
{!goto Hangup } ''Hang up
>endrepeat
{Hangup: !spc,b } ''Abort the interview
{Continue: !phone,9 } ''Suspends will resume from this point forward
{[PhoneNumber]
Phone number
!phone,g,phonenumber,18}
{!DoMentor}
{PASSWD: 825.20 '' Password from fone
!PHONE,G,51,20 }
{!-DoMentor}
{USERNAME: 845.30 '' User name from fone
!PHONE,G,71,30 }
{TESTFLAG: 875.1 HIDE '' Test Flag (for hand testing)
!FLD,
1 }
{RotLoc: 876.10 HIDE ''Rotate seed for Subtype S
!VAR,N,10,10 }
{ RotR: 886.3 Hide ''Rotate seed for Subtype R
!VAR,N,3,3 }
{ RotF: 889.1 Hide ''Rotate seed for Subtype F
!VAR,N,1,1 }
{ Check: 890.1 Hide ''Switch for boolean conditions
!FLD
1 }
{!AllowSuspend}
{!if websurvent() <> 8
!goto InInterview}
{!AllowTerminate}
{InInterview: !phone,s,121 } ''Temporary status for in progress survey
{!IF [PASSWD.4$]="test" '' Enable test flag for test passwords
!GEN,A,TESTFLAG,1 }
{!IF QUOTA(COMPLETES) >= QUOTA(COMPLETES.T)
!goto OQ_COMPL }
'' If other data/login info must be referred back to panel site, set HTML_DEFINEs here
''{!HTML_DEFINE PASSWORD \:PASSWD } '' HTML Define for Password (common)
''{!HTML_DEFINE LANG \:CURRLANG } '' HTML Define for Language (for ML studies)
{!IF QUOTA(COMPLETES) >= QUOTA(COMPLETES.T)
!goto OQ_COMPL }
{!if websurvent() = 8
!goto TimerStart}
'' ========== PANEL MANAGEMENT / DATA
'' Use !GEN statements based on criteria/qualifiers to store panel company to data
'' Will typically be based on password, username, or sample/phone,g data
{PANELCO: 891.2 HIDE
!FLD,
01 Panel Co 1
02 Panel Co 2
03 Panel Co 3
04 Panel Co 4
05 Panel Co 5
}
'' ========== CUSTOM ERRORS
{!ERRORMSG 1512 Please answer this question. }
{!ERRORMSG 1758 Please answer the question above. }
{!ERRORMSG 7112 Please review the %d questions below. }
{!ERRORMSG 7113 Please review the question below. }
{!ERRORMSG 7222 Attention: }
''Screener Start
''==============
'' ========== BEGIN TIMER / STATBAR
{TimerStart:
!goto}
{!-Rfton}
{StartTime: 893.1 ''Start timers
!spc,z,0 }
{!Rfton}
{!if websurvent() = 8
!goto StartScreen}
{!STATUS_BAR QQ } '' Enables Status Bar
{StartScreen:
!goto}
''********************* Put Screener questions here! **************************
''Example Check Screener Quotas
''=============================
''{!If quota(ScreenerQuo1) >=quota(Screenerquo1.t)
''
''
We have reached our quota for individuals in your demographic area,
''
thank you for your time.
''
''!display}
''{!If quota(ScreenerQuo1) >=quota(Screenerquo1.t)
''!phone,s,72}
''{!If quota(ScreenerQuo1) >=quota(Screenerquo1.t)
''!quota,,ScreenerQuo1,+1,now}
''{!If quota(ScreenerQuo1) >=quota(Screenerquo1.t)
''!spc,b}
{!DoMentor}
{ScreenerSecs: 894.4
Seconds in Screener
!spc,z,3}
{!spc,e,e} ''Mark time in ivr log for start of main survey
'' ========== BEGIN SURVEY (Header End Cut: From Beginning -> to here.)
''=================
{grid_1: '' OPEN GRID: 1
!grid}
''----------------------------
{!SYS,C,CLEAR}
{!SYS,C,DEFAULT}
{q1: 1501.2
Which type of mobile device do you use as your primary means of communication?
!FLD,R,
01 Apple iPhone
02 Apple iPad
03 Google Android
04 Blackberry
05 Palm
06 HTC Smartphone
07 Samsung Smartphone or Tablet
}
''----------------------------
{!endgrid} '' CLOSE GRID: 1
{!RESUME_HERE}
''LISA
{!if device$="desktop" or websurvent()=8
!goto grid_5}
{grid_2: '' OPEN GRID: 2
!grid}
''----------------------------
{!SYS,C,CLEAR}
{!SYS,C,DEFAULT}
{Q1A_1: 1510.2
How would you rate \:Q1 on Price?
!FLD
01 Very Poor
02 Poor
03 Average
04 Good
05 Very Good
}
''----------------------------
{!endgrid} '' CLOSE GRID: 2
{grid_3: '' OPEN GRID: 3
!grid}
''----------------------------
{!SYS,C,CLEAR}
{!SYS,C,DEFAULT}
{Q1A_2: 1517.2
How would you rate \:Q1 on Performance?
!FLD
01 Very Poor
02 Poor
03 Average
04 Good
05 Very Good
}
''----------------------------
{!endgrid} '' CLOSE GRID: 3
{grid_4: '' OPEN GRID: 4
!grid}
''----------------------------
{!SYS,C,CLEAR}
{!SYS,C,DEFAULT}
{Q1A_3: 1524.2
How would you rate \:Q1 on Aesthetics?
!FLD
01 Very Poor
02 Poor
03 Average
04 Good
05 Very Good
}
''----------------------------
{!endgrid} '' CLOSE GRID: 4
''LISA
{!goto after_desktogrid}
{grid_5: '' OPEN GRID: 5
!grid}
''----------------------------
{!SYS,C,CLEAR}
{!SYS,C,RATING}
''[START] Attribute Scale QN
{!html_error_prefix=}
{!html_error_suffix= |
}
{Q1B:
How would you rate \:q1 on the following attributes?
|
Very Poor |
Poor |
Average |
Good |
Very Good |
1 |
2 |
3 |
4 |
5 |
!disp }
{!rotate,s,,rotloc}
>repeat $A=1,2,3;&
$B=1531,1533,1535;&
$C="",&
"",&
"";&
$D="Price",&
"Performance",&
"Aesthetics";
{!group}
{!HTML_RL_PREFIX= }
{!HTML_RL_SUFFIX= | }
{!HTML_RT_SUFFIX= }
{Q1B_$A: $B.2
$C
$D
!FLD
01 \-Very Poor\*
02 \-Poor\*
03 \-Average\*
04 \-Good\*
05 \-Very Good\*
}
>endrepeat
{!endrotate}
{
!disp }
''----------------------------
{!endgrid} '' CLOSE GRID: 5
''LISA
{after_desktogrid: !goto}
{!RESUME_WHERE_AT}
{grid_6: '' OPEN GRID: 6
!grid}
''----------------------------
{!SYS,C,CLEAR}
{!SYS,C,DEFAULT}
{Q2: 1537.198
Which mobile web browsers have you used on your \:Q1:?
!FLD,R,6
01 Opera Mobile
02 Opera Mini
03 Firefox Mobile
04 Google Android
05 Skyfire
06 Internet Explorer Mobile
}
''----------------------------
{!endgrid} '' CLOSE GRID: 6
{grid_7: '' OPEN GRID: 7
!grid}
''----------------------------
{!SYS,C,CLEAR}
{!SYS,C,DEFAULT}
{!HTMLRADIOBUTTONS=1 } '' Drop down toggle.
{Q3A: 1834.2
Which mobile OS do you feel is the most user friendly in terms of ease of use and app availability?
!FLD
== Please select an OS
01 Symbian OS (Nokia)
02 Android (Google)
03 iOS (Apple)
04 Blackberry OS (Research in Motion)
05 Windows Mobile (Microsoft)
}
{!HTMLRADIOBUTTONS=200 }
''----------------------------
{!endgrid} '' CLOSE GRID: 7
{grid_8: '' OPEN GRID: 8
!grid}
''----------------------------
{!SYS,C,CLEAR}
{!SYS,C,DEFAULT}
{!HTMLRADIOBUTTONS=1 }
{Q3B: 1841.2
Of the free applications below, which would you consider the most useful to you?
!FLD
== Please select a response
==