Koha/etc/SIPconfig.xml
Nick Clemens 41b5db64b3
Bug 20816: Add ability to define custom templated fields in SIP patron responses
To test:
 1 - You will need to enable SIP on your testing instance
    cp etc/SIPconfig.xml /etc/koha/sites/kohadev/
    sudo koha-start-sip
    add a user listed in the SIPconfig to your system and give them permissions (superlibrarian works)
    on koha-testing-docker you should be able to start sip with user koha/koha without any adjustments
 2 - If you copied the above file you should be set to get custom field DE with dateexpiry
     Otherwise edit the sip login for the user to have a custom section like:
		  <login id="koha"   password="koha"  delimiter="|" error-detect="enabled" institution="kohalibrary" encoding="utf8" >
			  <custom_patron_field field="DE" template="[% patron.dateexpiry %]" />
		  </login>
 3 - send a status test using the sip cli tester:
     perl misc/sip_cli_emulator.pl -a 127.0.0.1 -p 6001 -su koha -sp koha -l kohalibrary --patron 23529001000463 -m patron_status_request
 4 - send an information test using the sip cli tester:
     perl misc/sip_cli_emulator.pl -a 127.0.0.1 -p 6001 -su koha -sp koha -l kohalibrary --patron 23529001000463 -m patron_information
 5 - confirm you receive the DE field with a dateexpiry
 6 - Add your own custom fields and confirm it works with several
         <custom_patron_field field="EW" template="Phone: [% patron.phone %] Email: [% patron.email %]" />
 7 - prove -v t/db_dependent/SIP/Patron.t
 8 - prove -v t/db_dependent/SIP/

Signed-off-by: Andrew Fuerste-Henry <andrew@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
2020-04-22 13:31:59 +01:00

119 lines
4.6 KiB
XML

<acsconfig xmlns="http://openncip.org/acs-config/1.0/">
<!-- above address gets nothing, it's just a namespace -->
<error-detect enabled="true" />
<!--
Set Net::Server::PreFork runtime parameters
syslog_ident will identify SIP2 Koha server entries in syslog
For OpenSolaris, add: syslog_logsock=stream
-->
<server-params
min_servers='1'
min_spare_servers='0'
log_file='Sys::Syslog'
syslog_ident='koha_sip'
syslog_facility='local6'
/>
<listeners>
<!-- vestigial HTTP, never implemented: just use the OPAC!
<service
port="0:8080/tcp"
transport="http"
protocol="NCIP/1.0" />
-->
<service
port="8023/tcp"
transport="telnet"
protocol="SIP/2.00"
timeout="60" />
<service
port="127.0.0.1:6001/tcp"
transport="RAW"
protocol="SIP/2.00"
client_timeout="600"
timeout="60" />
<!--- client_timeout times out active connections which have not received
input from the client. Many persistent connections will send a status request
every 5-7 mins so setting this to less than that will add instability to the connection
if explicitly set to zero, no timeout is applied to the connection.
NB the parameter timeout applies to the login process only and should be set to a lower value
to time out failed connections
-->
</listeners>
<accounts>
<login id="staff" password="staff" delimiter="|" error-detect="enabled" institution="CPL" encoding="ascii" checked_in_ok="1" payment_type_writeoff="06" disallow_overpayment="1" />
<login id="koha" password="koha" delimiter="|" error-detect="enabled" institution="kohalibrary" encoding="utf8" />
<login id="koha2" password="koha" institution="kohalibrary2" terminator="CR" />
<login id="lpl-sc" password="1234" institution="LPL" />
<login id="lpl-sc-beacock" password="xyzzy"
delimiter="|" error-detect="enabled" institution="LPL"
send_patron_home_library_in_af="1"
cv_send_00_on_success="1"
ct_always_send="1"
cv_triggers_alert="1"
allow_empty_passwords="1"
ae_field_template="[% patron.surname %][% IF patron.firstname %], [% patron.firstname %][% END %]"
da_field_template="[% patron.surname %][% IF patron.firstname %], [% patron.firstname %][% END %]"
av_field_template="[% accountline.description %] [% accountline.amountoutstanding | format('%.2f') %]"
hide_fields="BD,BE,BF,PB"
register_id=''>
<screen_msg_regex find="Greetings from Koha." replace="Welcome to your library!" />
<screen_msg_regex find="Invalid patron barcode." replace="Barcode not found, are you sure this is your library card?" />
<patron_attribute field="XY" code="CODE" />
<syspref_overrides>
<AllFinesNeedOverride>0</AllFinesNeedOverride>
</syspref_overrides>
<custom_patron_field field="DE" template="[% patron.dateexpiry %]" />
</login>
</accounts>
<!--
Institution tags are for enabled branches. There needs to be one
institution stanza for each institution named in the accounts above.
The implementation attribute is actually used to find the code to run,
in our case "ILS".
-->
<institutions>
<institution id="MAIN" implementation="ILS" parms="">
<policy checkin="true" renewal="true" checkout="true"
status_update="false" offline="false"
timeout="100"
retries="5" />
</institution>
<institution id="CPL" implementation="ILS" parms="">
<policy checkin="true" renewal="true" checkout="true"
status_update="false" offline="false"
timeout="25"
retries="5" />
</institution>
<institution id="kohalibrary" implementation="ILS" parms="">
<policy checkin="true" renewal="false" checkout="true"
status_update="false" offline="false"
timeout="100"
retries="5" />
</institution>
<institution id="kohalibrary2" implementation="ILS" parms="">
<policy checkin="true" renewal="false" checkout="true"
timeout="100"
retries="3" />
</institution>
<institution id="LPL" implementation="ILS">
<policy checkin="true" renewal="false" checkout="true"
timeout="100"
retries="5" />
</institution>
</institutions>
<!-- This section allows system preferences to be overridden on a global basis.
If the same system preference is overridden at the login level, the login
version will take precedence.
-->
<syspref_overrides>
<AllFinesNeedOverride>0</AllFinesNeedOverride>
</syspref_overrides>
</acsconfig>