LDC                                                   09-23-97    10:18:27 AM
------------------------------------------------------------------------------
Sequence:beginning
  UserDLL:udInitOutboundLineGroup
  :: DLL Name: CONNECT, DLL Function: ConnectInit
  :: DLL Parameter: ConnectTT translate: 'VoxFile'
  :: DLL Parameter: ConnectTT translate: 'OutboundLineList'
  :: Error Criterion: :result| result ~= 0
    OnError=>Sequence:sqConnectInitError
      Calculate:clSetErrorReasonConnectInit
      :: Calculate: 'DLL: CONNECT - ConnectInit() Retcode: ', (udInitOutboundLineGroup asString), Assign to: C_ERROR_REASON
      ApplicationLog:alLogInitError
      :: File Name: xcall.log, Format: Database
      :: Phone Line: Yes, Date/Time: Yes
      :: Value: 'Init outgroup reason'
      :: Value: udInitOutboundLineGroup
      Play:plUnableToPlaceCall
      :: Play Mode: Error
      :: Format: 528, Value:
      Sequence:sqEndCall
        Play:plThanksForCalling
        :: Play Mode: NoKeyOver
        :: Format: 537, Value:
        Sequence:sqHangup
          ApplicationLog:alHangup
          :: File Name: calld.log, Format: Database
          :: Phone Line: Yes, Date/Time: Yes
          :: Value: 'alHangup:'
          IfElse:ifUnsuccessfulCall
          :: If: C_ERROR_REASON ~= ''
            Then=>Sequence:sqLogCallInfo
              Calculate:clCallDuration
              :: Calculate: System seconds, Assign to: C_END_SECONDS
              :: Calculate: (C_END_SECONDS > C_START_SECONDS)    ifTrue: [C_EN
D_SECONDS - C_START_SECONDS]    ifFals
e:[(C_END_SECONDS + 86400) - C_START_SEC
ONDS], Assign to: C_CALL_DURATION
              :: Calculate: (('00',((C_CALL_DURATION // 60) asString)) last: 2),
':',(('00',((C_CALL_DURATION \\ 60) as
String)) last: 2), Assign to: C_CALL_DUR
ATION
              ApplicationLog:alLogCallTrackInfo
              :: File Name: call.log, Format: Database
              :: Phone Line: Yes, Date/Time: No
              :: Value: System dateString
              :: Value: System timeString
              :: Value: C_CALL_DURATION
              :: Value: C_APPL
              :: Value: C_LANGUAGE
              :: Value: C_MENU_OPTION
              :: Value: I_MASTER_PIN
              :: Value: D_CALLEE_PIN
              :: Value: C_ERROR_REASON
              :: Value: (C_ERROR_MSG notNil)    ifTrue: [((C_ERROR_MSG asStrin
g) ~= '')                ifTrue: [C_ER
ROR_MSG]]
          IfElse:ifSecondLineNotReleased
          :: If: C_RELEASE_LINE_FLAG = 1
            Then=>Sequence:sqReleaseSecondLine
              UserDLL:udReleaseSecondLine
              :: DLL Name: CONNECT, DLL Function: releaseSecondLine
              :: Error Criterion: :result|
              ApplicationLog:alReleaseLineResult
              :: File Name: xcall.log, Format: Database
              :: Phone Line: Yes, Date/Time: Yes
              :: Value: 'ReleaseLine Result'
              :: Value: udReleaseSecondLine
              Calculate:clSetSecondLineReleased
              :: Calculate: 0, Assign to: C_RELEASE_LINE_FLAG
              DataBaseEdit:deReleaseLineCandidates
              :: DataBase Name: LDC, Query: 'delete from swb_candidates sc    
where sc.tel_line = ', TelephoneLine printString
          IfElse:ifLWMsgSetIN_APPL
          :: If: msgSetVALID = 1
            Then=>UserDLL:requeMsgSet
            :: DLL Name: POOLMGR, DLL Function: VsReQue
            :: DLL Parameter: >getPool
            :: DLL Parameter: >getQue
            :: DLL Parameter: getFullMsg
            :: Error Criterion: :result|
          CallEnd:ceDisconnect
          :: Play msg: , ""
          :: Restart: Yes
  Triggers:newbeginning
  +----------------------+
  |% CHK DB READ LIMIT % |
  +----------------------+
  :: Session Timer: (ParamsTT translate: 'SessionTimeout') * 60 * 1000 msec
    Ring=>Sequence:sqStartApplication
      Worksheet:wsC_Variables
      :: Variable Name: C_SQL_QUERY, Initial Value: ''
      :: Variable Name: C_OpenClosed, Initial Value: 'open'
      :: Variable Name: TIMEOUT, Initial Value: 10000
      :: Variable Name: TIMEOUT_TRIES, Initial Value: 3
      :: Variable Name: ERROR_TRIES, Initial Value: 3
      :: Variable Name: C_ERROR_COUNTER_1, Initial Value:
      :: Variable Name: C_ERROR_COUNTER_2, Initial Value: 0
      :: Variable Name: C_ERROR_COUNTER_3, Initial Value: 0
      :: Variable Name: C_START_SECONDS, Initial Value: 0
      :: Variable Name: C_END_SECONDS, Initial Value:
      :: Variable Name: C_RECORD_SECONDS, Initial Value: 0
      :: Variable Name: C_CALL_DURATION, Initial Value: 0
      :: Variable Name: C_RECORD_DURATION, Initial Value: 0
      :: Variable Name: C_TALK_START_SECONDS, Initial Value: 0
      :: Variable Name: C_TALK_END_SECONDS, Initial Value: 0
      :: Variable Name: C_TALK_DURATION, Initial Value: 0
      :: Variable Name: C_ANI, Initial Value: 0
      :: Variable Name: C_DNIS, Initial Value: 0
      :: Variable Name: C_APPL, Initial Value: ''
      :: Variable Name: C_LANGUAGE, Initial Value: ''
      :: Variable Name: C_ERROR_REASON, Initial Value: 0
      :: Variable Name: C_ERROR_MSG, Initial Value: 0
      :: Variable Name: C_MENU_OPTION, Initial Value: ''
      :: Variable Name: C_FILENAME, Initial Value: ''
      :: Variable Name: C_SPKR_NUM, Initial Value: ''
      :: Variable Name: C_ITEM, Initial Value:
      :: Variable Name: C_DELETE_FILE_FLAG, Initial Value: ''
      :: Variable Name: C_CURRENT_TIME, Initial Value:
      :: Variable Name: C_PERIOD, Initial Value: 0
      :: Variable Name: C_RELEASE_LINE_FLAG, Initial Value: 0
      :: Variable Name: C_CALLEE_TRIES, Initial Value:
      :: Variable Name: C_MASTER_FILENAME, Initial Value: 0
      :: Variable Name: C_SLAVE_FILENAME, Initial Value: ''
      :: Variable Name: C_SLAVE_LINE, Initial Value: 0
      :: Variable Name: C_RECORD_STAT, Initial Value:
      :: Variable Name: C_TOPIC, Initial Value: 0
      :: Variable Name: C_CALLEE_INPUT, Initial Value: 0
      :: Variable Name: C_CALLEE_NAME, Initial Value:
      Worksheet:wsD_Variables
      :: Variable Name: D_PIN_USAGE, Initial Value: 0
      :: Variable Name: D_REC_COUNT, Initial Value: 0
      :: Variable Name: D_APPL, Initial Value:
      :: Variable Name: D_LANGUAGE, Initial Value: 0
      :: Variable Name: D_RECRUIT_DATE, Initial Value: 0
      :: Variable Name: D_CALLEE_PIN, Initial Value: ''
      :: Variable Name: D_TOPIC, Initial Value:
      Worksheet:wsI_Variables
      :: Variable Name: I_PIN, Initial Value: ''
      :: Variable Name: I_MASTER_PIN, Initial Value: ''
      :: Variable Name: I_CALLER_PIN, Initial Value: ''
      :: Variable Name: I_CALLING_FROM_NUMBER, Initial Value:
      :: Variable Name: I_CALLING_TO_NUMBER, Initial Value: ''
      :: Variable Name: I_AGE, Initial Value: ''
      :: Variable Name: I_GENDER, Initial Value:
      :: Variable Name: I_EDUCATION, Initial Value: 0
      :: Variable Name: I_NUMBER_TO_CONTACT, Initial Value: ''
      :: Variable Name: I_DIAL_NUM, Initial Value: ''
      Worksheet:wsT_Variables
      :: Variable Name: T_MENU_MASK, Initial Value: ''
      :: Variable Name: T_MAIN_MENU_MASK, Initial Value: ''
      :: Variable Name: T_RECORD_START_WAIT, Initial Value:
      :: Variable Name: T_RECORD_END_WAIT, Initial Value: 5000
      :: Variable Name: T_MAX_RECORD_TIME, Initial Value: 5000
      :: Variable Name: T_MAX_LEADING_SILENCE, Initial Value:
      :: Variable Name: T_MAX_TRAILING_SILENCE, Initial Value: 5000
      :: Variable Name: T_OFFSET, Initial Value: 5000
      :: Variable Name: T_ITEM_MSG, Initial Value: 2000
      :: Variable Name: T_APPL_PATH, Initial Value: 0
      :: Variable Name: T_PIN_MIN_LENGTH, Initial Value:
      :: Variable Name: T_PIN_MAX_LENGTH, Initial Value: 0
      :: Variable Name: T_INTL_NUM_MAX_LENGTH, Initial Value:
      :: Variable Name: T_KEYOVER_FLAG, Initial Value: '\\APPL\\'
      :: Variable Name: T_CALLEE_TIMEOUT, Initial Value:
      :: Variable Name: T_CALLEE_TRIES, Initial Value: 6
      :: Variable Name: T_DIAL_PREF, Initial Value: 7
      :: Variable Name: T_DEBUG, Initial Value:
      :: Variable Name: T_DBG_CALLER, Initial Value: 20
      :: Variable Name: T_SUBJ_NAME_OFFSET, Initial Value: 0
      :: Variable Name: T_MAX_SB_CAND, Initial Value:
      :: Variable Name: T_DBG_CALLEE, Initial Value: 10
      Worksheet:wsLeaveWordWorksheet
      :: Variable Name: archiveACTIVE, Initial Value: 0
      :: Variable Name: currMsg, Initial Value: 0
      :: Variable Name: msgsPerSet, Initial Value: 2
      :: Variable Name: getQue, Initial Value: 1
      :: Variable Name: putQue, Initial Value:
      :: Variable Name: putPool, Initial Value: 1
      :: Variable Name: msgsInSet, Initial Value: 1
      :: Variable Name: keyMask, Initial Value: 2
      :: Variable Name: KeyOverIsON, Initial Value:
      :: Variable Name: numBeeps, Initial Value: 'FASTKEY:9, SLOWKEY:7, IGNORE:6
'
      :: Variable Name: playBEEPS, Initial Value: 1
      :: Variable Name: delayOrBeep, Initial Value:
      :: Variable Name: msgSetVALID, Initial Value: 1
      :: Variable Name: archiveQue, Initial Value: 1
      :: Variable Name: response, Initial Value: 1
      :: Variable Name: getPool, Initial Value:
      :: Variable Name: getString, Initial Value: 0
      IfElse:ifOpenClosed
      :: If: AlwaysOpenBH isOpen
        Else=>Sequence:sqClosed
          UserDLL:udPauseBeforeFail
          :: DLL Name: SLEEP, DLL Function: SleepVm
          :: DLL Parameter: 400
          :: Error Criterion: :result|
          Play:plSorryWereClosed
          :: Play Mode: Error
          :: Format: 624, Value: "sorry, we're closed"
          Sequence:sqEndCall ...(above)
      Calculate:clSetTimeoutAndErrorTries
      :: Calculate: ParamsTT translate: 'Timeout', Assign to: TIMEOUT
      :: Calculate: ParamsTT translate: 'TimeoutTries', Assign to: TIMEOUT_TRIES
      :: Calculate: ParamsTT translate: 'ErrorTries', Assign to: ERROR_TRIES
      Calculate:clSetCallStartSeconds
      :: Calculate: System seconds, Assign to: C_START_SECONDS
      CallAnswer:caAnswerCall
      :: Screen for TT: No
      :: Screen for Pulse: No
      :: Screen for VoiceDial: No
      :: Screen for DataConnect: No
      :: Screen for HearingImpaired: No
        HangUp=>Sequence:sqHangup ...(above)
      Calculate:clSetApplicationParams
      :: Calculate: (CallingID = '')    ifTrue: [((CalledID last:5) first:4)]
    ifFalse: [(CalledID)], Assign to: C_DNIS
      :: Calculate: (CallingID = '')    ifTrue: [(CalledID first:10)]    ifF
alse: [(CallingID)], Assign to: C_ANI
      :: Calculate: ((DNIS_TT translate: C_DNIS) first:2) asInteger, Assign to: C_APPL
      :: Calculate: ((DNIS_TT translate: C_DNIS) last:2) asInteger, Assign to: C_LANGUAGE
      :: Calculate: a := #('CH_DIR' 'CF_DIR' 'SB_DIR' 'PP_DIR') .b :=  (Params
TT translate: (a at: C_APPL)) .c :=  (
System dateString at: 4 len: 2) .d := 
 (b position: '##') .(d > 0)    if
True:  [b at: d putStr: c]    ifFalse:
 [b], Assign to: T_APPL_PATH
      :: Calculate: (DualSyncTT translate: 'Offset') asInteger, Assign to: T_OFFSET
      :: Calculate: (ParamsTT translate: 'PIN_MinLength') asNumber, Assign to: T_PIN_MIN_LENGTH
      :: Calculate: (ParamsTT translate: 'PIN_MaxLength') asNumber, Assign to: T_PIN_MAX_LENGTH
      :: Calculate: (ParamsTT translate: 'IntlNumMaxLength') asNumber, Assign to: T_INTL_NUM_MAX_LENGTH
      :: Calculate: (ParamsTT translate: 'DialPrefix' ), Assign to: T_DIAL_PREF
      :: Calculate: (DEBUG_TT translate: 'LdcDebug'), Assign to: T_DEBUG
      :: Calculate: (DEBUG_TT translate: 'DebugFrPIN'), Assign to: T_DBG_CALLER
      :: Calculate: (ParamsTT translate: 'SubjName_Offset') asNumber, Assign to: T_SUBJ_NAME_OFFSET
      :: Calculate: (ParamsTT translate: 'SBMaxCandidates') asNumber, Assign to: T_MAX_SB_CAND
      :: Calculate: (DEBUG_TT translate: 'DebugToPIN'), Assign to: T_DBG_CALLEE
      ApplicationLog:alApplicationParams
      :: File Name: calld.log, Format: Database
      :: Phone Line: Yes, Date/Time: Yes
      :: Value: 'alApplicationParams: called, calling, DNIS ANI, Appl Lang'
      :: Value: CalledID
      :: Value: CallingID
      :: Value: C_DNIS
      :: Value: C_ANI
      :: Value: C_APPL
      :: Value: C_LANGUAGE
      UserDLL:udGetCurrentCompression
      :: DLL Name: COMPRESS, DLL Function: getCompression
      :: Error Criterion: :result| result ~= 64
        OnError=>UserDLL:udSetCompression64K
        :: DLL Name: COMPRESS, DLL Function: setCompression
        :: DLL Parameter: 64
        :: Error Criterion: :result|
      UserDLL:udPauseBeforeWelcome
      :: DLL Name: SLEEP, DLL Function: SleepVm
      :: DLL Parameter: 400
      :: Error Criterion: :result|
      Case:csLanguage
      :: Calculate: C_LANGUAGE
        0=>Sequence:sqEnglish
          SetLanguage:slSetLangEnglish
          :: Language: English
        1=>SetLanguage:slSetLangArabic
        :: Language: Arabic
        2=>SetLanguage:slSetLangKorean
        :: Language: Korean
        3=>SetLanguage:slSetLangMandarin
        :: Language: Chinese Mandarin
        4=>SetLanguage:slSetLangJapanese
        :: Language: Japanese
        5=>SetLanguage:slSetLangSpanish
        :: Language: Spanish
        6=>SetLanguage:slSetLangFrench
        :: Language: French
        7=>SetLanguage:slSetLangGerman
        :: Language: German-I
        8=>SetLanguage:slSetLangFarsi
           +--------------------+
           |% DANISH (FARAOH) % |
           +--------------------+
        :: Language: Danish-Faraoh
        9=>SetLanguage:slSetLangVietnamese
        :: Language: Vietnamese
        10=>SetLanguage:slSetLangHindi
            +------------------------+
            |% INTERMEDIATE FRENCH % |
            +------------------------+
        :: Language: Intermediate-French
        11=>SetLanguage:slSetLangTamil
            +-----------------+
            |% SUPER FRENCH % |
            +-----------------+
        :: Language: Super-French
        12=>SetLanguage:slSetLangRussian
        :: Language: Russian
        default=>SetLanguage:slSetLangEnglish
      Play:plWelcome
      :: Play Mode: Error
      :: Format: Message, Value: #(91 500 501 502 503) at: ((C_APPL asInteger) + 1)
      UserDLL:udVmWait
      :: DLL Name: SLEEP, DLL Function: SleepVm
      :: DLL Parameter: 400
      :: Error Criterion: :result|
      Sequence:sqApplicationType
        UserDLL:udCheckDiskSpace
        :: DLL Name: CHKFREE, DLL Function: ChkDiskSpace
        :: DLL Parameter: ParamsTT translate: 'RecordDrive'
        :: Error Criterion: :result| ((result // 1024000) < (ParamsTT translate:
 'MinDiskSpace'))
          OnError=>Sequence:sqNotEnoughSpace
            Calculate:clSetErrorReasonNoDiskSpace
            :: Calculate: 'NO DISK SPACE', Assign to: C_ERROR_REASON
            Play:plTryAgainLater
            :: Play Mode: Error
            :: Format: 504, Value:
            Sequence:sqEndCall ...(above)
        Calculate:clResetErrorCounters
        :: Calculate: 0, Assign to: C_ERROR_COUNTER_1
        :: Calculate: 0, Assign to: C_ERROR_COUNTER_2
        :: Calculate: 0, Assign to: C_ERROR_COUNTER_3
        Calculate:clResetErrorReason
        :: Calculate: '', Assign to: C_ERROR_REASON
        :: Calculate: '', Assign to: C_ERROR_MSG
        Calculate:clResetPIN
        :: Calculate: '', Assign to: I_MASTER_PIN
        Calculate:clSetMainMenuMask
        :: Calculate: MenuMaskTT translate: C_APPL, Assign to: T_MENU_MASK
        :: Calculate: T_MENU_MASK, Assign to: T_MAIN_MENU_MASK
        Case:csApplicationType
        :: Calculate: C_APPL
          1=>Sequence:sqCallHome
            IfElse:ifCallHomeNoMenuMask
            :: If: T_MAIN_MENU_MASK = ''
              Then=>Sequence:sqCallHomePlaceCall
                Calculate:clSetMenuSelection1
                :: Calculate: '1', Assign to: C_MENU_OPTION
                Sequence:sqCheckMasterPIN
                  Calculate:clResetErrorCounters ...(above)
                  While:whCheckPIN
                  :: Formula: true, Until PassCount: (ERROR_TRIES+1)
                    Execute=>Sequence:sqCheckPIN
                      AskForNumber:anPIN
                      :: Prompt: 519, ""
                      :: Min length: T_PIN_MIN_LENGTH, Max length: T_PIN_MAX_LENGTH + 1, Star input: IncludeAndTerminate
                      :: Play back: No, Format: Digits
                      :: Time Out: TIMEOUT msec, Error condition: :x| ((x includ
esString: '*') not) &    (x size <= T_PIN_MAX_LENGTH)
                        IfTimeOutOn (TIMEOUT_TRIES) tries=>Sequence:sqTimeout
                          Calculate:clSetErrorReasonTimeout
                          :: Calculate: 'TIME OUT', Assign to: C_ERROR_REASON
                          Sequence:sqEndCall ...(above)
                        IfErrorOn (ERROR_TRIES) tries=>Sequence:sqInvalidEntry
                          Calculate:clSetErrorReasonInvalidEntry
                          :: Calculate: 'INVALID ENTRY', Assign to: C_ERROR_REAS
ON
                          Play:plInvalidEntry
                          :: Play Mode: Error
                          :: Format: 522, Value:
                          Sequence:sqEndCall ...(above)
                        ElseIfError=>Play:plInvalidEntry
                      Calculate:clSetMasterPIN
                      :: Calculate: anPIN, Assign to: I_MASTER_PIN
                      :: Calculate: I_MASTER_PIN, Assign to: I_CALLER_PIN
                      IfElse:ifLangEnglishAndAdminPIN
                      :: If: (C_LANGUAGE = 0) &((ParamsTT translate: 'AdminPas
sword') = I_MASTER_PIN)
                        Then=>Control:coBreakApplicationType
                          Break=>csApplicationType
                      DataBaseRead:drCheckDatabasePIN
                      :: DataBase Name: LDC, Query: 'select PIN, APPL, LANG, REC
RUIT_DATE, PIN_USAGE   from ACTIVE_PIN
S  where PIN = ', I_MASTER_PIN quoted
                      :: Columns from current row.
                      :: Variable Name: D_APPL, DataBase column: APPL
                      :: Variable Name: D_LANGUAGE, DataBase column: LANG
                      :: Variable Name: D_RECRUIT_DATE, DataBase column: RECRUIT
_DATE
                      :: Variable Name: D_PIN_USAGE, DataBase column: PIN_USAGE
                        IfSQLError=>Sequence:sqSQLError
                          Calculate:clSetErrorReasonDatabaseTimeout
                          :: Calculate: 'DATABASE ERR or TIMEOUT', Assign to: C_
ERROR_REASON
                          Play:plUnableToProcessRequest
                          :: Play Mode: Error
                          :: Format: 585, Value:
                          Sequence:sqEndCall ...(above)
                      Calculate:clCheckDatabasePIN
                      :: Calculate: D_APPL     asInteger, Assign to: D_APPL
                      :: Calculate: D_LANGUAGE asInteger, Assign to: D_LANGUAGE
                      :: Calculate: (D_RECRUIT_DATE asString) trimBlanks, Assign
 to: D_RECRUIT_DATE
                      :: Calculate: D_PIN_USAGE asInteger, Assign to: D_PIN_USAG
E
                      ApplicationLog:alCheckDatabasePIN
                      :: File Name: calld.log, Format: Database
                      :: Phone Line: Yes, Date/Time: Yes
                      :: Value: 'alCheckDatabasePIN M_PIN, D_AP, D_L, D_RD, D_PU
'
                      :: Value: System dateString
                      :: Value: I_MASTER_PIN    trimBlanks
                      :: Value: D_APPL          asInteger
                      :: Value: D_LANGUAGE      asInteger
                      :: Value: D_RECRUIT_DATE  trimBlanks
                      :: Value: D_PIN_USAGE     asInteger
                      IfElse:ifMasterPINFound
                      +------------+
                      |% WARNING % |
                      +------------+
                      :: If: (drCheckDatabasePIN > 0)    ifTrue:  [(D_APPL = C
_APPL) & (D_LANGUAGE = C_LANGUAGE)]   
 ifFalse: [false]
                        Then=>Control:coBreakTheLoop
                          Break
                      Calculate:clSetErrorReasonMasterPIN
                      :: Calculate: (drCheckDatabasePIN = 0)    ifTrue:  ['PIN
 NOT FOUND']    ifFalse: [(D_APPL ~= C
_APPL)                ifTrue:  ['PIN I
NVALID FOR APPL']                ifFal
se: ['PIN INVALID FOR LANG']], Assign to
: C_ERROR_REASON
                      Play:plInvalidEntry
                    UntilPass (ERROR_TRIES+1) Then=>IfElse:ifNoMainMenuMask
                    :: If: T_MAIN_MENU_MASK = ''
                      Then=>Sequence:sqMasterPINError
                        Play:plContactProjManager
                        :: Play Mode: Error
                        :: Format: 523, Value:
                        MenuForm:mfLeaveMessageMenu
                        :: Prompt: 524, ""
                        :: Time Out: TIMEOUT msec
                          1=>Sequence:sqLeaveMessage
                            Calculate:clSetLWPoolID
                            :: Calculate: #(1 2 3 4) at: C_APPL, Assign to: putP
ool
                            UserDLL:getFreeSet
                            :: DLL Name: POOLMGR, DLL Function: VsGetFree
                            :: DLL Parameter: >putPool
                            :: Error Criterion: :result| result < 0
                              OnError=>Sequence:sqLWGetFreeSetError
                                Calculate:clSetErrorReasonLWGetFreeSet
                                :: Calculate: 'DLL: POOLMGR - getFreeSet() - Ret
code: ',(getFreeSet asString), Assign to
: C_ERROR_REASON
                                Play:plTryAgainLater
                                Sequence:sqEndCall ...(above)
                            UserDLL:udSetCompression24K
                            :: DLL Name: COMPRESS, DLL Function: setCompression
                            :: DLL Parameter: 24
                            :: Error Criterion: :result|
                            Record:rcLWRecordNameAndAddress
                            :: Prompt: 525, ""
                            :: Record Into Msg: getFreeSet
                            :: Record Time: ParamsTT translate: 'LW_MaxRecTime' 
msec, Mode: NormalExit
                            :: Leading Silence: 5 sec, Mode: Timeout
                            :: Trailing Silence: 5 sec, Mode: NormalExit
                            :: On any touchtone key press, Mode: NormalExit
                              IfTimeOutOn 3 tries=>Sequence:sqEndCall ...(above)
                              IfErrorOn 1 tries=>Sequence:sqEndCall ...(above)
                            UserDLL:udStoreTimeStamp
                            :: DLL Name: POOLMGR, DLL Function: VsPutStringMsg
                            :: DLL Parameter: >putPool
                            :: DLL Parameter: System dateString,System timeStrin
g
                            :: DLL Parameter: getFreeSet + 1
                            :: DLL Parameter: 0
                            :: Error Criterion: :result|
                            UserDLL:putFullSet
                            :: DLL Name: POOLMGR, DLL Function: VsPutFull
                            :: DLL Parameter: >putPool
                            :: DLL Parameter: >putQue
                            :: DLL Parameter: getFreeSet
                            :: Error Criterion: :result|
                            Sequence:sqEndCall ...(above)
                          2=>Sequence:sqEndCall ...(above)
                          IfTimeOutOn (TIMEOUT_TRIES) tries=>Sequence:sqTimeout 
...(above)
                          IfErrorOn (ERROR_TRIES) tries=>Sequence:sqMenuError
                            Calculate:clSetErrorReasonInvalidOption
                            :: Calculate: 'INVALID OPTION', Assign to: C_ERROR_R
EASON
                            Play:plInvalidSelection
                            :: Play Mode: Error
                            :: Format: 584, Value:
                            Sequence:sqEndCall ...(above)
                          ElseIfError=>Play:plInvalidSelection
                      Else=>MenuForm:mfLeaveMessageMenu ...(above)
                  Calculate:clResetErrorReason ...(above)
                  IfElse:ifMasterPINOver30DaysOld
                  :: If: a := ((System dateString first:6),(System year asString
)) .b := (ParamsTT translate: 'PINExpi
reDays') .(AlwaysOpenBH nextBusDay: 
b from: D_RECRUIT_DATE) LT: a
                    Then=>Sequence:sqMasterPINExpired
                      Calculate:clSetErrorReasonPINExpired
                      :: Calculate: 'PIN EXPIRED', Assign to: C_ERROR_REASON
                      Calculate:clSetErrorMsgToRecruitDate
                      :: Calculate: D_RECRUIT_DATE, Assign to: C_ERROR_MSG
                      Play:plPINExpired
                      :: Play Mode: Error
                      :: Format: 520, Value:
                      Sequence:sqMasterPINError ...(above)
                  IfElse:ifSwitchboardApplication
                  :: If: C_APPL = 3
                    Then=>IfElse:ifMasterPINInactive
                    :: If: (D_PIN_USAGE isNil)    ifTrue:  [true]    ifFalse
: [D_PIN_USAGE >= (ParamsTT translate: '
SBPinLimit')]
                      Then=>Sequence:sqMasterPINInactive
                        Calculate:clSetErrorReasonPINExpired ...(above)
                        Calculate:clSetErrorMsgToPINUsage
                        :: Calculate: (D_PIN_USAGE isNil) ifTrue: [''] ifFalse: 
[D_PIN_USAGE], Assign to: C_ERROR_MSG
                        Play:plPINNoLongerActive
                        :: Play Mode: Error
                        :: Format: 521, Value:
                        Sequence:sqMasterPINError ...(above)
                    Else=>IfElse:ifMasterPINBlocked
                    :: If: (D_PIN_USAGE isNil)    ifTrue:  [true]    ifFalse
: [D_PIN_USAGE >= 1]
                      Then=>Sequence:sqMasterPINBlocked
                        Calculate:clSetErrorReasonPINExpired ...(above)
                        Calculate:clSetErrorMsgToPINUsage ...(above)
                        Play:plPINExpired
                        Sequence:sqMasterPINError ...(above)
                IfElse:ifSetCallingFromNumber
                :: If: ANI_TT includes: C_ANI
                  Then=>While:whGetCallingFromNumber
                  :: Formula: true, Until PassCount:
                    Execute=>Sequence:sqGetCallingFromNumber
                      AskForNumber:anCallingFromNumber
                      :: Prompt: 527, ""
                      :: Min length: 10, Max length: 11, Star input: IncludeAndT
erminate
                      :: Play back: No, Format: Digits
                      :: Time Out: TIMEOUT msec, Error condition: :x| ((x includ
esString: '*') not) &    (x size = 10)
 &    (((x first:1) asInteger) > 1) &
    ((x last:7) ~= '0000000')
                        IfTimeOutOn (TIMEOUT_TRIES) tries=>Sequence:sqTimeout ..
.(above)
                        IfErrorOn (ERROR_TRIES) tries=>Sequence:sqInvalidEntry .
..(above)
                        ElseIfError=>Play:plInvalidEntry
                      Calculate:clSetCallingFromNumber
                      :: Calculate: anCallingFromNumber, Assign to: I_CALLING_FR
OM_NUMBER
                      IfElse:ifBadCallingFromNumber
                      :: If: BadFromNumberTT includes: I_CALLING_FROM_NUMBER
                        Then=>Sequence:sqBadCallingFromNumber
                          Calculate:clSetErrorReasonBadFROMNumber
                          :: Calculate: 'CALLING# - BAD', Assign to: C_ERROR_REASON
                          :: Calculate: I_CALLING_FROM_NUMBER, Assign to: C_ERROR_MSG
                          Play:plUnableToPlaceCall
                          Sequence:sqEndCall ...(above)
                      Play:plCallingFromNumber
                      :: Play Mode: KeyOver
                      :: Format: 251, Value:
                      :: Format: Digits, Value: a := I_CALLING_FROM_NUMBER .(a first:3),'  ',(a at:4 len:3),'  ',(a last:4)
                      MenuForm:mfVerifyCallingFromNumber
                      :: Prompt: 532, ""
                      :: Time Out: TIMEOUT msec
                        *=>Control:coContinueLoop
                          Continue
                        #=>Control:coBreakTheLoop
                        IfTimeOutOn (TIMEOUT_TRIES) tries=>Sequence:sqTimeout ...(above)
                        ElseIfTimeOut=>Play:plCallingFromNumber
                        IfErrorOn (ERROR_TRIES) tries=>Sequence:sqMenuError ...(above)
                        ElseIfError=>Sequence:sqRepromptVerifyFromNumber
                          Play:plInvalidSelection
                          Play:plCallingFromNumber
                  Else=>Calculate:clSetCallingFromNumberFromANI
                  :: Calculate: C_ANI, Assign to: I_CALLING_FROM_NUMBER
                While:whGetCallingToNumber
                :: Formula: true, Until PassCount:
                  Execute=>Sequence:sqGetCallingToNumber
                    IfElse:ifApplTypeCallHome
                    :: If: C_APPL = 1
                      Then=>AskForNumber:anCH_CallingToNumber
                      :: Prompt: 529, ""
                      :: Min length: 10, Max length: T_INTL_NUM_MAX_LENGTH + 1, Star input: IncludeAndTerminate
                      :: Play back: No, Format: Digits
                      :: Time Out: TIMEOUT msec, Error condition: :x| ((x includesString: '*') not) &    
				((((x first:3) = '011') &    (x size <= T_INTL_NUM_MAX_LENGTH) &    
				(((x at:4 len:7) ~= '0000000') | ((x last:10) ~= '0000000000'))) |   
				((x size = 10) & (((x first:1) asInteger) > 1) &
				((x last:7) ~= '0000000')))
                        IfTimeOutOn (TIMEOUT_TRIES) tries=>Sequence:sqTimeout ...(above)
                        IfErrorOn (ERROR_TRIES) tries=>Sequence:sqInvalidEntry ...(above)
                        ElseIfError=>Play:plInvalidEntry
                      Else=>AskForNumber:anCF_CallingToNumber
                      :: Prompt: 530, ""
                      :: Min length: 10, Max length: 11, Star input: IncludeAndTerminate
                      :: Play back: No, Format: Digits
                      :: Time Out: TIMEOUT msec, Error condition: :x| ((x includesString: '*') not) &    (x size = 10)
 				&    (((x first:1) asInteger) > 1) &
    				((x last:7) ~= '0000000')
                        IfTimeOutOn (TIMEOUT_TRIES) tries=>Sequence:sqTimeout ...(above)
                        IfErrorOn (ERROR_TRIES) tries=>Sequence:sqInvalidEntry ...(above)
                        ElseIfError=>Play:plInvalidEntry
                    Calculate:clSetCallingToNumber
                    :: Calculate: (C_APPL = 1)    ifTrue:  [anCH_CallingToNumber]    ifFalse: 
			[anCF_CallingToNumber], Assign to: I_CALLING_TO_NUMBER
                    IfElse:ifBadCallingToNumber
                    :: If: BadToNumberTT includes: I_CALLING_TO_NUMBER
                      Then=>Sequence:sqBadCallingToNumber
                        Calculate:clSetErrorReasonBadTONumber
                        :: Calculate: 'CALL TO# - BAD', Assign to: C_ERROR_REASON
                        :: Calculate: I_CALLING_TO_NUMBER, Assign to: C_ERROR_MSG
                        Play:plUnableToPlaceCall
                        Sequence:sqEndCall ...(above)
                    Play:plCallingToNumber
                    :: Play Mode: KeyOver
                    :: Format: 251, Value:
                    :: Format: Digits, Value: I_CALLING_TO_NUMBER first:12
                    :: Format: Digits, Value: (I_CALLING_TO_NUMBER size > 12) 
   			ifTrue:  [I_CALLING_TO_NUMBER trimFirst:12]
                    MenuForm:mfVerifyCallingToNumber
                    :: Prompt: 532, ""
                    :: Time Out: TIMEOUT msec
                      *=>Control:coContinueLoop
                      #=>Control:coBreakTheLoop
                      IfTimeOutOn (TIMEOUT_TRIES) tries=>Sequence:sqTimeout ...(above)
                      ElseIfTimeOut=>Play:plCallingToNumber
                      IfErrorOn (ERROR_TRIES) tries=>Sequence:sqMenuError ...(above)
                      ElseIfError=>Sequence:sqRepromptVerifyToNumber
                        Play:plInvalidSelection
                        Play:plCallingToNumber
                Sequence:sqPlaceCall
                  UserDLL:udCheckDiskSpace ...(above)
                  Play:plIntroduction
                  :: Play Mode: Error
                  :: Format: 533, Value:
                  ApplicationLog:alLogPhoneNumbers
                  :: File Name: call.log, Format: Database
                  :: Phone Line: Yes, Date/Time: No
                  :: Value: System dateString
                  :: Value: System timeString
                  :: Value: C_APPL
                  :: Value: C_LANGUAGE
                  :: Value: C_MENU_OPTION
                  :: Value: I_MASTER_PIN
                  :: Value: D_CALLEE_PIN
                  :: Value: C_CALLEE_NAME
                  :: Value: I_CALLING_FROM_NUMBER
                  :: Value: I_CALLING_TO_NUMBER
                  Sequence:sqGetLineAndDial
                    IfElse:ifSecondLineNotReleased ...(above)
                    Calculate:clSetTalkStartSeconds
                    :: Calculate: System seconds, Assign to: C_TALK_START_SECONDS
                    Calculate:clNumToDial
                    :: Calculate: T_DIAL_PREF, I_CALLING_TO_NUMBER, Assign to: I_DIAL_NUM
                    ApplicationLog:alNumToDial
                    :: File Name: calld.log, Format: Database
                    :: Phone Line: Yes, Date/Time: Yes
                    :: Value: 'alNumToDial: CALLEE_PIN, CALLEE_NUM'
                    :: Value: D_CALLEE_PIN
                    :: Value: I_DIAL_NUM trimBlanks
                    UserDLL:udGetLineAndDial
                    +-----------------------------------------+
                    |see oldudGetLineAndDial for              |
                    |set ringback/silence to 4 in switchboard |
                    |(appl = 3)                               |
                    +-----------------------------------------+
                    :: DLL Name: CONNECT, DLL Function: getSecondLineAndDial
                    :: DLL Parameter: 2
                    :: DLL Parameter: 3
                    :: DLL Parameter: >I_DIAL_NUM
                    :: DLL Parameter: 4
                    :: DLL Parameter: 1
                    :: Error Criterion: :result| result < 0
                      OnError=>Sequence:sqGetLineAndDialError
                        Calculate:clSetErrorReasonGetLineAndDial
                        :: Calculate: 'DLL: CONNECT - getSecondLineAndDial() Ret
code: ',(udGetLineAndDial asString), Ass
ign to: C_ERROR_REASON
                        Play:plUnableToPlaceCall
                        UserDLL:udReleaseSecondLine ...(above)
                        Sequence:sqEndCall ...(above)
                    Calculate:clSetSecondLineNumber
                    :: Calculate: udGetLineAndDial, Assign to: C_SLAVE_LINE
                    Calculate:clSetReleaseSecondLine
                    :: Calculate: 1, Assign to: C_RELEASE_LINE_FLAG
                    UserDLL:udDelayAfterDial
                    :: DLL Name: SLEEP, DLL Function: SleepMSec
                    :: DLL Parameter: ConnectTT translate: 'DelayAfterDial'
                    :: Error Criterion: :result|
                    ApplicationLog:alGetLineResult
                    :: File Name: xcall.log, Format: Database
                    :: Phone Line: Yes, Date/Time: Yes
                    :: Value: 'Get Line and dial result'
                    :: Value: udGetLineAndDial
                  UserDLL:udConnectLines
                  :: DLL Name: CONNECT, DLL Function: connectLines
                  :: Error Criterion: :result| result ~= 0
                    OnError=>Sequence:sqConnectLinesError
                      Calculate:clSetErrorReasonConnectLines
                      :: Calculate: 'DLL: CONNECT - connectLines() Retcode: ', (
udConnectLines asString), Assign to: C_E
RROR_REASON
                      Play:plUnableToPlaceCall
                      Sequence:sqEndCall ...(above)
                  MenuForm:mfWaitForKey
                  :: Time Out: ((DualSyncTT translate: 'WaitForKeyTimeout') * 10
00) msec
                    IfTimeOutOn 1 tries=>Sequence:sqStartRecording
                      Calculate:clSetErrorReasonEndAfter1Min
                      :: Calculate: 'END AFTER 1 MIN', Assign to: C_ERROR_REASON
                      :: Calculate: I_CALLING_TO_NUMBER, Assign to: C_ERROR_MSG
                      UserDLL:udDisconnectLines
                      :: DLL Name: CONNECT, DLL Function: disconnectLines
                      :: Error Criterion: :result| result ~= 0
                        OnError=>Sequence:sqDisconnectLinesError
                          Calculate:clSetErrorReasonDisconnectLines
                          :: Calculate: 'DLL: CONNECT - disconnectLines() Retcod
e: ', (udDisconnectLines asString), Assi
gn to: C_ERROR_REASON
                          Play:plUnableToPlaceCall
                          Sequence:sqEndCall ...(above)
                      DynamicMenu:dmStartRecordingMenu
                      :: Menu Mask: '1A-9I-', Time Out: TIMEOUT msec
                        A=>UserDLL:udConnectLines ...(above)
                        I=>Sequence:sqEndCall ...(above)
                        IfTimeOutOn (TIMEOUT_TRIES) tries=>Sequence:sqTimeout ..
.(above)
                        IfErrorOn (ERROR_TRIES) tries=>Sequence:sqMenuError ...(
above)
                        ElseIfError=>Play:plInvalidSelection
                      Calculate:clResetErrorReason ...(above)
                  UserDLL:udPlayRecordingBeginsNow
                  :: DLL Name: DUALPLAY, DLL Function: DualLinePlay
                  :: DLL Parameter: >C_SLAVE_LINE
                  :: DLL Parameter: 600
                  :: DLL Parameter: 1
                  :: Error Criterion: :result|
                  Sequence:sqDualSyncRecord
                    Calculate:clSetDualSyncRecordParams
                    :: Calculate: a := #('CH_' 'CF_' 'SB_' 'PP_') .DualSyncT
T translate: ((a at: C_APPL),'RecordStar
tWait'), Assign to: T_RECORD_START_WAIT
                    :: Calculate: a := #('CH_' 'CF_' 'SB_' 'PP_') .DualSyncT
T translate: ((a at: C_APPL),'RecordTime
'), Assign to: T_MAX_RECORD_TIME
                    :: Calculate: a := #('CH_' 'CF_' 'SB_' 'PP_') .DualSyncT
T translate: ((a at: C_APPL),'RecordEndW
ait'), Assign to: T_RECORD_END_WAIT
                    :: Calculate: T_APPL_PATH,(('00000',I_MASTER_PIN) last:8),
'.D01', Assign to: C_MASTER_FILENAME
                    :: Calculate: (C_MASTER_FILENAME trimLast: 4),'.D02', Assign
 to: C_SLAVE_FILENAME
                    UserDLL:udDualSyncRecord
                    :: DLL Name: SYNCREC, DLL Function: DualSyncRecord
                    :: DLL Parameter: >C_MASTER_FILENAME
                    :: DLL Parameter: >T_MAX_RECORD_TIME
                    :: DLL Parameter: >C_SLAVE_LINE
                    :: DLL Parameter: >C_SLAVE_FILENAME
                    :: DLL Parameter: >C_RECORD_DURATION
                    :: DLL Parameter: >T_RECORD_START_WAIT
                    :: DLL Parameter: >T_RECORD_END_WAIT
                    :: Error Criterion: :result| (result > 0) | (result < -3)
                      OnError=>Sequence:sqDualSyncRecordError
                        Calculate:clSetTalkDuration
                        :: Calculate: System seconds, Assign to: C_TALK_END_SECO
NDS
                        :: Calculate: (C_TALK_END_SECONDS > C_TALK_START_SECONDS
)    ifTrue: [C_TALK_END_SECONDS - C_T
ALK_START_SECONDS]    ifFalse:[(C_TALK
_END_SECONDS + 86400) - C_TALK_START_SEC
ONDS], Assign to: C_TALK_DURATION
                        :: Calculate: (('00',((C_TALK_DURATION // 3600) asString
)) last: 2),':',(('00',((C_TALK_DURATI
ON // 60) asString)) last: 2),':',(('0
0',((C_TALK_DURATION \\ 60) asString)) l
ast: 2), Assign to: C_TALK_DURATION
                        Calculate:clSetErrorReasonDualRecordDLL
                        :: Calculate: 'DLL - SYNCREC - DualSyncRecord() Retcode:
 ', (udDualSyncRecord asString), Assign 
to: C_ERROR_REASON
                        :: Calculate: 'FR:',I_CALLING_FROM_NUMBER,',','TO:',I_
CALLING_TO_NUMBER,',',(C_TALK_DURATION
 asString),',',(C_RECORD_DURATION asSt
ring),',',(T_OFFSET asString), Assign 
to: C_ERROR_MSG
                        UserDLL:udPlayRecordingNotSuccessful
                        :: DLL Name: DUALPLAY, DLL Function: DualLinePlay
                        :: DLL Parameter: >C_SLAVE_LINE
                        :: DLL Parameter: 535
                        :: DLL Parameter: 1
                        :: Error Criterion: :result|
                        UserDLL:udThanksForCalling
                        :: DLL Name: DUALPLAY, DLL Function: DualLinePlay
                        :: DLL Parameter: >C_SLAVE_LINE
                        :: DLL Parameter: 537
                        :: DLL Parameter: 1
                        :: Error Criterion: :result|
                        Sequence:sqHangup ...(above)
                    IfElse:ifCallersStillTalking
                    :: If: udDualSyncRecord = 0
                      Then=>Sequence:sqOneMinuteWarning
                        UserDLL:udPlayOneMinuteRemaining
                        :: DLL Name: DUALPLAY, DLL Function: DualLinePlay
                        :: DLL Parameter: >C_SLAVE_LINE
                        :: DLL Parameter: 536
                        :: DLL Parameter: 1
                        :: Error Criterion: :result|
                        UserDLL:udMonitorLines
                        :: DLL Name: CONNECT, DLL Function: connectAndMonitorCal
l
                        :: DLL Parameter: 1
                        :: DLL Parameter: 1
                        :: Error Criterion: :result|
                        IfElse:ifHangupNotDetected
                        +------------+
                        |% WARNING % |
                        +------------+
                        :: If: udMonitorLines = 3000
                          Then=>UserDLL:udThanksForCalling ...(above)
                    Calculate:clSetCallDuration
                    :: Calculate: System seconds, Assign to: C_END_SECONDS
                    :: Calculate: (C_END_SECONDS > C_START_SECONDS)    ifTrue:
 [C_END_SECONDS - C_START_SECONDS]    
ifFalse:[(C_END_SECONDS + 86400) - C_STA
RT_SECONDS], Assign to: C_CALL_DURATION
                    :: Calculate: (('00',((C_CALL_DURATION // 3600) asString)) l
ast: 2),':',(('00',((C_CALL_DURATION /
/ 60) asString)) last: 2),':',(('00',(
(C_CALL_DURATION \\ 60) asString)) last:
 2), Assign to: C_CALL_DURATION
                    Calculate:clSetTalkDuration ...(above)
                    IfElse:ifRecordingStarted
                    :: If: C_RECORD_DURATION > 0
                      Then=>Sequence:sqGetDuration
                        UserDLL:udVmWait ...(above)
                        UserDLL:udGetDuration
                        :: DLL Name: SYNCREC, DLL Function: CalcDuration
                        :: DLL Parameter: >C_MASTER_FILENAME
                        :: Error Criterion: :result|
                        Calculate:clSetRecordingSeconds
                        :: Calculate: udGetDuration, Assign to: C_RECORD_SECONDS
                        :: Calculate: C_RECORD_SECONDS, Assign to: C_RECORD_DURA
TION
                        Calculate:clSetRecordingDuration
                        :: Calculate: (C_RECORD_DURATION > 0)    ifTrue:  [(('
00',((C_RECORD_DURATION // 3600) asStrin
g)) last: 2),':',              (('00',
((C_RECORD_DURATION // 60) asString)) la
st: 2),':',              (('00',((C_RE
CORD_DURATION \\ 60) asString)) last: 2)
]    ifFalse: [(C_RECORD_DURATION = 0)
                ifTrue:  ['00:00:00']
                ifFalse: [(C_RECORD_DUR
ATION = -1)                    ifTrue:
  ['23:59:58']                    ifFa
lse: ['23:59:59']]], Assign to: C_RECORD
_DURATION
                      Else=>Calculate:clSetRecordingDuration ...(above)
                  ApplicationLog:alInsertDualRecordStatInfo
                  :: File Name: calld.log, Format: Database
                  :: Phone Line: Yes, Date/Time: Yes
                  :: Value: 'alInsertDualRecordStatInfo PIN, AP, LG, ANI,FROM, T
O, CALL,TALK,RECD,LN'
                  :: Value: System dateString
                  :: Value: I_MASTER_PIN    trimBlanks
                  :: Value: C_APPL
                  :: Value: C_LANGUAGE
                  :: Value: C_ANI           trimBlanks
                  :: Value: I_CALLING_FROM_NUMBER
                  :: Value: I_CALLING_TO_NUMBER
                  :: Value: C_CALL_DURATION asString
                  :: Value: C_TALK_DURATION printString
                  :: Value: C_RECORD_DURATION asString
                  :: Value: TelephoneLine
                  DataBaseEdit:deInsertDualRecordStatInfo
                  :: DataBase Name: LDC, Query: 'insert into CALL_STATS (    c
aller_pin, appl_s, lang_s, caller_ani, c
aller_phone, callee_phone,    conn_dur
ation, talk_duration, record_duration, l
ine,  call_status,    call_date_time)
 values(', I_MASTER_PIN quoted,,     
      C_APPL printString,,           C
_LANGUAGE printString,,           C_AN
I quoted,,           I_CALLING_FROM_NU
MBER quoted,,           I_CALLING_TO_N
UMBER quoted,,           C_CALL_DURATI
ON printString,,           C_TALK_DURA
TION printString,,           C_RECORD_
DURATION  printString,,           Tele
phoneLine printString,,             '0
, SYSDATE )'
                    IfSQLError=>Calculate:clSetErrorReasonStatInfo
                    :: Calculate: 'DB - STAT RECORD', Assign to: C_ERROR_REASON
                    :: Calculate: 'FR:',I_CALLING_FROM_NUMBER,',','TO:',I_CALL
ING_TO_NUMBER,',','T:',(C_TALK_DURATIO
N asString),',','R:',(C_RECORD_DURATIO
N asString),',','O:',(T_OFFSET asStrin
g), Assign to: C_ERROR_MSG
                  DataBaseEdit:deDeactivatePIN
                  :: DataBase Name: LDC, Query: 'update call_subjects   set CA
LLS_MADE =  (CALLS_MADE + 1),        l
ast_status = 0',' where PIN = ',  I_MA
STER_PIN quoted,'   and PROJECT = ', C
_APPL printString
                    IfSQLError=>Calculate:clSetErrorReasonDeactivatePIN
                    :: Calculate: 'DB - PIN USAGE', Assign to: C_ERROR_REASON
                  Sequence:sqHangup ...(above)
            DynamicMenu:dmCallHomeMenu
            :: Menu Mask: T_MENU_MASK, Time Out: TIMEOUT msec
              A=>Sequence:sqCallHomePlaceCall ...(above)
              B=>Sequence:sqRegisterPIN
                Calculate:clSetMenuSelection2
                :: Calculate: '2', Assign to: C_MENU_OPTION
                While:whCheckPreAssignedPIN
                :: Formula: true, Until PassCount: (ERROR_TRIES+1)
                  Execute=>Sequence:sqCheckPreAssignedPIN
                    AskForNumber:anAssignedPIN
                    :: Prompt: 539, ""
                    :: Min length: T_PIN_MIN_LENGTH, Max length: T_PIN_MAX_LENGT
H + 1, Star input: IncludeAndTerminate
                    :: Play back: No, Format: Digits
                    :: Time Out: TIMEOUT msec, Error condition: :x| ((x includes
String: '*') not) &    (x size <= T_PI
N_MAX_LENGTH)
                      IfTimeOutOn (TIMEOUT_TRIES) tries=>Sequence:sqTimeout ...(
above)
                      IfErrorOn (ERROR_TRIES) tries=>Sequence:sqRegisterPINError
                        Calculate:clSetErrorReasonRegPINError
                        :: Calculate: 'REG - PIN ERROR', Assign to: C_ERROR_REAS
ON
                        Play:plInvalidEntry
                        Sequence:sqMasterPINError ...(above)
                      ElseIfError=>Play:plInvalidEntry
                    Calculate:clSetAssignedPIN
                    :: Calculate: anAssignedPIN, Assign to: I_MASTER_PIN
                    DataBaseRead:drCheckPreAssignedPIN
                    :: DataBase Name: LDC, Query: 'select PIN, APPL, LANGUAGE, P
HONE_NUMBER   from REGISTRATION  whe
re PIN = ',      I_MASTER_PIN quoted,'
   and APPL = ',     C_APPL printString,
'   and LANGUAGE = ', C_LANGUAGE print
String
                    :: Columns from current row.
                    :: Variable Name: D_PHONE_NUMBER, DataBase column: PHONE_NUM
BER
                    :: Variable Name: D_APPL, DataBase column: APPL
                    :: Variable Name: D_LANGUAGE, DataBase column: LANGUAGE
                      IfSQLError=>Sequence:sqSQLError ...(above)
                    IfElse:ifRegPINFound
                    :: If: drCheckPreAssignedPIN > 0
                    :: If: whCheckPreAssignedPIN < ERROR_TRIES
                      Then=>Control:coBreakTheLoop
                      Then=>Play:plInvalidEntry
                  UntilPass (ERROR_TRIES+1) Then=>Sequence:sqRegisterPINError ..
.(above)
                IfElse:ifRegistered
                :: If: (D_PHONE_NUMBER notNil)    ifTrue:  [((D_PHONE_NUMBER t
rimBlanks) ~= '')                ifTru
e:  [true]                ifFalse: [fa
lse]]    ifFalse: [false]
                  Then=>Sequence:sqAlreadyRegistered
                    Play:plAlreadyRegistered
                    :: Play Mode: Error
                    :: Format: 540, Value:
                    Control:coGoToApplicationType
                      GoBackTo=>sqApplicationType
                MenuForm:mfGenderMenu
                :: Prompt: 541, ""
                :: Time Out: TIMEOUT msec
                  1=>Calculate:clSetGenderMale
                  :: Calculate: 'M', Assign to: I_GENDER
                  2=>Calculate:clSetGenderFemale
                  :: Calculate: 'F', Assign to: I_GENDER
                  IfTimeOutOn (TIMEOUT_TRIES) tries=>Sequence:sqTimeout ...(abov
e)
                  IfErrorOn (ERROR_TRIES) tries=>Sequence:sqMenuError ...(above)
                  ElseIfError=>Play:plInvalidSelection
                AskForNumber:anAge
                :: Prompt: 542, ""
                :: Min length: 1, Max length: 3, Star input: IncludeAndTerminate
                :: Play back: No, Format: Digits
                :: Time Out: TIMEOUT msec, Error condition: :x| a := (x asIntege
r) .     (x size < 3) & ((x includes
String: '*') not) &    (a > 0) & (a < 
100)
                  IfTimeOutOn (TIMEOUT_TRIES) tries=>Sequence:sqTimeout ...(abov
e)
                  IfErrorOn (ERROR_TRIES) tries=>Sequence:sqInvalidEntry ...(abo
ve)
                  ElseIfError=>Play:plInvalidEntry
                Calculate:clSetAge
                :: Calculate: anAge asInteger, Assign to: I_AGE
                MenuForm:mfEducationMenu
                :: Prompt: 543, ""
                :: Time Out: TIMEOUT msec
                  1=>Calculate:clSetEducation12Years
                  :: Calculate: 12, Assign to: I_EDUCATION
                  2=>Calculate:clSetEducation15Years
                  :: Calculate: 15, Assign to: I_EDUCATION
                  3=>Calculate:clSetEducation17Years
                  :: Calculate: 17, Assign to: I_EDUCATION
                  IfTimeOutOn (TIMEOUT_TRIES) tries=>Sequence:sqTimeout ...(abov
e)
                  IfErrorOn (ERROR_TRIES) tries=>Sequence:sqMenuError ...(above)
                  ElseIfError=>Play:plInvalidSelection
                While:whGetNumberToContact
                :: Formula: true, Until PassCount:
                  Execute=>Sequence:sqGetNumberToContact
                    AskForNumber:anNumberToContact
                    :: Prompt: 544, ""
                    :: Min length: 10, Max length: T_INTL_NUM_MAX_LENGTH + 1, St
ar input: IncludeAndTerminate
                    :: Play back: No, Format: Digits
                    :: Time Out: TIMEOUT msec, Error condition: :x| ((x includes
String: '*') not) &    ((((x first:3) 
= '011') &    (x size <= T_INTL_NUM_MA
X_LENGTH) &    (((x at:4 len:7) ~= '00
00000') | ((x last:10) ~= '0000000000'))
) |    ((x size = 10) & (((x first:1) 
asInteger) > 1) & ((x last:7) ~= '000000
0')))
                      IfTimeOutOn (TIMEOUT_TRIES) tries=>Sequence:sqTimeout ...(
above)
                      IfErrorOn (ERROR_TRIES) tries=>Sequence:sqInvalidEntry ...
(above)
                      ElseIfError=>Play:plInvalidEntry
                    Calculate:clSetNumberToContact
                    :: Calculate: anNumberToContact, Assign to: I_NUMBER_TO_CONT
ACT
                    Play:plNumberToContact
                    :: Play Mode: KeyOver
                    :: Format: 251, Value:
                    :: Format: Digits, Value: I_NUMBER_TO_CONTACT first:12
                    :: Format: Digits, Value: (I_NUMBER_TO_CONTACT size > 12) 
   ifTrue: [I_NUMBER_TO_CONTACT trimFirs
t: 12]
                    MenuForm:mfVerifyNumberToContact
                    :: Prompt: 532, ""
                    :: Time Out: TIMEOUT msec
                      *=>Control:coContinueLoop
                      #=>Control:coBreakTheLoop
                      IfTimeOutOn (TIMEOUT_TRIES) tries=>Sequence:sqTimeout ...(
above)
                      ElseIfTimeOut=>Play:plNumberToContact
                      IfErrorOn (ERROR_TRIES) tries=>Sequence:sqMenuError ...(ab
ove)
                      ElseIfError=>Sequence:sqRepromptVerifyContactNum
                        Play:plInvalidSelection
                        Play:plNumberToContact
                Calculate:clSetRegistrationRecParams
                :: Calculate: RegisterTT translate: 'MaxRecordTime', Assign to: 
T_MAX_RECORD_TIME
                :: Calculate: RegisterTT translate: 'MaxLeadingSilence', Assign 
to: T_MAX_LEADING_SILENCE
                :: Calculate: RegisterTT translate: 'MaxTrailingSilence', Assign
 to: T_MAX_TRAILING_SILENCE
                Calculate:clSetRecordNameFilename
                :: Calculate: T_APPL_PATH,(('00000',I_MASTER_PIN) last:8),'.
NAM', Assign to: C_FILENAME
                While:whRecordNameAndOrigin
                :: Formula: true, Until PassCount: 3
                  Execute=>Sequence:sqRecordNameAndOrigin
                    Play:plSpeakNameAfterTheTone
                    :: Play Mode: NoKeyOver
                    :: Format: 545, Value:
                    UserDLL:udRecordNameAndOrigin
                    :: DLL Name: RECORD, DLL Function: RecordToFile
                    :: DLL Parameter: >C_FILENAME
                    :: DLL Parameter: >T_MAX_RECORD_TIME
                    :: DLL Parameter: >T_MAX_LEADING_SILENCE
                    :: DLL Parameter: >T_MAX_TRAILING_SILENCE
                    :: DLL Parameter: 0
                    :: Error Criterion: :result| result = -3
                      OnError=>Control:coContinueLoop
                    Play:plHangupDetect
                    :: Play Mode: NoKeyOver
                    Control:coBreakTheLoop
                  UntilPass 3 Then=>Sequence:sqFallThrough
                Calculate:clSetRecordRegPhraseFilename
                :: Calculate: T_APPL_PATH,(('00000',I_MASTER_PIN) last:8),'.
APP', Assign to: C_FILENAME
                While:whRecordRegPhrase
                :: Formula: true, Until PassCount: 3
                  Execute=>Sequence:sqRecordRegPhrase
                    Play:plSpeakRegPhraseAfterTheTone
                    :: Play Mode: NoKeyOver
                    :: Format: Message, Value: #(546 547 548 549) at: C_APPL
                    UserDLL:udRecordRegPhrase
                    :: DLL Name: RECORD, DLL Function: RecordToFile
                    :: DLL Parameter: >C_FILENAME
                    :: DLL Parameter: >T_MAX_RECORD_TIME
                    :: DLL Parameter: >T_MAX_LEADING_SILENCE
                    :: DLL Parameter: >T_MAX_TRAILING_SILENCE
                    :: DLL Parameter: 0
                    :: Error Criterion: :result| result = -3
                      OnError=>Control:coContinueLoop
                    Control:coBreakTheLoop
                  UntilPass 3 Then=>Sequence:sqFallThrough ...(above)
                UserDLL:udDisableHangupDetect
                :: DLL Name: CONNECT, DLL Function: disableCSEvents
                :: Error Criterion: :result|
                ApplicationLog:alLogRegistrationInfo
                :: File Name: call.log, Format: Database
                :: Phone Line: Yes, Date/Time: No
                :: Value: System dateString
                :: Value: System timeString
                :: Value: C_APPL
                :: Value: C_LANGUAGE
                :: Value: C_MENU_OPTION
                :: Value: I_MASTER_PIN
                :: Value: I_GENDER
                :: Value: I_AGE
                :: Value: I_EDUCATION
                :: Value: I_NUMBER_TO_CONTACT
                DataBaseEdit:deAddRegistrationInfo
                +-----------+
                |% UPDATE % |
                +-----------+
                :: DataBase Name: LDC, Query: 'update REGISTRATIONset APPL = '
,   C_APPL printString,,' LANGUAGE = '
, C_LANGUAGE printString,,' GENDER = '
,   I_GENDER quoted,,' AGE = ',      I
_AGE printString,,' SCHOOL = ',   I_ED
UCATION printString,,' PHONE_NUMBER = 
', I_NUMBER_TO_CONTACT quoted,,' PHONE
_LINE = ',   TelephoneLine printString,,
' REG_DATE = CURRENT DATE',,' REG_TI
ME = CURRENT TIME',' where PIN = ',   
 I_MASTER_PIN quoted
                  IfSQLError=>Sequence:sqDBRegisterPINError
                    Calculate:clSetErrorReasonDBRegPIN
                    :: Calculate: 'DB - REGISTRATION', Assign to: C_ERROR_REASON
                    :: Calculate: I_GENDER,',',(I_AGE asString),',','ED:',(I
_EDUCATION asString),',','FR:',I_NUMBE
R_TO_CONTACT, Assign to: C_ERROR_MSG
                    Play:plUnableToRegister
                    :: Play Mode: Error
                    :: Format: 550, Value:
                    Sequence:sqMasterPINError ...(above)
                IfElse:ifActivatePINFlagNotSet
                :: If: a := #('CH' 'CF' 'SB' 'PP') .(ParamsTT translate: ((a
 at: (C_APPL asInteger)),'OnlineRegFlag'
)) = 0
                  Then=>Sequence:sqPINRegistered
                    Calculate:clSetErrorReasonPINActivate
                    :: Calculate: 'TO ACTIVATE', Assign to: C_ERROR_REASON
                    :: Calculate: I_GENDER,',',(I_AGE asString),',','ED:',(I
_EDUCATION asString),',','FR:',I_NUMBE
R_TO_CONTACT, Assign to: C_ERROR_MSG
                    Play:plSeeProjManager
                    :: Play Mode: Error
                    :: Format: 552, Value:
                    Sequence:sqEndCall ...(above)
                DataBaseEdit:deActivateMasterPIN
                :: DataBase Name: LDC, Query: 'insert into PIN values(', I_MAS
TER_PIN quoted,,           C_APPL prin
tString,,           C_LANGUAGE printSt
ring,,           'CURRENT DATE',,   
        0 printString, ')'
                  IfSQLError=>Sequence:sqActivatePINError
                    Calculate:clSetErrorReasonActivatePIN
                    :: Calculate: 'DB - FAIL ACTIVATE', Assign to: C_ERROR_REASO
N
                    :: Calculate: I_MASTER_PIN, Assign to: C_ERROR_MSG
                    Play:plRegButNotActivated
                    :: Play Mode: Error
                    :: Format: 553, Value:
                    Sequence:sqMasterPINError ...(above)
                UserDLL:udEnableHangupDetect
                :: DLL Name: CONNECT, DLL Function: enableCSEvents
                :: Error Criterion: :result|
                Play:plPINActivated
                :: Play Mode: NoKeyOver
                :: Format: 551, Value:
                Control:coGoToApplicationType
              C=>Sequence:sqLeaveMessageMenu
                Calculate:clSetMenuSelection3
                :: Calculate: '3', Assign to: C_MENU_OPTION
                MenuForm:mfLeaveMessageMenu ...(above)
              D=>Sequence:sqCallHomeInstructions
                Calculate:clSetMenuSelection4
                :: Calculate: '4', Assign to: C_MENU_OPTION
                Play:plCallHomeInstructions
                :: Play Mode: KeyOver
                :: Format: 510, Value:
                UserDLL:udVmWait ...(above)
                Control:coGoToApplicationType
              I=>Sequence:sqEndCall ...(above)
              IfTimeOutOn (TIMEOUT_TRIES) tries=>Sequence:sqTimeout ...(above)
              IfErrorOn (ERROR_TRIES) tries=>Sequence:sqMenuError ...(above)
              ElseIfError=>Play:plInvalidSelection
          2=>Sequence:sqCallFriend
            IfElse:ifCallFriendNoMenuMask
            :: If: T_MAIN_MENU_MASK = ''
              Then=>Sequence:sqCallFriendPlaceCall
                Calculate:clSetMenuSelection1 ...(above)
                Sequence:sqCheckMasterPIN ...(above)
                IfElse:ifSetCallingFromNumber ...(above)
                While:whGetCallingToNumber ...(above)
                Sequence:sqPlaceCall ...(above)
            DynamicMenu:dmCallFriendMenu
            :: Menu Mask: T_MENU_MASK, Time Out: TIMEOUT msec
              A=>Sequence:sqCallFriendPlaceCall ...(above)
              B=>Sequence:sqRegisterPIN ...(above)
              C=>Sequence:sqLeaveMessageMenu ...(above)
              D=>Sequence:sqCallFriendInstructions
                Calculate:clSetMenuSelection4 ...(above)
                Play:plCallFriendInstructions
                :: Play Mode: KeyOver
                :: Format: 512, Value:
                UserDLL:udVmWait ...(above)
                Control:coGoToApplicationType
              I=>Sequence:sqEndCall ...(above)
              IfTimeOutOn (TIMEOUT_TRIES) tries=>Sequence:sqTimeout ...(above)
              IfErrorOn (ERROR_TRIES) tries=>Sequence:sqMenuError ...(above)
              ElseIfError=>Play:plInvalidSelection
          3=>Sequence:sqSwitchboard
            IfElse:ifSwitchboardNoMenuMask
            :: If: T_MAIN_MENU_MASK = ''
              Then=>Sequence:sqParticipateInConversation
                Calculate:clSetMenuSelection1 ...(above)
                DataBaseEdit:deReleaseLineCandidates ...(above)
                Sequence:sqCheckMasterPIN ...(above)
                DataBaseRead:drCheckIfSBUsedToday
                :: DataBase Name: LDC, Query: 'select caller_pin,callee_pin,call
_date from  SWITCHBOARD_STATS  where  
(CALLER_PIN = ', I_MASTER_PIN quoted,'
    or   CALLEE_PIN = ', I_MASTER_PIN qu
oted,')','   and  TRUNC(CALL_DATE) = T
RUNC(SYSDATE +1)'
                  Execute=>Sequence:sqSwitchboardUsedToday
                    Calculate:clSetErrorReasonSwbUsedToday
                    :: Calculate: 'CALLER ALREADY USED SWB TODAY', Assign to: C_
ERROR_REASON
                    ApplicationLog:alMayOnlyUseOncePerDay
                    :: File Name: calld.log, Format: Database
                    :: Phone Line: Yes, Date/Time: Yes
                    :: Value: 'alMayOnlyUseOncePerDay: '
                    Play:plMayOnlyUseOncePerDay
                    :: Play Mode: Error
                    :: Format: 554, Value:
                    Sequence:sqEndCall ...(above)
                  IfSQLError=>Sequence:sqSQLError ...(above)
                IfElse:ifSetCallingFromNumber ...(above)
                DataBaseRead:drCheckIfPhoneUsed
                :: DataBase Name: LDC, Query: 'select  caller_pin,caller_number 
from  SWITCHBOARD_STATS  where  (CALLE
R_PIN = ', I_MASTER_PIN quoted,'   and
  CALLER_NUMBER= ', I_CALLING_FROM_NUMBE
R quoted,')'
                  Execute=>Sequence:sqPhoneUsed
                    Calculate:clSetErrorReasonPhoneAlreadyUsed
                    :: Calculate: 'CALLER ALREADY USED PHONE FOR SWB', Assign to
: C_ERROR_REASON
                    ApplicationLog:alMayOnlyUsePhoneOnce
                    :: File Name: calld.log, Format: Database
                    :: Phone Line: Yes, Date/Time: Yes
                    :: Value: 'alMayOnlyUsePhoneOnce: '
                    Play:plMayOnlyUsePhoneOnce
                    :: Play Mode: Error
                    :: Format: 601, Value:
                    Sequence:sqEndCall ...(above)
                  IfSQLError=>Sequence:sqSQLError ...(above)
                IfElse:ifDebugSWB
                +------------------------------------------------+
                |To debug Switchboard telephony without database |
                |prompt for number to dial,                      |
                |otherwise get from database                     |
                +------------------------------------------------+
                :: If: T_DEBUG = 1
                  Then=>Sequence:sqDebugSWB
                    IfElse:ifNotDebugPIN
                    :: If: (I_MASTER_PIN ~= T_DBG_CALLER)
                      Then=>Sequence:sqNotDebugPIN
                        Calculate:clSetErrorReasonNotDebugPIN
                        :: Calculate: 'Not Debug PIN', Assign to: C_ERROR_REASON
                        Play:plUnableToProcessRequest
                        Sequence:sqEndCall ...(above)
                    AskForNumber:anCalleePIN
                    :: Prompt: 539, ""
                    :: Min length: T_PIN_MIN_LENGTH, Max length: T_PIN_MAX_LENGT
H + 1, Star input: IncludeAndTerminate
                    :: Play back: No, Format: Digits
                    :: Time Out: TIMEOUT msec, Error condition: :x| ((x includes
String: '*') not) &    (x size <= T_PI
N_MAX_LENGTH)
                      IfTimeOutOn (TIMEOUT_TRIES) tries=>Sequence:sqTimeout ...(
above)
                      IfErrorOn (ERROR_TRIES) tries=>Sequence:sqInvalidEntry ...
(above)
                      ElseIfError=>Play:plInvalidEntry
                    Calculate:clSetCalleePIN
                    :: Calculate: anCalleePIN, Assign to: D_CALLEE_PIN
                    Calculate:clCalleeVal
                    :: Calculate: D_CALLEE_PIN trimBlanks, Assign to: D_CALLEE_P
IN
                    While:whGetCallingToNumber ...(above)
                    Calculate:clSWBDebugCallee
                    :: Calculate: D_CALLEE_PIN, Assign to: D_CALLEE_PIN
                    Sequence:sqGetTopic
                      DataBaseRead:drGetTopic
                      :: DataBase Name: LDC, Query: 'select top from rand_topics
 where top in (select topic from sid2top
ic where yn = 0 and sid = (select sid fr
om call_subjects where pin =', I_MASTE
R_PIN quoted,' ) and exists (select topi
c from sid2topic where yn = 0 and sid = 
(select sid from call_subjects where pin
 =', D_CALLEE_PIN quoted,')))order b
y ind '
                      :: Start at row: 3 use: 1 row(s)
                      :: Columns from current row.
                      :: Variable Name: D_TOPIC, DataBase column: TOP
                        Execute=>Calculate:clGetTopic
                        :: Calculate: D_TOPIC asNumber, Assign to: C_TOPIC
                        IfNoDataFound=>Calculate:clSetErrorReasonGetTopic
                        :: Calculate: 'Form: drGetTopic', Assign to: C_ERROR_REA
SON
                        IfSQLError=>Sequence:sqSQLError ...(above)
                      ApplicationLog:alGetTopic
                      :: File Name: calld.log, Format: Database
                      :: Phone Line: Yes, Date/Time: Yes
                      :: Value: 'alGetTopic:'
                      :: Value: C_TOPIC
                    ApplicationLog:alCalleeVal
                    :: File Name: calld.log, Format: Database
                    :: Phone Line: Yes, Date/Time: Yes
                    :: Value: 'alCalleeVal: CALLEE_PIN, CALLEE_NUM'
                    :: Value: D_CALLEE_PIN trimBlanks
                    :: Value: I_CALLING_TO_NUMBER  trimBlanks
                    Sequence:sqSwitchBoardPlaceCall
                      Calculate:clResetErrorReason ...(above)
                      Calculate:clSetNumberToCall
                      :: Calculate: I_CALLING_TO_NUMBER trimBlanks, Assign to: I
_CALLING_TO_NUMBER
                      :: Calculate: 1, Assign to: C_PERIOD
                      Calculate:clSetCalleeName
                      :: Calculate: (D_CALLEE_PIN asNumber > 9999)    ifTrue: 
 [606]    ifFalse: [(D_CALLEE_PIN asNu
mber)], Assign to: C_CALLEE_NAME
                      UserDLL:udCheckDiskSpace ...(above)
                      Play:plHoldWhileCalleeLocated
                      :: Play Mode: Error
                      :: Format: 564, Value:
                      ApplicationLog:alLogPhoneNumbers
                      Sequence:sqGetLineAndDial ...(above)
                      Calculate:clIncrCalleeTries
                      :: Calculate: C_CALLEE_TRIES + 1, Assign to: C_CALLEE_TRIE
S
                      Sequence:sqGetCallStatus
                        UserDLL:udPauseBeforeGetCallStatus
                        :: DLL Name: SLEEP, DLL Function: SleepMSec
                        :: DLL Parameter: ConnectTT translate: 'DelayBeforeStatu
s'
                        :: Error Criterion: :result|
                        UserDLL:udGetCallStatus
                        :: DLL Name: CONNECT, DLL Function: callStatus
                        :: DLL Parameter: ConnectTT translate: 'ConfigFile'
                        :: Error Criterion: :result|
                        ApplicationLog:alGetCallStatus
                        :: File Name: calld.log, Format: Database
                        :: Phone Line: Yes, Date/Time: Yes
                        :: Value: 'alGetCallStatus:'
                        :: Value: udGetCallStatus
                      IfElse:ifSBCallNotAnswered
                      +----------------------------+
                      |133 status == call answered |
                      +----------------------------+
                      :: If: udGetCallStatus = 999
                        Then=>Sequence:sqSBCallNotAnswered
                          ApplicationLog:alSBCallNotAnswered
                          :: File Name: calld.log, Format: Database
                          :: Phone Line: Yes, Date/Time: Yes
                          :: Value: 'alSBCallNotAnswered:'
                          :: Value: udGetCallStatus
                          Play:plCallNotAnswered
                          :: Play Mode: Error
                          :: Format: 562, Value:
                          DataBaseEdit:deSBCallNotAnsweredStat
                          :: DataBase Name: LDC, Query: 'insert into CALL_STATS 
(    caller_pin, callee_pin, appl_s, l
ang_s, caller_ani, caller_phone, callee_
phone,    line, call_status, call_date
_time) values(', I_MASTER_PIN quoted,,
            D_CALLEE_PIN quoted,,   
        C_APPL printString,,          
 C_LANGUAGE printString,,           C_
ANI quoted,,           I_CALLING_FROM_
NUMBER quoted,,           I_CALLING_TO
_NUMBER quoted,,          TelephoneLin
e printString,,           '3, SYSDATE 
)'
                            IfSQLError=>Sequence:sqSQLError ...(above)
                          DataBaseEdit:deSBCallNotAnsweredSubj
                          :: DataBase Name: LDC, Query: 'update call_subjects cs
    set cs.skip_until_time = sysdate +
 (1/24),         cs.last_status = 3 
 where cs.pin = ', D_CALLEE_PIN quoted
                            IfSQLError=>Sequence:sqSQLError ...(above)
                          Sequence:sqReleaseOutboundLine
                            Sequence:sqReleaseSecondLine ...(above)
                            UserDLL:udDisableHangupDetect ...(above)
                      Case:csCallResult
                      :: Calculate: udGetCallStatus
                        129=>Sequence:sqSBCallNotAnswered ...(above)
                        130=>Sequence:sqLineWasBusy
                          ApplicationLog:alLineWasBusy
                          :: File Name: calld.log, Format: Database
                          :: Phone Line: Yes, Date/Time: Yes
                          :: Value: 'alLineWasBusy:'
                          :: Value: udGetCallStatus
                          Play:plLineWasBusy
                          :: Play Mode: Error
                          :: Format: 563, Value:
                          DataBaseEdit:deLineWasBusyStat
                          :: DataBase Name: LDC, Query: 'insert into CALL_STATS 
(caller_pin, appl_s, lang_s, caller_ani,
 caller_phone,    callee_pin, callee_p
hone, line, call_status, call_date_time)
 values(', I_MASTER_PIN quoted,,    
       C_APPL printString,,           
C_LANGUAGE printString,,           C_A
NI quoted,,           I_CALLING_FROM_N
UMBER quoted,,           D_CALLEE_PIN 
quoted,,           I_CALLING_TO_NUMBER
 quoted,,          TelephoneLine print
String,,           '1, SYSDATE )'
                            IfSQLError=>Sequence:sqSQLError ...(above)
                          DataBaseEdit:deLineWasBusySubj
                          :: DataBase Name: LDC, Query: 'update call_subjects cs
    set cs.skip_until_time = sysdate +
 ((1/24)/12),         cs.last_status =
 1  where cs.pin = ', D_CALLEE_PIN quo
ted
                            IfSQLError=>Sequence:sqSQLError ...(above)
                          Sequence:sqReleaseOutboundLine ...(above)
                        132=>Sequence:sqAnsweringMachine
                          ApplicationLog:alAnsweringMachine
                          :: File Name: calld.log, Format: Database
                          :: Phone Line: Yes, Date/Time: Yes
                          :: Value: 'alAnsweringMachine:'
                          :: Value: udGetCallStatus
                          Play:plLineWasBusy
                          DataBaseEdit:deAnsweringMachineStat
                          :: DataBase Name: LDC, Query: 'insert into CALL_STATS 
(caller_pin, appl_s, lang_s, caller_ani,
 caller_phone,    callee_pin, callee_p
hone, line, call_status, call_date_time)
 values(', I_MASTER_PIN quoted,,    
       C_APPL printString,,           
C_LANGUAGE printString,,           C_A
NI quoted,,           I_CALLING_FROM_N
UMBER quoted,,           D_CALLEE_PIN 
quoted,,           I_CALLING_TO_NUMBER
 quoted,,          TelephoneLine print
String,,           '4, SYSDATE )'
                            IfSQLError=>Sequence:sqSQLError ...(above)
                          DataBaseEdit:deAnsweringMachineSubj
                          :: DataBase Name: LDC, Query: 'update call_subjects cs
    set cs.skip_until_time = sysdate +
 1/24,         cs.last_status = 4  w
here cs.pin = ', D_CALLEE_PIN quoted
                            IfSQLError=>Sequence:sqSQLError ...(above)
                          Sequence:sqReleaseOutboundLine ...(above)
                        133=>Sequence:sqCallAnswered
                          ApplicationLog:alCallAnswered
                          :: File Name: calld.log, Format: Database
                          :: Phone Line: Yes, Date/Time: Yes
                          :: Value: 'alCallAnswered:'
                          :: Value: udGetCallStatus
                          Calculate:clSetCalleeInputTimeout
                          :: Calculate: TIMEOUT, Assign to: T_CALLEE_TIMEOUT
                          :: Calculate: TIMEOUT_TRIES, Assign to: T_CALLEE_TRIES
                          Calculate:clResetErrorCounters ...(above)
                          Worksheet:wsInitCalleeTimeoutFlag
                          :: Variable Name: C_TIMEOUT_FLAG, Initial Value: 0
                          While:whCheckCalleeReady
                          :: Formula: true, Until PassCount:
                            Execute=>Sequence:sqCheckCalleeReady
                              Calculate:clInitCalleeInputBuffer
                              :: Calculate: '    ', Assign to: C_CALLEE_INPUT
                              Sequence:sqPlayCalleeWelcome
                                UserDLL:udPlayCalleeSBCalling
                                :: DLL Name: CONNECT, DLL Function: playOnSecond
ary
                                :: DLL Parameter: 604
                                :: Error Criterion: :result|
                                UserDLL:udPlayCalleeName
                                :: DLL Name: CONNECT, DLL Function: playOnSecond
ary
                                :: DLL Parameter: C_CALLEE_NAME
                                :: Error Criterion: :result|
                              UserDLL:udCalleeMenu
                              +--------------------------------------------+
                              |Changed to use CONNECT instead  of GETDTMF. |
                              |27-Jan-97 Turned off busy detect            |
                              +--------------------------------------------+
                              :: DLL Name: CONNECT, DLL Function: getDTMFOnSecon
dary
                              :: DLL Parameter: T_CALLEE_TIMEOUT / 1000
                              :: DLL Parameter: 566
                              :: DLL Parameter: 1
                              :: DLL Parameter: 1
                              :: DLL Parameter: >C_CALLEE_INPUT
                              :: DLL Parameter: 1
                              :: DLL Parameter: 1
                              :: DLL Parameter: 1
                              :: Error Criterion: :result|
                              Case:csCalleeMenuRetval
                              +-------------------------------------------------
---+
                              |CONNECT returns n-digits on success, unlike GETDT
MF |
                              |failure returns:                                 
   |
                              |    x88 (24) caller_hangup                       
   |
                              |    x89 (25) callee_hangup                       
   |
                              |    < 0 on error                                 
   |
                              |    -3  on timeout                               
   |
                              |                                                 
   |
                              |                                                 
   |
                              |                                                 
   |
                              |                                                 
   |
                              +-------------------------------------------------
---+
                              :: Calculate: udCalleeMenu
                                0=>Case:csCalleeMenuChoice
                                :: Calculate: C_CALLEE_INPUT first: 1
                                  '1'=>Control:coBreakTheLoop
                                  '2'=>Sequence:sqWaitForCallee
                                    IfElse:ifCalleeTimeoutFlagSet
                                    :: If: C_TIMEOUT_FLAG > 0
                                      Then=>Calculate:clIncrErrorCounter1
                                      :: Calculate: C_ERROR_COUNTER_1 + 1, Assig
n to: C_ERROR_COUNTER_1
                                      Else=>Calculate:clSetCalleeInputNewTimeout
                                      :: Calculate: (ParamsTT translate: 'SBTime
out') asInteger, Assign to: T_CALLEE_TIM
EOUT
                                      :: Calculate: (ParamsTT translate: 'SBTime
outTries') asInteger, Assign to: T_CALLE
E_TRIES
                                      :: Calculate: 1, Assign to: C_TIMEOUT_FLAG
                                      :: Calculate: 0, Assign to: C_ERROR_COUNTE
R_1
                                  '3'=>Sequence:sqCalleeNotAvailable
                                    UserDLL:udPlayThanksToCallee
                                    :: DLL Name: CONNECT, DLL Function: playOnSe
condary
                                    :: DLL Parameter: 537
                                    :: Error Criterion: :result|
                                    Sequence:sqReleaseSecondLine ...(above)
                                    UserDLL:udDisableHangupDetect ...(above)
                                    ApplicationLog:alCalleeNotAvailable
                                    :: File Name: calld.log, Format: Database
                                    :: Phone Line: Yes, Date/Time: Yes
                                    :: Value: 'alCallNotAnswered:'
                                    Play:plCalleeNotAvailable
                                    :: Play Mode: Error
                                    :: Format: 561, Value:
                                    DataBaseEdit:deCalleeNotAvailableStat
                                    :: DataBase Name: LDC, Query: 'insert into C
ALL_STATS (    caller_pin, appl_s, lan
g_s, caller_ani, caller_phone,    call
ee_pin, callee_phone, line, call_status,
 call_date_time) values(', I_MASTER_PI
N quoted,,           C_APPL printStrin
g,,           C_LANGUAGE printString,,
           C_ANI quoted,,           
I_CALLING_FROM_NUMBER quoted,,        
   D_CALLEE_PIN quoted,,           I_C
ALLING_TO_NUMBER quoted,,          Tel
ephoneLine printString,,           '2,
 SYSDATE )'
                                      IfSQLError=>Sequence:sqSQLError ...(above)
                                    DataBaseEdit:deCalleeNotAvailableSubj
                                    :: DataBase Name: LDC, Query: 'update call_s
ubjects cs    set cs.skip_until_time =
 sysdate + (1/24),         cs.last_sta
tus = 2  where cs.pin = ', D_CALLEE_PI
N quoted
                                      IfSQLError=>Sequence:sqSQLError ...(above)
                                    Control:coBreakCallAnswered
                                      Break=>sqCallAnswered
                                  default=>Sequence:sqInvalidSelection
                                    Calculate:clIncrErrorCounter2
                                    :: Calculate: C_ERROR_COUNTER_2 + 1, Assign 
to: C_ERROR_COUNTER_2
                                    UserDLL:udPlayInvalidSelection
                                    :: DLL Name: DUALPLAY, DLL Function: PlayOnS
econdary
                                    :: DLL Parameter: >C_SLAVE_LINE
                                    :: DLL Parameter: 584
                                    :: DLL Parameter: 2
                                    :: Error Criterion: :result|
                                1=>Case:csCalleeMenuChoice ...(above)
                                136=>Sequence:sqCallerHangup
                                  ApplicationLog:alCallerHangup
                                  :: File Name: calld.log, Format: Database
                                  :: Phone Line: Yes, Date/Time: Yes
                                  :: Value: 'alCallerHangup:'
                                  UserDLL:udPlayThanksForCalling
                                  :: DLL Name: CONNECT, DLL Function: playOnSeco
ndary
                                  :: DLL Parameter: 537
                                  :: Error Criterion: :result|
                                  DataBaseEdit:deCallerHangupStat
                                  :: DataBase Name: LDC, Query: 'insert into CAL
L_STATS (    caller_pin, appl_s, lang_
s, caller_ani, caller_phone,    callee
_pin, callee_phone, line, call_status, c
all_date_time) values(', I_MASTER_PIN 
quoted,,           C_APPL printString,
,           C_LANGUAGE printString,,
           C_ANI quoted,,           I_
CALLING_FROM_NUMBER quoted,,          
 D_CALLEE_PIN quoted,,           I_CAL
LING_TO_NUMBER quoted,,          Telep
honeLine printString,,           '8, S
YSDATE )'
                                    IfSQLError=>Sequence:sqSQLError ...(above)
                                  DataBaseEdit:deCallerHangupSubj
                                  :: DataBase Name: LDC, Query: 'update call_sub
jects cs    set cs.skip_until_time = s
ysdate + 1,         cs.last_status = 8
  where cs.pin = ', D_CALLEE_PIN quote
d
                                    IfSQLError=>Sequence:sqSQLError ...(above)
                                  DataBaseEdit:deReleaseLineCandidates ...(above
)
                                  Sequence:sqHangup ...(above)
                                137=>Sequence:sqCalleeHangup
                                  ApplicationLog:alCalleeHangup
                                  :: File Name: calld.log, Format: Database
                                  :: Phone Line: Yes, Date/Time: Yes
                                  :: Value: 'alCalleeHangup:'
                                  Sequence:sqReleaseSecondLine ...(above)
                                  Play:plCallNotAccepted
                                  :: Play Mode: Error
                                  :: Format: 561, Value:
                                  DataBaseEdit:deCalleeHangupStat
                                  :: DataBase Name: LDC, Query: 'insert into CAL
L_STATS (    caller_pin, appl_s, lang_
s, caller_ani, caller_phone,    callee
_pin, callee_phone, line, call_status, c
all_date_time) values(', I_MASTER_PIN 
quoted,,           C_APPL printString,
,           C_LANGUAGE printString,,
           C_ANI quoted,,           I_
CALLING_FROM_NUMBER quoted,,          
 D_CALLEE_PIN quoted,,           I_CAL
LING_TO_NUMBER quoted,,          Telep
honeLine printString,,           '7, S
YSDATE )'
                                    IfSQLError=>Sequence:sqSQLError ...(above)
                                  DataBaseEdit:deCalleeHangupSubj
                                  :: DataBase Name: LDC, Query: 'update call_sub
jects cs    set cs.skip_until_time = s
ysdate + 1,         cs.last_status = 7
  where cs.pin = ', D_CALLEE_PIN quote
d
                                    IfSQLError=>Sequence:sqSQLError ...(above)
                                  Control:coBreakCallAnswered
                                -3=>Sequence:sqCalleeTimeout
                                  ApplicationLog:alCalleeTimeout
                                  :: File Name: calld.log, Format: Database
                                  :: Phone Line: Yes, Date/Time: Yes
                                  :: Value: 'alCalleeTimeout:'
                                  Sequence:sqReleaseSecondLine ...(above)
                                  Play:plCallNotAccepted
                                  DataBaseEdit:deCalleeTimeoutStat
                                  :: DataBase Name: LDC, Query: 'insert into CAL
L_STATS (    caller_pin, appl_s, lang_
s, caller_ani, caller_phone,    callee
_pin, callee_phone, line, call_status, c
all_date_time) values(', I_MASTER_PIN 
quoted,,           C_APPL printString,
,           C_LANGUAGE printString,,
           C_ANI quoted,,           I_
CALLING_FROM_NUMBER quoted,,          
 D_CALLEE_PIN quoted,,           I_CAL
LING_TO_NUMBER quoted,,          Telep
honeLine printString,,           '9, S
YSDATE )'
                                    IfSQLError=>Sequence:sqSQLError ...(above)
                                  DataBaseEdit:deCalleeTimeoutSubj
                                  :: DataBase Name: LDC, Query: 'update call_sub
jects cs    set cs.skip_until_time = s
ysdate + 1,         cs.last_status = 9
  where cs.pin = ', D_CALLEE_PIN quote
d
                                    IfSQLError=>Sequence:sqSQLError ...(above)
                                  Control:coBreakCallAnswered
                                default=>Sequence:sqCalleeMenuDLLError
                                  Calculate:clSetErrorReasonDLLCalleeMenu
                                  :: Calculate: 'DLL - GETDTMF - CALLEE MENU - G
etDTMFOnSecondary() Retcode: ',(udCall
eeMenu asString), Assign to: C_ERROR_REA
SON
                                  :: Calculate: 'FR:',I_CALLING_FROM_NUMBER,',',
'TO:',I_CALLING_TO_NUMBER,',',(C_CAL
LEE_TRIES asString),',',(C_TALK_DURATI
ON asString),',',(C_RECORD_DURATION as
String),',',(T_OFFSET asString), Assig
n to: C_ERROR_MSG
                                  Play:plUnableToPlaceCall
                                  Sequence:sqEndCall ...(above)
                              IfElse:ifMaxCalleeMenuTries
                              :: If: (C_ERROR_COUNTER_1 >= T_CALLEE_TRIES) |(C
_ERROR_COUNTER_2 >= ERROR_TRIES)
                                Then=>Sequence:sqCalleeEndCall
                                  UserDLL:udPlayThanksToCallee ...(above)
                                  Sequence:sqReleaseSecondLine ...(above)
                                  UserDLL:udDisableHangupDetect ...(above)
                                  ApplicationLog:alCallNotAccepted
                                  :: File Name: calld.log, Format: Database
                                  :: Phone Line: Yes, Date/Time: Yes
                                  :: Value: 'alCallNotAnswered:'
                                  Play:plCallNotAccepted
                                  DataBaseEdit:deCallNotAcceptedStat
                                  :: DataBase Name: LDC, Query: 'insert into CAL
L_STATS (    caller_pin, appl_s, lang_
s, caller_ani, caller_phone,    callee
_pin, callee_phone, line, call_status, c
all_date_time) values(', I_MASTER_PIN 
quoted,,           C_APPL printString,
,           C_LANGUAGE printString,,
           C_ANI quoted,,           I_
CALLING_FROM_NUMBER quoted,,          
 D_CALLEE_PIN quoted,,           I_CAL
LING_TO_NUMBER quoted,,          Telep
honeLine printString,,           '2, S
YSDATE )'
                                    IfSQLError=>Sequence:sqSQLError ...(above)
                                  DataBaseEdit:deCallNotAcceptedSubj
                                  +--------------------------------+
                                  |Skip was 1 hour. (1/24)         |
                                  |Changed to 1 day 15-May-96  (1) |
                                  +--------------------------------+
                                  :: DataBase Name: LDC, Query: 'update call_sub
jects cs    set cs.skip_until_time = s
ysdate + 1,         cs.last_status = 2
  where cs.pin = ', D_CALLEE_PIN quote
d
                                    IfSQLError=>Sequence:sqSQLError ...(above)
                                  Control:coBreakCallAnswered
                          Calculate:clResetErrorCounters ...(above)
                          While:whCheckCalleePIN
                          :: Formula: true, Until PassCount:
                            Execute=>Sequence:sqCheckCalleePIN
                              Calculate:clInitCalleeInputBuffer ...(above)
                              UserDLL:udAskCalleePIN
                              +-------------------------------------------+
                              |Changed to use CONNECT instead of GETDTMF. |
                              +-------------------------------------------+
                              :: DLL Name: CONNECT, DLL Function: getDTMFOnSecon
dary
                              :: DLL Parameter: T_CALLEE_TIMEOUT / 1000
                              :: DLL Parameter: 519
                              :: DLL Parameter: >T_PIN_MAX_LENGTH
                              :: DLL Parameter: 0
                              :: DLL Parameter: >C_CALLEE_INPUT
                              :: DLL Parameter: 0
                              :: DLL Parameter: 0
                              :: DLL Parameter: 0
                              :: Error Criterion: :result| (result = -1) | (resu
lt < -4)
                                OnError=>Sequence:sqCalleePINDLLError
                                  Calculate:clSetErrorReasonDLLCalleePIN
                                  :: Calculate: 'DLL: GETDTMF - CALLEE PIN - ',
'GetDTMFOnSecondary() Retcode: ',(udAsk
CalleePIN asString), Assign to: C_ERROR_
REASON
                                  :: Calculate: 'FR:',I_CALLING_FROM_NUMBER,',',
'TO:',I_CALLING_TO_NUMBER,',',(C_CAL
LEE_TRIES asString),',',(C_TALK_DURATI
ON asString),',',(C_RECORD_DURATION as
String),',',(T_OFFSET asString), Assig
n to: C_ERROR_MSG
                                  Play:plUnableToPlaceCall
                                  Sequence:sqEndCall ...(above)
                              Case:csAskCalleePINRetval
                              +-------------------------------------------------
---+
                              |CONNECT returns n-digits on success, unlike GETDT
MF |
                              |failure returns:                                 
   |
                              |    x88 (24) caller_hangup                       
   |
                              |    x89 (25) callee_hangup                       
   |
                              |    < 0 on error                                 
   |
                              |    -3  on timeout                               
   |
                              |                                                 
   |
                              +-------------------------------------------------
---+
                              :: Calculate: udAskCalleePIN
                                136=>Sequence:sqCallerHangup ...(above)
                                137=>Sequence:sqCalleeHangup ...(above)
                                -3=>Calculate:clIncrErrorCounter1 ...(above)
                                default=>IfElse:ifPINValid
                                :: If: (C_CALLEE_INPUT trimBlanks) = D_CALLEE_PI
N
                                  Then=>Control:coBreakTheLoop
                                  Else=>Sequence:sqInvalidCalleePIN
                                    Calculate:clIncrErrorCounter2 ...(above)
                                    UserDLL:udPlayInvalidEntry
                                    :: DLL Name: DUALPLAY, DLL Function: PlayOnS
econdary
                                    :: DLL Parameter: >C_SLAVE_LINE
                                    :: DLL Parameter: 522
                                    :: DLL Parameter: 2
                                    :: Error Criterion: :result|
                              IfElse:ifMaxCalleePINTries
                              :: If: (C_ERROR_COUNTER_1 >= TIMEOUT_TRIES) |(C_
ERROR_COUNTER_2 >= ERROR_TRIES)
                                Then=>Sequence:sqCalleeEndCall ...(above)
                          UserDLL:udConnectLines ...(above)
                          Play:plClearKeyBuffer
                          :: Play Mode: Error
                          UserDLL:udPlayWelcomeCallerAndCallee
                          :: DLL Name: DUALPLAY, DLL Function: DualLinePlay
                          :: DLL Parameter: >C_SLAVE_LINE
                          :: DLL Parameter: 568
                          :: DLL Parameter: 1
                          :: Error Criterion: :result|
                          Play:plClearKeyBuffer
                          UserDLL:udPlaySuggestedTopicIs
                          :: DLL Name: DUALPLAY, DLL Function: DualLinePlay
                          :: DLL Parameter: >C_SLAVE_LINE
                          :: DLL Parameter: 619
                          :: DLL Parameter: 1
                          :: Error Criterion: :result|
                          Play:plClearKeyBuffer
                          DataBaseEdit:deClearCallerTopic
                          :: DataBase Name: LDC, Query: 'update sid2topic set yn
 = 1 where topic = ',D_TOPIC quoted,' an
d sid = (select sid from call_subjects w
here pin = ',I_MASTER_PIN  quoted,')'
                            IfSQLError=>Sequence:sqSQLError ...(above)
                          DataBaseEdit:deClearCalleeTopic
                          :: DataBase Name: LDC, Query: 'update sid2topic set yn
 = 1 where topic = ', D_TOPIC quoted , '
 and sid = (select sid from call_subject
s where pin = ', D_CALLEE_PIN ,' ) '
                            IfSQLError=>Sequence:sqSQLError ...(above)
                          UserDLL:udPlayTopicToBoth
                          :: DLL Name: DUALPLAY, DLL Function: DualLinePlay
                          :: DLL Parameter: >C_SLAVE_LINE
                          :: DLL Parameter: C_TOPIC
                          :: DLL Parameter: 1
                          :: Error Criterion: :result|
                          Play:plClearKeyBuffer
                          MenuForm:mfSBWaitForKey
                          :: Time Out: ((DualSyncTT translate: 'WaitForKeyTimeou
t') * 1000) msec
                            IfTimeOutOn 1 tries=>UserDLL:udPlayRecordingWillBegi
nNow
                            :: DLL Name: DUALPLAY, DLL Function: DualLinePlay
                            :: DLL Parameter: >C_SLAVE_LINE
                            :: DLL Parameter: 569
                            :: DLL Parameter: 1
                            :: Error Criterion: :result|
                            IfErrorOn 1 tries=>Sequence:sqFallThrough ...(above)
                          Sequence:sqSBDualSyncRecord
                          +----------------+
                          |% SWITCHBOARD % |
                          +----------------+
                            Calculate:clSetDualSyncRecordParams ...(above)
                            UserDLL:udSBDualSyncRecord
                            :: DLL Name: SYNCREC, DLL Function: DualSyncRecord
                            :: DLL Parameter: >C_MASTER_FILENAME
                            :: DLL Parameter: >T_MAX_RECORD_TIME
                            :: DLL Parameter: >C_SLAVE_LINE
                            :: DLL Parameter: >C_SLAVE_FILENAME
                            :: DLL Parameter: >C_RECORD_DURATION
                            :: DLL Parameter: >T_RECORD_START_WAIT
                            :: DLL Parameter: >T_RECORD_END_WAIT
                            :: Error Criterion: :result| (result > 0) | (result 
< -3)
                              OnError=>Sequence:sqSBDualSyncRecordError
                                Calculate:clSetTalkDuration ...(above)
                                Calculate:clSetErrorReasonSBDualRecordDLL
                                :: Calculate: 'DLL - SYNCREC - udSBDualSyncRecor
d() Retcode: ',(udSBDualSyncRecord asS
tring), Assign to: C_ERROR_REASON
                                :: Calculate: 'FR:',I_CALLING_FROM_NUMBER,',',
'TO:',I_CALLING_TO_NUMBER,',',(C_CALLE
E_TRIES asString),',',(C_TALK_DURATION
 asString),',',(C_RECORD_DURATION asSt
ring),',',(T_OFFSET asString), Assign 
to: C_ERROR_MSG
                                UserDLL:udPlayRecordingNotSuccessful ...(above)
                                UserDLL:udThanksForCalling ...(above)
                                Sequence:sqHangup ...(above)
                            IfElse:ifSBCallersStillTalking
                            :: If: udSBDualSyncRecord = 0
                              Then=>Sequence:sqOneMinuteWarning ...(above)
                            Calculate:clSetCallDuration ...(above)
                            Calculate:clSetTalkDuration ...(above)
                            IfElse:ifRecordingStarted ...(above)
                          Sequence:sqSBDualRecordDBXactions
                            Calculate:clSBDualRecStat
                            :: Calculate: (C_RECORD_SECONDS >= 240)   ifTrue: 
[0]   ifFalse:[(C_RECORD_SECONDS > 10)
     ifTrue: [6]     ifFalse:[10] 
   ], Assign to: C_RECORD_STAT
                            ApplicationLog:alSBDualRecordDBXactions
                            :: File Name: calld.log, Format: Database
                            :: Phone Line: Yes, Date/Time: Yes
                            :: Value: 'alSBDualRecordDBXactions: PIN, AP, LG, AN
I,FROM, TO, CALL,TALK,RECD,LN'
                            :: Value: I_MASTER_PIN    trimBlanks
                            :: Value: D_CALLEE_PIN    trimBlanks
                            :: Value: C_APPL
                            :: Value: C_LANGUAGE
                            :: Value: C_ANI           trimBlanks
                            :: Value: I_CALLING_FROM_NUMBER trimBlanks
                            :: Value: I_CALLING_TO_NUMBER
                            :: Value: C_CALLEE_TRIES
                            :: Value: C_CALL_DURATION asString
                            :: Value: C_TALK_DURATION printString
                            :: Value: C_RECORD_DURATION asString
                            :: Value: C_RECORD_STAT
                            :: Value: D_TOPIC
                            :: Value: TelephoneLine
                            DataBaseEdit:deInsertSB_DualRecordStatInfo
                            :: DataBase Name: LDC, Query: 'insert into call_stat
s (call_date_time, call_status, appl_s, 
lang_s, topic,        caller_pin, call
ee_pin, caller_ani, caller_phone, callee
_phone,        conn_duration, talk_dur
ation, record_duration, line)   values
 (SYSDATE, ',        C_RECORD_STAT pri
ntString,,        C_APPL printString,,
        C_LANGUAGE printString,,    
    D_TOPIC printString,,        I_MAS
TER_PIN quoted,,        D_CALLEE_PIN q
uoted,,        C_ANI quoted,,       
 I_CALLING_FROM_NUMBER quoted,,       
 I_CALLING_TO_NUMBER quoted,,        C
_CALL_DURATION printString,,        C_
TALK_DURATION printString,,        C_R
ECORD_DURATION printString,,        Te
lephoneLine printString, ')'
                              IfSQLError=>Sequence:sqInsertSB_StatInfoError
                                ApplicationLog:alInsertSB_StatInfoError
                                :: File Name: calld.log, Format: Database
                                :: Phone Line: Yes, Date/Time: Yes
                                :: Value: 'alInsertSB_StatInfoError: '
                                Calculate:clSetErrorReasonSB_StatInfo
                                :: Calculate: 'DB - CONVER RECORD', Assign to: C
_ERROR_REASON
                                :: Calculate: D_CALLEE_PIN,',','FR:',I_CALLING
_FROM_NUMBER,',','TO:',I_CALLING_TO_NU
MBER,',','TRY:',(C_CALLEE_TRIES asStri
ng),',','T:',(C_TALK_DURATION asString
),',','R:',(C_RECORD_DURATION asString
),',','TOP:',(D_TOPIC asString),',',
'O:',(T_OFFSET asString), Assign to: C_E
RROR_MSG
                                DataBaseEdit:deIncrementPINUsage
                                :: DataBase Name: LDC, Query: 'update PIN    s
et PIN_USAGE = (PIN_USAGE + 1)  where 
PIN = ', I_MASTER_PIN quoted, '    or 
PIN = ', D_CALLEE_PIN quoted
                                  IfSQLError=>Sequence:sqIncrPINUsageError
                                    Calculate:clSetErrorReasonIncrPINUsage
                                    :: Calculate: 'DB - PIN USAGE', Assign to: C
_ERROR_REASON
                                    Sequence:sqHangup ...(above)
                                Sequence:sqHangup ...(above)
                            DataBaseEdit:deUpdateSBCallerStatus
                            :: DataBase Name: LDC, Query: 'update call_subjects
    set calls_made = (calls_made +1),
         skip_until_time = sysdate + 1
  where PIN = ', I_MASTER_PIN quoted
                              IfSQLError=>Sequence:sqIncrPINUsageError ...(above
)
                            DataBaseEdit:deUpdateSBCalleeStatus
                            :: DataBase Name: LDC, Query: 'update call_subjects
    set last_status = ',        C_REC
ORD_STAT printString,,       'skip_unt
il_time = sysdate + 1,        calls_re
cvd = (calls_recvd +1)  where PIN = ',
 D_CALLEE_PIN quoted
                              IfSQLError=>Sequence:sqIncrPINUsageError ...(above
)
                            DataBaseEdit:deReleaseLineCandidates ...(above)
                            Sequence:sqHangup ...(above)
                        134=>Sequence:sqFaxModem
                          ApplicationLog:alFaxModem
                          :: File Name: calld.log, Format: Database
                          :: Phone Line: Yes, Date/Time: Yes
                          :: Value: 'alFaxModem:'
                          :: Value: udGetCallStatus
                          Play:plLineWasBusy
                          DataBaseEdit:deFaxModemStat
                          :: DataBase Name: LDC, Query: 'insert into CALL_STATS 
(caller_pin, appl_s, lang_s, caller_ani,
 caller_phone,    callee_pin, callee_p
hone, line, call_status, call_date_time)
 values(', I_MASTER_PIN quoted,,    
       C_APPL printString,,           
C_LANGUAGE printString,,           C_A
NI quoted,,           I_CALLING_FROM_N
UMBER quoted,,           D_CALLEE_PIN 
quoted,,           I_CALLING_TO_NUMBER
 quoted,,          TelephoneLine print
String,,           '5, SYSDATE )'
                            IfSQLError=>Sequence:sqSQLError ...(above)
                          DataBaseEdit:deFaxModemSubj
                          :: DataBase Name: LDC, Query: 'update call_subjects cs
    set cs.skip_until_time = sysdate +
 1/24,         cs.last_status = 5  w
here cs.pin = ', D_CALLEE_PIN quoted
                            IfSQLError=>Sequence:sqSQLError ...(above)
                          Sequence:sqReleaseOutboundLine ...(above)
                        136=>Sequence:sqCallerHangup ...(above)
                        137=>Sequence:sqCalleeHangup ...(above)
                        default=>Sequence:sqSBCallBadStatus
                          ApplicationLog:alSBCallBadStatus
                          :: File Name: calld.log, Format: Database
                          :: Phone Line: Yes, Date/Time: Yes
                          :: Value: 'alSBCallBadStatus:'
                          :: Value: udGetCallStatus
                          Play:plCallNotAnswered
                          DataBaseEdit:deSBCallBadStatusStat
                          :: DataBase Name: LDC, Query: 'insert into CALL_STATS 
(    caller_pin, callee_pin, appl_s, l
ang_s, caller_ani, caller_phone, callee_
phone,    line, topic, call_status, ca
ll_date_time) values(', I_MASTER_PIN q
uoted,,           D_CALLEE_PIN quoted,
,           C_APPL printString,,    
       C_LANGUAGE printString,,       
    C_ANI quoted,,           I_CALLING
_FROM_NUMBER quoted,,           I_CALL
ING_TO_NUMBER quoted,,          Teleph
oneLine printString,,           udGetC
allStatus printString,,           '10,
 SYSDATE )'
                            IfSQLError=>Sequence:sqSQLError ...(above)
                          DataBaseEdit:deSBCallBadStatusSubj
                          :: DataBase Name: LDC, Query: 'update call_subjects cs
    set cs.skip_until_time = sysdate +
 1,         cs.last_status = 10  whe
re cs.pin = ', D_CALLEE_PIN quoted
                            IfSQLError=>Sequence:sqSQLError ...(above)
                          Sequence:sqReleaseOutboundLine ...(above)
                      UserDLL:udVmWait ...(above)
                      IfElse:ifSecondLineNotReleased ...(above)
                      UserDLL:udEnableHangupDetect ...(above)
                    Sequence:sqEndCall ...(above)
                  Else=>Sequence:sqGetCalleeList
                    DataBaseEdit:deReleaseLineCandidates ...(above)
                    DataBaseEdit:deSelectLineCandidates
                    :: DataBase Name: LDC, Query: 'insert into swb_candidates (p
in,phone,tel_line)select cc.pin,cc.pho
ne,', TelephoneLine printString,'  fro
m available_callees cc where rownum <=
 ', T_MAX_SB_CAND printString,'    and
 cc.pin not in (           select st.c
allee_pin              from switchboar
d_stats st            where (st.caller
_pin = ',  I_MASTER_PIN quoted ,'     
                and st.callee_pin = cc.p
in)                  or (st.callee_pin
 = ', I_MASTER_PIN quoted ,'          
           and st.caller_pin = cc.pin))
    and cc.pin <> ', I_MASTER_PIN quote
d
                      IfSQLError=>Sequence:sqSQLError ...(above)
                    DataBaseRead:drGetCalleeList
                    :: DataBase Name: LDC, Query: 'select PIN, phone from swb_ca
ndidates  where tel_line =',  Telephon
eLine printString
                    :: Columns from current row.
                    :: Variable Name: D_CALLEE_PIN, DataBase column: PIN
                    :: Variable Name: I_CALLING_TO_NUMBER, DataBase column: phon
e
                      Execute=>Sequence:sqCalleeList
                        Calculate:clCalleeVal ...(above)
                        Sequence:sqGetTopic ...(above)
                        ApplicationLog:alCalleeVal
                        Sequence:sqSwitchBoardPlaceCall ...(above)
                      IfNoDataFound=>Sequence:sqNoUncalledCallee
                        Calculate:clSetErrorReasonNoUncalledCallee
                        :: Calculate: 'NO CALLEE AVAILABLE', Assign to: C_ERROR_
REASON
                        ApplicationLog:alNoOneAvailable
                        :: File Name: calld.log, Format: Database
                        :: Phone Line: Yes, Date/Time: Yes
                        :: Value: 'alNoOneAvailable: '
                        Play:plNoOneAvailable
                        :: Play Mode: Error
                        :: Format: 565, Value:
                        Sequence:sqEndCall ...(above)
                      IfSQLError=>Sequence:sqSQLError ...(above)
                    DataBaseEdit:deReleaseLineCandidates ...(above)
                    Sequence:sqEndCall ...(above)
            DynamicMenu:dmSwitchboardMenu
            :: Menu Mask: T_MENU_MASK, Time Out: TIMEOUT msec
              A=>Sequence:sqParticipateInConversation ...(above)
              B=>Sequence:sqRegisterPIN ...(above)
              C=>Sequence:sqLeaveMessageMenu ...(above)
              D=>Sequence:sqSwitchboardInstructions
                Calculate:clSetMenuSelection4 ...(above)
                Play:plSwitchboardInstructions
                :: Play Mode: KeyOver
                :: Format: 515, Value:
                UserDLL:udVmWait ...(above)
                Control:coGoToApplicationType
              I=>Sequence:sqEndCall ...(above)
              IfTimeOutOn (TIMEOUT_TRIES) tries=>Sequence:sqTimeout ...(above)
              IfErrorOn (ERROR_TRIES) tries=>Sequence:sqMenuError ...(above)
              ElseIfError=>Play:plInvalidSelection
          4=>Sequence:sqPolyphone
            IfElse:ifPolyphoneNoMenuMask
            :: If: T_MAIN_MENU_MASK = ''
              Then=>Sequence:sqBeginCollection
                Calculate:clSetMenuSelection1 ...(above)
                Sequence:sqCheckMasterPIN ...(above)
                Calculate:clSetPolyphoneRecParams
                :: Calculate: PolyPhoneTT translate: 'MaxRecordTime', Assign to:
 T_MAX_RECORD_TIME
                :: Calculate: PolyPhoneTT translate: 'MaxLeadingSilence', Assign
 to: T_MAX_LEADING_SILENCE
                :: Calculate: PolyPhoneTT translate: 'MaxTrailingSilence', Assig
n to: T_MAX_TRAILING_SILENCE
                Calculate:clSetRecordPINFilename
                :: Calculate: T_APPL_PATH,(('00000',I_MASTER_PIN) last:8),'.
PIN', Assign to: C_FILENAME
                While:whRecordSpeakerPIN
                :: Formula: true, Until PassCount: 3
                  Execute=>Sequence:sqRecordSpeakerPIN
                    Play:plSpeakPINAfterTheTone
                    :: Play Mode: Error
                    :: Format: 570, Value:
                    UserDLL:udRecordSpeakerPIN
                    :: DLL Name: RECORD, DLL Function: RecordToFile
                    :: DLL Parameter: >C_FILENAME
                    :: DLL Parameter: >T_MAX_RECORD_TIME
                    :: DLL Parameter: >T_MAX_LEADING_SILENCE
                    :: DLL Parameter: >T_MAX_TRAILING_SILENCE
                    :: DLL Parameter: 0
                    :: Error Criterion: :result| result ~= 0
                      OnError=>IfElse:ifRecordPINTimeout
                      :: If: udRecordSpeakerPIN = -3
                      :: If: udRecordSpeakerPIN = -2
                        Then=>Control:coContinueLoop
                        Then=>Sequence:sqHangup ...(above)
                        Else=>Sequence:sqRecordPINError
                          Calculate:clSetErrorReasonPINRecord
                          :: Calculate: 'DLL - RECORD - udRecordSpeakerPIN() Ret
code: ', (udRecordSpeakerPIN asString), 
Assign to: C_ERROR_REASON
                          Play:plCannotRecordButPINStillActive
                          :: Play Mode: Error
                          :: Format: 571, Value:
                          Sequence:sqEndCall ...(above)
                    Control:coBreakTheLoop
                  UntilPass 3 Then=>Sequence:sqCallForAssistance
                    Calculate:clSetErrorReasonLeadingSilence
                    :: Calculate: 'PIN - LEAD SILENCE', Assign to: C_ERROR_REASO
N
                    Play:plNumberToCall
                    :: Play Mode: Error
                    :: Format: 572, Value:
                    :: Format: Alpha, Value: PolyPhoneTT translate: 'CallForAssi
stance'
                    Sequence:sqEndCall ...(above)
                Calculate:clSetRecordPhoneTypeFilename
                :: Calculate: T_APPL_PATH,(('00000',I_MASTER_PIN) last:8),'.
FON', Assign to: C_FILENAME
                Play:plIndicatePhoneType
                :: Play Mode: Error
                :: Format: 573, Value:
                UserDLL:udRecordPhoneType
                :: DLL Name: RECORD, DLL Function: RecordToFile
                :: DLL Parameter: >C_FILENAME
                :: DLL Parameter: >T_MAX_RECORD_TIME
                :: DLL Parameter: >T_MAX_LEADING_SILENCE
                :: DLL Parameter: >T_MAX_TRAILING_SILENCE
                :: DLL Parameter: 0
                :: Error Criterion: :result| result ~= 0
                  OnError=>IfElse:ifRecordPhoneTypeTimeout
                  :: If: udRecordPhoneType = -3
                  :: If: udRecordPhoneType = -2
                    Then=>Sequence:sqFallThrough ...(above)
                    Then=>Sequence:sqHangup ...(above)
                    Else=>Sequence:sqRecordPhoneTypeError
                      Calculate:clSetErrorReasonPhoneTypeRecord
                      :: Calculate: 'DLL - RECORD - udRecordPhoneType() Retcode:
 ', (udRecordPhoneType asString), Assign
 to: C_ERROR_REASON
                      Play:plCannotRecordButPINStillActive
                      Sequence:sqEndCall ...(above)
                While:whRecordPolyListLoop
                :: Formula: true, Until PassCount:
                  Execute=>Sequence:sqRecordPolyList
                    Calculate:clSetPolylistItem
                    :: Calculate: PolyPhoneTT translate: whRecordPolyListLoop, A
ssign to: T_ITEM_MSG
                    :: Calculate: whRecordPolyListLoop, Assign to: C_ITEM
                    IfElse:ifEndOfPolyList
                    :: If: T_ITEM_MSG <= 0
                      Then=>Control:coBreakTheLoop
                    Calculate:clSetRecordItemFilename
                    :: Calculate: T_APPL_PATH,(('00000',I_MASTER_PIN) last:8),
'.',('P',(('000',(C_ITEM asString)) 
last:2)), Assign to: C_FILENAME
                    Play:plRecordItemPrompt
                    :: Play Mode: Error
                    :: Format: Message, Value: T_ITEM_MSG
                    UserDLL:udRecordPolylistItem
                    :: DLL Name: RECORD, DLL Function: RecordToFile
                    :: DLL Parameter: >C_FILENAME
                    :: DLL Parameter: >T_MAX_RECORD_TIME
                    :: DLL Parameter: >T_MAX_LEADING_SILENCE
                    :: DLL Parameter: >T_MAX_TRAILING_SILENCE
                    :: DLL Parameter: 0
                    :: Error Criterion: :result| result ~= 0
                      OnError=>IfElse:ifRecordItemTimeout
                      :: If: udRecordPolylistItem = -3
                      :: If: udRecordPolylistItem = -2
                        Then=>Control:coContinueLoop
                        Then=>Sequence:sqHangup ...(above)
                        Else=>Sequence:sqRecordItemError
                          Calculate:clSetErrorReasonItemRecord
                          :: Calculate: 'DLL - RECORD - udRecordPolylistItem() R
etcode: ', (udRecordPolylistItem asStrin
g), Assign to: C_ERROR_REASON
                          Play:plCannotRecordButPINStillActive
                          Sequence:sqEndCall ...(above)
                DataBaseEdit:deDeactivatePIN ...(above)
                Sequence:sqEndCall ...(above)
            DynamicMenu:dmPolyphoneMenu
            :: Menu Mask: T_MENU_MASK, Time Out: TIMEOUT msec
              A=>Sequence:sqBeginCollection ...(above)
              B=>Sequence:sqRegisterPIN ...(above)
              C=>Sequence:sqLeaveMessageMenu ...(above)
              D=>Sequence:sqPolyphoneInstructions
                Calculate:clSetMenuSelection4 ...(above)
                Play:plPolyphoneInstructions
                :: Play Mode: KeyOver
                :: Format: 518, Value:
                UserDLL:udVmWait ...(above)
                Control:coGoToApplicationType
              I=>Sequence:sqEndCall ...(above)
              IfTimeOutOn (TIMEOUT_TRIES) tries=>Sequence:sqTimeout ...(above)
              IfErrorOn (ERROR_TRIES) tries=>Sequence:sqMenuError ...(above)
              ElseIfError=>Play:plInvalidSelection
          default=>Sequence:sqEndCall ...(above)
        MenuForm:mfAdminOptionsMenu
        :: Prompt: 538, ""
        :: Time Out: TIMEOUT msec
          1=>Sequence:sqLeaveWord
            MenuForm:mfLWMsgGroupMenu
            :: Prompt: 577, ""
            :: Time Out: TIMEOUT msec
              1=>Calculate:clSetLWGroupNumber
              :: Calculate: #(1 2 3 4) at: (mfLWMsgGroupMenu asInteger), Assign 
to: getPool
              2=>Calculate:clSetLWGroupNumber ...(above)
              3=>Calculate:clSetLWGroupNumber ...(above)
              4=>Calculate:clSetLWGroupNumber ...(above)
              IfTimeOutOn (TIMEOUT_TRIES) tries=>Sequence:sqEndCall ...(above)
              IfErrorOn (ERROR_TRIES) tries=>Sequence:sqEndCall ...(above)
              ElseIfError=>Play:plInvalidSelection
            Sequence:sqStartTranscribe
              Calculate:calcNormalQue
              :: Calculate: 1, Assign to: getQue
              Calculate:calcArchiveQue
              :: Calculate: getQue + 1, Assign to: archiveQue
              UserDLL:getNormQueSize
              :: DLL Name: POOLMGR, DLL Function: VsGetQueSize
              :: DLL Parameter: >getPool
              :: DLL Parameter: >getQue
              :: Error Criterion: :result| result < 0
                OnError=>Sequence:sqFallThrough ...(above)
              UserDLL:getArchiveQueSize
              :: DLL Name: POOLMGR, DLL Function: VsGetQueSize
              :: DLL Parameter: >getPool
              :: DLL Parameter: >archiveQue
              :: Error Criterion: :result| result < 0
                OnError=>Sequence:sqFallThrough ...(above)
              IfElse:chkDropThrough
              :: If: (getNormQueSize = 0) & (getArchiveQueSize = 0)
                Then=>Sequence:sqNoMessages
                  Play:plNoMsgsToTranscribe
                  :: Play Mode: Error
                  :: Format: 597, Value:
                  Control:coGoToApplicationType
              Play:playTotalNewAndArchivedMsgs
              :: Play Mode: KeyOver
              :: Format: Integer, Value: (getNormQueSize > 0) ifTrue: [getNormQu
eSize]
              :: Format: Message, Value: (getNormQueSize > 0) ifTrue: [578]
              :: Format: Integer, Value: (getArchiveQueSize > 0) ifTrue: [getArc
hiveQueSize]
              :: Format: Message, Value: (getArchiveQueSize > 0) ifTrue: [579]
              :: Format: 580, Value:
              MenuForm:normOrArchive
              :: Prompt: 598, ""
              :: Time Out: TIMEOUT msec
                1=>Calculate:setNoChange
                :: Calculate: getQue, Assign to: getQue
                2=>Sequence:setCurrToArch
                  Calculate:setCurrArchive
                  :: Calculate: archiveQue, Assign to: getQue
                  Calculate:setArchiveActive
                  :: Calculate: 1, Assign to: archiveACTIVE
                IfTimeOutOn (TIMEOUT_TRIES) tries=>Sequence:sqEndCall ...(above)
                IfErrorOn (ERROR_TRIES) tries=>Sequence:sqEndCall ...(above)
                ElseIfError=>Play:plInvalidSelection
              Sequence:playSeq
                UserDLL:getFullMsg
                :: DLL Name: POOLMGR, DLL Function: VsGetFull
                :: DLL Parameter: >getPool
                :: DLL Parameter: >getQue
                :: Error Criterion: :result| result < 0
                  OnError=>Sequence:getFullMsgErr
                    Play:plNoMoreMsgs
                    :: Play Mode: KeyOver
                    :: Format: 327, Value:
                    Sequence:exitSeq
                      Calculate:zeroMsgSetVALID
                      :: Calculate: 0, Assign to: msgSetVALID
                      Calculate:zeroArchiveActive
                      :: Calculate: 0, Assign to: archiveACTIVE
                    Control:coGoToStartTranscribe
                      GoBackTo=>sqStartTranscribe
                Calculate:calcMsgSetVALID
                :: Calculate: 1, Assign to: msgSetVALID
                Sequence:seqPlayGetResponse
                  Play:plLWMessage
                  :: Play Mode: KeyOver
                  :: Format: Message, Value: getFullMsg
                  MenuForm:mfLWTranscribeMenu
                  :: Prompt: 599, ""
                  :: Time Out: TIMEOUT msec
                    1=>Control:goPlay
                      GoBackTo=>seqPlayGetResponse
                    2=>Sequence:delMsgSetGonextSeq
                      UserDLL:freeMsgSet
                      :: DLL Name: POOLMGR, DLL Function: VsPutFree
                      :: DLL Parameter: >getPool
                      :: DLL Parameter: 0
                      :: DLL Parameter: getFullMsg
                      :: Error Criterion: :result|
                      Play:plMsgSetDeleted
                      :: Play Mode: KeyOver
                      :: Format: 582, Value:
                      Control:goAnotherSet
                        GoBackTo=>playSeq
                    3=>Sequence:archMsgSetGonextSeq
                      IfElse:chkCurrQue
                      :: If: archiveACTIVE = 1
                        Then=>UserDLL:putFullCurrent
                        :: DLL Name: POOLMGR, DLL Function: VsPutFull
                        :: DLL Parameter: >getPool
                        :: DLL Parameter: >getQue
                        :: DLL Parameter: getFullMsg
                        :: Error Criterion: :result|
                        Else=>UserDLL:putFullArchive
                        :: DLL Name: POOLMGR, DLL Function: VsPutFull
                        :: DLL Parameter: >getPool
                        :: DLL Parameter: >archiveQue
                        :: DLL Parameter: getFullMsg
                        :: Error Criterion: :result|
                      Play:plMsgSetArchived
                      :: Play Mode: KeyOver
                      :: Format: 583, Value:
                      Control:goAnotherSet
                    4=>Sequence:timeStampSeq
                      UserDLL:getDateTimeInfo
                      :: DLL Name: POOLMGR, DLL Function: VsGetStringMsg
                      :: DLL Parameter: >getPool
                      :: DLL Parameter: >getString
                      :: DLL Parameter: 150
                      :: DLL Parameter: getFullMsg + 1
                      :: DLL Parameter: 0
                      :: Error Criterion: :result| result < 0
                        OnError=>Control:goPlay
                      Play:plPlayTimeStamp
                      :: Play Mode: KeyOver
                      :: Format: Date, Value: getString first: 8
                      :: Format: Time, Value: getString at: 9 len: 11
                      UserDLL:udVmWait ...(above)
                      Control:coGoToLWTranscribeMenu
                        GoBackTo=>mfLWTranscribeMenu
                    5=>Sequence:requeMsgSetExitSeq
                      UserDLL:requeMsgSet ...(above)
                      Sequence:exitSeq ...(above)
                      Sequence:sqEndCall ...(above)
                    IfTimeOutOn (TIMEOUT_TRIES) tries=>Sequence:sqEndCall ...(ab
ove)
                    IfErrorOn (ERROR_TRIES) tries=>Sequence:sqEndCall ...(above)
                    ElseIfError=>Play:plInvalidSelection
          2=>Sequence:sqYourVoice
            Worksheet:Worksheet1
            :: Variable Name: yvindex, Initial Value: 1
            :: Variable Name: yvbias1, Initial Value: 3000
            :: Variable Name: yvbias2, Initial Value: 4000
            :: Variable Name: rcrdmsg, Initial Value: 0
            Sequence:YVBodySeq
              Play:PlayYVMsgs
              :: Play Mode: KeyOver
              :: Format: Message, Value: YVMsgs translate: yvindex
              MenuForm:YVMenu
              :: Prompt: 574, ""
              :: Time Out: TIMEOUT msec
                1=>Sequence:YVRecordSeq
                  UserDLL:GetCurrAltMsg
                  :: DLL Name: YVACCESS, DLL Function: YvGetAltMsg
                  :: DLL Parameter: (YVMsgs translate:yvindex)
                  :: Error Criterion: :result|
                  IfElse:CalcRecAltMsg
                  :: If: GetCurrAltMsg < yvbias2
                    Then=>Calculate:SetRecAltMsgHigh
                    :: Calculate: (YVMsgs translate:yvindex) + yvbias2, Assign t
o: rcrdmsg
                    Else=>Calculate:SetRecAltMsgLow
                    :: Calculate: (YVMsgs translate:yvindex) + yvbias1, Assign t
o: rcrdmsg
                  Record:RecordNewYVMsg
                  :: Prompt: 317, ""
                  :: Record Into Msg: rcrdmsg
                  :: Record Time: ParamsTT translate: 'YV_MaxRecTime' msec, Mode
: NormalExit
                  :: Leading Silence: 5 sec, Mode: Timeout
                  :: Trailing Silence: 5 sec, Mode: NormalExit
                  :: On any touchtone key press, Mode: NormalExit
                    IfTimeOutOn (TIMEOUT_TRIES) tries=>Sequence:sqEndCall ...(ab
ove)
                    IfErrorOn (ERROR_TRIES) tries=>Sequence:sqEndCall ...(above)
                  Play:PlayNewMsg
                  :: Play Mode: KeyOver
                  :: Format: Message, Value: rcrdmsg
                  MenuForm:VerifyNewYVMsg
                  :: Prompt: 575, ""
                  :: Time Out: TIMEOUT msec
                    *=>Control:GoBackToYVRecordSeq
                      GoBackTo=>YVRecordSeq
                    #=>Sequence:sqFallThrough ...(above)
                    IfTimeOutOn (TIMEOUT_TRIES) tries=>Sequence:sqEndCall ...(ab
ove)
                    ElseIfTimeOut=>Play:PlayNewMsg
                    IfErrorOn (ERROR_TRIES) tries=>Sequence:sqEndCall ...(above)
                    ElseIfError=>Play:PlayNewMsg
                  AlternateMsg:YVAltNewMsg
                  :: Replace msg: YVMsgs translate: yvindex, with msg: rcrdmsg, 
for VoiceSet:
                  Control:GoBackToYVMenu
                    GoBackTo=>YVMenu
                2=>Control:YVReplay
                  GoBackTo=>YVBodySeq
                3=>Sequence:YVRestoreSeq
                  AlternateMsg:YVAltOrigMsg
                  :: Replace msg: YVMsgs translate: yvindex, with msg: YVMsgs tr
anslate: yvindex, for VoiceSet:
                  Play:MsgReplaced
                  :: Play Mode: KeyOver
                  :: Format: 576, Value:
                  Control:GoBackToYVMenu
                4=>Sequence:YVPreviousSeq
                  Calculate:CalculateYVPrev
                  :: Calculate: yvindex - 1, Assign to: yvindex
                  IfElse:PastYVEnd
                  :: If: YVMsgs includes: yvindex
                    Else=>Sequence:YVNoMoreSeq
                      Play:PlayNoMore
                      :: Play Mode: NoKeyOver
                      :: Format: 319, Value:
                      IfElse:RollbackValue
                      :: If: yvindex < 1
                        Then=>Calculate:SetFirst
                        :: Calculate: 1, Assign to: yvindex
                        Else=>Calculate:SetLast
                        :: Calculate: yvindex - 1, Assign to: yvindex
                      Control:GoBackToYVMenu
                  Control:GoBackToYVBodySeq
                    GoBackTo=>YVBodySeq
                5=>Sequence:YVDirectSeq
                  AskForNumber:YVDirectPrompt
                  :: Prompt: 320, ""
                  :: Min length: 3, Max length: 6, Star input: IncludeAndTermina
te
                  :: Play back: No, Format: Digits
                  :: Time Out: TIMEOUT msec, Error condition: :x| ((x includesSt
ring: '*') not) &    ((x asInteger) >=
 500)
                    IfTimeOutOn (TIMEOUT_TRIES) tries=>Sequence:sqEndCall ...(ab
ove)
                    IfErrorOn (ERROR_TRIES) tries=>Sequence:sqEndCall ...(above)
                  Worksheet:Worksheet2
                  :: Variable Name: yvtempindex, Initial Value: 1
                  While:ValidYVMsgNumber
                  :: Formula: YVMsgs includes: yvtempindex, Until PassCount:
                    Execute=>IfElse:IfValidYVMsgNumber
                    :: If: (YVMsgs translate: yvtempindex) = YVDirectPrompt asIn
teger
                      Then=>Sequence:YVMsgFoundSeq
                        Calculate:SetDirectMsgNumber
                        :: Calculate: yvtempindex, Assign to: yvindex
                        Control:GoBackToYVBodySeq
                      Else=>Calculate:IncTempIndex
                      :: Calculate: yvtempindex + 1, Assign to: yvtempindex
                  Play:PlayNotValid
                  :: Play Mode: NoKeyOver
                  :: Format: 322, Value:
                  Control:GoBackToYVMenu
                6=>Sequence:YVNextSeq
                  Calculate:CalculateYVNext
                  :: Calculate: yvindex + 1, Assign to: yvindex
                  IfElse:PastYVEnd ...(above)
                  Control:GoBackToYVBodySeq
                0=>Sequence:sqEndCall ...(above)
                IfTimeOutOn (TIMEOUT_TRIES) tries=>Sequence:sqEndCall ...(above)
                IfErrorOn (ERROR_TRIES) tries=>Sequence:sqEndCall ...(above)
                ElseIfError=>Play:plInvalidSelection
          3=>Control:coGoToApplicationType
          4=>Sequence:sqEndCall ...(above)
          IfTimeOutOn (TIMEOUT_TRIES) tries=>Sequence:sqEndCall ...(above)
          IfErrorOn (ERROR_TRIES) tries=>Sequence:sqEndCall ...(above)
          ElseIfError=>Play:plInvalidSelection
    SessionTimeOut=>Sequence:sqSessionTimeout
      Calculate:clSetErrorReasonSessionTimeout
      :: Calculate: 'SESSION TIMEOUT', Assign to: C_ERROR_REASON
      Play:plExceededTimeLimit
      :: Play Mode: Error
      :: Format: 586, Value:
      Sequence:sqEndCall ...(above)

----------------------------
Also defined in the script:
----------------------------

Sequence:oldsqSBDualRecordDBXactions
  ApplicationLog:alSBDualRecordDBXactions
  DataBaseEdit:deInsertSB_DualRecordStatInfo ...(above)
  DataBaseEdit:deUpdateSBCallerStatus ...(above)
  DataBaseEdit:deUpdateSBCalleeStatus ...(above)
  DataBaseEdit:deReleaseLineCandidates ...(above)
  Sequence:sqHangup ...(above)

UserDLL:udPlayCalleeFor
:: DLL Name: CONNECT, DLL Function: playOnSecondary
:: DLL Parameter: 4
:: Error Criterion: :result|

DataBaseEdit:newdeInsertSB_DualRecordStatInfo
:: DataBase Name: LDC, Query: 'insert into call_stats (call_date_time, call_stat
us, appl_s, lang_s, topic,        call
er_pin, callee_pin, caller_ani, caller_p
hone, callee_phone,        conn_durati
on, talk_duration, record_duration, line
)   values (SYSDATE, ',        C_REC
ORD_STAT printString,,        C_APPL p
rintString,,        C_LANGUAGE printSt
ring,,        D_TOPIC printString,, 
       I_MASTER_PIN quoted,,        D_
CALLEE_PIN quoted,,        C_ANI quote
d,,        I_CALLING_FROM_NUMBER quote
d,,        I_CALLING_TO_NUMBER quoted,
,        C_CALL_DURATION printString,,
        C_TALK_DURATION printString,,
        C_RECORD_DURATION printString,,
        TelephoneLine printString, ')'
  IfSQLError=>Sequence:sqInsertSB_StatInfoError ...(above)

Calculate:CalcClosed
:: Calculate: 'closed', Assign to: C_OpenClosed

SetLanguage:setLangEnglish
:: Language: English

TranslateTables:ttTranslateTables
:: Name: DNIS_TT, File Name: dnis.tt, Default Value: '2 0'
:: Name: ConnectTT, File Name: connect.tt, Default Value: ''
:: Name: ParamsTT, File Name: params.tt, Default Value: ''
:: Name: RegisterTT, File Name: register.tt, Default Value: 5
:: Name: PolyPhoneTT, File Name: polyphon.tt, Default Value: 0
:: Name: DualSyncTT, File Name: dualsync.tt, Default Value: 0
:: Name: MenuMaskTT, File Name: menumask.tt, Default Value: ''
:: Name: BadFromNumberTT, File Name: badfnum.tt, Default Value: 0
:: Name: BadToNumberTT, File Name: badtnum.tt, Default Value: 0
:: Name: YVMsgs, File Name: yvmsgs.tt, Default Value: 0
:: Name: SQL_TT, File Name: sql.tt, Default Value: ''
:: Name: DEBUG_TT, File Name: debug.tt, Default Value: 0
:: Name: ANI_TT, File Name: ani.tt, Default Value: 0

Sequence:sqCalleeBadStatus
  ApplicationLog:alCalleeHangup
  Sequence:sqReleaseSecondLine ...(above)
  Play:plCallNotAccepted
  DataBaseEdit:deCallNotAcceptedStat ...(above)
  DataBaseEdit:deCallNotAcceptedSubj ...(above)
  +--------------------------------+
  |Skip was 1 hour. (1/24)         |
  |Changed to 1 day 15-May-96  (1) |
  +--------------------------------+
  Control:coBreakCallAnswered

ViewForm:mainView

Sequence:newsqSBDualRecordDBXactions
  Calculate:clSBDualRecStat ...(above)
  ApplicationLog:alSBDualRecordDBXactions
  DataBaseEdit:deInsertSB_DualRecordStatInfo ...(above)
  DataBaseEdit:deUpdateSBCallerStatus ...(above)
  DataBaseEdit:deUpdateSBCalleeStatus ...(above)
  DataBaseEdit:deReleaseLineCandidates ...(above)
  Sequence:sqHangup ...(above)

DataBaseEdit:olddeInsertSB_DualRecordStatInfo
:: DataBase Name: LDC, Query: 'insert into call_stats (call_date_time, call_stat
us, appl_s, lang_s, topic,        call
er_pin, callee_pin, caller_ani, caller_p
hone, callee_phone,        conn_durati
on, talk_duration, record_duration, line
)   values (SYSDATE,  0, ',        C
_APPL printString,,        C_LANGUAGE 
printString,,        D_TOPIC printStri
ng,,        I_MASTER_PIN quoted,,   
     D_CALLEE_PIN quoted,,        C_AN
I quoted,,        I_CALLING_FROM_NUMBE
R quoted,,        I_CALLING_TO_NUMBER 
quoted,,        C_CALL_DURATION printS
tring,,        C_TALK_DURATION printSt
ring,,        C_RECORD_DURATION printS
tring,,        TelephoneLine printStri
ng, ')'
  IfSQLError=>Sequence:sqInsertSB_StatInfoError ...(above)

Calculate:CalcOpen
:: Calculate: 'open', Assign to: C_OpenClosed

Play:plTest_prompt
:: Play Mode: Error
:: Format: 999, Value: "test 1 "

BusinessHours:bhBusinessHours
:: Name: AlwaysOpenBH, File Name: always.bh


Forms cross-reference

alAnsweringMachine:ApplicationLog              sqAnsweringMachine 
alApplicationParams:ApplicationLog             sqStartApplication 
alCallAnswered:ApplicationLog                  sqCallAnswered 
alCalleeHangup:ApplicationLog                  sqCalleeBadStatus sqCalleeHangup 
alCalleeNotAvailable:ApplicationLog            sqCalleeNotAvailable 
alCalleeTimeout:ApplicationLog                 sqCalleeTimeout 
alCalleeVal:ApplicationLog                     sqCalleeList sqDebugSWB 
alCallerHangup:ApplicationLog                  sqCallerHangup 
alCallNotAccepted:ApplicationLog               sqCalleeEndCall 
alCheckDatabasePIN:ApplicationLog              sqCheckPIN 
alFaxModem:ApplicationLog                      sqFaxModem 
alGetCallStatus:ApplicationLog                 sqGetCallStatus 
alGetLineResult:ApplicationLog                 sqGetLineAndDial 
alGetTopic:ApplicationLog                      sqGetTopic 
alHangup:ApplicationLog                        sqHangup 
alInsertDualRecordStatInfo:ApplicationLog      sqPlaceCall 
alInsertSB_StatInfoError:ApplicationLog        sqInsertSB_StatInfoError 
alLineWasBusy:ApplicationLog                   sqLineWasBusy 
alLogCallTrackInfo:ApplicationLog              sqLogCallInfo 
alLogInitError:ApplicationLog                  sqConnectInitError 
alLogPhoneNumbers:ApplicationLog               sqPlaceCall sqSwitchBoardPlaceCall 
alLogRegistrationInfo:ApplicationLog           sqRegisterPIN 
alMayOnlyUseOncePerDay:ApplicationLog          sqSwitchboardUsedToday 
alMayOnlyUsePhoneOnce:ApplicationLog           sqPhoneUsed 
alNoOneAvailable:ApplicationLog                sqNoUncalledCallee 
alNumToDial:ApplicationLog                     sqGetLineAndDial 
alReleaseLineResult:ApplicationLog             sqReleaseSecondLine 
alSBCallBadStatus:ApplicationLog               sqSBCallBadStatus 
alSBCallNotAnswered:ApplicationLog             sqSBCallNotAnswered 
alSBDualRecordDBXactions:ApplicationLog        newsqSBDualRecordDBXactions oldsqSBDualRecordDBXactions 
                                               sqSBDualRecordDBXactions 
anAge:AskForNumber                             sqRegisterPIN 
anAssignedPIN:AskForNumber                     sqCheckPreAssignedPIN 
anCalleePIN:AskForNumber                       sqDebugSWB 
anCallingFromNumber:AskForNumber               sqGetCallingFromNumber 
anCF_CallingToNumber:AskForNumber              ifApplTypeCallHome 
anCH_CallingToNumber:AskForNumber              ifApplTypeCallHome 
anNumberToContact:AskForNumber                 sqGetNumberToContact 
anPIN:AskForNumber                             sqCheckPIN 
archMsgSetGonextSeq:Sequence                   mfLWTranscribeMenu 
beginning:Sequence                             no references
bhBusinessHours:BusinessHours                  no references
caAnswerCall:CallAnswer                        sqStartApplication 
calcArchiveQue:Calculate                       sqStartTranscribe 
CalcClosed:Calculate                           no references
calcMsgSetVALID:Calculate                      playSeq 
calcNormalQue:Calculate                        sqStartTranscribe 
CalcOpen:Calculate                             no references
CalcRecAltMsg:IfElse                           YVRecordSeq 
CalculateYVNext:Calculate                      YVNextSeq 
CalculateYVPrev:Calculate                      YVPreviousSeq 
ceDisconnect:CallEnd                           sqHangup 
chkCurrQue:IfElse                              archMsgSetGonextSeq 
chkDropThrough:IfElse                          sqStartTranscribe 
clCallDuration:Calculate                       sqLogCallInfo 
clCalleeVal:Calculate                          sqCalleeList sqDebugSWB 
clCheckDatabasePIN:Calculate                   sqCheckPIN 
clGetTopic:Calculate                           drGetTopic 
clIncrCalleeTries:Calculate                    sqSwitchBoardPlaceCall 
clIncrErrorCounter1:Calculate                  csAskCalleePINRetval ifCalleeTimeoutFlagSet 
clIncrErrorCounter2:Calculate                  sqInvalidCalleePIN sqInvalidSelection 
clInitCalleeInputBuffer:Calculate              sqCheckCalleePIN sqCheckCalleeReady 
clNumToDial:Calculate                          sqGetLineAndDial 
clResetErrorCounters:Calculate                 sqApplicationType sqCallAnswered sqCheckMasterPIN 
clResetErrorReason:Calculate                   sqApplicationType sqCheckMasterPIN sqStartRecording 
                                               sqSwitchBoardPlaceCall 
clResetPIN:Calculate                           sqApplicationType 
clSBDualRecStat:Calculate                      newsqSBDualRecordDBXactions sqSBDualRecordDBXactions 
clSetAge:Calculate                             sqRegisterPIN 
clSetApplicationParams:Calculate               sqStartApplication 
clSetAssignedPIN:Calculate                     sqCheckPreAssignedPIN 
clSetCallDuration:Calculate                    sqDualSyncRecord sqSBDualSyncRecord 
clSetCalleeInputNewTimeout:Calculate           ifCalleeTimeoutFlagSet 
clSetCalleeInputTimeout:Calculate              sqCallAnswered 
clSetCalleeName:Calculate                      sqSwitchBoardPlaceCall 
clSetCalleePIN:Calculate                       sqDebugSWB 
clSetCallingFromNumber:Calculate               sqGetCallingFromNumber 
clSetCallingFromNumberFromANI:Calculate        ifSetCallingFromNumber 
clSetCallingToNumber:Calculate                 sqGetCallingToNumber 
clSetCallStartSeconds:Calculate                sqStartApplication 
clSetDualSyncRecordParams:Calculate            sqDualSyncRecord sqSBDualSyncRecord 
clSetEducation12Years:Calculate                mfEducationMenu 
clSetEducation15Years:Calculate                mfEducationMenu 
clSetEducation17Years:Calculate                mfEducationMenu 
clSetErrorMsgToPINUsage:Calculate              sqMasterPINBlocked sqMasterPINInactive 
clSetErrorMsgToRecruitDate:Calculate           sqMasterPINExpired 
clSetErrorReasonActivatePIN:Calculate          sqActivatePINError 
clSetErrorReasonBadFROMNumber:Calculate        sqBadCallingFromNumber 
clSetErrorReasonBadTONumber:Calculate          sqBadCallingToNumber 
clSetErrorReasonConnectInit:Calculate          sqConnectInitError 
clSetErrorReasonConnectLines:Calculate         sqConnectLinesError 
clSetErrorReasonDatabaseTimeout:Calculate      sqSQLError 
clSetErrorReasonDBRegPIN:Calculate             sqDBRegisterPINError 
clSetErrorReasonDeactivatePIN:Calculate        deDeactivatePIN 
clSetErrorReasonDisconnectLines:Calculate      sqDisconnectLinesError 
clSetErrorReasonDLLCalleeMenu:Calculate        sqCalleeMenuDLLError 
clSetErrorReasonDLLCalleePIN:Calculate         sqCalleePINDLLError 
clSetErrorReasonDualRecordDLL:Calculate        sqDualSyncRecordError 
clSetErrorReasonEndAfter1Min:Calculate         sqStartRecording 
clSetErrorReasonGetLineAndDial:Calculate       sqGetLineAndDialError 
clSetErrorReasonGetTopic:Calculate             drGetTopic 
clSetErrorReasonIncrPINUsage:Calculate         sqIncrPINUsageError 
clSetErrorReasonInvalidEntry:Calculate         sqInvalidEntry 
clSetErrorReasonInvalidOption:Calculate        sqMenuError 
clSetErrorReasonItemRecord:Calculate           sqRecordItemError 
clSetErrorReasonLeadingSilence:Calculate       sqCallForAssistance 
clSetErrorReasonLWGetFreeSet:Calculate         sqLWGetFreeSetError 
clSetErrorReasonMasterPIN:Calculate            sqCheckPIN 
clSetErrorReasonNoDiskSpace:Calculate          sqNotEnoughSpace 
clSetErrorReasonNotDebugPIN:Calculate          sqNotDebugPIN 
clSetErrorReasonNoUncalledCallee:Calculate     sqNoUncalledCallee 
clSetErrorReasonPhoneAlreadyUsed:Calculate     sqPhoneUsed 
clSetErrorReasonPhoneTypeRecord:Calculate      sqRecordPhoneTypeError 
clSetErrorReasonPINActivate:Calculate          sqPINRegistered 
clSetErrorReasonPINExpired:Calculate           sqMasterPINBlocked sqMasterPINExpired sqMasterPINInactive 
clSetErrorReasonPINRecord:Calculate            sqRecordPINError 
clSetErrorReasonRegPINError:Calculate          sqRegisterPINError 
clSetErrorReasonSBDualRecordDLL:Calculate      sqSBDualSyncRecordError 
clSetErrorReasonSB_StatInfo:Calculate          sqInsertSB_StatInfoError 
clSetErrorReasonSessionTimeout:Calculate       sqSessionTimeout 
clSetErrorReasonStatInfo:Calculate             deInsertDualRecordStatInfo 
clSetErrorReasonSwbUsedToday:Calculate         sqSwitchboardUsedToday 
clSetErrorReasonTimeout:Calculate              sqTimeout 
clSetGenderFemale:Calculate                    mfGenderMenu 
clSetGenderMale:Calculate                      mfGenderMenu 
clSetLWGroupNumber:Calculate                   mfLWMsgGroupMenu 
clSetLWPoolID:Calculate                        sqLeaveMessage 
clSetMainMenuMask:Calculate                    sqApplicationType 
clSetMasterPIN:Calculate                       sqCheckPIN 
clSetMenuSelection1:Calculate                  sqBeginCollection sqCallFriendPlaceCall sqCallHomePlaceCall 
                                               sqParticipateInConversation 
clSetMenuSelection2:Calculate                  sqRegisterPIN 
clSetMenuSelection3:Calculate                  sqLeaveMessageMenu 
clSetMenuSelection4:Calculate                  sqCallFriendInstructions sqCallHomeInstructions sqPolyphoneInstructions 
                                               sqSwitchboardInstructions 
clSetNumberToCall:Calculate                    sqSwitchBoardPlaceCall 
clSetNumberToContact:Calculate                 sqGetNumberToContact 
clSetPolylistItem:Calculate                    sqRecordPolyList 
clSetPolyphoneRecParams:Calculate              sqBeginCollection 
clSetRecordingDuration:Calculate               ifRecordingStarted sqGetDuration 
clSetRecordingSeconds:Calculate                sqGetDuration 
clSetRecordItemFilename:Calculate              sqRecordPolyList 
clSetRecordNameFilename:Calculate              sqRegisterPIN 
clSetRecordPhoneTypeFilename:Calculate         sqBeginCollection 
clSetRecordPINFilename:Calculate               sqBeginCollection 
clSetRecordRegPhraseFilename:Calculate         sqRegisterPIN 
clSetRegistrationRecParams:Calculate           sqRegisterPIN 
clSetReleaseSecondLine:Calculate               sqGetLineAndDial 
clSetSecondLineNumber:Calculate                sqGetLineAndDial 
clSetSecondLineReleased:Calculate              sqReleaseSecondLine 
clSetTalkDuration:Calculate                    sqDualSyncRecord sqDualSyncRecordError sqSBDualSyncRecord 
                                               sqSBDualSyncRecordError 
clSetTalkStartSeconds:Calculate                sqGetLineAndDial 
clSetTimeoutAndErrorTries:Calculate            sqStartApplication 
clSWBDebugCallee:Calculate                     sqDebugSWB 
coBreakApplicationType:Control                 ifLangEnglishAndAdminPIN 
coBreakCallAnswered:Control                    sqCalleeBadStatus sqCalleeEndCall sqCalleeHangup sqCalleeNotAvailable 
                                               sqCalleeTimeout 
coBreakTheLoop:Control                         csCalleeMenuChoice ifEndOfPolyList ifMasterPINFound ifPINValid 
                                               ifRegPINFound mfVerifyCallingFromNumber mfVerifyCallingToNumber 
                                               mfVerifyNumberToContact sqRecordNameAndOrigin sqRecordRegPhrase 
                                               sqRecordSpeakerPIN 
coContinueLoop:Control                         ifRecordItemTimeout ifRecordPINTimeout mfVerifyCallingFromNumber 
                                               mfVerifyCallingToNumber mfVerifyNumberToContact udRecordNameAndOrigin 
                                               udRecordRegPhrase 
coGoToApplicationType:Control                  mfAdminOptionsMenu sqAlreadyRegistered sqCallFriendInstructions 
                                               sqCallHomeInstructions sqNoMessages sqPolyphoneInstructions sqRegisterPIN 
                                               sqSwitchboardInstructions 
coGoToLWTranscribeMenu:Control                 timeStampSeq 
coGoToStartTranscribe:Control                  getFullMsgErr 
csApplicationType:Case                         coBreakApplicationType sqApplicationType 
csAskCalleePINRetval:Case                      sqCheckCalleePIN 
csCalleeMenuChoice:Case                        csCalleeMenuRetval 
csCalleeMenuRetval:Case                        sqCheckCalleeReady 
csCallResult:Case                              sqSwitchBoardPlaceCall 
csLanguage:Case                                sqStartApplication 
deActivateMasterPIN:DataBaseEdit               sqRegisterPIN 
deAddRegistrationInfo:DataBaseEdit             sqRegisterPIN 
deAnsweringMachineStat:DataBaseEdit            sqAnsweringMachine 
deAnsweringMachineSubj:DataBaseEdit            sqAnsweringMachine 
deCalleeHangupStat:DataBaseEdit                sqCalleeHangup 
deCalleeHangupSubj:DataBaseEdit                sqCalleeHangup 
deCalleeNotAvailableStat:DataBaseEdit          sqCalleeNotAvailable 
deCalleeNotAvailableSubj:DataBaseEdit          sqCalleeNotAvailable 
deCalleeTimeoutStat:DataBaseEdit               sqCalleeTimeout 
deCalleeTimeoutSubj:DataBaseEdit               sqCalleeTimeout 
deCallerHangupStat:DataBaseEdit                sqCallerHangup 
deCallerHangupSubj:DataBaseEdit                sqCallerHangup 
deCallNotAcceptedStat:DataBaseEdit             sqCalleeBadStatus sqCalleeEndCall 
deCallNotAcceptedSubj:DataBaseEdit             sqCalleeBadStatus sqCalleeEndCall 
deClearCalleeTopic:DataBaseEdit                sqCallAnswered 
deClearCallerTopic:DataBaseEdit                sqCallAnswered 
deDeactivatePIN:DataBaseEdit                   sqBeginCollection sqPlaceCall 
deFaxModemStat:DataBaseEdit                    sqFaxModem 
deFaxModemSubj:DataBaseEdit                    sqFaxModem 
deIncrementPINUsage:DataBaseEdit               sqInsertSB_StatInfoError 
deInsertDualRecordStatInfo:DataBaseEdit        sqPlaceCall 
deInsertSB_DualRecordStatInfo:DataBaseEdit     newsqSBDualRecordDBXactions oldsqSBDualRecordDBXactions 
                                               sqSBDualRecordDBXactions 
deLineWasBusyStat:DataBaseEdit                 sqLineWasBusy 
deLineWasBusySubj:DataBaseEdit                 sqLineWasBusy 
delMsgSetGonextSeq:Sequence                    mfLWTranscribeMenu 
deReleaseLineCandidates:DataBaseEdit           newsqSBDualRecordDBXactions oldsqSBDualRecordDBXactions sqCallerHangup 
                                               sqGetCalleeList sqParticipateInConversation sqReleaseSecondLine 
                                               sqSBDualRecordDBXactions 
deSBCallBadStatusStat:DataBaseEdit             sqSBCallBadStatus 
deSBCallBadStatusSubj:DataBaseEdit             sqSBCallBadStatus 
deSBCallNotAnsweredStat:DataBaseEdit           sqSBCallNotAnswered 
deSBCallNotAnsweredSubj:DataBaseEdit           sqSBCallNotAnswered 
deSelectLineCandidates:DataBaseEdit            sqGetCalleeList 
deUpdateSBCalleeStatus:DataBaseEdit            newsqSBDualRecordDBXactions oldsqSBDualRecordDBXactions 
                                               sqSBDualRecordDBXactions 
deUpdateSBCallerStatus:DataBaseEdit            newsqSBDualRecordDBXactions oldsqSBDualRecordDBXactions 
                                               sqSBDualRecordDBXactions 
dmCallFriendMenu:DynamicMenu                   sqCallFriend 
dmCallHomeMenu:DynamicMenu                     sqCallHome 
dmPolyphoneMenu:DynamicMenu                    sqPolyphone 
dmStartRecordingMenu:DynamicMenu               sqStartRecording 
dmSwitchboardMenu:DynamicMenu                  sqSwitchboard 
drCheckDatabasePIN:DataBaseRead                sqCheckPIN 
drCheckIfPhoneUsed:DataBaseRead                sqParticipateInConversation 
drCheckIfSBUsedToday:DataBaseRead              sqParticipateInConversation 
drCheckPreAssignedPIN:DataBaseRead             sqCheckPreAssignedPIN 
drGetCalleeList:DataBaseRead                   sqGetCalleeList 
drGetTopic:DataBaseRead                        sqGetTopic 
exitSeq:Sequence                               getFullMsgErr requeMsgSetExitSeq 
freeMsgSet:UserDLL                             delMsgSetGonextSeq 
getArchiveQueSize:UserDLL                      sqStartTranscribe 
GetCurrAltMsg:UserDLL                          YVRecordSeq 
getDateTimeInfo:UserDLL                        timeStampSeq 
getFreeSet:UserDLL                             sqLeaveMessage 
getFullMsg:UserDLL                             playSeq 
getFullMsgErr:Sequence                         getFullMsg 
getNormQueSize:UserDLL                         sqStartTranscribe 
goAnotherSet:Control                           archMsgSetGonextSeq delMsgSetGonextSeq 
GoBackToYVBodySeq:Control                      YVMsgFoundSeq YVNextSeq YVPreviousSeq 
GoBackToYVMenu:Control                         YVDirectSeq YVNoMoreSeq YVRecordSeq YVRestoreSeq 
GoBackToYVRecordSeq:Control                    VerifyNewYVMsg 
goPlay:Control                                 getDateTimeInfo mfLWTranscribeMenu 
ifActivatePINFlagNotSet:IfElse                 sqRegisterPIN 
ifApplTypeCallHome:IfElse                      sqGetCallingToNumber 
ifBadCallingFromNumber:IfElse                  sqGetCallingFromNumber 
ifBadCallingToNumber:IfElse                    sqGetCallingToNumber 
ifCalleeTimeoutFlagSet:IfElse                  sqWaitForCallee 
ifCallersStillTalking:IfElse                   sqDualSyncRecord 
ifCallFriendNoMenuMask:IfElse                  sqCallFriend 
ifCallHomeNoMenuMask:IfElse                    sqCallHome 
ifDebugSWB:IfElse                              sqParticipateInConversation 
ifEndOfPolyList:IfElse                         sqRecordPolyList 
ifHangupNotDetected:IfElse                     sqOneMinuteWarning 
ifLangEnglishAndAdminPIN:IfElse                sqCheckPIN 
ifLWMsgSetIN_APPL:IfElse                       sqHangup 
ifMasterPINBlocked:IfElse                      ifSwitchboardApplication 
ifMasterPINFound:IfElse                        sqCheckPIN 
ifMasterPINInactive:IfElse                     ifSwitchboardApplication 
ifMasterPINOver30DaysOld:IfElse                sqCheckMasterPIN 
ifMaxCalleeMenuTries:IfElse                    sqCheckCalleeReady 
ifMaxCalleePINTries:IfElse                     sqCheckCalleePIN 
ifNoMainMenuMask:IfElse                        whCheckPIN 
ifNotDebugPIN:IfElse                           sqDebugSWB 
ifOpenClosed:IfElse                            sqStartApplication 
ifPINValid:IfElse                              csAskCalleePINRetval 
ifPolyphoneNoMenuMask:IfElse                   sqPolyphone 
ifRecordingStarted:IfElse                      sqDualSyncRecord sqSBDualSyncRecord 
ifRecordItemTimeout:IfElse                     udRecordPolylistItem 
ifRecordPhoneTypeTimeout:IfElse                udRecordPhoneType 
ifRecordPINTimeout:IfElse                      udRecordSpeakerPIN 
ifRegistered:IfElse                            sqRegisterPIN 
ifRegPINFound:IfElse                           sqCheckPreAssignedPIN 
ifSBCallersStillTalking:IfElse                 sqSBDualSyncRecord 
ifSBCallNotAnswered:IfElse                     sqSwitchBoardPlaceCall 
ifSecondLineNotReleased:IfElse                 sqGetLineAndDial sqHangup sqSwitchBoardPlaceCall 
ifSetCallingFromNumber:IfElse                  sqCallFriendPlaceCall sqCallHomePlaceCall sqParticipateInConversation 
ifSwitchboardApplication:IfElse                sqCheckMasterPIN 
ifSwitchboardNoMenuMask:IfElse                 sqSwitchboard 
ifUnsuccessfulCall:IfElse                      sqHangup 
IfValidYVMsgNumber:IfElse                      ValidYVMsgNumber 
IncTempIndex:Calculate                         IfValidYVMsgNumber 
mainView:ViewForm                              no references
mfAdminOptionsMenu:MenuForm                    sqApplicationType 
mfEducationMenu:MenuForm                       sqRegisterPIN 
mfGenderMenu:MenuForm                          sqRegisterPIN 
mfLeaveMessageMenu:MenuForm                    ifNoMainMenuMask sqLeaveMessageMenu sqMasterPINError 
mfLWMsgGroupMenu:MenuForm                      sqLeaveWord 
mfLWTranscribeMenu:MenuForm                    coGoToLWTranscribeMenu seqPlayGetResponse 
mfSBWaitForKey:MenuForm                        sqCallAnswered 
mfVerifyCallingFromNumber:MenuForm             sqGetCallingFromNumber 
mfVerifyCallingToNumber:MenuForm               sqGetCallingToNumber 
mfVerifyNumberToContact:MenuForm               sqGetNumberToContact 
mfWaitForKey:MenuForm                          sqPlaceCall 
MsgReplaced:Play                               YVRestoreSeq 
newbeginning:Triggers                          beginning 
newdeInsertSB_DualRecordStatInfo:DataBaseEdit  no references
newsqSBDualRecordDBXactions:Sequence           no references
normOrArchive:MenuForm                         sqStartTranscribe 
olddeInsertSB_DualRecordStatInfo:DataBaseEdit  no references
oldsqSBDualRecordDBXactions:Sequence           no references
PastYVEnd:IfElse                               YVNextSeq YVPreviousSeq 
plAlreadyRegistered:Play                       sqAlreadyRegistered 
PlayNewMsg:Play                                VerifyNewYVMsg YVRecordSeq 
PlayNoMore:Play                                YVNoMoreSeq 
PlayNotValid:Play                              YVDirectSeq 
playSeq:Sequence                               goAnotherSet sqStartTranscribe 
playTotalNewAndArchivedMsgs:Play               sqStartTranscribe 
PlayYVMsgs:Play                                YVBodySeq 
plCalleeNotAvailable:Play                      sqCalleeNotAvailable 
plCallFriendInstructions:Play                  sqCallFriendInstructions 
plCallHomeInstructions:Play                    sqCallHomeInstructions 
plCallingFromNumber:Play                       mfVerifyCallingFromNumber sqGetCallingFromNumber 
                                               sqRepromptVerifyFromNumber 
plCallingToNumber:Play                         mfVerifyCallingToNumber sqGetCallingToNumber sqRepromptVerifyToNumber 
plCallNotAccepted:Play                         sqCalleeBadStatus sqCalleeEndCall sqCalleeHangup sqCalleeTimeout 
plCallNotAnswered:Play                         sqSBCallBadStatus sqSBCallNotAnswered 
plCannotRecordButPINStillActive:Play           sqRecordItemError sqRecordPhoneTypeError sqRecordPINError 
plClearKeyBuffer:Play                          sqCallAnswered 
plContactProjManager:Play                      sqMasterPINError 
plExceededTimeLimit:Play                       sqSessionTimeout 
plHangupDetect:Play                            sqRecordNameAndOrigin 
plHoldWhileCalleeLocated:Play                  sqSwitchBoardPlaceCall 
plIndicatePhoneType:Play                       sqBeginCollection 
plIntroduction:Play                            sqPlaceCall 
plInvalidEntry:Play                            anAge anAssignedPIN anCalleePIN anCallingFromNumber anCF_CallingToNumber 
                                               anCH_CallingToNumber anNumberToContact anPIN ifRegPINFound sqCheckPIN 
                                               sqInvalidEntry sqRegisterPINError 
plInvalidSelection:Play                        dmCallFriendMenu dmCallHomeMenu dmPolyphoneMenu dmStartRecordingMenu 
                                               dmSwitchboardMenu mfAdminOptionsMenu mfEducationMenu mfGenderMenu 
                                               mfLeaveMessageMenu mfLWMsgGroupMenu mfLWTranscribeMenu normOrArchive 
                                               sqMenuError sqRepromptVerifyContactNum sqRepromptVerifyFromNumber 
                                               sqRepromptVerifyToNumber YVMenu 
plLineWasBusy:Play                             sqAnsweringMachine sqFaxModem sqLineWasBusy 
plLWMessage:Play                               seqPlayGetResponse 
plMayOnlyUseOncePerDay:Play                    sqSwitchboardUsedToday 
plMayOnlyUsePhoneOnce:Play                     sqPhoneUsed 
plMsgSetArchived:Play                          archMsgSetGonextSeq 
plMsgSetDeleted:Play                           delMsgSetGonextSeq 
plNoMoreMsgs:Play                              getFullMsgErr 
plNoMsgsToTranscribe:Play                      sqNoMessages 
plNoOneAvailable:Play                          sqNoUncalledCallee 
plNumberToCall:Play                            sqCallForAssistance 
plNumberToContact:Play                         mfVerifyNumberToContact sqGetNumberToContact sqRepromptVerifyContactNum 
plPINActivated:Play                            sqRegisterPIN 
plPINExpired:Play                              sqMasterPINBlocked sqMasterPINExpired 
plPINNoLongerActive:Play                       sqMasterPINInactive 
plPlayTimeStamp:Play                           timeStampSeq 
plPolyphoneInstructions:Play                   sqPolyphoneInstructions 
plRecordItemPrompt:Play                        sqRecordPolyList 
plRegButNotActivated:Play                      sqActivatePINError 
plSeeProjManager:Play                          sqPINRegistered 
plSorryWereClosed:Play                         sqClosed 
plSpeakNameAfterTheTone:Play                   sqRecordNameAndOrigin 
plSpeakPINAfterTheTone:Play                    sqRecordSpeakerPIN 
plSpeakRegPhraseAfterTheTone:Play              sqRecordRegPhrase 
plSwitchboardInstructions:Play                 sqSwitchboardInstructions 
plTest_prompt:Play                             no references
plThanksForCalling:Play                        sqEndCall 
plTryAgainLater:Play                           sqLWGetFreeSetError sqNotEnoughSpace 
plUnableToPlaceCall:Play                       sqBadCallingFromNumber sqBadCallingToNumber sqCalleeMenuDLLError 
                                               sqCalleePINDLLError sqConnectInitError sqConnectLinesError 
                                               sqDisconnectLinesError sqGetLineAndDialError 
plUnableToProcessRequest:Play                  sqNotDebugPIN sqSQLError 
plUnableToRegister:Play                        sqDBRegisterPINError 
plWelcome:Play                                 sqStartApplication 
putFullArchive:UserDLL                         chkCurrQue 
putFullCurrent:UserDLL                         chkCurrQue 
putFullSet:UserDLL                             sqLeaveMessage 
rcLWRecordNameAndAddress:Record                sqLeaveMessage 
RecordNewYVMsg:Record                          YVRecordSeq 
requeMsgSet:UserDLL                            ifLWMsgSetIN_APPL requeMsgSetExitSeq 
requeMsgSetExitSeq:Sequence                    mfLWTranscribeMenu 
RollbackValue:IfElse                           YVNoMoreSeq 
seqPlayGetResponse:Sequence                    goPlay playSeq 
setArchiveActive:Calculate                     setCurrToArch 
setCurrArchive:Calculate                       setCurrToArch 
setCurrToArch:Sequence                         normOrArchive 
SetDirectMsgNumber:Calculate                   YVMsgFoundSeq 
SetFirst:Calculate                             RollbackValue 
setLangEnglish:SetLanguage                     no references
SetLast:Calculate                              RollbackValue 
setNoChange:Calculate                          normOrArchive 
SetRecAltMsgHigh:Calculate                     CalcRecAltMsg 
SetRecAltMsgLow:Calculate                      CalcRecAltMsg 
slSetLangArabic:SetLanguage                    csLanguage 
slSetLangEnglish:SetLanguage                   csLanguage sqEnglish 
slSetLangFarsi:SetLanguage                     csLanguage 
slSetLangFrench:SetLanguage                    csLanguage 
slSetLangGerman:SetLanguage                    csLanguage 
slSetLangHindi:SetLanguage                     csLanguage 
slSetLangJapanese:SetLanguage                  csLanguage 
slSetLangKorean:SetLanguage                    csLanguage 
slSetLangMandarin:SetLanguage                  csLanguage 
slSetLangRussian:SetLanguage                   csLanguage 
slSetLangSpanish:SetLanguage                   csLanguage 
slSetLangTamil:SetLanguage                     csLanguage 
slSetLangVietnamese:SetLanguage                csLanguage 
sqActivatePINError:Sequence                    deActivateMasterPIN 
sqAlreadyRegistered:Sequence                   ifRegistered 
sqAnsweringMachine:Sequence                    csCallResult 
sqApplicationType:Sequence                     coGoToApplicationType sqStartApplication 
sqBadCallingFromNumber:Sequence                ifBadCallingFromNumber 
sqBadCallingToNumber:Sequence                  ifBadCallingToNumber 
sqBeginCollection:Sequence                     dmPolyphoneMenu ifPolyphoneNoMenuMask 
sqCallAnswered:Sequence                        coBreakCallAnswered csCallResult 
sqCalleeBadStatus:Sequence                     no references
sqCalleeEndCall:Sequence                       ifMaxCalleeMenuTries ifMaxCalleePINTries 
sqCalleeHangup:Sequence                        csAskCalleePINRetval csCalleeMenuRetval csCallResult 
sqCalleeList:Sequence                          drGetCalleeList 
sqCalleeMenuDLLError:Sequence                  csCalleeMenuRetval 
sqCalleeNotAvailable:Sequence                  csCalleeMenuChoice 
sqCalleePINDLLError:Sequence                   udAskCalleePIN 
sqCalleeTimeout:Sequence                       csCalleeMenuRetval 
sqCallerHangup:Sequence                        csAskCalleePINRetval csCalleeMenuRetval csCallResult 
sqCallForAssistance:Sequence                   whRecordSpeakerPIN 
sqCallFriend:Sequence                          csApplicationType 
sqCallFriendInstructions:Sequence              dmCallFriendMenu 
sqCallFriendPlaceCall:Sequence                 dmCallFriendMenu ifCallFriendNoMenuMask 
sqCallHome:Sequence                            csApplicationType 
sqCallHomeInstructions:Sequence                dmCallHomeMenu 
sqCallHomePlaceCall:Sequence                   dmCallHomeMenu ifCallHomeNoMenuMask 
sqCheckCalleePIN:Sequence                      whCheckCalleePIN 
sqCheckCalleeReady:Sequence                    whCheckCalleeReady 
sqCheckMasterPIN:Sequence                      sqBeginCollection sqCallFriendPlaceCall sqCallHomePlaceCall 
                                               sqParticipateInConversation 
sqCheckPIN:Sequence                            whCheckPIN 
sqCheckPreAssignedPIN:Sequence                 whCheckPreAssignedPIN 
sqClosed:Sequence                              ifOpenClosed 
sqConnectInitError:Sequence                    udInitOutboundLineGroup 
sqConnectLinesError:Sequence                   udConnectLines 
sqDBRegisterPINError:Sequence                  deAddRegistrationInfo 
sqDebugSWB:Sequence                            ifDebugSWB 
sqDisconnectLinesError:Sequence                udDisconnectLines 
sqDualSyncRecord:Sequence                      sqPlaceCall 
sqDualSyncRecordError:Sequence                 udDualSyncRecord 
sqEndCall:Sequence                             csApplicationType dmCallFriendMenu dmCallHomeMenu dmPolyphoneMenu 
                                               dmStartRecordingMenu dmSwitchboardMenu mfAdminOptionsMenu 
                                               mfLeaveMessageMenu mfLWMsgGroupMenu mfLWTranscribeMenu normOrArchive 
                                               rcLWRecordNameAndAddress RecordNewYVMsg requeMsgSetExitSeq 
                                               sqBadCallingFromNumber sqBadCallingToNumber sqBeginCollection 
                                               sqCalleeMenuDLLError sqCalleePINDLLError sqCallForAssistance sqClosed 
                                               sqConnectInitError sqConnectLinesError sqDebugSWB sqDisconnectLinesError 
                                               sqGetCalleeList sqGetLineAndDialError sqInvalidEntry sqLeaveMessage 
                                               sqLWGetFreeSetError sqMenuError sqNotDebugPIN sqNotEnoughSpace 
                                               sqNoUncalledCallee sqPhoneUsed sqPINRegistered sqRecordItemError 
                                               sqRecordPhoneTypeError sqRecordPINError sqSessionTimeout sqSQLError 
                                               sqSwitchboardUsedToday sqTimeout VerifyNewYVMsg YVDirectPrompt YVMenu 
sqEnglish:Sequence                             csLanguage 
sqFallThrough:Sequence                         getArchiveQueSize getNormQueSize ifRecordPhoneTypeTimeout mfSBWaitForKey 
                                               VerifyNewYVMsg whRecordNameAndOrigin whRecordRegPhrase 
sqFaxModem:Sequence                            csCallResult 
sqGetCalleeList:Sequence                       ifDebugSWB 
sqGetCallingFromNumber:Sequence                whGetCallingFromNumber 
sqGetCallingToNumber:Sequence                  whGetCallingToNumber 
sqGetCallStatus:Sequence                       sqSwitchBoardPlaceCall 
sqGetDuration:Sequence                         ifRecordingStarted 
sqGetLineAndDial:Sequence                      sqPlaceCall sqSwitchBoardPlaceCall 
sqGetLineAndDialError:Sequence                 udGetLineAndDial 
sqGetNumberToContact:Sequence                  whGetNumberToContact 
sqGetTopic:Sequence                            sqCalleeList sqDebugSWB 
sqHangup:Sequence                              caAnswerCall ifRecordItemTimeout ifRecordPhoneTypeTimeout 
                                               ifRecordPINTimeout newsqSBDualRecordDBXactions 
                                               oldsqSBDualRecordDBXactions sqCallerHangup sqDualSyncRecordError 
                                               sqEndCall sqIncrPINUsageError sqInsertSB_StatInfoError sqPlaceCall 
                                               sqSBDualRecordDBXactions sqSBDualSyncRecordError 
sqIncrPINUsageError:Sequence                   deIncrementPINUsage deUpdateSBCalleeStatus deUpdateSBCallerStatus 
sqInsertSB_StatInfoError:Sequence              deInsertSB_DualRecordStatInfo newdeInsertSB_DualRecordStatInfo 
                                               olddeInsertSB_DualRecordStatInfo 
sqInvalidCalleePIN:Sequence                    ifPINValid 
sqInvalidEntry:Sequence                        anAge anCalleePIN anCallingFromNumber anCF_CallingToNumber 
                                               anCH_CallingToNumber anNumberToContact anPIN 
sqInvalidSelection:Sequence                    csCalleeMenuChoice 
sqLeaveMessage:Sequence                        mfLeaveMessageMenu 
sqLeaveMessageMenu:Sequence                    dmCallFriendMenu dmCallHomeMenu dmPolyphoneMenu dmSwitchboardMenu 
sqLeaveWord:Sequence                           mfAdminOptionsMenu 
sqLineWasBusy:Sequence                         csCallResult 
sqLogCallInfo:Sequence                         ifUnsuccessfulCall 
sqLWGetFreeSetError:Sequence                   getFreeSet 
sqMasterPINBlocked:Sequence                    ifMasterPINBlocked 
sqMasterPINError:Sequence                      ifNoMainMenuMask sqActivatePINError sqDBRegisterPINError 
                                               sqMasterPINBlocked sqMasterPINExpired sqMasterPINInactive 
                                               sqRegisterPINError 
sqMasterPINExpired:Sequence                    ifMasterPINOver30DaysOld 
sqMasterPINInactive:Sequence                   ifMasterPINInactive 
sqMenuError:Sequence                           dmCallFriendMenu dmCallHomeMenu dmPolyphoneMenu dmStartRecordingMenu 
                                               dmSwitchboardMenu mfEducationMenu mfGenderMenu mfLeaveMessageMenu 
                                               mfVerifyCallingFromNumber mfVerifyCallingToNumber mfVerifyNumberToContact 
sqNoMessages:Sequence                          chkDropThrough 
sqNotDebugPIN:Sequence                         ifNotDebugPIN 
sqNotEnoughSpace:Sequence                      udCheckDiskSpace 
sqNoUncalledCallee:Sequence                    drGetCalleeList 
sqOneMinuteWarning:Sequence                    ifCallersStillTalking ifSBCallersStillTalking 
sqParticipateInConversation:Sequence           dmSwitchboardMenu ifSwitchboardNoMenuMask 
sqPhoneUsed:Sequence                           drCheckIfPhoneUsed 
sqPINRegistered:Sequence                       ifActivatePINFlagNotSet 
sqPlaceCall:Sequence                           sqCallFriendPlaceCall sqCallHomePlaceCall 
sqPlayCalleeWelcome:Sequence                   sqCheckCalleeReady 
sqPolyphone:Sequence                           csApplicationType 
sqPolyphoneInstructions:Sequence               dmPolyphoneMenu 
sqRecordItemError:Sequence                     ifRecordItemTimeout 
sqRecordNameAndOrigin:Sequence                 whRecordNameAndOrigin 
sqRecordPhoneTypeError:Sequence                ifRecordPhoneTypeTimeout 
sqRecordPINError:Sequence                      ifRecordPINTimeout 
sqRecordPolyList:Sequence                      whRecordPolyListLoop 
sqRecordRegPhrase:Sequence                     whRecordRegPhrase 
sqRecordSpeakerPIN:Sequence                    whRecordSpeakerPIN 
sqRegisterPIN:Sequence                         dmCallFriendMenu dmCallHomeMenu dmPolyphoneMenu dmSwitchboardMenu 
sqRegisterPINError:Sequence                    anAssignedPIN whCheckPreAssignedPIN 
sqReleaseOutboundLine:Sequence                 sqAnsweringMachine sqFaxModem sqLineWasBusy sqSBCallBadStatus 
                                               sqSBCallNotAnswered 
sqReleaseSecondLine:Sequence                   ifSecondLineNotReleased sqCalleeBadStatus sqCalleeEndCall sqCalleeHangup 
                                               sqCalleeNotAvailable sqCalleeTimeout sqReleaseOutboundLine 
sqRepromptVerifyContactNum:Sequence            mfVerifyNumberToContact 
sqRepromptVerifyFromNumber:Sequence            mfVerifyCallingFromNumber 
sqRepromptVerifyToNumber:Sequence              mfVerifyCallingToNumber 
sqSBCallBadStatus:Sequence                     csCallResult 
sqSBCallNotAnswered:Sequence                   csCallResult ifSBCallNotAnswered 
sqSBDualRecordDBXactions:Sequence              sqCallAnswered 
sqSBDualSyncRecord:Sequence                    sqCallAnswered 
sqSBDualSyncRecordError:Sequence               udSBDualSyncRecord 
sqSessionTimeout:Sequence                      newbeginning 
sqSQLError:Sequence                            deAnsweringMachineStat deAnsweringMachineSubj deCalleeHangupStat 
                                               deCalleeHangupSubj deCalleeNotAvailableStat deCalleeNotAvailableSubj 
                                               deCalleeTimeoutStat deCalleeTimeoutSubj deCallerHangupStat 
                                               deCallerHangupSubj deCallNotAcceptedStat deCallNotAcceptedSubj 
                                               deClearCalleeTopic deClearCallerTopic deFaxModemStat deFaxModemSubj 
                                               deLineWasBusyStat deLineWasBusySubj deSBCallBadStatusStat 
                                               deSBCallBadStatusSubj deSBCallNotAnsweredStat deSBCallNotAnsweredSubj 
                                               deSelectLineCandidates drCheckDatabasePIN drCheckIfPhoneUsed 
                                               drCheckIfSBUsedToday drCheckPreAssignedPIN drGetCalleeList drGetTopic 
sqStartApplication:Sequence                    newbeginning 
sqStartRecording:Sequence                      mfWaitForKey 
sqStartTranscribe:Sequence                     coGoToStartTranscribe sqLeaveWord 
sqSwitchboard:Sequence                         csApplicationType 
sqSwitchboardInstructions:Sequence             dmSwitchboardMenu 
sqSwitchBoardPlaceCall:Sequence                sqCalleeList sqDebugSWB 
sqSwitchboardUsedToday:Sequence                drCheckIfSBUsedToday 
sqTimeout:Sequence                             anAge anAssignedPIN anCalleePIN anCallingFromNumber anCF_CallingToNumber 
                                               anCH_CallingToNumber anNumberToContact anPIN dmCallFriendMenu 
                                               dmCallHomeMenu dmPolyphoneMenu dmStartRecordingMenu dmSwitchboardMenu 
                                               mfEducationMenu mfGenderMenu mfLeaveMessageMenu mfVerifyCallingFromNumber 
                                               mfVerifyCallingToNumber mfVerifyNumberToContact 
sqWaitForCallee:Sequence                       csCalleeMenuChoice 
sqYourVoice:Sequence                           mfAdminOptionsMenu 
timeStampSeq:Sequence                          mfLWTranscribeMenu 
ttTranslateTables:TranslateTables              no references
udAskCalleePIN:UserDLL                         sqCheckCalleePIN 
udCalleeMenu:UserDLL                           sqCheckCalleeReady 
udCheckDiskSpace:UserDLL                       sqApplicationType sqPlaceCall sqSwitchBoardPlaceCall 
udConnectLines:UserDLL                         dmStartRecordingMenu sqCallAnswered sqPlaceCall 
udDelayAfterDial:UserDLL                       sqGetLineAndDial 
udDisableHangupDetect:UserDLL                  sqCalleeEndCall sqCalleeNotAvailable sqRegisterPIN sqReleaseOutboundLine 
udDisconnectLines:UserDLL                      sqStartRecording 
udDualSyncRecord:UserDLL                       sqDualSyncRecord 
udEnableHangupDetect:UserDLL                   sqRegisterPIN sqSwitchBoardPlaceCall 
udGetCallStatus:UserDLL                        sqGetCallStatus 
udGetCurrentCompression:UserDLL                sqStartApplication 
udGetDuration:UserDLL                          sqGetDuration 
udGetLineAndDial:UserDLL                       sqGetLineAndDial 
udInitOutboundLineGroup:UserDLL                beginning 
udMonitorLines:UserDLL                         sqOneMinuteWarning 
udPauseBeforeFail:UserDLL                      sqClosed 
udPauseBeforeGetCallStatus:UserDLL             sqGetCallStatus 
udPauseBeforeWelcome:UserDLL                   sqStartApplication 
udPlayCalleeFor:UserDLL                        no references
udPlayCalleeName:UserDLL                       sqPlayCalleeWelcome 
udPlayCalleeSBCalling:UserDLL                  sqPlayCalleeWelcome 
udPlayInvalidEntry:UserDLL                     sqInvalidCalleePIN 
udPlayInvalidSelection:UserDLL                 sqInvalidSelection 
udPlayOneMinuteRemaining:UserDLL               sqOneMinuteWarning 
udPlayRecordingBeginsNow:UserDLL               sqPlaceCall 
udPlayRecordingNotSuccessful:UserDLL           sqDualSyncRecordError sqSBDualSyncRecordError 
udPlayRecordingWillBeginNow:UserDLL            mfSBWaitForKey 
udPlaySuggestedTopicIs:UserDLL                 sqCallAnswered 
udPlayThanksForCalling:UserDLL                 sqCallerHangup 
udPlayThanksToCallee:UserDLL                   sqCalleeEndCall sqCalleeNotAvailable 
udPlayTopicToBoth:UserDLL                      sqCallAnswered 
udPlayWelcomeCallerAndCallee:UserDLL           sqCallAnswered 
udRecordNameAndOrigin:UserDLL                  sqRecordNameAndOrigin 
udRecordPhoneType:UserDLL                      sqBeginCollection 
udRecordPolylistItem:UserDLL                   sqRecordPolyList 
udRecordRegPhrase:UserDLL                      sqRecordRegPhrase 
udRecordSpeakerPIN:UserDLL                     sqRecordSpeakerPIN 
udReleaseSecondLine:UserDLL                    sqGetLineAndDialError sqReleaseSecondLine 
udSBDualSyncRecord:UserDLL                     sqSBDualSyncRecord 
udSetCompression24K:UserDLL                    sqLeaveMessage 
udSetCompression64K:UserDLL                    udGetCurrentCompression 
udStoreTimeStamp:UserDLL                       sqLeaveMessage 
udThanksForCalling:UserDLL                     ifHangupNotDetected sqDualSyncRecordError sqSBDualSyncRecordError 
udVmWait:UserDLL                               sqCallFriendInstructions sqCallHomeInstructions sqGetDuration 
                                               sqPolyphoneInstructions sqStartApplication sqSwitchboardInstructions 
                                               sqSwitchBoardPlaceCall timeStampSeq 
ValidYVMsgNumber:While                         YVDirectSeq 
VerifyNewYVMsg:MenuForm                        YVRecordSeq 
whCheckCalleePIN:While                         sqCallAnswered 
whCheckCalleeReady:While                       sqCallAnswered 
whCheckPIN:While                               sqCheckMasterPIN 
whCheckPreAssignedPIN:While                    sqRegisterPIN 
whGetCallingFromNumber:While                   ifSetCallingFromNumber 
whGetCallingToNumber:While                     sqCallFriendPlaceCall sqCallHomePlaceCall sqDebugSWB 
whGetNumberToContact:While                     sqRegisterPIN 
whRecordNameAndOrigin:While                    sqRegisterPIN 
whRecordPolyListLoop:While                     sqBeginCollection 
whRecordRegPhrase:While                        sqRegisterPIN 
whRecordSpeakerPIN:While                       sqBeginCollection 
Worksheet1:Worksheet                           sqYourVoice 
Worksheet2:Worksheet                           YVDirectSeq 
wsC_Variables:Worksheet                        sqStartApplication 
wsD_Variables:Worksheet                        sqStartApplication 
wsInitCalleeTimeoutFlag:Worksheet              sqCallAnswered 
wsI_Variables:Worksheet                        sqStartApplication 
wsLeaveWordWorksheet:Worksheet                 sqStartApplication 
wsT_Variables:Worksheet                        sqStartApplication 
YVAltNewMsg:AlternateMsg                       YVRecordSeq 
YVAltOrigMsg:AlternateMsg                      YVRestoreSeq 
YVBodySeq:Sequence                             GoBackToYVBodySeq sqYourVoice YVReplay 
YVDirectPrompt:AskForNumber                    YVDirectSeq 
YVDirectSeq:Sequence                           YVMenu 
YVMenu:MenuForm                                GoBackToYVMenu YVBodySeq 
YVMsgFoundSeq:Sequence                         IfValidYVMsgNumber 
YVNextSeq:Sequence                             YVMenu 
YVNoMoreSeq:Sequence                           PastYVEnd 
YVPreviousSeq:Sequence                         YVMenu 
YVRecordSeq:Sequence                           GoBackToYVRecordSeq YVMenu 
YVReplay:Control                               YVMenu 
YVRestoreSeq:Sequence                          YVMenu 
zeroArchiveActive:Calculate                    exitSeq 
zeroMsgSetVALID:Calculate                      exitSeq 

Variables cross-reference

AlwaysOpenBH            <bhBusinessHours:BusinessHours 
                        >ifMasterPINOver30DaysOld:IfElse ifOpenClosed:IfElse 
anAge                   <anAge:AskForNumber 
                        >clSetAge:Calculate 
anAssignedPIN           <anAssignedPIN:AskForNumber 
                        >clSetAssignedPIN:Calculate 
anCalleePIN             <anCalleePIN:AskForNumber 
                        >clSetCalleePIN:Calculate 
anCallingFromNumber     <anCallingFromNumber:AskForNumber 
                        >clSetCallingFromNumber:Calculate 
anCF_CallingToNumber    <anCF_CallingToNumber:AskForNumber 
                        >clSetCallingToNumber:Calculate 
anCH_CallingToNumber    <anCH_CallingToNumber:AskForNumber 
                        >clSetCallingToNumber:Calculate 
ANI_TT                  <ttTranslateTables:TranslateTables 
                        >ifSetCallingFromNumber:IfElse 
anNumberToContact       <anNumberToContact:AskForNumber 
                        >clSetNumberToContact:Calculate 
anPIN                   <anPIN:AskForNumber 
                        >clSetMasterPIN:Calculate 
archiveACTIVE           <setArchiveActive:Calculate wsLeaveWordWorksheet:Worksheet zeroArchiveActive:Calculate 
                        >chkCurrQue:IfElse 
archiveQue              <calcArchiveQue:Calculate wsLeaveWordWorksheet:Worksheet 
                        >setCurrArchive:Calculate 
BadFromNumberTT         <ttTranslateTables:TranslateTables 
                        >ifBadCallingFromNumber:IfElse 
BadToNumberTT           <ttTranslateTables:TranslateTables 
                        >ifBadCallingToNumber:IfElse 
CalledID                <
                        >alApplicationParams:ApplicationLog clSetApplicationParams:Calculate 
CallingID               <
                        >alApplicationParams:ApplicationLog clSetApplicationParams:Calculate 
currMsg                 <wsLeaveWordWorksheet:Worksheet 
                        >
C_ANI                   <clSetApplicationParams:Calculate wsC_Variables:Worksheet 
                        >alApplicationParams:ApplicationLog alInsertDualRecordStatInfo:ApplicationLog 
                         alSBDualRecordDBXactions:ApplicationLog clSetCallingFromNumberFromANI:Calculate 
                         ifSetCallingFromNumber:IfElse 
C_APPL                  <clSetApplicationParams:Calculate wsC_Variables:Worksheet 
                        >alApplicationParams:ApplicationLog alInsertDualRecordStatInfo:ApplicationLog 
                         alLogCallTrackInfo:ApplicationLog alLogPhoneNumbers:ApplicationLog 
                         alLogRegistrationInfo:ApplicationLog alSBDualRecordDBXactions:ApplicationLog 
                         clSetApplicationParams:Calculate clSetCallingToNumber:Calculate 
                         clSetDualSyncRecordParams:Calculate clSetErrorReasonMasterPIN:Calculate clSetLWPoolID:Calculate 
                         clSetMainMenuMask:Calculate csApplicationType:Case ifActivatePINFlagNotSet:IfElse 
                         ifApplTypeCallHome:IfElse ifMasterPINFound:IfElse ifSwitchboardApplication:IfElse 
C_CALLEE_INPUT          <clInitCalleeInputBuffer:Calculate wsC_Variables:Worksheet 
                        >csCalleeMenuChoice:Case ifPINValid:IfElse 
C_CALLEE_NAME           <clSetCalleeName:Calculate wsC_Variables:Worksheet 
                        >alLogPhoneNumbers:ApplicationLog 
C_CALLEE_TRIES          <clIncrCalleeTries:Calculate wsC_Variables:Worksheet 
                        >alSBDualRecordDBXactions:ApplicationLog clIncrCalleeTries:Calculate 
                         clSetErrorReasonDLLCalleeMenu:Calculate clSetErrorReasonDLLCalleePIN:Calculate 
                         clSetErrorReasonSBDualRecordDLL:Calculate clSetErrorReasonSB_StatInfo:Calculate 
C_CALL_DURATION         <clCallDuration:Calculate clSetCallDuration:Calculate wsC_Variables:Worksheet 
                        >alInsertDualRecordStatInfo:ApplicationLog alLogCallTrackInfo:ApplicationLog 
                         alSBDualRecordDBXactions:ApplicationLog clCallDuration:Calculate clSetCallDuration:Calculate 
C_CURRENT_TIME          <wsC_Variables:Worksheet 
                        >
C_DELETE_FILE_FLAG      <wsC_Variables:Worksheet 
                        >
C_DNIS                  <clSetApplicationParams:Calculate wsC_Variables:Worksheet 
                        >alApplicationParams:ApplicationLog clSetApplicationParams:Calculate 
C_END_SECONDS           <clCallDuration:Calculate clSetCallDuration:Calculate wsC_Variables:Worksheet 
                        >clCallDuration:Calculate clSetCallDuration:Calculate 
C_ERROR_COUNTER_1       <clIncrErrorCounter1:Calculate clResetErrorCounters:Calculate 
                         clSetCalleeInputNewTimeout:Calculate wsC_Variables:Worksheet 
                        >clIncrErrorCounter1:Calculate ifMaxCalleeMenuTries:IfElse ifMaxCalleePINTries:IfElse 
C_ERROR_COUNTER_2       <clIncrErrorCounter2:Calculate clResetErrorCounters:Calculate wsC_Variables:Worksheet 
                        >clIncrErrorCounter2:Calculate ifMaxCalleeMenuTries:IfElse ifMaxCalleePINTries:IfElse 
C_ERROR_COUNTER_3       <clResetErrorCounters:Calculate wsC_Variables:Worksheet 
                        >
C_ERROR_MSG             <clResetErrorReason:Calculate clSetErrorMsgToPINUsage:Calculate 
                         clSetErrorMsgToRecruitDate:Calculate clSetErrorReasonActivatePIN:Calculate 
                         clSetErrorReasonBadFROMNumber:Calculate clSetErrorReasonBadTONumber:Calculate 
                         clSetErrorReasonDBRegPIN:Calculate clSetErrorReasonDLLCalleeMenu:Calculate 
                         clSetErrorReasonDLLCalleePIN:Calculate clSetErrorReasonDualRecordDLL:Calculate 
                         clSetErrorReasonEndAfter1Min:Calculate clSetErrorReasonPINActivate:Calculate 
                         clSetErrorReasonSBDualRecordDLL:Calculate clSetErrorReasonSB_StatInfo:Calculate 
                         clSetErrorReasonStatInfo:Calculate wsC_Variables:Worksheet 
                        >alLogCallTrackInfo:ApplicationLog 
C_ERROR_REASON          <clResetErrorReason:Calculate clSetErrorReasonActivatePIN:Calculate 
                         clSetErrorReasonBadFROMNumber:Calculate clSetErrorReasonBadTONumber:Calculate 
                         clSetErrorReasonConnectInit:Calculate clSetErrorReasonConnectLines:Calculate 
                         clSetErrorReasonDatabaseTimeout:Calculate clSetErrorReasonDBRegPIN:Calculate 
                         clSetErrorReasonDeactivatePIN:Calculate clSetErrorReasonDisconnectLines:Calculate 
                         clSetErrorReasonDLLCalleeMenu:Calculate clSetErrorReasonDLLCalleePIN:Calculate 
                         clSetErrorReasonDualRecordDLL:Calculate clSetErrorReasonEndAfter1Min:Calculate 
                         clSetErrorReasonGetLineAndDial:Calculate clSetErrorReasonGetTopic:Calculate 
                         clSetErrorReasonIncrPINUsage:Calculate clSetErrorReasonInvalidEntry:Calculate 
                         clSetErrorReasonInvalidOption:Calculate clSetErrorReasonItemRecord:Calculate 
                         clSetErrorReasonLeadingSilence:Calculate clSetErrorReasonLWGetFreeSet:Calculate 
                         clSetErrorReasonMasterPIN:Calculate clSetErrorReasonNoDiskSpace:Calculate 
                         clSetErrorReasonNotDebugPIN:Calculate clSetErrorReasonNoUncalledCallee:Calculate 
                         clSetErrorReasonPhoneAlreadyUsed:Calculate clSetErrorReasonPhoneTypeRecord:Calculate 
                         clSetErrorReasonPINActivate:Calculate clSetErrorReasonPINExpired:Calculate 
                         clSetErrorReasonPINRecord:Calculate clSetErrorReasonRegPINError:Calculate 
                         clSetErrorReasonSBDualRecordDLL:Calculate clSetErrorReasonSB_StatInfo:Calculate 
                         clSetErrorReasonSessionTimeout:Calculate clSetErrorReasonStatInfo:Calculate 
                         clSetErrorReasonSwbUsedToday:Calculate clSetErrorReasonTimeout:Calculate 
                         wsC_Variables:Worksheet 
                        >alLogCallTrackInfo:ApplicationLog ifUnsuccessfulCall:IfElse 
C_FILENAME              <clSetRecordItemFilename:Calculate clSetRecordNameFilename:Calculate 
                         clSetRecordPhoneTypeFilename:Calculate clSetRecordPINFilename:Calculate 
                         clSetRecordRegPhraseFilename:Calculate wsC_Variables:Worksheet 
                        >
C_ITEM                  <clSetPolylistItem:Calculate wsC_Variables:Worksheet 
                        >clSetRecordItemFilename:Calculate 
C_LANGUAGE              <clSetApplicationParams:Calculate wsC_Variables:Worksheet 
                        >alApplicationParams:ApplicationLog alInsertDualRecordStatInfo:ApplicationLog 
                         alLogCallTrackInfo:ApplicationLog alLogPhoneNumbers:ApplicationLog 
                         alLogRegistrationInfo:ApplicationLog alSBDualRecordDBXactions:ApplicationLog csLanguage:Case 
                         ifLangEnglishAndAdminPIN:IfElse ifMasterPINFound:IfElse 
C_MASTER_FILENAME       <clSetDualSyncRecordParams:Calculate wsC_Variables:Worksheet 
                        >clSetDualSyncRecordParams:Calculate 
C_MENU_OPTION           <clSetMenuSelection1:Calculate clSetMenuSelection2:Calculate clSetMenuSelection3:Calculate 
                         clSetMenuSelection4:Calculate wsC_Variables:Worksheet 
                        >alLogCallTrackInfo:ApplicationLog alLogPhoneNumbers:ApplicationLog 
                         alLogRegistrationInfo:ApplicationLog 
C_OpenClosed            <CalcClosed:Calculate CalcOpen:Calculate wsC_Variables:Worksheet 
                        >
C_PERIOD                <clSetNumberToCall:Calculate wsC_Variables:Worksheet 
                        >
C_RECORD_DURATION       <clSetRecordingDuration:Calculate clSetRecordingSeconds:Calculate wsC_Variables:Worksheet 
                        >alInsertDualRecordStatInfo:ApplicationLog alSBDualRecordDBXactions:ApplicationLog 
                         clSetErrorReasonDLLCalleeMenu:Calculate clSetErrorReasonDLLCalleePIN:Calculate 
                         clSetErrorReasonDualRecordDLL:Calculate clSetErrorReasonSBDualRecordDLL:Calculate 
                         clSetErrorReasonSB_StatInfo:Calculate clSetErrorReasonStatInfo:Calculate 
                         clSetRecordingDuration:Calculate ifRecordingStarted:IfElse 
C_RECORD_SECONDS        <clSetRecordingSeconds:Calculate wsC_Variables:Worksheet 
                        >clSBDualRecStat:Calculate clSetRecordingSeconds:Calculate 
C_RECORD_STAT           <clSBDualRecStat:Calculate wsC_Variables:Worksheet 
                        >alSBDualRecordDBXactions:ApplicationLog 
C_RELEASE_LINE_FLAG     <clSetReleaseSecondLine:Calculate clSetSecondLineReleased:Calculate wsC_Variables:Worksheet 
                        >ifSecondLineNotReleased:IfElse 
C_SLAVE_FILENAME        <clSetDualSyncRecordParams:Calculate wsC_Variables:Worksheet 
                        >
C_SLAVE_LINE            <clSetSecondLineNumber:Calculate wsC_Variables:Worksheet 
                        >
C_SPKR_NUM              <wsC_Variables:Worksheet 
                        >
C_SQL_QUERY             <wsC_Variables:Worksheet 
                        >
C_START_SECONDS         <clSetCallStartSeconds:Calculate wsC_Variables:Worksheet 
                        >clCallDuration:Calculate clSetCallDuration:Calculate 
C_TALK_DURATION         <clSetTalkDuration:Calculate wsC_Variables:Worksheet 
                        >alInsertDualRecordStatInfo:ApplicationLog alSBDualRecordDBXactions:ApplicationLog 
                         clSetErrorReasonDLLCalleeMenu:Calculate clSetErrorReasonDLLCalleePIN:Calculate 
                         clSetErrorReasonDualRecordDLL:Calculate clSetErrorReasonSBDualRecordDLL:Calculate 
                         clSetErrorReasonSB_StatInfo:Calculate clSetErrorReasonStatInfo:Calculate 
                         clSetTalkDuration:Calculate 
C_TALK_END_SECONDS      <clSetTalkDuration:Calculate wsC_Variables:Worksheet 
                        >clSetTalkDuration:Calculate 
C_TALK_START_SECONDS    <clSetTalkStartSeconds:Calculate wsC_Variables:Worksheet 
                        >clSetTalkDuration:Calculate 
C_TIMEOUT_FLAG          <clSetCalleeInputNewTimeout:Calculate wsInitCalleeTimeoutFlag:Worksheet 
                        >ifCalleeTimeoutFlagSet:IfElse 
C_TOPIC                 <clGetTopic:Calculate wsC_Variables:Worksheet 
                        >alGetTopic:ApplicationLog 
DEBUG_TT                <ttTranslateTables:TranslateTables 
                        >clSetApplicationParams:Calculate 
delayOrBeep             <wsLeaveWordWorksheet:Worksheet 
                        >
DNIS_TT                 <ttTranslateTables:TranslateTables 
                        >clSetApplicationParams:Calculate 
drCheckDatabasePIN      <drCheckDatabasePIN:DataBaseRead 
                        >clSetErrorReasonMasterPIN:Calculate ifMasterPINFound:IfElse 
drCheckPreAssignedPIN   <drCheckPreAssignedPIN:DataBaseRead 
                        >ifRegPINFound:IfElse 
DualSyncTT              <ttTranslateTables:TranslateTables 
                        >clSetApplicationParams:Calculate clSetDualSyncRecordParams:Calculate 
D_APPL                  <clCheckDatabasePIN:Calculate drCheckDatabasePIN:DataBaseRead drCheckPreAssignedPIN:DataBaseRead 
                         wsD_Variables:Worksheet 
                        >alCheckDatabasePIN:ApplicationLog clCheckDatabasePIN:Calculate 
                         clSetErrorReasonMasterPIN:Calculate ifMasterPINFound:IfElse 
D_CALLEE_PIN            <clCalleeVal:Calculate clSetCalleePIN:Calculate clSWBDebugCallee:Calculate 
                         drGetCalleeList:DataBaseRead wsD_Variables:Worksheet 
                        >alCalleeVal:ApplicationLog alLogCallTrackInfo:ApplicationLog alLogPhoneNumbers:ApplicationLog 
                         alNumToDial:ApplicationLog alSBDualRecordDBXactions:ApplicationLog clCalleeVal:Calculate 
                         clSetCalleeName:Calculate clSetErrorReasonSB_StatInfo:Calculate clSWBDebugCallee:Calculate 
                         ifPINValid:IfElse 
D_LANGUAGE              <clCheckDatabasePIN:Calculate drCheckDatabasePIN:DataBaseRead drCheckPreAssignedPIN:DataBaseRead 
                         wsD_Variables:Worksheet 
                        >alCheckDatabasePIN:ApplicationLog clCheckDatabasePIN:Calculate ifMasterPINFound:IfElse 
D_PHONE_NUMBER          <drCheckPreAssignedPIN:DataBaseRead 
                        >ifRegistered:IfElse 
D_PIN_USAGE             <clCheckDatabasePIN:Calculate drCheckDatabasePIN:DataBaseRead wsD_Variables:Worksheet 
                        >alCheckDatabasePIN:ApplicationLog clCheckDatabasePIN:Calculate 
                         clSetErrorMsgToPINUsage:Calculate ifMasterPINBlocked:IfElse ifMasterPINInactive:IfElse 
D_RECRUIT_DATE          <clCheckDatabasePIN:Calculate drCheckDatabasePIN:DataBaseRead wsD_Variables:Worksheet 
                        >alCheckDatabasePIN:ApplicationLog clCheckDatabasePIN:Calculate 
                         clSetErrorMsgToRecruitDate:Calculate ifMasterPINOver30DaysOld:IfElse 
D_REC_COUNT             <wsD_Variables:Worksheet 
                        >
D_TOPIC                 <drGetTopic:DataBaseRead wsD_Variables:Worksheet 
                        >alSBDualRecordDBXactions:ApplicationLog clGetTopic:Calculate 
                         clSetErrorReasonSB_StatInfo:Calculate 
ERROR_TRIES             <clSetTimeoutAndErrorTries:Calculate wsC_Variables:Worksheet 
                        >ifMaxCalleeMenuTries:IfElse ifMaxCalleePINTries:IfElse ifRegPINFound:IfElse 
getArchiveQueSize       <getArchiveQueSize:UserDLL 
                        >chkDropThrough:IfElse 
GetCurrAltMsg           <GetCurrAltMsg:UserDLL 
                        >CalcRecAltMsg:IfElse 
getFreeSet              <getFreeSet:UserDLL 
                        >clSetErrorReasonLWGetFreeSet:Calculate 
getNormQueSize          <getNormQueSize:UserDLL 
                        >chkDropThrough:IfElse 
getPool                 <clSetLWGroupNumber:Calculate wsLeaveWordWorksheet:Worksheet 
                        >
getQue                  <calcNormalQue:Calculate setCurrArchive:Calculate setNoChange:Calculate 
                         wsLeaveWordWorksheet:Worksheet 
                        >calcArchiveQue:Calculate setNoChange:Calculate 
getString               <wsLeaveWordWorksheet:Worksheet 
                        >
I_AGE                   <clSetAge:Calculate wsI_Variables:Worksheet 
                        >alLogRegistrationInfo:ApplicationLog clSetErrorReasonDBRegPIN:Calculate 
                         clSetErrorReasonPINActivate:Calculate 
I_CALLER_PIN            <clSetMasterPIN:Calculate wsI_Variables:Worksheet 
                        >
I_CALLING_FROM_NUMBER   <clSetCallingFromNumber:Calculate clSetCallingFromNumberFromANI:Calculate 
                         wsI_Variables:Worksheet 
                        >alInsertDualRecordStatInfo:ApplicationLog alLogPhoneNumbers:ApplicationLog 
                         alSBDualRecordDBXactions:ApplicationLog clSetErrorReasonBadFROMNumber:Calculate 
                         clSetErrorReasonDLLCalleeMenu:Calculate clSetErrorReasonDLLCalleePIN:Calculate 
                         clSetErrorReasonDualRecordDLL:Calculate clSetErrorReasonSBDualRecordDLL:Calculate 
                         clSetErrorReasonSB_StatInfo:Calculate clSetErrorReasonStatInfo:Calculate 
                         ifBadCallingFromNumber:IfElse 
I_CALLING_TO_NUMBER     <clSetCallingToNumber:Calculate clSetNumberToCall:Calculate drGetCalleeList:DataBaseRead 
                         wsI_Variables:Worksheet 
                        >alCalleeVal:ApplicationLog alInsertDualRecordStatInfo:ApplicationLog 
                         alLogPhoneNumbers:ApplicationLog alSBDualRecordDBXactions:ApplicationLog clNumToDial:Calculate 
                         clSetErrorReasonBadTONumber:Calculate clSetErrorReasonDLLCalleeMenu:Calculate 
                         clSetErrorReasonDLLCalleePIN:Calculate clSetErrorReasonDualRecordDLL:Calculate 
                         clSetErrorReasonEndAfter1Min:Calculate clSetErrorReasonSBDualRecordDLL:Calculate 
                         clSetErrorReasonSB_StatInfo:Calculate clSetErrorReasonStatInfo:Calculate 
                         clSetNumberToCall:Calculate ifBadCallingToNumber:IfElse 
I_DIAL_NUM              <clNumToDial:Calculate wsI_Variables:Worksheet 
                        >alNumToDial:ApplicationLog 
I_EDUCATION             <clSetEducation12Years:Calculate clSetEducation15Years:Calculate clSetEducation17Years:Calculate 
                         wsI_Variables:Worksheet 
                        >alLogRegistrationInfo:ApplicationLog clSetErrorReasonDBRegPIN:Calculate 
                         clSetErrorReasonPINActivate:Calculate 
I_GENDER                <clSetGenderFemale:Calculate clSetGenderMale:Calculate wsI_Variables:Worksheet 
                        >alLogRegistrationInfo:ApplicationLog clSetErrorReasonDBRegPIN:Calculate 
                         clSetErrorReasonPINActivate:Calculate 
I_MASTER_PIN            <clResetPIN:Calculate clSetAssignedPIN:Calculate clSetMasterPIN:Calculate 
                         wsI_Variables:Worksheet 
                        >alCheckDatabasePIN:ApplicationLog alInsertDualRecordStatInfo:ApplicationLog 
                         alLogCallTrackInfo:ApplicationLog alLogPhoneNumbers:ApplicationLog 
                         alLogRegistrationInfo:ApplicationLog alSBDualRecordDBXactions:ApplicationLog 
                         clSetDualSyncRecordParams:Calculate clSetErrorReasonActivatePIN:Calculate 
                         clSetMasterPIN:Calculate clSetRecordItemFilename:Calculate clSetRecordNameFilename:Calculate 
                         clSetRecordPhoneTypeFilename:Calculate clSetRecordPINFilename:Calculate 
                         clSetRecordRegPhraseFilename:Calculate ifLangEnglishAndAdminPIN:IfElse ifNotDebugPIN:IfElse 
I_NUMBER_TO_CONTACT     <clSetNumberToContact:Calculate wsI_Variables:Worksheet 
                        >alLogRegistrationInfo:ApplicationLog clSetErrorReasonDBRegPIN:Calculate 
                         clSetErrorReasonPINActivate:Calculate 
I_PIN                   <wsI_Variables:Worksheet 
                        >
keyMask                 <wsLeaveWordWorksheet:Worksheet 
                        >
KeyOverIsON             <wsLeaveWordWorksheet:Worksheet 
                        >
MenuMaskTT              <ttTranslateTables:TranslateTables 
                        >clSetMainMenuMask:Calculate 
mfLWMsgGroupMenu        <mfLWMsgGroupMenu:MenuForm 
                        >clSetLWGroupNumber:Calculate 
msgSetVALID             <calcMsgSetVALID:Calculate wsLeaveWordWorksheet:Worksheet zeroMsgSetVALID:Calculate 
                        >ifLWMsgSetIN_APPL:IfElse 
msgsInSet               <wsLeaveWordWorksheet:Worksheet 
                        >
msgsPerSet              <wsLeaveWordWorksheet:Worksheet 
                        >
numBeeps                <wsLeaveWordWorksheet:Worksheet 
                        >
ParamsTT                <ttTranslateTables:TranslateTables 
                        >clSetApplicationParams:Calculate clSetCalleeInputNewTimeout:Calculate 
                         clSetTimeoutAndErrorTries:Calculate ifActivatePINFlagNotSet:IfElse 
                         ifLangEnglishAndAdminPIN:IfElse ifMasterPINInactive:IfElse ifMasterPINOver30DaysOld:IfElse 
                         udCheckDiskSpace:UserDLL 
playBEEPS               <wsLeaveWordWorksheet:Worksheet 
                        >
PolyPhoneTT             <ttTranslateTables:TranslateTables 
                        >clSetPolylistItem:Calculate clSetPolyphoneRecParams:Calculate 
putPool                 <clSetLWPoolID:Calculate wsLeaveWordWorksheet:Worksheet 
                        >
putQue                  <wsLeaveWordWorksheet:Worksheet 
                        >
rcrdmsg                 <SetRecAltMsgHigh:Calculate SetRecAltMsgLow:Calculate Worksheet1:Worksheet 
                        >
RegisterTT              <ttTranslateTables:TranslateTables 
                        >clSetRegistrationRecParams:Calculate 
response                <wsLeaveWordWorksheet:Worksheet 
                        >
TelephoneLine           <
                        >alInsertDualRecordStatInfo:ApplicationLog alSBDualRecordDBXactions:ApplicationLog 
TIMEOUT                 <clSetTimeoutAndErrorTries:Calculate wsC_Variables:Worksheet 
                        >clSetCalleeInputTimeout:Calculate 
TIMEOUT_TRIES           <clSetTimeoutAndErrorTries:Calculate wsC_Variables:Worksheet 
                        >clSetCalleeInputTimeout:Calculate ifMaxCalleePINTries:IfElse 
T_APPL_PATH             <clSetApplicationParams:Calculate wsT_Variables:Worksheet 
                        >clSetDualSyncRecordParams:Calculate clSetRecordItemFilename:Calculate 
                         clSetRecordNameFilename:Calculate clSetRecordPhoneTypeFilename:Calculate 
                         clSetRecordPINFilename:Calculate clSetRecordRegPhraseFilename:Calculate 
T_CALLEE_TIMEOUT        <clSetCalleeInputNewTimeout:Calculate clSetCalleeInputTimeout:Calculate wsT_Variables:Worksheet 
                        >
T_CALLEE_TRIES          <clSetCalleeInputNewTimeout:Calculate clSetCalleeInputTimeout:Calculate wsT_Variables:Worksheet 
                        >ifMaxCalleeMenuTries:IfElse 
T_DBG_CALLEE            <clSetApplicationParams:Calculate wsT_Variables:Worksheet 
                        >
T_DBG_CALLER            <clSetApplicationParams:Calculate wsT_Variables:Worksheet 
                        >ifNotDebugPIN:IfElse 
T_DEBUG                 <clSetApplicationParams:Calculate wsT_Variables:Worksheet 
                        >ifDebugSWB:IfElse 
T_DIAL_PREF             <clSetApplicationParams:Calculate wsT_Variables:Worksheet 
                        >clNumToDial:Calculate 
T_INTL_NUM_MAX_LENGTH   <clSetApplicationParams:Calculate wsT_Variables:Worksheet 
                        >anCH_CallingToNumber:AskForNumber anNumberToContact:AskForNumber 
T_ITEM_MSG              <clSetPolylistItem:Calculate wsT_Variables:Worksheet 
                        >ifEndOfPolyList:IfElse 
T_KEYOVER_FLAG          <wsT_Variables:Worksheet 
                        >
T_MAIN_MENU_MASK        <clSetMainMenuMask:Calculate wsT_Variables:Worksheet 
                        >ifCallFriendNoMenuMask:IfElse ifCallHomeNoMenuMask:IfElse ifNoMainMenuMask:IfElse 
                         ifPolyphoneNoMenuMask:IfElse ifSwitchboardNoMenuMask:IfElse 
T_MAX_LEADING_SILENCE   <clSetPolyphoneRecParams:Calculate clSetRegistrationRecParams:Calculate wsT_Variables:Worksheet 
                        >
T_MAX_RECORD_TIME       <clSetDualSyncRecordParams:Calculate clSetPolyphoneRecParams:Calculate 
                         clSetRegistrationRecParams:Calculate wsT_Variables:Worksheet 
                        >
T_MAX_SB_CAND           <clSetApplicationParams:Calculate wsT_Variables:Worksheet 
                        >
T_MAX_TRAILING_SILENCE  <clSetPolyphoneRecParams:Calculate clSetRegistrationRecParams:Calculate wsT_Variables:Worksheet 
                        >
T_MENU_MASK             <clSetMainMenuMask:Calculate wsT_Variables:Worksheet 
                        >clSetMainMenuMask:Calculate dmCallFriendMenu:DynamicMenu dmCallHomeMenu:DynamicMenu 
                         dmPolyphoneMenu:DynamicMenu dmSwitchboardMenu:DynamicMenu 
T_OFFSET                <clSetApplicationParams:Calculate wsT_Variables:Worksheet 
                        >clSetErrorReasonDLLCalleeMenu:Calculate clSetErrorReasonDLLCalleePIN:Calculate 
                         clSetErrorReasonDualRecordDLL:Calculate clSetErrorReasonSBDualRecordDLL:Calculate 
                         clSetErrorReasonSB_StatInfo:Calculate clSetErrorReasonStatInfo:Calculate 
T_PIN_MAX_LENGTH        <clSetApplicationParams:Calculate wsT_Variables:Worksheet 
                        >anAssignedPIN:AskForNumber anCalleePIN:AskForNumber anPIN:AskForNumber 
T_PIN_MIN_LENGTH        <clSetApplicationParams:Calculate wsT_Variables:Worksheet 
                        >
T_RECORD_END_WAIT       <clSetDualSyncRecordParams:Calculate wsT_Variables:Worksheet 
                        >
T_RECORD_START_WAIT     <clSetDualSyncRecordParams:Calculate wsT_Variables:Worksheet 
                        >
T_SUBJ_NAME_OFFSET      <clSetApplicationParams:Calculate wsT_Variables:Worksheet 
                        >
udAskCalleePIN          <udAskCalleePIN:UserDLL 
                        >clSetErrorReasonDLLCalleePIN:Calculate csAskCalleePINRetval:Case 
udCalleeMenu            <udCalleeMenu:UserDLL 
                        >clSetErrorReasonDLLCalleeMenu:Calculate csCalleeMenuRetval:Case 
udConnectLines          <udConnectLines:UserDLL 
                        >clSetErrorReasonConnectLines:Calculate 
udDisconnectLines       <udDisconnectLines:UserDLL 
                        >clSetErrorReasonDisconnectLines:Calculate 
udDualSyncRecord        <udDualSyncRecord:UserDLL 
                        >clSetErrorReasonDualRecordDLL:Calculate ifCallersStillTalking:IfElse 
udGetCallStatus         <udGetCallStatus:UserDLL 
                        >alAnsweringMachine:ApplicationLog alCallAnswered:ApplicationLog alFaxModem:ApplicationLog 
                         alGetCallStatus:ApplicationLog alLineWasBusy:ApplicationLog alSBCallBadStatus:ApplicationLog 
                         alSBCallNotAnswered:ApplicationLog csCallResult:Case ifSBCallNotAnswered:IfElse 
udGetDuration           <udGetDuration:UserDLL 
                        >clSetRecordingSeconds:Calculate 
udGetLineAndDial        <udGetLineAndDial:UserDLL 
                        >alGetLineResult:ApplicationLog clSetErrorReasonGetLineAndDial:Calculate 
                         clSetSecondLineNumber:Calculate 
udInitOutboundLineGroup <udInitOutboundLineGroup:UserDLL 
                        >alLogInitError:ApplicationLog clSetErrorReasonConnectInit:Calculate 
udMonitorLines          <udMonitorLines:UserDLL 
                        >ifHangupNotDetected:IfElse 
udRecordPhoneType       <udRecordPhoneType:UserDLL 
                        >clSetErrorReasonPhoneTypeRecord:Calculate ifRecordPhoneTypeTimeout:IfElse 
udRecordPolylistItem    <udRecordPolylistItem:UserDLL 
                        >clSetErrorReasonItemRecord:Calculate ifRecordItemTimeout:IfElse 
udRecordSpeakerPIN      <udRecordSpeakerPIN:UserDLL 
                        >clSetErrorReasonPINRecord:Calculate ifRecordPINTimeout:IfElse 
udReleaseSecondLine     <udReleaseSecondLine:UserDLL 
                        >alReleaseLineResult:ApplicationLog 
udSBDualSyncRecord      <udSBDualSyncRecord:UserDLL 
                        >clSetErrorReasonSBDualRecordDLL:Calculate ifSBCallersStillTalking:IfElse 
whCheckPreAssignedPIN   <whCheckPreAssignedPIN:While 
                        >ifRegPINFound:IfElse 
whRecordPolyListLoop    <whRecordPolyListLoop:While 
                        >clSetPolylistItem:Calculate 
yvbias1                 <Worksheet1:Worksheet 
                        >SetRecAltMsgLow:Calculate 
yvbias2                 <Worksheet1:Worksheet 
                        >CalcRecAltMsg:IfElse SetRecAltMsgHigh:Calculate 
YVDirectPrompt          <YVDirectPrompt:AskForNumber 
                        >IfValidYVMsgNumber:IfElse 
yvindex                 <CalculateYVNext:Calculate CalculateYVPrev:Calculate SetDirectMsgNumber:Calculate 
                         SetFirst:Calculate SetLast:Calculate Worksheet1:Worksheet 
                        >CalculateYVNext:Calculate CalculateYVPrev:Calculate PastYVEnd:IfElse RollbackValue:IfElse 
                         SetLast:Calculate SetRecAltMsgHigh:Calculate SetRecAltMsgLow:Calculate 
YVMsgs                  <ttTranslateTables:TranslateTables 
                        >IfValidYVMsgNumber:IfElse PastYVEnd:IfElse SetRecAltMsgHigh:Calculate SetRecAltMsgLow:Calculate 
                         ValidYVMsgNumber:While 
yvtempindex             <IncTempIndex:Calculate Worksheet2:Worksheet 
                        >IfValidYVMsgNumber:IfElse IncTempIndex:Calculate SetDirectMsgNumber:Calculate 
                         ValidYVMsgNumber:While 

Messages cross-reference

CalculatedNumber PlayNewMsg playTotalNewAndArchivedMsgs PlayYVMsgs plLWMessage plRecordItemPrompt 
                 plSpeakRegPhraseAfterTheTone plWelcome YVAltNewMsg YVAltOrigMsg 
251              plCallingFromNumber plCallingToNumber plNumberToContact 
307              caAnswerCall 
308              caAnswerCall 
317              RecordNewYVMsg 
318              rcLWRecordNameAndAddress RecordNewYVMsg 
319              PlayNoMore 
320              YVDirectPrompt 
322              PlayNotValid YVDirectPrompt 
327              plNoMoreMsgs 
328              caAnswerCall 
504              plTryAgainLater 
505              dmCallFriendMenu dmCallHomeMenu 
506              dmCallFriendMenu dmCallHomeMenu dmPolyphoneMenu dmSwitchboardMenu 
507              dmCallFriendMenu dmCallHomeMenu dmPolyphoneMenu dmSwitchboardMenu 
508              dmCallHomeMenu 
509              dmCallFriendMenu dmCallHomeMenu dmPolyphoneMenu dmStartRecordingMenu dmSwitchboardMenu 
510              plCallHomeInstructions 
511              dmCallFriendMenu 
512              plCallFriendInstructions 
513              dmSwitchboardMenu 
514              dmSwitchboardMenu 
515              plSwitchboardInstructions 
516              dmPolyphoneMenu 
517              dmPolyphoneMenu 
518              plPolyphoneInstructions 
519              anPIN 
520              plPINExpired 
521              plPINNoLongerActive 
522              plInvalidEntry 
523              plContactProjManager 
524              mfLeaveMessageMenu 
525              rcLWRecordNameAndAddress 
527              anCallingFromNumber 
528              plUnableToPlaceCall 
529              anCH_CallingToNumber 
530              anCF_CallingToNumber 
532              mfVerifyCallingFromNumber mfVerifyCallingToNumber mfVerifyNumberToContact 
533              plIntroduction 
534              dmStartRecordingMenu 
537              plThanksForCalling 
538              mfAdminOptionsMenu 
539              anAssignedPIN anCalleePIN 
540              plAlreadyRegistered 
541              mfGenderMenu 
542              anAge 
543              mfEducationMenu 
544              anNumberToContact 
545              plSpeakNameAfterTheTone 
550              plUnableToRegister 
551              plPINActivated 
552              plSeeProjManager 
553              plRegButNotActivated 
554              plMayOnlyUseOncePerDay 
561              plCalleeNotAvailable plCallNotAccepted 
562              plCallNotAnswered 
563              plLineWasBusy 
564              plHoldWhileCalleeLocated 
565              plNoOneAvailable 
570              plSpeakPINAfterTheTone 
571              plCannotRecordButPINStillActive 
572              plNumberToCall 
573              plIndicatePhoneType 
574              YVMenu 
575              VerifyNewYVMsg 
576              MsgReplaced 
577              mfLWMsgGroupMenu 
582              plMsgSetDeleted 
583              plMsgSetArchived 
584              plInvalidSelection VerifyNewYVMsg 
585              plUnableToProcessRequest 
586              plExceededTimeLimit 
597              plNoMsgsToTranscribe 
598              normOrArchive 
599              mfLWTranscribeMenu 
601              plMayOnlyUsePhoneOnce 
624              plSorryWereClosed 
999              plTest_prompt 
