4 # Various protocol constant values for 3M's Standard Interchange
5 # Protocol for communication between a library's Automated
6 # Checkout System (ACS) and stand-alone Self-Check (SC) units
8 package Sip::Constants;
14 our (@ISA, @EXPORT_OK, %EXPORT_TAGS);
18 @EXPORT_OK = qw(PATRON_STATUS_REQ CHECKOUT CHECKIN BLOCK_PATRON
19 SC_STATUS REQUEST_ACS_RESEND LOGIN PATRON_INFO
20 END_PATRON_SESSION FEE_PAID ITEM_INFORMATION
21 ITEM_STATUS_UPDATE PATRON_ENABLE HOLD RENEW
22 RENEW_ALL PATRON_STATUS_RESP CHECKOUT_RESP
23 CHECKIN_RESP ACS_STATUS REQUEST_SC_RESEND
24 LOGIN_RESP PATRON_INFO_RESP END_SESSION_RESP
25 FEE_PAID_RESP ITEM_INFO_RESP
26 ITEM_STATUS_UPDATE_RESP PATRON_ENABLE_RESP
27 HOLD_RESP RENEW_RESP RENEW_ALL_RESP
28 REQUEST_ACS_RESEND_CKSUM REQUEST_SC_RESEND_CKSUM
29 FID_PATRON_ID FID_ITEM_ID FID_TERMINAL_PWD
30 FID_PATRON_PWD FID_PERSONAL_NAME FID_SCREEN_MSG
31 FID_PRINT_LINE FID_DUE_DATE FID_TITLE_ID
32 FID_BLOCKED_CARD_MSG FID_LIBRARY_NAME
33 FID_TERMINAL_LOCN FID_INST_ID FID_CURRENT_LOCN
34 FID_PERM_LOCN FID_HOLD_ITEMS FID_OVERDUE_ITEMS
35 FID_CHARGED_ITEMS FID_FINE_ITEMS FID_SEQNO
36 FID_CKSUM FID_HOME_ADDR FID_EMAIL FID_HOME_PHONE
37 FID_OWNER FID_CURRENCY FID_CANCEL
38 FID_TRANSACTION_ID FID_VALID_PATRON
39 FID_RENEWED_ITEMS FID_UNRENEWED_ITEMS FID_FEE_ACK
40 FID_START_ITEM FID_END_ITEM FID_QUEUE_POS
41 FID_PICKUP_LOCN FID_FEE_TYPE FID_RECALL_ITEMS
42 FID_FEE_AMT FID_EXPIRATION FID_SUPPORTED_MSGS
43 FID_HOLD_TYPE FID_HOLD_ITEMS_LMT
44 FID_OVERDUE_ITEMS_LMT FID_CHARGED_ITEMS_LMT
45 FID_FEE_LMT FID_UNAVAILABLE_HOLD_ITEMS
46 FID_HOLD_QUEUE_LEN FID_FEE_ID FID_ITEM_PROPS
47 FID_SECURITY_INHIBIT FID_RECALL_DATE
48 FID_MEDIA_TYPE FID_SORT_BIN FID_HOLD_PICKUP_DATE
49 FID_LOGIN_UID FID_LOGIN_PWD FID_LOCATION_CODE
52 FID_PATRON_BIRTHDATE FID_PATRON_CLASS FID_INET_PROFILE
54 SC_STATUS_OK SC_STATUS_PAPER SC_STATUS_SHUTDOWN
59 SC_msgs => [qw(PATRON_STATUS_REQ CHECKOUT CHECKIN
60 BLOCK_PATRON SC_STATUS
61 REQUEST_ACS_RESEND LOGIN
63 END_PATRON_SESSION FEE_PAID
66 PATRON_ENABLE HOLD RENEW
69 ACS_msgs => [qw(PATRON_STATUS_RESP CHECKOUT_RESP
70 CHECKIN_RESP ACS_STATUS
71 REQUEST_SC_RESEND LOGIN_RESP
74 FEE_PAID_RESP ITEM_INFO_RESP
75 ITEM_STATUS_UPDATE_RESP
76 PATRON_ENABLE_RESP HOLD_RESP
77 RENEW_RESP RENEW_ALL_RESP)],
79 constant_msgs => [qw(REQUEST_ACS_RESEND_CKSUM
80 REQUEST_SC_RESEND_CKSUM)],
82 field_ids => [qw( FID_PATRON_ID FID_ITEM_ID
87 FID_PRINT_LINE FID_DUE_DATE
98 FID_FINE_ITEMS FID_SEQNO
99 FID_CKSUM FID_HOME_ADDR
100 FID_EMAIL FID_HOME_PHONE
101 FID_OWNER FID_CURRENCY
107 FID_FEE_ACK FID_START_ITEM
108 FID_END_ITEM FID_QUEUE_POS
112 FID_FEE_AMT FID_EXPIRATION
116 FID_OVERDUE_ITEMS_LMT
117 FID_CHARGED_ITEMS_LMT
119 FID_UNAVAILABLE_HOLD_ITEMS
121 FID_FEE_ID FID_ITEM_PROPS
124 FID_MEDIA_TYPE FID_SORT_BIN
126 FID_LOGIN_UID FID_LOGIN_PWD
134 SC_status => [qw(SC_STATUS_OK SC_STATUS_PAPER
135 SC_STATUS_SHUTDOWN)],
137 formats => [qw(SIP_DATETIME)],
139 all => [qw(PATRON_STATUS_REQ CHECKOUT CHECKIN
140 BLOCK_PATRON SC_STATUS
141 REQUEST_ACS_RESEND LOGIN PATRON_INFO
142 END_PATRON_SESSION FEE_PAID
143 ITEM_INFORMATION ITEM_STATUS_UPDATE
144 PATRON_ENABLE HOLD RENEW RENEW_ALL
145 PATRON_STATUS_RESP CHECKOUT_RESP
146 CHECKIN_RESP ACS_STATUS
147 REQUEST_SC_RESEND LOGIN_RESP
148 PATRON_INFO_RESP END_SESSION_RESP
149 FEE_PAID_RESP ITEM_INFO_RESP
150 ITEM_STATUS_UPDATE_RESP
151 PATRON_ENABLE_RESP HOLD_RESP
152 RENEW_RESP RENEW_ALL_RESP
153 REQUEST_ACS_RESEND_CKSUM
154 REQUEST_SC_RESEND_CKSUM FID_PATRON_ID
155 FID_ITEM_ID FID_TERMINAL_PWD
156 FID_PATRON_PWD FID_PERSONAL_NAME
157 FID_SCREEN_MSG FID_PRINT_LINE
158 FID_DUE_DATE FID_TITLE_ID
159 FID_BLOCKED_CARD_MSG FID_LIBRARY_NAME
160 FID_TERMINAL_LOCN FID_INST_ID
161 FID_CURRENT_LOCN FID_PERM_LOCN
162 FID_HOLD_ITEMS FID_OVERDUE_ITEMS
163 FID_CHARGED_ITEMS FID_FINE_ITEMS
164 FID_SEQNO FID_CKSUM FID_HOME_ADDR
165 FID_EMAIL FID_HOME_PHONE FID_OWNER
166 FID_CURRENCY FID_CANCEL
167 FID_TRANSACTION_ID FID_VALID_PATRON
168 FID_RENEWED_ITEMS FID_UNRENEWED_ITEMS
169 FID_FEE_ACK FID_START_ITEM
170 FID_END_ITEM FID_QUEUE_POS
171 FID_PICKUP_LOCN FID_FEE_TYPE
172 FID_RECALL_ITEMS FID_FEE_AMT
173 FID_EXPIRATION FID_SUPPORTED_MSGS
174 FID_HOLD_TYPE FID_HOLD_ITEMS_LMT
175 FID_OVERDUE_ITEMS_LMT
176 FID_CHARGED_ITEMS_LMT FID_FEE_LMT
177 FID_UNAVAILABLE_HOLD_ITEMS
178 FID_HOLD_QUEUE_LEN FID_FEE_ID
179 FID_ITEM_PROPS FID_SECURITY_INHIBIT
180 FID_RECALL_DATE FID_MEDIA_TYPE
181 FID_SORT_BIN FID_HOLD_PICKUP_DATE
182 FID_LOGIN_UID FID_LOGIN_PWD
183 FID_LOCATION_CODE FID_VALID_PATRON_PWD
184 FID_PATRON_BIRTHDATE FID_PATRON_CLASS
186 SC_STATUS_OK SC_STATUS_PAPER SC_STATUS_SHUTDOWN
191 # Declare message types
194 # Messages from SC to ACS
196 PATRON_STATUS_REQ => '23',
199 BLOCK_PATRON => '01',
201 REQUEST_ACS_RESEND => '97',
204 END_PATRON_SESSION => '35',
206 ITEM_INFORMATION => '17',
207 ITEM_STATUS_UPDATE => '19',
208 PATRON_ENABLE => '25',
214 # Message responses from ACS to SC
216 PATRON_STATUS_RESP => '24',
217 CHECKOUT_RESP => '12',
218 CHECKIN_RESP => '10',
220 REQUEST_SC_RESEND => '96',
222 PATRON_INFO_RESP => '64',
223 END_SESSION_RESP => '36',
224 FEE_PAID_RESP => '38',
225 ITEM_INFO_RESP => '18',
226 ITEM_STATUS_UPDATE_RESP => '20',
227 PATRON_ENABLE_RESP => '26',
230 RENEW_ALL_RESP => '66',
234 # Some messages are short and invariant, so they're constant's too
237 REQUEST_ACS_RESEND_CKSUM => '97AZFEF5',
238 REQUEST_SC_RESEND_CKSUM => '96AZFEF6',
245 FID_PATRON_ID => 'AA',
247 FID_TERMINAL_PWD => 'AC',
248 FID_PATRON_PWD => 'AD',
249 FID_PERSONAL_NAME => 'AE',
250 FID_SCREEN_MSG => 'AF',
251 FID_PRINT_LINE => 'AG',
252 FID_DUE_DATE => 'AH',
254 FID_TITLE_ID => 'AJ',
256 FID_BLOCKED_CARD_MSG => 'AL',
257 FID_LIBRARY_NAME => 'AM',
258 FID_TERMINAL_LOCN => 'AN',
260 FID_CURRENT_LOCN => 'AP',
261 FID_PERM_LOCN => 'AQ',
263 FID_HOLD_ITEMS => 'AS', # SIP 2.0
264 FID_OVERDUE_ITEMS => 'AT', # SIP 2.0
265 FID_CHARGED_ITEMS => 'AU', # SIP 2.0
266 FID_FINE_ITEMS => 'AV', # SIP 2.0
276 FID_HOME_ADDR => 'BD',
278 FID_HOME_PHONE => 'BF',
280 FID_CURRENCY => 'BH',
283 FID_TRANSACTION_ID => 'BK',
284 FID_VALID_PATRON => 'BL',
285 FID_RENEWED_ITEMS => 'BM',
286 FID_UNRENEWED_ITEMS => 'BN',
288 FID_START_ITEM => 'BP',
289 FID_END_ITEM => 'BQ',
290 FID_QUEUE_POS => 'BR',
291 FID_PICKUP_LOCN => 'BS',
292 FID_FEE_TYPE => 'BT',
293 FID_RECALL_ITEMS => 'BU',
295 FID_EXPIRATION => 'BW',
296 FID_SUPPORTED_MSGS => 'BX',
297 FID_HOLD_TYPE => 'BY',
298 FID_HOLD_ITEMS_LMT => 'BZ',
299 FID_OVERDUE_ITEMS_LMT => 'CA',
300 FID_CHARGED_ITEMS_LMT => 'CB',
302 FID_UNAVAILABLE_HOLD_ITEMS => 'CD',
304 FID_HOLD_QUEUE_LEN => 'CF',
306 FID_ITEM_PROPS => 'CH',
307 FID_SECURITY_INHIBIT => 'CI',
308 FID_RECALL_DATE => 'CJ',
309 FID_MEDIA_TYPE => 'CK',
310 FID_SORT_BIN => 'CL',
311 FID_HOLD_PICKUP_DATE => 'CM',
312 FID_LOGIN_UID => 'CN',
313 FID_LOGIN_PWD => 'CO',
314 FID_LOCATION_CODE => 'CP',
315 FID_VALID_PATRON_PWD => 'CQ',
317 # SIP Extensions used by Envisionware Terminals
318 FID_PATRON_BIRTHDATE => 'PB',
319 FID_PATRON_CLASS => 'PC',
321 # SIP Extension for reporting patron internet privileges
322 FID_INET_PROFILE => 'PI',
330 SC_STATUS_PAPER => '1',
331 SC_STATUS_SHUTDOWN => '2',
335 # Various format strings
338 SIP_DATETIME => "%Y%m%d %H%M%S",