Perl or Ruby program to interact with SMS/Text on mobile phones

CLOSED
Bids
11
Avg Bid (USD)
$1870
Project Budget (USD)
$750 - $1500

Project Description:
Project Description:
This project is to develop a user self-registration application (“Registrar”) that uses Twilio (an IVR provider in the US) services and API's. It will enable our users (Users) to register their mobile phone number and their home address on our system. Registration occurs via a series of text messages (SMS).

The Twilio-based SMS interface will run as a web service under Tomcat on our web server, and will be accessed via a URL configured on Twilio. The web service may be written either in Perl or in Ruby.

When an SMS message arrives from someone, Twilio will execute a POST to the URL we configure for that Twilio number. The POST will contain the hard-coded the customer’s telephone/account number. The POST will also contain dynamic content: the sender’s SMS number and the message text. The URL will be of the form:

https://registrar.hyper-reach.com/incoming/account=customer_number/{twilio_content}

There will be a dedicated Twilio telephone number for each customer account (customer_number). Therefore, we will be able to associate the twilio_content with the appropriate customer. This will then be used with the our API to retrieve information from and to populate the registration database.

The web service will communicate back to the User via the Twilio REST API, found at https://www.twilio.com/docs/api/rest

The SMS Registrar application will start by receiving a message (SMS) from someone wishing to register. That will initiate a series of interactions with the sender, which will retrieve the information necessary for that caller to complete his/her registration.

Each interaction between the Registrar and our server may run into problems since they will occur on the Internet, an imperfect communications medium. We expect a small amount of resiliency with Registrar (e.g., some configurable retries) but they must then be able to terminate gracefully.

Address Correction
A User’s registration data contains at least one physical location address. This project’s scope includes using the Google Maps Geocoding API (https://developers.google.com/maps/documentation/geocoding/) to convert the arbitrarily formed address that a User sends in a text message into a normalized format with a Latitude and Longitude that may then be stored in our database.

SMS Interface
SMS registration will be accomplished with the server side acting as a state machine. The Registrar will essentially maintain a pseudo-session. Each user text number will have a state in the database. Depending on the current state and the incoming contents, the state will change and the server will send a message back to the user to draw successive information from that user.

Message Content Equivalents
Text messages may have several variations in spelling, abbreviations, and punctuations. The following table shows a generic message meaning and the various aliases that will be treated as equivalent. The program will provide a mechanism to modify the aliases without changing code (for example, an input data file). For this program, capitalization will always be ignored. “a-z” are identical to “A-Z”.

States
The following tables defines the distinct states for any user data record in the state machine and their meaning. It is always assumed that we know the telephone number (or SMS number) of the User who is sending the message. Users are associated with an individual Account. The Account is identified by the number which the User uses to contact the Registrar.

Each Account will have a unique inbound calling/SMS number. Each Account will have a list of numbers which are not to be contacted. This is referred to as the Do Not Contact or DNC list.

Confidentiality agreement required for detailed specifications and/or winning bid.

Only 50% of bid will be milestoned before delivery of beta version. No money released until beta version provided. Deliverables must include commented source code. Full payment made after delivery of source and testing.

Skills required:
Perl, Ruby
Hire jveilleux
Project posted by:
jveilleux United States
Verified
Public Clarification Board
Bids are hidden by the project creator. Log in as the employer to view bids or to bid on this project.
You will not be able to bid on this project if you are not qualified in one of the job categories. To see your qualifications click here.


$ 2105
in 20 days
Hire amaksr
$ 1250
in 15 days
Hire hoannga
$ 1000
in 20 days
$ 5263
in 30 days
Hire deatul
$ 1200
in 3 days
Hire rorwebcoder
$ 1250
in 5 days
Hire nyeejj
$ 1200
in 10 days
Hire bipinshashi
$ 1250
in 12 days
$ 1050
in 14 days
$ 2222
in 20 days