SMS server setup: Perbedaan revisi
(Created page with "== Overview == This document describes the steps required to configure a Rasberry Pi computer as an SMS server, connected via the internet to the iSIKHNAS database server. A ...") |
|||
| (1 revisi antara oleh pengguna yang sama tidak ditampilkan) | |||
| Baris 1: | Baris 1: | ||
| − | = | + | =SMS Server Setup= |
| − | + | The SMS server is managed by SMSTools3, and is installed on the Messaging server in the AWS Virtual Private Cloud. A second installation is present on the training (Sidecar) server. | |
| − | == | + | ==Configuration file== |
| − | + | The contents of smsd.conf on the live server are as follows (IP addresss removed) | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | == | + | # New Server smsd.conf |
| − | # | + | |
| − | + | devices = SOV*4009-4024 | |
| − | + | ||
| − | + | logfile = /var/log/smstools/smsd.log | |
| − | + | loglevel = 5 | |
| − | + | smart_logging = yes | |
| − | + | ||
| − | + | stats = /var/spool/sms/stats | |
| − | + | outgoing = /var/spool/sms/outgoing | |
| + | checked = /var/spool/sms/checked | ||
| + | incoming = /var/spool/sms/incoming | ||
| + | infofile = /var/run/smstools/smsd.working | ||
| + | pidfile = /var/run/smstools/smsd.pid | ||
| + | failed = /var/spool/sms/failed | ||
| + | sent = /var/spool/sms/sent | ||
| + | |||
| + | errorsleeptime = 3 | ||
| + | # eventhandler for incoming messages | ||
| + | eventhandler = /home/smsd/sms_in.sh | ||
| + | # regular run to send new messages with msgid of 0 | ||
| + | regular_run = /home/smsd/sms_rr.sh | ||
| + | regular_run_interval = 300 | ||
| + | user = smsd | ||
| + | group = dialout | ||
| + | |||
| + | [queues] | ||
| + | MAIN = /var/spool/sms/queues/MAIN | ||
| + | OTHER = /var/spool/sms/queues/OTHER | ||
| + | HALO = /var/spool/sms/queues/HALO | ||
| + | SOV4009 = /var/spool/sms/queues/SOV4009 | ||
| + | SOV4010 = /var/spool/sms/queues/SOV4010 | ||
| + | SOV4011 = /var/spool/sms/queues/SOV4011 | ||
| + | SOV4012 = /var/spool/sms/queues/SOV4012 | ||
| + | SOV4013 = /var/spool/sms/queues/SOV4013 | ||
| + | SOV4014 = /var/spool/sms/queues/SOV4014 | ||
| + | SOV4015 = /var/spool/sms/queues/SOV4015 | ||
| + | SOV4016 = /var/spool/sms/queues/SOV4016 | ||
| + | SOV4017 = /var/spool/sms/queues/SOV4017 | ||
| + | SOV4018 = /var/spool/sms/queues/SOV4018 | ||
| + | SOV4019 = /var/spool/sms/queues/SOV4019 | ||
| + | SOV4020 = /var/spool/sms/queues/SOV4020 | ||
| + | SOV4021 = /var/spool/sms/queues/SOV4021 | ||
| + | SOV4022 = /var/spool/sms/queues/SOV4022 | ||
| + | SOV4023 = /var/spool/sms/queues/SOV4023 | ||
| + | SOV4024 = /var/spool/sms/queues/SOV4024 | ||
| + | |||
| + | [providers] | ||
| + | # telkomsel | ||
| + | MAIN = 62811, 62812, 62813, 62821, 62822, 62823, 62852, 62853 | ||
| + | # non-telkomsel | ||
| + | OTHER = 628 | ||
| + | # other (primarily interntational - could be expensive so use postpaid) | ||
| + | HALO = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 | ||
| + | # short numbers - admin. | ||
| + | SOV4017 = s | ||
| + | |||
| + | [default] | ||
| + | regular_run_interval = 300 | ||
| + | queues = modemname, MAIN, OTHER | ||
| + | socket_connection_retries = -1 | ||
| + | socket_connection_errorsleeptime = 20 | ||
| + | socket_connection_alarm_after = 10 | ||
| + | |||
| + | [SOV4009] | ||
| + | device = @ipaddress:4009 | ||
| + | incoming = yes | ||
| + | regular_run = /var/spool/sms/regular_run/SOV4009.sh | ||
| + | regular_run_post_run = /var/spool/sms/regular_run/SOV4009.sh | ||
| + | regular_run_cmdfile = /var/spool/sms/regular_run/SOV4009.cmdfile | ||
| + | regular_run_statfile = /var/spool/sms/regular_run/SOV4009.statfile | ||
| + | |||
| + | [SOV4010] | ||
| + | device = @ipaddress:4010 | ||
| + | incoming = yes | ||
| + | regular_run = /var/spool/sms/regular_run/SOV4010.sh | ||
| + | regular_run_post_run = /var/spool/sms/regular_run/SOV4010.sh | ||
| + | regular_run_cmdfile = /var/spool/sms/regular_run/SOV4010.cmdfile | ||
| + | regular_run_statfile = /var/spool/sms/regular_run/SOV4010.statfile | ||
| + | |||
| + | [SOV4011] | ||
| + | device = @ipaddress:4011 | ||
| + | incoming = yes | ||
| + | regular_run = /var/spool/sms/regular_run/SOV4011.sh | ||
| + | regular_run_post_run = /var/spool/sms/regular_run/SOV4011.sh | ||
| + | regular_run_cmdfile = /var/spool/sms/regular_run/SOV4011.cmdfile | ||
| + | regular_run_statfile = /var/spool/sms/regular_run/SOV4011.statfile | ||
| + | |||
| + | [SOV4012] | ||
| + | device = @ipaddress:4012 | ||
| + | incoming = yes | ||
| + | regular_run = /var/spool/sms/regular_run/SOV4012.sh | ||
| + | regular_run_post_run = /var/spool/sms/regular_run/SOV4012.sh | ||
| + | regular_run_cmdfile = /var/spool/sms/regular_run/SOV4012.cmdfile | ||
| + | regular_run_statfile = /var/spool/sms/regular_run/SOV4012.statfile | ||
| + | |||
| + | [SOV4013] | ||
| + | device = @ipaddress:4013 | ||
| + | incoming = yes | ||
| + | regular_run = /var/spool/sms/regular_run/SOV4013.sh | ||
| + | regular_run_post_run = /var/spool/sms/regular_run/SOV4013.sh | ||
| + | regular_run_cmdfile = /var/spool/sms/regular_run/SOV4013.cmdfile | ||
| + | regular_run_statfile = /var/spool/sms/regular_run/SOV4013.statfile | ||
| + | |||
| + | [SOV4014] | ||
| + | device = @ipaddress:4014 | ||
| + | incoming = yes | ||
| + | regular_run = /var/spool/sms/regular_run/SOV4014.sh | ||
| + | regular_run_post_run = /var/spool/sms/regular_run/SOV4014.sh | ||
| + | regular_run_cmdfile = /var/spool/sms/regular_run/SOV4014.cmdfile | ||
| + | regular_run_statfile = /var/spool/sms/regular_run/SOV4014.statfile | ||
| + | |||
| + | [SOV4015] | ||
| + | device = @ipaddress:4015 | ||
| + | incoming = yes | ||
| + | regular_run = /var/spool/sms/regular_run/SOV4015.sh | ||
| + | regular_run_post_run = /var/spool/sms/regular_run/SOV4015.sh | ||
| + | regular_run_cmdfile = /var/spool/sms/regular_run/SOV4015.cmdfile | ||
| + | regular_run_statfile = /var/spool/sms/regular_run/SOV4015.statfile | ||
| + | |||
| + | [SOV4016] | ||
| + | device = @ipaddress:4016 | ||
| + | incoming = yes | ||
| + | regular_run = /var/spool/sms/regular_run/SOV4016.sh | ||
| + | regular_run_post_run = /var/spool/sms/regular_run/SOV4016.sh | ||
| + | regular_run_cmdfile = /var/spool/sms/regular_run/SOV4016.cmdfile | ||
| + | regular_run_statfile = /var/spool/sms/regular_run/SOV4016.statfile | ||
| + | |||
| + | # main incoming modem | ||
| + | [SOV4017] | ||
| + | device = @ipaddress:4017 | ||
| + | incoming = high | ||
| + | queues = SOV4017, HALO | ||
| + | regular_run = /var/spool/sms/regular_run/SOV4017.sh | ||
| + | regular_run_post_run = /var/spool/sms/regular_run/SOV4017.sh | ||
| + | regular_run_cmdfile = /var/spool/sms/regular_run/SOV4017.cmdfile | ||
| + | regular_run_statfile = /var/spool/sms/regular_run/SOV4017.statfile | ||
| + | |||
| + | [SOV4018] | ||
| + | device = @ipaddress:4018 | ||
| + | incoming = yes | ||
| + | regular_run = /var/spool/sms/regular_run/SOV4018.sh | ||
| + | regular_run_post_run = /var/spool/sms/regular_run/SOV4018.sh | ||
| + | regular_run_cmdfile = /var/spool/sms/regular_run/SOV4018.cmdfile | ||
| + | regular_run_statfile = /var/spool/sms/regular_run/SOV4018.statfile | ||
| + | |||
| + | [SOV4019] | ||
| + | device = @ipaddress:4019 | ||
| + | incoming = yes | ||
| + | regular_run = /var/spool/sms/regular_run/SOV4019.sh | ||
| + | regular_run_post_run = /var/spool/sms/regular_run/SOV4019.sh | ||
| + | regular_run_cmdfile = /var/spool/sms/regular_run/SOV4019.cmdfile | ||
| + | regular_run_statfile = /var/spool/sms/regular_run/SOV4019.statfile | ||
| + | |||
| + | [SOV4020] | ||
| + | device = @ipaddress:4020 | ||
| + | incoming = yes | ||
| + | regular_run = /var/spool/sms/regular_run/SOV4020.sh | ||
| + | regular_run_post_run = /var/spool/sms/regular_run/SOV4020.sh | ||
| + | regular_run_cmdfile = /var/spool/sms/regular_run/SOV4020.cmdfile | ||
| + | regular_run_statfile = /var/spool/sms/regular_run/SOV4020.statfile | ||
| + | |||
| + | [SOV4021] | ||
| + | device = @ipaddress:4021 | ||
| + | incoming = yes | ||
| + | regular_run = /var/spool/sms/regular_run/SOV4021.sh | ||
| + | regular_run_post_run = /var/spool/sms/regular_run/SOV4021.sh | ||
| + | regular_run_cmdfile = /var/spool/sms/regular_run/SOV4021.cmdfile | ||
| + | regular_run_statfile = /var/spool/sms/regular_run/SOV4021.statfile | ||
| + | |||
| + | [SOV4022] | ||
| + | device = @ipaddress:4022 | ||
| + | incoming = yes | ||
| + | regular_run = /var/spool/sms/regular_run/SOV4022.sh | ||
| + | regular_run_post_run = /var/spool/sms/regular_run/SOV4022.sh | ||
| + | regular_run_cmdfile = /var/spool/sms/regular_run/SOV4022.cmdfile | ||
| + | regular_run_statfile = /var/spool/sms/regular_run/SOV4022.statfile | ||
| + | |||
| + | [SOV4023] | ||
| + | device = @ipaddress:4023 | ||
| + | incoming = yes | ||
| + | regular_run = /var/spool/sms/regular_run/SOV4023.sh | ||
| + | regular_run_post_run = /var/spool/sms/regular_run/SOV4023.sh | ||
| + | regular_run_cmdfile = /var/spool/sms/regular_run/SOV4023.cmdfile | ||
| + | regular_run_statfile = /var/spool/sms/regular_run/SOV4023.statfile | ||
| + | |||
| + | [SOV4024] | ||
| + | device = @ipaddress:4024 | ||
| + | incoming = yes | ||
| + | regular_run = /var/spool/sms/regular_run/SOV4024.sh | ||
| + | regular_run_post_run = /var/spool/sms/regular_run/SOV4024.sh | ||
| + | regular_run_cmdfile = /var/spool/sms/regular_run/SOV4024.cmdfile | ||
| + | regular_run_statfile = /var/spool/sms/regular_run/SOV4024.statfile | ||
| + | |||
| + | ==Event handler== | ||
| + | This receives and processes incoming SMS messages. Replaced elements include username, ip address and database: | ||
| − | + | #!/bin/bash | |
| − | + | if [ "$1" != 'RECEIVED' ]; then | |
| − | + | exit 0; | |
| − | + | fi | |
| − | + | MSGID=$$`date +%s` | |
| − | + | MSG=`cat $2 | sed "s/'/''/g"` | |
| − | + | DBSERVER="ipaddress" | |
| − | + | psql -q -t -h $DBSERVER -U username -v VERBOSITY=terse database << EOF | |
| − | + | select sms.sms_parse('$MSG','$1','$MSGID'); | |
| − | + | EOF | |
| − | + | ||
| − | + | psql \ | |
| − | + | -h $DBSERVER -U username \ | |
| − | + | -qtAc "select phone, message, case when priority then 'T' else 'F' end, coalesce(modem,'MAIN') from sms.outbox where msgid = $MSGID"\ | |
| − | # | + | --field-separator '|' \ |
| − | + | database| while IFS='|' read -ra Record ; do | |
| − | + | ||
| − | + | NUM=${Record[0]} | |
| − | + | MSG1=${Record[1]} | |
| − | + | if [ "${Record[2]}" == 'T' ]; then | |
| − | + | PRIORITY="\nPriority: High"; | |
| − | + | else | |
| − | + | PRIORITY=""; | |
| − | + | fi | |
| − | + | QUEUE=${Record[3]} | |
| − | + | TMPFILE=`mktemp /var/spool/sms/outgoing/sms.XXXXX` || exit 1 | |
| − | + | echo -e "To: ${NUM}${PRIORITY}\nQueue: ${QUEUE}\n\n$MSG1" > $TMPFILE | |
| − | + | done | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | MSGID=$$`date +%s` | ||
| − | MSG=`cat $2 | sed | ||
| − | psql -q -t -h | ||
| − | select sms.sms_parse('$MSG','$1','$MSGID'); | ||
| − | EOF | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | psql | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | \ | ||
| − | $ | ||
| − | done | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
Revisi terkini pada 2 September 2014 15.11
SMS Server Setup
The SMS server is managed by SMSTools3, and is installed on the Messaging server in the AWS Virtual Private Cloud. A second installation is present on the training (Sidecar) server.
Configuration file
The contents of smsd.conf on the live server are as follows (IP addresss removed)
- New Server smsd.conf
devices = SOV*4009-4024 logfile = /var/log/smstools/smsd.log loglevel = 5 smart_logging = yes stats = /var/spool/sms/stats outgoing = /var/spool/sms/outgoing checked = /var/spool/sms/checked incoming = /var/spool/sms/incoming infofile = /var/run/smstools/smsd.working pidfile = /var/run/smstools/smsd.pid failed = /var/spool/sms/failed sent = /var/spool/sms/sent errorsleeptime = 3 # eventhandler for incoming messages eventhandler = /home/smsd/sms_in.sh # regular run to send new messages with msgid of 0 regular_run = /home/smsd/sms_rr.sh regular_run_interval = 300 user = smsd group = dialout [queues] MAIN = /var/spool/sms/queues/MAIN OTHER = /var/spool/sms/queues/OTHER HALO = /var/spool/sms/queues/HALO SOV4009 = /var/spool/sms/queues/SOV4009 SOV4010 = /var/spool/sms/queues/SOV4010 SOV4011 = /var/spool/sms/queues/SOV4011 SOV4012 = /var/spool/sms/queues/SOV4012 SOV4013 = /var/spool/sms/queues/SOV4013 SOV4014 = /var/spool/sms/queues/SOV4014 SOV4015 = /var/spool/sms/queues/SOV4015 SOV4016 = /var/spool/sms/queues/SOV4016 SOV4017 = /var/spool/sms/queues/SOV4017 SOV4018 = /var/spool/sms/queues/SOV4018 SOV4019 = /var/spool/sms/queues/SOV4019 SOV4020 = /var/spool/sms/queues/SOV4020 SOV4021 = /var/spool/sms/queues/SOV4021 SOV4022 = /var/spool/sms/queues/SOV4022 SOV4023 = /var/spool/sms/queues/SOV4023 SOV4024 = /var/spool/sms/queues/SOV4024 [providers] # telkomsel MAIN = 62811, 62812, 62813, 62821, 62822, 62823, 62852, 62853 # non-telkomsel OTHER = 628 # other (primarily interntational - could be expensive so use postpaid) HALO = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 # short numbers - admin. SOV4017 = s [default] regular_run_interval = 300 queues = modemname, MAIN, OTHER socket_connection_retries = -1 socket_connection_errorsleeptime = 20 socket_connection_alarm_after = 10 [SOV4009] device = @ipaddress:4009 incoming = yes regular_run = /var/spool/sms/regular_run/SOV4009.sh regular_run_post_run = /var/spool/sms/regular_run/SOV4009.sh regular_run_cmdfile = /var/spool/sms/regular_run/SOV4009.cmdfile regular_run_statfile = /var/spool/sms/regular_run/SOV4009.statfile [SOV4010] device = @ipaddress:4010 incoming = yes regular_run = /var/spool/sms/regular_run/SOV4010.sh regular_run_post_run = /var/spool/sms/regular_run/SOV4010.sh regular_run_cmdfile = /var/spool/sms/regular_run/SOV4010.cmdfile regular_run_statfile = /var/spool/sms/regular_run/SOV4010.statfile [SOV4011] device = @ipaddress:4011 incoming = yes regular_run = /var/spool/sms/regular_run/SOV4011.sh regular_run_post_run = /var/spool/sms/regular_run/SOV4011.sh regular_run_cmdfile = /var/spool/sms/regular_run/SOV4011.cmdfile regular_run_statfile = /var/spool/sms/regular_run/SOV4011.statfile [SOV4012] device = @ipaddress:4012 incoming = yes regular_run = /var/spool/sms/regular_run/SOV4012.sh regular_run_post_run = /var/spool/sms/regular_run/SOV4012.sh regular_run_cmdfile = /var/spool/sms/regular_run/SOV4012.cmdfile regular_run_statfile = /var/spool/sms/regular_run/SOV4012.statfile [SOV4013] device = @ipaddress:4013 incoming = yes regular_run = /var/spool/sms/regular_run/SOV4013.sh regular_run_post_run = /var/spool/sms/regular_run/SOV4013.sh regular_run_cmdfile = /var/spool/sms/regular_run/SOV4013.cmdfile regular_run_statfile = /var/spool/sms/regular_run/SOV4013.statfile [SOV4014] device = @ipaddress:4014 incoming = yes regular_run = /var/spool/sms/regular_run/SOV4014.sh regular_run_post_run = /var/spool/sms/regular_run/SOV4014.sh regular_run_cmdfile = /var/spool/sms/regular_run/SOV4014.cmdfile regular_run_statfile = /var/spool/sms/regular_run/SOV4014.statfile [SOV4015] device = @ipaddress:4015 incoming = yes regular_run = /var/spool/sms/regular_run/SOV4015.sh regular_run_post_run = /var/spool/sms/regular_run/SOV4015.sh regular_run_cmdfile = /var/spool/sms/regular_run/SOV4015.cmdfile regular_run_statfile = /var/spool/sms/regular_run/SOV4015.statfile [SOV4016] device = @ipaddress:4016 incoming = yes regular_run = /var/spool/sms/regular_run/SOV4016.sh regular_run_post_run = /var/spool/sms/regular_run/SOV4016.sh regular_run_cmdfile = /var/spool/sms/regular_run/SOV4016.cmdfile regular_run_statfile = /var/spool/sms/regular_run/SOV4016.statfile # main incoming modem [SOV4017] device = @ipaddress:4017 incoming = high queues = SOV4017, HALO regular_run = /var/spool/sms/regular_run/SOV4017.sh regular_run_post_run = /var/spool/sms/regular_run/SOV4017.sh regular_run_cmdfile = /var/spool/sms/regular_run/SOV4017.cmdfile regular_run_statfile = /var/spool/sms/regular_run/SOV4017.statfile [SOV4018] device = @ipaddress:4018 incoming = yes regular_run = /var/spool/sms/regular_run/SOV4018.sh regular_run_post_run = /var/spool/sms/regular_run/SOV4018.sh regular_run_cmdfile = /var/spool/sms/regular_run/SOV4018.cmdfile regular_run_statfile = /var/spool/sms/regular_run/SOV4018.statfile [SOV4019] device = @ipaddress:4019 incoming = yes regular_run = /var/spool/sms/regular_run/SOV4019.sh regular_run_post_run = /var/spool/sms/regular_run/SOV4019.sh regular_run_cmdfile = /var/spool/sms/regular_run/SOV4019.cmdfile regular_run_statfile = /var/spool/sms/regular_run/SOV4019.statfile [SOV4020] device = @ipaddress:4020 incoming = yes regular_run = /var/spool/sms/regular_run/SOV4020.sh regular_run_post_run = /var/spool/sms/regular_run/SOV4020.sh regular_run_cmdfile = /var/spool/sms/regular_run/SOV4020.cmdfile regular_run_statfile = /var/spool/sms/regular_run/SOV4020.statfile [SOV4021] device = @ipaddress:4021 incoming = yes regular_run = /var/spool/sms/regular_run/SOV4021.sh regular_run_post_run = /var/spool/sms/regular_run/SOV4021.sh regular_run_cmdfile = /var/spool/sms/regular_run/SOV4021.cmdfile regular_run_statfile = /var/spool/sms/regular_run/SOV4021.statfile [SOV4022] device = @ipaddress:4022 incoming = yes regular_run = /var/spool/sms/regular_run/SOV4022.sh regular_run_post_run = /var/spool/sms/regular_run/SOV4022.sh regular_run_cmdfile = /var/spool/sms/regular_run/SOV4022.cmdfile regular_run_statfile = /var/spool/sms/regular_run/SOV4022.statfile [SOV4023] device = @ipaddress:4023 incoming = yes regular_run = /var/spool/sms/regular_run/SOV4023.sh regular_run_post_run = /var/spool/sms/regular_run/SOV4023.sh regular_run_cmdfile = /var/spool/sms/regular_run/SOV4023.cmdfile regular_run_statfile = /var/spool/sms/regular_run/SOV4023.statfile [SOV4024] device = @ipaddress:4024 incoming = yes regular_run = /var/spool/sms/regular_run/SOV4024.sh regular_run_post_run = /var/spool/sms/regular_run/SOV4024.sh regular_run_cmdfile = /var/spool/sms/regular_run/SOV4024.cmdfile regular_run_statfile = /var/spool/sms/regular_run/SOV4024.statfile
Event handler
This receives and processes incoming SMS messages. Replaced elements include username, ip address and database:
#!/bin/bash
if [ "$1" != 'RECEIVED' ]; then
exit 0;
fi
MSGID=$$`date +%s`
MSG=`cat $2 | sed "s/'//g"`
DBSERVER="ipaddress"
psql -q -t -h $DBSERVER -U username -v VERBOSITY=terse database << EOF
select sms.sms_parse('$MSG','$1','$MSGID');
EOF
psql \
-h $DBSERVER -U username \
-qtAc "select phone, message, case when priority then 'T' else 'F' end, coalesce(modem,'MAIN') from sms.outbox where msgid = $MSGID"\
--field-separator '|' \
database| while IFS='|' read -ra Record ; do
NUM=${Record[0]}
MSG1=${Record[1]}
if [ "${Record[2]}" == 'T' ]; then
PRIORITY="\nPriority: High";
else
PRIORITY="";
fi
QUEUE=${Record[3]}
TMPFILE=`mktemp /var/spool/sms/outgoing/sms.XXXXX` || exit 1
echo -e "To: ${NUM}${PRIORITY}\nQueue: ${QUEUE}\n\n$MSG1" > $TMPFILE
done