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


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:{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 [url removed, login to view]

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 ([url removed, login to view]) 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”.


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: Perl, Ruby

See more: ruby sms send, send sms mobile using perl, user testing mobile, tomcat rest, service provider agreement format, rest google api, money on the table, money on table, mobile user testing, mobile provider by address, location services api, location based services api, list of mobile developers, https developers, google web service example, google rest api, google phone location services, google location services api, google location based services, generic web service, generic service agreement, example of a confidentiality agreement, dynamic problems, data input at home, current state documentation

Project ID: #4644735

11 freelancers are bidding on average $1870 for this job


I'm interested in that project. I'm experienced (15+) perl web developer and system administrator. Please see PM.

$2105 USD in 20 days
(11 Reviews)

Hello, please check your PM.

$1250 USD in 15 days
(4 Reviews)

I'm ready to do it, Thank sir.

$1000 USD in 20 days
(3 Reviews)

Hi, I have seen the details of the project. I can make as you need . Please see the Private message for more details . THANKS

$5263 USD in 30 days
(1 Review)

Please have a look at proposal/scope/working demo of your project in my Personal Message.

$1200 USD in 3 days
(1 Review)

Am having 5 years of experience in web application development using Ruby on Rails. I have worked on different projects with domains like Social Networking, E-Commerce, Hospital Management, Project Management etc..

$1250 USD in 5 days
(0 Reviews)

Hi, I am a seasoned IT professional with over 12 years of enterprise web development experience with over 6 years of Ruby on Rails experience. See private message for more details.

$1200 USD in 10 days
(0 Reviews)

I have prior experience working with the twilio api. And I have a 3 years experience with Ruby. This project seems fairly straightforward and right up my alley.

$1250 USD in 12 days
(0 Reviews)

Sir I have previous experience working with both PERL and Java and am very interested in participating in your project.

$1050 USD in 14 days
(0 Reviews)

We can work on this project , as we are expert at perl , twilio and sms applications . Please check pmb for details. Rgds

$2222 USD in 20 days
(1 Review)

A very interesting requirement, would love to be part of this task.

$2777 USD in 40 days
(0 Reviews)