Download as pdf or txt
Download as pdf or txt
You are on page 1of 22

SMS Server tools

Nii Okai Quaye


February 2010

SMS SERVER TOOLS

o Install
o Aptitude search sms/smstools o Sudo apt-get install smstools

Copyright 2011. World Wide Web Foundation. All rights reserved

SMS SERVER TOOLS

SMS Server Tools Config files start stop config file error logfile sms queues Apache webserver

/etc/init.d/sms start /etc/init.d/sms stop /etc/smsd.conf /var/log/smsd.log /var/spool/sms

start /etc/init.d/apache2 start stop /etc/init.d/apache2 stop config file /usr/apache2/conf/httpd.conf error logfile /usr/apache2/logs/error.log web pages /usr/apache2/htdocs The location of these files is different on some linux distributions. MySQL database

start stop client

/etc/init.d/mysqld start /etc/init.d/mysqld stop mysql -u root -p

Copyright 2011. World Wide Web Foundation. All rights reserved

Cron Jobs

Programs the run repeatedly at specified times Every day, hour, minute Windows nnCron lite c:\programme\cron\cron.tab Part of *nix systems

*/10****cp/tmp/logfile.old /tmp/logfile.new minute (0-59) hour (0-23) day (1-31) month (1-12) weekday (0=sunday, 1=monday, ...)

Copyright 2011. World Wide Web Foundation. All rights reserved

Kannel

Open source sms and wap gateway WAP

Communicates to the phone via wap stack and translates request it receives to http for content and service providers Compresses WML scripts into more compact format to save bandwidth and Abstract various smsc protocols and exposes http interface for content providers
Copyright 2011. World Wide Web Foundation. All rights reserved

SMS

Kannel

Consists of three programs called boxes

bearerbox
-

Accepts sms and wap messages and sends them to other boxes Handles wap messages

wapbox
-

smsbox
-

Handles sms messages

It is possible to have multiple sms and wap boxes on the same or different hosts

Copyright 2011. World Wide Web Foundation. All rights reserved

Kannel on Debian

Apt-get install /etc/init.d/kannel


-

start / stop / restart

Copyright 2011. World Wide Web Foundation. All rights reserved

Kannel Setup
# mkdir src # cd src # tar xfz ../downloads/gateway-1.4.1.tar.gz # cd gateway-1.4.1 # configure prefix=/usr/local/kannel # make # sudo make install password: **************

Copyright 2011. World Wide Web Foundation. All rights reserved

Kannel Core Group

Group (assume comm from localhost only)


group = core admin-port = 13000 smsbox-port = 13001 admin-password = bar log-file = "/tmp/kannel.log" log-level = 0
- -

0 - 4. 0 => debug and development 4=>critical errors and problems Ex 0 for development and 1 for production

box-deny-ip = "*.*.*.*" box-allow-ip = "127.0.0.1"


Copyright 2011. World Wide Web Foundation. All rights reserved

Kannel SMSC Group

Smsc Group

Kannel allows many smsc conf - Fakesms service for development and testing - GSM - SMS service over Http group = smsc smsc = at modemtype = auto device=/dev/ttyUSB* - Serial port through which device is connected my-number = XXXXXXXXXX connect-allow-ip = 127.0.0.1 log-level = 0
Copyright 2011. World Wide Web Foundation. All rights reserved

Kannel SMSBox Group

Receives and sends sms received by the core


- - - - -

group = smsbox bearerbox-host = 127.0.0.1 sendsms-port = 13013 Global-sender = XXXXXXXX

Outgoing number of modem

log-level = 0

Copyright 2011. World Wide Web Foundation. All rights reserved

Kannel Sendsms Group

Allows web apps to send sms(over http) using kannel


- - - - -

group = sendsms-user username = kanneluser password = XXX concatenation= true max-messages = 10

Copyright 2011. World Wide Web Foundation. All rights reserved

Kannel SMS-Service Group

Configures how Kannel sends messages to applications Possible to setup to catch incoming messages based on various criteria Using HTTP Get to send message to an app all messages go to one script
- - - - -

group = sms-service keyword = keyword-regex = .* catch-all = yes Max-messages = 0 Tells kannel to never send reply directly from incoming message ans for :<empty reply for service provider> get-url = "http://localhost/sms?phone=%p&text=%a"

Copyright 2011. World Wide Web Foundation. All rights reserved

Kannel Receiving Messages

Kannel calls the url sepecified in sms-service group Further processing and use up to us and the specific application/service we intend to deliver

Copyright 2011. World Wide Web Foundation. All rights reserved

