2
# ---------------------------------------------------------------------------------------
3
# This example is for three modems, named GSM1, GSM2 and GSM3 using queues Q1, Q2 and Q3.
4
# In the global part of smsd.conf, enable message counters:
5
# stats = /var/spool/sms/stats
6
# Use zero value for interval if statistics files are not used:
9
# Enable checkhandler (this script):
10
# checkhandler = /usr/local/bin/load_balancing.sh
12
# Define queues and providers:
14
# Q1 = /var/spool/sms/Q1
15
# Q2 = /var/spool/sms/Q2
16
# Q3 = /var/spool/sms/Q3
19
# Q1 = 0,1,2,3,4,5,6,7,8,9,s
20
# Q2 = 0,1,2,3,4,5,6,7,8,9,s
21
# Q3 = 0,1,2,3,4,5,6,7,8,9,s
23
# Add queue definition for each modem:
27
# ---------------------------------------------------------------------------------------
29
STATSDIR=/var/spool/sms/stats
34
FILE=$STATSDIR/$1.counter
38
COUNTER=`formail -zx $1: < $FILE`
39
if [ "$COUNTER" != "" ]; then
46
# If there is Queue (or Provider) defined, load balancing is ignored:
47
QUEUE=`formail -zx Queue: < $1`
48
if [ "$QUEUE" = "" ]; then
49
QUEUE=`formail -zx Provider: < $1`
50
if [ "$QUEUE" = "" ]; then
51
# Read current counters:
61
if [ $COUNTER2 -lt $COUNTER ]; then
65
if [ $COUNTER3 -lt $COUNTER ]; then
70
TMPFILE=`mktemp /tmp/smsd_XXXXXX`
72
formail -f -I "Queue: $QUEUE" < $TMPFILE > $1