Personal Agent for A2P3
JavaScript Java Objective-C C++ Shell C
Switch branches/tags
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
AppAndroid
AppBase.Test
AppiOS
Assets
.gitignore
.project
README.md

README.md

A2P3_agent

This is a PersonalAgent for a2p3.net demonstration environment. It is compliant with the specification of the A2P3 protocol version 9.

The Agent targets iOS 4.3-6 for the iPhone and iPad. The beginnings of an Android port are in progress.

The Agent has been tested on the iPhone 4-5 iOS 5-6 and iPad iOS 5-6.

For Developers:

This application makes use of the following libs/frameworks, most notably:

  • phoneGap/cordova
  • backbone
  • underscore
  • jquery mobile
  • jstorage
  • various phonegap plugins

The iOS version is located in the AppiOS folder and the Android verion is located in the AppAndroid folder. The www folder was copied from the AppiOS and put into the Android folder at version 1.7 for port PoC purposes only. An upcoming archiectural challenge will be to figure out how to keep the two www folders logically in-sync while accomodating platform specific modifications.

To run Agent locally in a web browser:

  • Disable the cross domain policy in your browser, e.g.,

      Chrome:
      	chrome.exe --disable-web-security
    
  • Run through web server to stop the local file cross domain policy protection.

Some device specific functions will not work including:

  • QR Code Scanning

  • Custom schema (a2p3.net://token?request=...) handling from the OS.

      You can invoke the javascript function directly in a browser console by calling handleOpenURL(url); 
    
  • Push Notifications (TBD on how to do this manually)

There is a .project file for the Aptana software.

To run Agent on iPhone with using local IP addresses or if you need to sniff traffic:

  • Create an ad-hoc wireless network on computer
  • Configure iPhone to to use that wireless network
  • Install a HTTP proxy on computer such as Fiddler2
  • Edit wireless settings on iPhone to use that proxy

For Designers:

The Agent makes use of jquery mobile controls. Any application specific styles should use the app.css to override or append styles.

Design guidelines:

  • Clean, simple and minimal
  • Agent must be distinguishable from other A2P3 apps

Tips and Tricks:

The global function handleOpenUrl(url) can be used to trigger the enrollment direct and login direct.

For debugging on mobile, jsconsole can be very handy especially where you have to run a deployment signed application such as testing Apple push notifications (which can't be debugged in XCode).

Related

A2P3 project home page

A2P3_specs Specifications and POC documentation

A2P3 POC Server implementation source (node.js)

A2P3_bank POC mobile bank app (PhoneGap)

node-a2p3 node.js npm module for A2P3 applications

sample-node-a2p3 sample A2P3 application using node-a2p3

rs-sample-node-a2p3 sample A2P3 resource server using node-a2p3

License

MIT License

Copyright (c) 2013 Province of British Columbia

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.

IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.