= SIP = [#QuickReference Quick Reference][[BR]] ---- [#Overview Overview][[BR]] [#Installing Installing][[BR]] [#ConfiguringTheServer Configuring the server][[BR]] [#AddingSIPUsers Adding SIP Users][[BR]] [#RunningTheServer Running The Server][[BR]] [#StoppingTheServer Stopping The Server][[BR]] [#TestingYourConnection Testing Your Connection][[BR]] [#References References][[BR]] ---- == Overview == SIP - Standard Interchange Protocol was developed by 3M to provide a way for self-check terminals to interact with ILS systems. It's important not to confuse this with the Session Initiation Protocol, which is a very common VOIP protocol. ---- == Installing == Working on the server where oils is installed: Make sure cvs is installed by running "which cvs" a reply of nothing means you need to install it. If you do then: {{{ sudo apt-get update sudo apt-get install cvs }}} Next try to download the code to the opt directory: {{{ cd /opt sudo cvs -d:pserver:anonymous@openncip.cvs.sourceforge.net:/cvsroot/openncip login }}} '''Note:''' you might get an error here if you just installed cvs to the effect of "CVS password file .... does not exist - creating a new file". If this happens just run the command above again. when prompted for a password, just hit "Enter" and run the following: {{{ sudo cvs -z3 -d:pserver:anonymous@openncip.cvs.sourceforge.net:/cvsroot/openncip co -P SIPServer }}} you should now have the code downloaded. There should be a new folder named /opt/SIPServer ----- == Configuring The Server == {{{ su opensrf $ cd /openils/conf $ cp oils_sip.xml.example oils_sip.xml }}} Edit /openils/conf/oils_sip.xml, ensure the services are set to listen as below: {{{ }}} Change the commented out section to this: {{{ }}} '''NOTE:''' will directly correspond to the number of allowed SIP clients. Set the number accordingly, but bear in mind that too many connections can exhaust memory. On a 4G RAM/4 CPU server (that is also running evergreen), I would recommend not exceeding 100 SIP client connections, give or take. In the section of oils_sip.xml, add SIP client login information. Make sure that all 's use the same institution attribute. All attributes in the section will be used by the SIP client ie: {{{ }}} '''NOTE''': make sure you change all instances of "institiution id=" to match the institution attribute in . In this case, you'd change them all to "conifer". Edit iptables to [#sysadminIptables#sip open ports 8080 and 8023]. ---- == Adding SIP Users == In Evergreen, create a new profile group called SIP. This group should be a sub-group of Users (not Staff or Patrons). Give the group the following permissions: {{{ COPY_CHECKIN COPY_CHECKOUT RENEW_CIRC VIEW_CIRCULATIONS VIEW_COPY_CHECKOUT_HISTORY VIEW_PERMIT_CHECKOUT VIEW_USER VIEW_USER_FINES_SUMMARY VIEW_USER_TRANSACTIONS }}} You can do this quickly via the sip_user.sql script found in /Contrib/trunk/tools (http://svn.open-ils.org/trac/ILS-Contrib/browser/conifer/trunk/tools/sip_user.sql). Add the user you deliniated in oils_sip.xml to the SIP group. ---- === Running The Server === {{{ $ sudo su opensrf $ oils_ctl.sh -d /openils/var/run/ -s /openils/conf/oils_sip.xml -a [start|stop|restart]_sip }}} ---- === Stopping The Server === {{{ $ sudo su opensrf $ oils_ctl.sh -d /openils/var/run/ -s /openils/conf/oils_sip.xml -a [start|stop|restart]_sip }}} '''NOTE:''' that stop or restart might not work properly. You might need to stop the processes manually. After trying a stop, you should check if the service actually did stop: {{{ ps aux | grep sip }}} Running the command above, if you should see something like: {{{ opensrf 5313 0.0 0.0 5160 772 pts/0 R<+ 14:56 0:00 grep sip opensrf 28330 0.0 0.0 45376 13552 pts/0 S< 14:44 0:00 perl SIPServer.pm /openils/conf/oils_sip.xml opensrf 28331 0.0 0.0 45376 11824 pts/0 S< 14:44 0:00 perl SIPServer.pm /openils/conf/oils_sip.xml }}} Seeing the above, you know the stop command didn't work and you'd kill the processes manually In this case you'd run: {{{ sudo kill 28330 sudo kill 28331 }}} ---- == Testing Your Connection == You can test your install by telneting to port 8080. Test to see if the telnet service (telnetd) is running. {{{ netstat -a | grep telnet }}} should return: {{{ tcp 0 0 *:telnet *:* LISTEN }}} if not, install and start telnetd. ==== Install telnet server: ==== {{{ sudo apt-get install telnetd }}} start the service {{{ sudo /etc/init.d/openbsd-inetd restart }}} Try netstat again. If you have any doubts, try telneting to the local host: {{{ telnet localhost }}} If you get a login prompt, telnet is up and running. Once telnet is up and running, you should verify that SIP is available via port 8080. {{{ telnet 8080 }}} from another machine should return: {{{ Trying 131.104.100.168... Connected to comet.cs.uoguelph.ca. Escape character is '^]'. 9300CNsipclientCPT3st 940 }}} 940 is a successful login. ---- == References == http://open-ils.org/dokuwiki/doku.php?id=evergreen-admin:sip http://svn.open-ils.org/trac/ILS-Contrib/browser/conifer/trunk/tools/sip_user.sql http://multimedia.mmm.com/mws/mediawebserver.dyn?6666660Zjcf6lVs6EVs66S0LeCOrrrrQ- ---- == Quick Reference == {{{ sudo apt-get update sudo apt-get install cvs cd /opt sudo cvs -d:pserver:anonymous@openncip.cvs.sourceforge.net:/cvsroot/openncip login sudo cvs -z3 -d:pserver:anonymous@openncip.cvs.sourceforge.net:/cvsroot/openncip co -P SIPServer #Configure the Server su opensrf $ cd /openils/conf $ cp oils_sip.xml.example oils_sip.xml #Edit /openils/conf/oils_sip.xml to match the file snippet at the bottom of the instructions: # In Evergreen, create a new profile group called SIP with following perms: # COPY_CHECKIN # COPY_CHECKOUT # RENEW_CIRC # VIEW_CIRCULATIONS # VIEW_COPY_CHECKOUT_HISTORY # VIEW_PERMIT_CHECKOUT # VIEW_USER # VIEW_USER_FINES_SUMMARY # VIEW_USER_TRANSACTIONS # # Add the user you deliniated in oils_sip.xml to the SIP group. # # Open ports 8080, 8023 # # running / stopping the server: $ sudo su opensrf $ oils_ctl.sh -d /openils/var/run/ -s /openils/conf/oils_sip.xml -a [start|stop|restart]_sip #check that it all works: $ telnet 8080 ################################################################ # # File snippet: # /openils/conf/oils_sip.xml # ################################################################ # change all instances of "institiution id=" to match institution attribute in accounts ######################################################################################### }}}