Home   >>   Kannel   >>   How To Install Kannel On Solaris
How To Install Kannel On Solaris PDF Print E-mail
( 2 Votes )
How To - Kannel
Written by Christian Foronda   
Wednesday, 01 December 2010 11:32

Download Kannel from freeware.com:

	# wget ftp://ftp.sunfreeware.com/pub/freeware/sparc/10/gateway-1.4.1-sol10-sparc-local.gz

Install:

	# pkgadd -d gateway-1.4.1-sol10-sparc-local.gz

Create configuration (edit it according to your preference):

	# cp /usr/local/doc/gateway/solaris/etc/kannel.conf /etc/

Create XML for SMF:

	# vi /var/svc/manifest/network/kannel.xml
	<?xml version="1.0"?>
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
<!--
Copyright 2007 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.

#ident "@(#)kannel.xml 1.1 07/05/23 SMI"

-->

<service_bundle type='manifest' name='SUNWkannel:gateway'>

<service name='network/kannel' type='service' version='1'>

<create_default_instance enabled='false' />

<single_instance/>

<dependency name='net-loopback' grouping='require_any'
restart_on='none' type='service'>
<service_fmri value='svc:/network/loopback' />
</dependency>

<dependency name='net-service' grouping='require_all'
restart_on='none' type='service'>
<service_fmri value='svc:/network/service'/>
</dependency>

<dependency name='net-physical' grouping='require_all'
restart_on='none' type='service'>
<service_fmri value='svc:/network/physical' />
</dependency>

<dependency name='filesystem-local' grouping='require_all'
restart_on='none' type='service'>
restart_on='none' type='service'>
<service_fmri value='svc:/system/filesystem/local' />
</dependency>


<exec_method type='method' name='start'
exec='/lib/svc/method/kannel start'
timeout_seconds='170' />

<exec_method type='method' name='stop'
exec='/lib/svc/method/kannel stop'
timeout_seconds='60' />

<stability value='Unstable' />

</service>

</service_bundle>

Create the Kannel control script:

	# vi /lib/svc/method/kannel
	#!/bin/sh

STARTs="--daemonize -p /var/run/kannel-sms.pid"
STARTb="--daemonize -p /var/run/kannel-bearer.pid"
CONF=/etc/kannel.conf
bearerbox=/usr/local/sbin/bearerbox
smsbox=/usr/local/sbin/smsbox

# Checking ...
[ -x $bearerbox ] || exit 0
[ -x $smsbox ] || exit 0
[ -f $CONF ] || exit 0

RETVAL=0

# See how we were called.
case "$1" in
start)
# Start daemons.
echo "Starting bearerbox "
$bearerbox $STARTb $CONF
RETVAL1=$?
echo
sleep 3
echo "Starting smsbox "
$smsbox $STARTs $CONF
RETVAL2=$?
echo
[ $RETVAL1 -eq 0 -a $RETVAL2 -eq 0 ] && touch /var/lock/subsys/gateway ||\
RETVAL=1
;;
stop)
stop)
# Stop daemons.
echo "Shutting down smsbox "
smspid=`cat /var/run/kannel-sms.pid`
kill $smspid
RETVAL2=$?
echo
echo "Shutting down bearerbox "
bearpid=`cat /var/run/kannel-bearer.pid`
kill -9 $bearpid
rm /var/run/**
RETVAL1=$?
echo
[ $RETVAL1 -eq 0 -a $RETVAL2 -eq 0 ] && rm -f /var/lock/subsys/gateway
echo ""
;;
status)
status $bearerbox
status $smsbox
exit $?
;;
restart)
$0 stop
sleep 2
$0 start
;;
*)
echo "Usage: kannel {start|stop|status|restart}"
exit 1
esac

exit $RETVAL

Validate your XML document:

	# xmllint --valid /var/svc/manifest/network/kannel.xml
# svccfg validate /var/svc/manifest/network/kannel.xml

Import it to SMF:

	# svccfg import /var/svc/manifest/network/kannel.xml

Verify in SMF. It should be now visible under SMF:

	# svcs ServiceName
STATE STIME FMRI
offline 14:26:06 svc:/network/kannel:default

Enable the service:

	# svcadm enable kannel



blog comments powered by Disqus
Last Updated on Friday, 14 January 2011 13:39