Upload
homer-robertson
View
213
Download
0
Embed Size (px)
Citation preview
Lab 1:SMS Services
MIT D-Lab ICT4D
D-Lab ICT for DevelopmentLab 1: SMS Services
Slide 2
Intro to Lab Sessions
• Goal: Give overview and examples to jump-start you
• Three Sessions– SMS applications– J2ME (on-the-phone apps)– Advanced features (NFC, Location, MMS, etc.)
• But … we can’t teach everything in 3 sessions!– you’re expected to study and follow-up on your own– we’ll just give you simple educational examples – not necessarily the
best or most scalable solutions– you’re welcome to use other tools and techniques not taught in class
• These tools are works in progress -- You’re welcome to help!
D-Lab ICT for DevelopmentLab 1: SMS Services
Slide 3
Recap: Mobile Phone Capabilities, Apps
• SMS (Text Messaging) –based services– send text commands, receive info– receive alerts and subscriptions
• MMS (Multimedia Messaging) –based services– send and receive multimedia to/from server
• J2ME (Java 2 Micro Edition) applications– programs running on the phone– e.g., games
• Internet/Web services– via WAP (limited) and/or GPRS (dialup-speed connection)– via 3G (broadband speed connection)
• Location-based services– services that make use of location of users
• Micropayment applications– ability to send/transfer cellphone credits via SMS– leads to cash-less, credit-card less, electronic payment mechanisms
D-Lab ICT for DevelopmentLab 1: SMS Services
Slide 4
Example: SMS Job Finder Service
• Service On-Demand– User texts FINDJOB <JOB> to 123
• e.g., FINDJOB DRIVER
– Service responds (via SMS text message) with …
• Agency: JobsRUs. DRIVER needed as of 2/1/08, Call (987) 654-3210
• Subscription Service– User can subscribe to alerts
• e.g., FINDJOB SUBS DRIVER
D-Lab ICT for DevelopmentLab 1: SMS Services
Slide 5
MNOMNO
Mobile “Value-Added Services (VAS)” Architecture
Users
SMSC
in-house apps
direct connection
VAS gateway
aggregator
private “service” via GSM modem or phone
3rd party app providers (aka content providers, “CPs”)
small 3rd party CPs
D-Lab ICT for DevelopmentLab 1: SMS Services
Slide 6
Writing SMS Apps: Three Options
• direct to Mobile Network Operator
• via Aggregator
• using GSM modem or phone
D-Lab ICT for DevelopmentLab 1: SMS Services
Slide 7
Tools
Open Source
• Kannel
• SMSLib
• Gnokii, etc.
Commercial
• Aggregators– e.g., Clickatell
• Libraries for Using Private Lines
– e.g., NowSMS, WinSMS, etc.
D-Lab ICT for DevelopmentLab 1: SMS Services
Slide 8
Programming Options
• Protocols– direct via language-specific API– TCP/IP-based protocols
• e.g., CIMD, SMPP, etc.– HTTP-based protocols
• GET, POST, XML-RPC• Languages
– Java, PHP, anything …– Note: probably also need
• backend database• web front-end
D-Lab ICT for DevelopmentLab 1: SMS Services
Slide 9
Legal Disclaimer
• The information here is for educational purposes only
• We assume your programs will be used for private/personal use only
• If you want to do a commercial or high-volume application, you may have to contact a mobile operator or an aggregator in your target market
Lab Examples
D-Lab ICT for DevelopmentLab 1: SMS Services
Slide 11
Writing an App (Easy!)
public interface SMSApplication {
public SMSMessage onSMSMessageReceived(SMSMessage incomingMsg);
public void setSMSSender(SMSSender sender);
}
public interface SMSSender {
public boolean sendSMSMessage(SMSMessage outgoingMsg);
}
IMPLEMENT THIS
D-Lab ICT for DevelopmentLab 1: SMS Services
Slide 12
How to connect your app
• Via Java– via GSM modem adapter
• via SMSLib
– via HTTP GET adapter• connecting from Kannel or other gateways
– (via email adapter)
• Alternative: PHP
D-Lab ICT for DevelopmentLab 1: SMS Services
Slide 13
Other Issues
• Databases
• Web Interface
D-Lab ICT for DevelopmentLab 1: SMS Services
Slide 14
References
• See ict4dlab.org for more info and links
• This is under development, so visit often for up-to-date info
Application Design Tips and Tricks
D-Lab ICT for DevelopmentLab 1: SMS Services
Slide 16
Caveats
• Watch how you keep state
– if you are running app from command-line, state that is not written to disk or persistent database will get lost when you run the app again
– similar issues with web-based solutions
D-Lab ICT for DevelopmentLab 1: SMS Services
Slide 17
Caveats: Security
• Watch for “SQL Injection” attacks!
D-Lab ICT for DevelopmentLab 1: SMS Services
Slide 18
General User-Interface Tips
• Make inputs case-insensitive
• Also whitespace insensitive
• Avoid hard-to-type characters
• Try to use keywords in T9 dictionary (or compound words composed of such words)
• Reply-based interfaces– keep per-user state of last transaction
– enables simpler “Reply with …” commands• e.g., “Reply NEXT to continue to get more info”