The eTXT App Framework
    March 28, 2012


               John Carroll
               Director of Technology
               ForgetMeNot Software


               Internet messaging on every mobile
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
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
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
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
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
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
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
Internet messaging on every mobile
Internet messaging on every mobile
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
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
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
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
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
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
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
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
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
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

Etxt app framework

  • 1.
    The eTXT AppFramework 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 • Subsidiaryof 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’sany 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
  • 10.
    Extensibility API • Let’sthird 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
  • 13.
  • 16.
  • 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
  • 20.
    Application State • SessionState – 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.phpHTTP/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 200OK 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 POSThttp://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.1200 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 • Revenueshare: 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