We are look for a senior experienced web/twilio developer to create an application that allows a person to receive an email that has a special code to listen to an audio file for a specified period of time.
I have a message that I would like a 3rd party to hear, I login to a simple secure website and lookup the message that I would like a 3rd party to hear. I select that message and click generate invitation, the website asks me to populate some information to send in the invitation email. A name, an email address, notes and an expiration date and select a pre-configured email template. The application creates a unique numeric token hash as a message id (not the filename of the audio) and a 4 digit pin to use for authentication to the audio file and sends the email. The message id is consistent across every time we send an email for that particular audio file, the pin however is always regenerated.
The recipient receives the email, dials in a Twilio toll free number and is greeted with a message. "Welcome to ABC Co, Please enter your message id", the twilio application verifies the message id (token hash), if valid, the application prompts: "Please enter your provided 4 digit pin", if invalid, then the message "Message not found, please re-enter message id". The recipient enters the pin, if found, then the twilio application will play the message. The twilio application will log all information in the database, attempts to messages, using which message ids/pins. Once the message has been played, the twilio application will also log that the message has been listened to by message id and pin.
If more than N(configurable via website config) number of attempts fail, then end the call.
Additional Requirements: (also include everything from the scenario above)
- you will create a daily cron script to daily fetch audio files from an ftp site.
- you will post those files onto Amazon S3 storage.
- you will log all files fetched and attempted postings to one file
- you will log all errors to a secondary file
- you will write records of all of the files into a mysql database so that the web application can access them.
- you will create a secured web application that lists all of the messages by date, by default it will list the last N days (configurable) worth of messages
- you will create a search mechanism where the filenames can be searched by date range or by the filename excluding the file extension matching any part of the search criteria. (ex, if the filename is [url removed, login to view], i can search by 6789, and the file will be returned.
- you will show on the message row the message_id for the audio mp3 file.
- you will show on the message row a list of all invitations pins and their expiration date and show their status, whether they have been listened to or not
- you will create a secondary screen showing a list of all sent invitations
- you will use play the mp3 for the caller as shown in this example.
[url removed, login to view]
- you will use REST Authentication/Expiration described at the bottom of the web page to gain access to the files from the twilio application to play back to the user
[url removed, login to view]
- when a message has expired it should no longer be accessible, even if the message id and the pin is correct.
- You must have a great understanding of the the twilio architecture and best practices
- You must have demonstrable experience of developing twilio applications in the past 2 years.
- You must have at least 5 years experience of PHP and data modeling
- You should be able to speak/write english
- You will develop this on an linux external server, and deliver all code, database models
- accounts will be provided for the audio ftp source, twilio, and amazon s3