Kannel Sending Messages

Done over Http function sendSmsMessage($in_phoneNumber, $in_msg)! {! $url = '/cgi-bin/sendsms?username=' . CONFIG_KANNEL_USER_NAME! . '&password=' . CONFIG_KANNEL_PASSWORD! . '&charset=UCS-2&coding=2'! . "&to={$in_phoneNumber}"! . '&text=' . urlencode(iconv('utf-8', 'ucs-2', $in_msg));! $results = file('http://'! . CONFIG_KANNEL_HOST . ':'! . CONFIG_KANNEL_PORT . $url);! }!

Php iconv allow_url_fopen set to On in php.ini

Copyright 2011. World Wide Web Foundation. All rights reserved

Kannel Hands on
courtesy: <http://www.dijexi.com/2010/05/setup-kannel-sms-gateway-on-ubuntu/#more-1320>

Enable SMSBOX

sudo vi /etc/default/kannel
- -

START_WAPBOX=1 START_SMSBOX=1

Add kannel user to dialout group to enable kannel user to use /dev/ttyUSB0 device that is necessary for GSM modems

sudo vi /etc/group
-

dialout:x:20:daniel,kannel

Copyright 2011. World Wide Web Foundation. All rights reserved

Kannel Configuration Sample 1


# ! # Sample configuration file for Kannel bearerbox on Debian. ! # See the documentation for explanations of fields. ! #! # HTTP administration is disabled by default. Make sure you set the ! # password if you enable it.! group = core ! admin-port = 13000 ! admin-password = bar ! admin-deny-ip = "*.*.*.*" ! admin-allow-ip = "" ! wapbox-port = 13002 ! wdp-interface-name = "*" ! log-file = "/var/log/kannel/bearerbox.log" ! box-deny-ip = "*.*.*.*" ! box-allow-ip = "127.0.0.1" ! smsbox-port = 13003! group = wapbox ! bearerbox-host = localhost ! log-file = "/var/log/kannel/wapbox.log"! ####### SMS box setup ! group = smsbox ! bearerbox-host = localhost ! log-file = "/var/log/kannel/smsbox.log"! ####### SMSC / GSM modem setup, using enfora modem defined below ! group = smsc ! smsc = at ! modemtype = enfora ! device = /dev/ttyUSB0!

Copyright 2011. World Wide Web Foundation. All rights reserved

FrontlineSMS Keywords

Information pull

Keywords auto reply can be sent to provide the requested information We can also link keywords to forward message to a predifined group or individual
-

Eg For customer complaint Eg join group ,auto reply and forward

Keywords can be linked to multiple actions


-

Copyright 2011. World Wide Web Foundation. All rights reserved

FrontlineSMS Http Trigger

This allows for of FLSMS be programmed to perform some action based on an external (http) command Need to establish port to listen to Format

http://localhost:<portNumber>/send/sms/ <destinationPhoneNumber>/<messageContent>/ Where

Copyright 2011. World Wide Web Foundation. All rights reserved

<?php include_once("config.php"); // database definition include_once("dbclass.php"); // sql Where Conditios $objDB = new DB(); // Query messages by campaign ID // if(isset($_POST['campaignid']) && $_POST['campaignid'] != "") { $Query = "select * from custom_fields where campaign = '".$_POST['campaignid']."' "; $objDB->setQuery($Query); $rs = $objDB->select(); ?> <?php if(count($rs)>0) { $counter = 0; foreach($rs as $data) { // You can change the format or the message here //------- Message Format ---------$message =rawurlencode($data['var1']." ".$data['var2']." ".$data['var3']." ".$data['var4']); //------- Message Format ---------$url = "http://localhost:8000/send/sms/".$data['phone']."/".$message."/";

// Using Curl $curl_handle=curl_init(); curl_setopt($curl_handle,CURLOPT_URL,$url); curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2); $output = curl_exec($curl_handle); curl_close($curl_handle); $content.= $url." - ".$output; // used for debug $content.="- ".$data['phone']."<br/>"; // used for debug ?>

Copyright 2011. World Wide Web Foundation. All rights reserved

String encodedPhoneNumber = URLEncoder.encode ("+2348069361226","UTF-8");! String encodedMessage = URLEncoder.encode("helo","UTF-8");! URL url=new URL("http://localhost: 8181/send/sms/"! + encodedPhoneNumber + "/"! + encodedMessage);!

Copyright 2011. World Wide Web Foundation. All rights reserved

Copyright 2011. World Wide Web Foundation. All rights reserved

You might also like