SMS BootCamp!SMS BootCamp!A Crash Course for the UoNA Crash Course for the UoN
Day 1Day 1
Eric MagutuEric Magutu
Kenya Education NetworkKenya Education Network
Nathan Eagle, PhDNathan Eagle, PhD
[email protected]@mit.edu
Massachusetts Institute of TechnologyMassachusetts Institute of Technology
April 2007April 2007
SCI, Univ of Nairobi, KenyaSCI, Univ of Nairobi, Kenya
The Goal for this Course:The Goal for this Course:
Build Your Own SMS Application!Build Your Own SMS Application! Develop your own SMS sending Develop your own SMS sending
applicationapplication Connect your phone to a PC to act as a Connect your phone to a PC to act as a
SMSC SMSC Configure a SMS gatewayConfigure a SMS gateway Receive, store and process SMSsReceive, store and process SMSs Send back responsesSend back responses
Some SMS DefinitionsSome SMS Definitions
Short Message Service (SMS)Short Message Service (SMS) is a telecommunications protocol that is a telecommunications protocol that
allows the sending of "short" (160 allows the sending of "short" (160 characters or less) text messages.characters or less) text messages.
SMS GatewaysSMS Gateways exist to connect mobile SMS services exist to connect mobile SMS services
with instant message (IM) services, the with instant message (IM) services, the world wide web, desktop computers, world wide web, desktop computers, and even landline telephones (through and even landline telephones (through speech synthesis).speech synthesis).
Reverse SMS billing /premium Reverse SMS billing /premium SMS serviceSMS service user of the recipient phone rather than user of the recipient phone rather than
the message sender is charged for the the message sender is charged for the cost of the SMS message receivedcost of the SMS message received
The short message peer-to-The short message peer-to-peer protocol (SMPPpeer protocol (SMPP)) is a telcom protocol for exchanging SMS is a telcom protocol for exchanging SMS
messages between SMS peer entities messages between SMS peer entities such as short message service centres.such as short message service centres.
A Short Message Service Center A Short Message Service Center (SMSC)(SMSC) is a network element in the mobile is a network element in the mobile
telephone network which delivers SMS telephone network which delivers SMS messagesmessages
How to send an SMS?How to send an SMS?
GatewaysGateways Software that runs on your computer Software that runs on your computer
and interfaces with your phoneand interfaces with your phone Service ProvidersService Providers
Interface via http postsInterface via http posts Check out Clickatell.comCheck out Clickatell.com
Ethiopian services?Ethiopian services? SMTP (email)SMTP (email)
[email protected]@safaricomsms.com
Some Examples of SMS GatewaysSome Examples of SMS Gateways
NowSMSNowSMS Easy to get up and running quicklyEasy to get up and running quickly Industrial-GradeIndustrial-Grade Not free / annoying text messagesNot free / annoying text messages Message limitationsMessage limitations
KannelKannel Linux-basedLinux-based Open sourceOpen source Questionable scalabilityQuestionable scalability
WinSMS, Ozeki, Intellipool, Gnokii, etc WinSMS, Ozeki, Intellipool, Gnokii, etc
Phone to PC InterfacePhone to PC Interface
Using the Phone as a Windows ModemUsing the Phone as a Windows Modem ConnectingConnecting InstallingInstalling TestingTesting
PC to Phone ConnectionsPC to Phone Connections USBUSB BluetoothBluetooth InfraredInfrared
Examples of SMS AppsExamples of SMS Apps
Person-to-Person Text MessagingPerson-to-Person Text Messaging Normal way you use SMSNormal way you use SMS
Chat applicationChat application allows a group of people to exchange allows a group of people to exchange
SMS text messages interactivelySMS text messages interactively Provision of InformationProvision of Information
content providers make use of SMS text content providers make use of SMS text messages to send information such as messages to send information such as news, weather report and financial data news, weather report and financial data to their subscribers.to their subscribers.
DownloadingDownloading SMS messages can carry binary data and so SMS SMS messages can carry binary data and so SMS
can be used as the transport medium of wireless can be used as the transport medium of wireless downloads.downloads. Eg ringtones, wallpapers, pictures
URLs of a file to automatically download. URLs of a file to automatically download. (Cellulant)(Cellulant)
Alerts and NotificationsAlerts and Notifications Email, Fax and Voice Message NotificationsEmail, Fax and Voice Message Notifications E-commerce and Credit Card Transaction E-commerce and Credit Card Transaction
AlertsAlerts Stock Market AlertsStock Market Alerts
Remote System MonitoringRemote System Monitoring Two-way Interactive Text Two-way Interactive Text
Messaging ApplicationsMessaging Applications For example, search engines are two-way For example, search engines are two-way
interactive text messaging applicationsinteractive text messaging applications SMS MarketingSMS Marketing
After signing up, the user will receive After signing up, the user will receive SMS text messages about the latest SMS text messages about the latest discounts and products of a company.discounts and products of a company.
SMS Messaging IntegrationSMS Messaging Integration It allows the ability to push relevant It allows the ability to push relevant
information to your customers or site information to your customers or site users. users.
DodgeballDodgeball Social software to organize friends…Social software to organize friends…
SMS BloodBank AppSMS BloodBank App
Tracking levels of blood at local Tracking levels of blood at local hospitalshospitals
Sending data via SMS / Web gatewaySending data via SMS / Web gateway AlertsAlerts Sambaza payment incentives… Sambaza payment incentives…
Code InterfaceCode Interface
Clickatell (Python)Clickatell (Python)phone = "+16178889999"phone = "+16178889999"
uname= "Hey Nathan!"uname= "Hey Nathan!"
params = urllib.urlencode({'api_id': 5156, 'user': 'eprom', params = urllib.urlencode({'api_id': 5156, 'user': 'eprom', 'password':'eafrica2007','to':'1'+phone, 'text':uname + ' This 'password':'eafrica2007','to':'1'+phone, 'text':uname + ' This is the message we’re sending from SMS BootCamp!'}) is the message we’re sending from SMS BootCamp!'})
f = urllib.urlopen("http://api.clickatell.com/http/sendmsg ", f = urllib.urlopen("http://api.clickatell.com/http/sendmsg ", params)params)
Clickatell (Http posts)Clickatell (Http posts)http://212.49.82.113/clickatell?to=2547XX&text=this+is+a+message
<form action="http://212.49.82.113/clickatell" method="get">To:<input type="Text" name="to"><br><br>Message:<input type="text" name="text"><br><br><input type="submit" value="send"></form>
Code InterfaceCode Interface
Cellulant (Php)Cellulant (Php)<?php
?>
echo “This is what you said: ".$_GET['msg'];
Day 1 ExercisesDay 1 Exercises
Develop your own SMS sending Develop your own SMS sending applicationapplication
Connect your phone to a PC to act as Connect your phone to a PC to act as a SMSC a SMSC
Configure a SMS gatewayConfigure a SMS gateway Receive, store and process SMSsReceive, store and process SMSs Send back responsesSend back responses