When “sex” prevents a Koha ILS installation

This is a true story from a recently concluded Koha workshop. There were roughly ~30+ participants and about 15 – 18 computers for their “hands-on” sessions. The instructor-led “how to install Koha 16.11 on Ubuntu 14.04.5” was going along smoothly. However, suddenly all hell broke loose! Everyone, including the instructor were stumped right at nearly the last leg of ‘sudo apt-get install koha-common‘. The install would not complete due to three missing files. First the repos were changed and re-tried. Well… no go! That’s when I noticed that the error was 403 forbidden. Woah! I tried to manually download the files off the repos using a browser and all it said was an “Access denied!” error coming from the Squid proxy.

A closer look at the files gave the game away. The university’s content filtering rules on the Squid proxy was the cause. Apparently the files: (a) libmoosex-markasmethods-perl (b) libmoosex-nonmoose-perl and (c) libwww-youtube-download-perl were being blocked from being fetched. The first two were triggering a false positive on the pornographic filter (the “sex” in libmoosex) and the third was hitting the keyword filter “youtube”, since Youtube was blocked on campus!!!

With no easy way to work around the proxy for connectivity, I manually downloaded the three files using a standby unfiltered link on a single computer. Next I transferred the files on to a pen drive and manually copied them over into each system’s /var/cache/apt/archives and thus fooling apt-get into thinking the files were already downloaded by it. And that is how we saved the day! 😉

Lesson

If you are planning a Koha installfest at an educational institution, please ensure that their content filtering proxy rules are tweaked before actually going ahead with the workshop.

DCB & BI Library, University of Kerala chooses L2C2 Technologies’ Koha hosting service

DCB & BI Library, University of Kerala goes online with Koha Integrated Library System.

We are pleased to welcome the Department of Computational Biology & Bioinformatics, University of Kerala as our newest client-partner from “God’s own country” aka Kerala – the southern most state of India. Earlier the library was running Koha 3.22 on an in-house (on campus) server. With this move, they are now fully hosted on the cloud and are running on the latest major stable version of Koha i.e. on 16.11.x series.

About DCB & BI

The Centre for Bioinformatics, established in 2005 and upgraded as the Department of Computational Biology and Bioinformatics in 2011, is a new generation inter-disciplinary as well as multidisciplinary teaching & research Department of University of Kerala, India. The centre offers a two-year innovative MSc (Computational Biology) programme and also 2 one-year MPhil programmes in (i) Bioinformatics (ii) Computer Aided Drug Design. The Department has researchers with vivid backgrounds (Electrical Engineers, Mathematicians, Physicists, Biotechnologists, Botanists, Bio-chemists, Computer scientists are some of them). The Department has its own premises with state of the art informatics laboratory and also a molecular biology and bio-electronics laboratory which provide a balanced training to multidisciplinary talents that the centre attracts. The Department library having a stock of over 2425 specialized books.

