Download presentation
1
MIT D-Lab ICT4D Lab 1: SMS Services
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!
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
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) Subscription Service User can subscribe to alerts e.g., FINDJOB SUBS DRIVER
5
Mobile “Value-Added Services (VAS)” Architecture
3rd party app providers (aka content providers, “CPs”) small 3rd party CPs Users direct connection MNO aggregator SMSC VAS gateway in-house apps private “service” via GSM modem or phone
6
Writing SMS Apps: Three Options
direct to Mobile Network Operator via Aggregator using GSM modem or phone
7
Tools Open Source Kannel SMSLib Gnokii, etc. Commercial Aggregators
e.g., Clickatell Libraries for Using Private Lines e.g., NowSMS, WinSMS, etc.
8
Programming Options Protocols Languages
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
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
10
Lab Examples
11
Writing an App (Easy!) IMPLEMENT THIS
public interface SMSApplication { public SMSMessage onSMSMessageReceived(SMSMessage incomingMsg); public void setSMSSender(SMSSender sender); } public interface SMSSender { public boolean sendSMSMessage(SMSMessage outgoingMsg); IMPLEMENT THIS
12
How to connect your app Via Java Alternative: PHP
via GSM modem adapter via SMSLib via HTTP GET adapter connecting from Kannel or other gateways (via adapter) Alternative: PHP
13
Other Issues Databases Web Interface
14
References See ict4dlab.org for more info and links
This is under development, so visit often for up-to-date info
15
Application Design Tips and Tricks
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
17
Caveats: Security Watch for “SQL Injection” attacks!
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”
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.