2 # Copyright (C) 2006-2008 Georgia Public Library Service
4 # Author: David J. Fiander
6 # This program is free software; you can redistribute it and/or
7 # modify it under the terms of version 2 of the GNU General Public
8 # License as published by the Free Software Foundation.
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
15 # You should have received a copy of the GNU General Public
16 # License along with this program; if not, write to the Free
17 # Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
22 # Various protocol constant values for 3M's Standard Interchange
23 # Protocol for communication between a library's Automated
24 # Checkout System (ACS) and stand-alone Self-Check (SC) units
26 package Sip::Constants;
32 our (@ISA, @EXPORT_OK, %EXPORT_TAGS, $VERSION);
42 SC_STATUS REQUEST_ACS_RESEND
43 LOGIN PATRON_INFO END_PATRON_SESSION
44 FEE_PAID ITEM_INFORMATION ITEM_STATUS_UPDATE
52 CHECKOUT_RESP CHECKIN_RESP
53 ACS_STATUS REQUEST_SC_RESEND
54 LOGIN_RESP PATRON_INFO_RESP END_SESSION_RESP
55 FEE_PAID_RESP ITEM_INFO_RESP ITEM_STATUS_UPDATE_RESP
56 HOLD_RESP RENEW_RESP RENEW_ALL_RESP
60 SC_status => [qw(SC_STATUS_OK SC_STATUS_PAPER SC_STATUS_SHUTDOWN)],
61 formats => [qw(SIP_DATETIME)],
62 constant_msgs => [qw(REQUEST_ACS_RESEND_CKSUM REQUEST_SC_RESEND_CKSUM)],
65 FID_PATRON_ID FID_ITEM_ID
66 FID_TERMINAL_PWD FID_PATRON_PWD
67 FID_PERSONAL_NAME FID_DUE_DATE
68 FID_SCREEN_MSG FID_PRINT_LINE
69 FID_TITLE_ID FID_BLOCKED_CARD_MSG
70 FID_TERMINAL_LOCN FID_INST_ID
71 FID_CURRENT_LOCN FID_LIBRARY_NAME
72 FID_PERM_LOCN FID_HOME_LIBRARY
73 FID_HOLD_ITEMS FID_HOLD_ITEMS_LMT
74 FID_OVERDUE_ITEMS FID_OVERDUE_ITEMS_LMT
75 FID_CHARGED_ITEMS FID_CHARGED_ITEMS_LMT
76 FID_FINE_ITEMS FID_SEQNO
77 FID_CKSUM FID_HOME_ADDR
78 FID_EMAIL FID_HOME_PHONE
79 FID_OWNER FID_CURRENCY
81 FID_TRANSACTION_ID FID_VALID_PATRON
85 FID_START_ITEM FID_END_ITEM FID_QUEUE_POS
86 FID_PICKUP_LOCN FID_FEE_TYPE
88 FID_FEE_AMT FID_FEE_LMT
92 FID_UNAVAILABLE_HOLD_ITEMS
94 FID_FEE_ID FID_ITEM_PROPS
95 FID_RECALL_DATE FID_SECURITY_INHIBIT
96 FID_MEDIA_TYPE FID_SORT_BIN
98 FID_LOGIN_UID FID_LOGIN_PWD
107 FID_DESTINATION_LOCATION
111 FID_PATRON_INTERNAL_ID
115 # Add the contents of the other ":class" tags to make an ":all" class (deleting duplicates)
116 # This is the textbook example from http://perldoc.perl.org/Exporter.html
118 push @{$EXPORT_TAGS{all}}, grep {!$seen{$_}++} @{$EXPORT_TAGS{$_}} foreach keys %EXPORT_TAGS;
119 Exporter::export_ok_tags('all'); # now add :all to @EXPORT_OK
123 # Declare message types
126 # Messages from SC to ACS
128 PATRON_STATUS_REQ => '23',
131 BLOCK_PATRON => '01',
133 REQUEST_ACS_RESEND => '97',
136 END_PATRON_SESSION => '35',
138 ITEM_INFORMATION => '17',
139 ITEM_STATUS_UPDATE => '19',
140 PATRON_ENABLE => '25',
146 # Message responses from ACS to SC
148 PATRON_STATUS_RESP => '24',
149 CHECKOUT_RESP => '12',
150 CHECKIN_RESP => '10',
152 REQUEST_SC_RESEND => '96',
154 PATRON_INFO_RESP => '64',
155 END_SESSION_RESP => '36',
156 FEE_PAID_RESP => '38',
157 ITEM_INFO_RESP => '18',
158 ITEM_STATUS_UPDATE_RESP => '20',
159 PATRON_ENABLE_RESP => '26',
162 RENEW_ALL_RESP => '66',
166 # Some messages are short and invariant, so they're constant's too
169 REQUEST_ACS_RESEND_CKSUM => '97AZFEF5',
170 REQUEST_SC_RESEND_CKSUM => '96AZFEF6',
177 FID_PATRON_ID => 'AA',
179 FID_TERMINAL_PWD => 'AC',
180 FID_PATRON_PWD => 'AD',
181 FID_PERSONAL_NAME => 'AE',
182 FID_SCREEN_MSG => 'AF',
183 FID_PRINT_LINE => 'AG',
184 FID_DUE_DATE => 'AH',
186 FID_TITLE_ID => 'AJ',
188 FID_BLOCKED_CARD_MSG => 'AL',
189 FID_LIBRARY_NAME => 'AM',
190 FID_TERMINAL_LOCN => 'AN',
192 FID_CURRENT_LOCN => 'AP',
193 FID_PERM_LOCN => 'AQ',
194 FID_HOME_LIBRARY => 'AQ', # Extension: AQ in patron info
196 FID_HOLD_ITEMS => 'AS', # SIP 2.0
197 FID_OVERDUE_ITEMS => 'AT', # SIP 2.0
198 FID_CHARGED_ITEMS => 'AU', # SIP 2.0
199 FID_FINE_ITEMS => 'AV', # SIP 2.0
209 FID_HOME_ADDR => 'BD',
211 FID_HOME_PHONE => 'BF',
213 FID_CURRENCY => 'BH',
216 FID_TRANSACTION_ID => 'BK',
217 FID_VALID_PATRON => 'BL',
218 FID_RENEWED_ITEMS => 'BM',
219 FID_UNRENEWED_ITEMS => 'BN',
221 FID_START_ITEM => 'BP',
222 FID_END_ITEM => 'BQ',
223 FID_QUEUE_POS => 'BR',
224 FID_PICKUP_LOCN => 'BS',
225 FID_FEE_TYPE => 'BT',
226 FID_RECALL_ITEMS => 'BU',
228 FID_EXPIRATION => 'BW',
229 FID_SUPPORTED_MSGS => 'BX',
230 FID_HOLD_TYPE => 'BY',
231 FID_HOLD_ITEMS_LMT => 'BZ',
232 FID_OVERDUE_ITEMS_LMT => 'CA',
233 FID_CHARGED_ITEMS_LMT => 'CB',
235 FID_UNAVAILABLE_HOLD_ITEMS => 'CD',
237 FID_HOLD_QUEUE_LEN => 'CF',
239 FID_ITEM_PROPS => 'CH',
240 FID_SECURITY_INHIBIT => 'CI',
241 FID_RECALL_DATE => 'CJ',
242 FID_MEDIA_TYPE => 'CK',
243 FID_SORT_BIN => 'CL',
244 FID_HOLD_PICKUP_DATE => 'CM',
245 FID_LOGIN_UID => 'CN',
246 FID_LOGIN_PWD => 'CO',
247 FID_LOCATION_CODE => 'CP',
248 FID_VALID_PATRON_PWD => 'CQ',
250 # SIP Extensions used by Envisionware Terminals
251 FID_PATRON_EXPIRE => 'PA',
252 FID_PATRON_BIRTHDATE => 'PB',
253 FID_PATRON_CLASS => 'PC',
255 # SIP Extension for reporting patron internet privileges... application unknown
256 FID_INET_PROFILE => 'PI',
258 # SIP Extensions by 3M spec: Document Revision 1.20, 02/14/2005
259 FID_COLLECTION_CODE => 'CR',
260 FID_CALL_NUMBER => 'CS',
261 FID_DESTINATION_LOCATION => 'CT',
262 FID_ALERT_TYPE => 'CV',
263 FID_HOLD_PATRON_ID => 'CY',
264 FID_HOLD_PATRON_NAME => 'DA',
266 # SIP Extension by Evergreen for AMH: 10/01/2001
267 FID_PATRON_INTERNAL_ID => 'XI',
275 SC_STATUS_PAPER => '1',
276 SC_STATUS_SHUTDOWN => '2',
280 # Various format strings
283 SIP_DATETIME => "%Y%m%d %H%M%S",