The Director is Dr. Achuthsankar S. Nair, who has lead the department since its inception and presently has 6 lecturers, an Emeritus Professor (Dr. Oommen V. Oommen), one Post Doctoral Fellow, half a dozen Project Fellows, 19 full-time research scholars and at any time, 30-40 masters students. The Department also has 2 adjunct Professors, in addition to visiting faculty and Erudite visitors [Prof. Dr. Johann Deisenhofer (Nobel Laureate – 1988) visited the Department on Dec 1-3, 2010, Prof. Martin Chalfie (Nobel Laureate-2008) visited on Jan 5-7, 2011, followed by Prof. Anders Liljas (Nobel Prize Committee Member) on Jan 20-26, 2011.

The Department is situated in the beautiful and green Kariavattom Campus made greener by the department’s “Trees for 2100 AD” initiative.

Source : DCB & BI website

Accessing the OPAC

While the online public access catalogue (OPAC) is presently available at https://dcb-opac.l2c2.co.in/, this will change in a few days once the dedicated domain procurement process is completed.

Don Bosco School, Park Circus partners with L2C2 Technologies to take their library catalogue online

The first K12 school in eastern India to adopt cloud hosted Koha ILS for their library.

It is our pleasure to welcome Don Bosco School, Park Circus, Kolkata as the newest member of our client-partner family in the eastern India. To the best of our knowledge, Don Bosco School is the first K12 school in entire eastern India to move to a cloud based Koha ILS installation. We thank Fr. Bikash Mondal, the principal, Fr. Anil Toppo (Asst Principal) and other officials at DBPC as well as Sri Anup Choudhury the young, enterprising librarian of the senior section, for their forward thinking.

About Don Bosco School (Park Circus)

Located at 23, Darga Road, Kolkata, India, is an all-boys English medium school imparting education from first through twelfth grade. Established in 1958, it is run by the Salesians of Don Bosco, which is a minority institution within the Catholic Church. The school operates under the Indian Certificate of Secondary Education board. The school officially opened on 15 January 1958 with an intake of 460 boys. The school now has an enrollment of 3000 students. It celebrated its golden jubilee in 2008. [1]

References

[1] Source: https://en.wikipedia.org/wiki/Don_Bosco_School,_Park_Circus

Installing SMS::Send::IN::eSMS send driver for Koha ILS

An easy peasy HOWTO along with a few under-the-hood details explained.

Step #1 : Installing the SMS::Send::IN::eSMS module from CPAN

Login as a sudo user and start the CPAN shell using the command sudo perl -MCPAN -e shell. Install the driver by typing in install SMS::Send::IN::eSMS. If everything works OK, you should see output on screen similar to this:

cpan[1]> install SMS::Send:IN::eSMS
Reading '/root/.cpan/Metadata'
  Database was generated on Thu, 09 Feb 2017 09:41:03 GMT
Running install for module 'SMS::Send::IN::eSMS'
Checksum for /root/.cpan/sources/authors/id/I/IN/INDRADG/SMS-Send-IN-eSMS-0.01.tar.gz ok
Scanning cache /root/.cpan/build for sizes
............................................................................DONE
Configuring I/IN/INDRADG/SMS-Send-IN-eSMS-0.01.tar.gz with Makefile.PL
Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for SMS::Send::IN::eSMS
Writing MYMETA.yml and MYMETA.json
  INDRADG/SMS-Send-IN-eSMS-0.01.tar.gz
  /usr/bin/perl Makefile.PL INSTALLDIRS=site -- OK
Running make for I/IN/INDRADG/SMS-Send-IN-eSMS-0.01.tar.gz
cp lib/SMS/Send/IN/eSMS.pm blib/lib/SMS/Send/IN/eSMS.pm
Manifying blib/man3/SMS::Send::IN::eSMS.3pm
  INDRADG/SMS-Send-IN-eSMS-0.01.tar.gz
  /usr/bin/make -- OK
Running make test
PERL_DL_NONLAZY=1 PERL_USE_UNSAFE_INC=1 /usr/bin/perl "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/checkloginpass.t .. ok
t/checkmsgdest.t .... ok
t/compile.t ......... ok
t/liveaccttest.t .... skipped: No login information available, skipping all tests.
t/pod-coverage.t .... ok
t/pod.t ............. ok
All tests successful.
Files=6, Tests=16,  1 wallclock secs ( 0.09 usr  0.00 sys +  0.99 cusr  0.07 csys =  1.15 CPU)
Result: PASS
  INDRADG/SMS-Send-IN-eSMS-0.01.tar.gz
  /usr/bin/make test -- OK
Running make install
Installing /usr/local/share/perl/5.20.2/SMS/Send/IN/eSMS.pm
Installing /usr/local/man/man3/SMS::Send::IN::eSMS.3pm
Appending installation info to /usr/local/lib/x86_64-linux-gnu/perl/5.20.2/perllocal.pod
  INDRADG/SMS-Send-IN-eSMS-0.01.tar.gz
  /usr/bin/make install  -- OK

cpan[2]>

With the SMS::Send::IN::eSMS module installed, we’ll now set up the Koha side of things.

Step #2 : Making a one-line change to Koha’s SMS.pm

Assumption : That you are using a .deb package based installation. If you are using a git or a tarball installation you probably do not need this guide. 🙂

The code in file /usr/share/koha/lib/C4/SMS.pm is what Koha uses to communicate with the SMS provider (in this case eSMS Kerala from KSITM) via the send driver. This code is capable of accepting two parameters i.e. (a) username and (b) password of the user with the SMS service provider via whom the user wants to send out the messages. However due to Telecom Regulatory Authority of India (TRAI) rules, in India we need to use three parameters, the third one being a mandatory, 6-character, nationally unique senderid allotted to every bulk transactional SMS sender in India. As of version 16.11 Koha can not handle this AS-IS.

Therefore, to make SMS work with Koha in India, we need to make a one-line change to the code. Look for the following code around line no. 80 of the file /usr/share/koha/lib/C4/SMS.pm:

# Create a sender
$sender = SMS::Send->new( $driver,
                          _login    => C4::Context->preference('SMSSendUsername'),
                          _password => C4::Context->preference('SMSSendPassword'),
                    );

Add the following line : _senderid => C4::Context->preference('SMSSendSenderID'),, so that the code looks like this:

# Create a sender
$sender = SMS::Send->new( $driver,
                          _login    => C4::Context->preference('SMSSendUsername'),
                          _password => C4::Context->preference('SMSSendPassword'),
                          _senderid => C4::Context->preference('SMSSendSenderID'),
                    );

Save and close the file. Now login into the staff client and add the four necessary system preferences – (a) SMSSendDriver, (b) SMSSendUsername, (c) SMSSendPassword and (d) SMSSendSenderID. Now, if you are on Koha 3.22 or higher version (i.e. 16.05 or 16.11), you will find the first three under Patron preferences and you only need to create the last one i.e. SMSSendSenderID to complete the setup.

eSMS_02

eSMS_03

However, if you are still using Koha 3.18.x or 3.20.x series then you will need to create three Local use preferences i.e. SMSSendUsername, SMSSendPassword and SMSSendSenderID. Either way, set these four parameters to your actual settings and you are ready to go start using the installed driver.

N.B.This behaviour will change from Koha 17.05 onward (estimated release date May 2017) when the bug number 13029 – “Allow to pass additional parameters to SMS::Send drivers” becomes generally available as part of the stable releases.

Troubleshooting #1 – Missing ‘make’

‘Make’ is required to configure and install the driver. So, if you see an error that reads as

Running make for I/IN/INDRADG/SMS-Send-IN-eSMS-0.01.tar.gz
Can't exec "/usr/bin/make": No such file or directory at /usr/local/share/perl/5                                                                                                             .20.2/CPAN/Distribution.pm line 2197.
  INDRADG/SMS-Send-IN-eSMS-0.01.tar.gz
  /usr/bin/make -- NOT OK
  No such file or directory
Failed during this command:
 INDRADG/SMS-Send-IN-eSMS-0.01.tar.gz         : make NO

Exit from cpan by using the command exit and from the command line install make by entering the command sudo apt-get install make. Once make is installed, run sudo perl -MCPAN -e shell and then proceed with driver installation using the command install SMS::Send::IN::eSMS.

Troubleshooting #2 – CPAN index is out of date

After typing in the command ‘install SMS::Send::IN::eSMS‘ if you find yourself facing the error Warning: Cannot install SMS::Send::IN::eSMS, don’t know what it is., DO NOT panic! It happened to us on one of our test servers too 🙂

It simply means your CPAN index metadata is out-of-date, and you need to refresh the index by running the command ‘reload index‘. After the updated index is fetched, re-run the command install SMS::Send::IN::eSMS. It will work this time.

Good news for Koha users in Kerala : SMS Send driver for eSMS Kerala service released as Free Software (FOSS)

ANNOUNCEMENT: L2C2 Technologies has released the SMS::Send::IN::eSMS driver required by Koha ILS users using the eSMS Kerala service provided by the Kerala State IT Mission under a Free Software license. The development of the driver was made possible by the funding support of the State Librarian, State Central Library, Thiruvananthapurm (Trivandrum), Kerala, with KELTRON (Kerala State Electronics Development Corporation Ltd) acting as the facilitator. Any Koha library in the state of Kerala who are eligible to use the eSMS Kerala SMS service (provided by KSITM) can now freely implement SMS support using this driver.

With this release, it becomes the second open source regional SMS::Send driver now available to Indian Koha users that can be freely downloaded from the Comprehensive Perl Archive Network or CPAN.

Sending SMSes from Koha

For a long time now Koha has supported sending of SMS (short message service) text messages to library patrons and users about account creation, issue, return, fines, holds, overdues, purchase suggestions etc. To send out SMSes from Koha, we have to use the SMS service of a bulk transactional SMS service provider who provides that service.

What are SMS::Send drivers and why does Koha need them?

In order to communicate with the service provider’s messaging sending interface (also called messaging API), Koha uses a type of software called “SMS::Send driver”. The “catch” being that each service provider requires a different SMS Send driver. Sort of like the SIM card in our cellphones e.g. if we wish to use a Vodafone number we must have a Vodafone SIM card. However, unlike a SIM card the SMS::Send driver which is a software module written in the PERL language is not provided by the SMS service provider. Either one has to use a Free & Open Source send driver that already exists OR one has to write one by referring to (usually) the HTTP API of the SMS provider.

About eSMS Kerala

eSMS is an exclusive SMS Gateway established by the Kerala State IT Mission for use by various government departments for providing departmental services over mobile phones.

Downloading the driver

The SMS::Send::IN:eSMS driver can directly downloaded from CPAN by visiting http://search.cpan.org/~indradg/SMS-Send-IN-eSMS-0.01/lib/SMS/Send/IN/eSMS.pm or from L2C2 Technologies’s public repository on Github at https://github.com/l2c2technologies/sms-send-in-esms.

See also

1. “Koha and key lessons of using transactional SMS in India” – https://www.facebook.com/notes/l2c2-technologies/koha-and-key-lessons-of-using-transactional-sms-in-india/805775296178372