The document describes the eTXT App Framework, which allows any phone to access internet messaging like Facebook, email, and IM through SMS. It is run by ForgetMeNot Africa and works by assigning virtual numbers for chat interactions. Developers can build apps that integrate with eTXT through a JSON or HTTP API. The framework aims to bring internet messaging to more mobile phones across Africa.
Developer Data Modeling Mistakes: From Postgres to NoSQL
Etxt app framework
1. The eTXT App Framework
March 28, 2012
John Carroll
Director of Technology
ForgetMeNot Software
Internet messaging on every mobile
2. Who am I
• Me: John Carroll (johnc@fmnsoft.com)
• Director of Technology
– ForgetMeNot Africa
• Working Programmer for 18 years
• Blog: http://blogs.zdnet.com/carroll
• Twitter:
– @FmnJohn
– @FMNA / #ZETXT
Internet messaging on every mobile
3. ForgetMeNot Africa
• Subsidiary of ForgetMeNot Software
• Extensible Messaging Platform (eTXT)
– Plugins for
• Email
• IM (Live Messenger, Facebook, GTalk)
• Facebook posts and comments
• Custom tools (CV Tool, #BUZZ, Spinner)
• Lives in our data center
• Licensed to Carriers
Internet messaging on every mobile
4. eTXT
• Why do you care?
• Our brand in Zimbabwe
• On Econet network
• econetmail.com email
– Web inbox account
– Copy to SMS
http://www.etxt.co.zw
Internet messaging on every mobile
5. eTXT Concept
• Let’s any phone get on
Facebook GTalk
Live Messenger More..
Email
• Uses SMS
– Send to virtual number “contact”
• Price per message: $0.02 / $0.05 on
30000
Internet messaging on every mobile
6. How it works
• Command and control: 30000
– Online / offline
– Who Online
– Find
– Contact creation
• Chat interactions: virtual numbers
– IM / new contact “invites”
• Coming soon: USSD, Dasuba Messenger
Internet messaging on every mobile
7.
8.
9.
10. Extensibility API
• Let’s third parties leverage our connection
• Creates a new “trigger” on 30000
• Creates a 2-way channel to your server
– Session based on “virtual number”
– 60 minutes timeout - sliding
• Session maintained
– Per Session
– Per Customer
Internet messaging on every mobile
11. Register your app
1. Visit:
a) www.forgetmenotafrica.com/developers
2. Register as a developer
3. Go to:
a) www.etxt.co.zw/Registration
4. Click “Register as a Developer”
Internet messaging on every mobile
17. Writing your app
• Simple call to your server
– Will announce a hosting partner soon
• Support these protocols (all HTTP)
– SOAP / XML
– JSON
– HTTP POST (form encoding)
• Specify a “trigger” command
• Test with your dev “short code”
Internet messaging on every mobile
18.
19.
20. Application State
• Session State
– Passed with each subsequent call
– Lives as long as the “virtual number”
• Customer State
– Crosses session boundary
– Associated with an eTXT account
– Passed with each call
• Both are unstructured strings
Internet messaging on every mobile
21. JSON Request
POST http://127.0.0.1:60047/SomeService.php HTTP/1.1
Content-Type: application/json; charset=utf-8
Host: 127.0.0.1:60047
Content-Length: 105
Expect: 100-continue
{
"customerstate":null,
"id":"09883dc9-a90c-4bb6-b71f-73e94a56e618",
"msg":"#calc Dave",
"sessionstate":null
}
Internet messaging on every mobile
22. JSON Response
HTTP/1.1 200 OK
Date: Fri, 06 Jan 2012 12:30:30 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 138
Connection: Close
{
"customerstate":null,
"id":"09883dc9-a90c-4bb6-b71f-73e94a56e618",
"msg":"Hi Dave. Reply with the first number to add",
"sessionstate":“Dave“
}
Internet messaging on every mobile
23. HTTP POST Request
POST http://127.0.0.1:60047/FormPostCalc.ashx HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: 127.0.0.1:60047
Content-Length: 80
Expect: 100-continue
Connection: Keep-Alive
Id=d1a7ecd6-5fe5-4d5a-9d85-
0c71aa1cbd04&Message=#c2&SessionState=&CustomerState=
Internet messaging on every mobile
24. HTTP POST Response
HTTP/1.1 200 OK
Date: Fri, 06 Jan 2012 12:30:25 GMT
Content-Type: text/xml; charset=utf-8
Content-Length: 140
Connection: Close
<mt id="5b84f57d-0cc7-4840-adc5-f78c62a08e52">
<msg>Reply with the first number to add</msg>
<sessionstate />
<customerstate />
</mt>
Internet messaging on every mobile
25. Extensibility Roadmap
• USSD
• Push SMS to User
– Requires user authorization
– Daily limit
• Group Chat
– Loop in Social Graph
• Reusable Algorithms
– Group Chat “Chooser” wizard
Internet messaging on every mobile
26. Important Points
• Revenue share: 20% of our rev share
• Only make money from SMS-MO
• Apps MUST encourage dialogue
– Approval relies on this
• Make your apps “sticky”
– Things people need regularly
– Local Content (e.g. Harare traffic reports)
– Fills a need
Internet messaging on every mobile
27. Apps Challenge
• Ideas submission: 4th May
• Ideas feedback: 11th May
• Shortlist announced: 25th May
• Shortlist Feedback: 1st June
• Test Drive: 16th June
• Awards: 1 week later
• Prizes - Up to 3 iPads, $2000
Internet messaging on every mobile
28. Keep in Touch!
• This is version 1.0
• What do you want on the roadmap?
• What isn’t working correctly?
• The URLs
– www.facebook.com/fmnafrica
– www.facebook.com/groups/fmndevelopers
– www.forgetmenotafrica.com
Internet messaging on every mobile