Social security for getting on a large amount Beat The Cycle Of Debt Beat The Cycle Of Debt for an approved in addition questions.

Appointment Reminder Calls – With Asterisk VoIP

Posted: July 21st, 2010 | Author: | Filed under: Asterisk VoIP, Linux, Tech | Tags: , , , , , , , , | 8 Comments »

A while back I had a meeting with a friend in Orlando, FL. He came up with the idea to provide an appointment reminder service to companies that would benefit from such a service. Doctor’s offices, Dentists, Mechanics, Repairmen, etc. I drew up the logistics of the program and began working on it in the fall of 2008. Since then we have had customers use the software to easily call their customers and remind them of appointments and also use the software for call blasting. Call blasting is a feature to call an unlimited amount of numbers and playback a message. Since I have experience in the Asterisk VoIP platform I programmed the system to allow for options and the customer to enter in input with their keypad.

The purpose of this article is to detail the logistics and share it with the Asterisk community.

Basic overview:
There are a few different ways to originate calls with Asterisk.
-From the Asterisk CLI directly with the “originate” command
-From the AMI (Asterisk Manager Interface)
-From .call files placed in /var/spool/asterisk/outgoing

I went with .call files because of a few reasons:
-I can generate all of the call files ahead of time because they are read based on the timestamp of the file (less load)
-It is straightforward and easy to follow, and also leaves behind the .call file that is archived after the call is finished
-Asterisk will parse and execute based on timestamp, so to burst 100 calls would require much less overhead than through AMI/CLI

There are some negative effects to the .call files too:
-Changes made need to remove and add another .call file (If the customer changes their appointment time after the file was generated)
-The lowest interval to generate calls is every minute, so we can burst to 400 calls/minute (also more difficult to throttle calls)

Now you know how the calls are originating on the system, let’s move on to the database and interface.
I hired someone to program the interface in AJAX and PHP. That way it is secure and saved a lot of time if I were to attempt it myself. The interface is very clean and easy to use for customers. They also have the ability to import 1,000 records at a time via CSV files. Feel free to demo the interface via the link on for “Demo the Interface”.
The interface stores the call data in MySQL which is then scanned hourly to process and create all of the .call files according to their timestamp. We only care about the calls that will be made by the system in the next hour, so those are the only .call files that are generated. The script is a PHP script that connects to the database with the query of calls to be made, strips them down, then does a loop to create the .call file, set the timestamp based on the variable, then move the .call file to /var/spool/asterisk/outgoing.

The .call files include 1 custom variable that is comma-delimited so we can parse out the appointment time, AM/PM, and any other custom variables.
The other important lines in the .call file point to the context in the Asterisk dialplan that the customer’s announcement and options are defined.

Now you may ask yourself, It will be a pain to manually add customer’s options and dialplan for every sign up, right? It was at first, but I created several automated scripts to generate the dialplan for the customer and “dialplan reload” when complete.

The rest of the accounting/etc is accomplished via bash cleanup scripts that write to the database and provide reporting/etc.
The same system can be used for call-blasting to a large group of number for a survey, snow day announcement, marketing message.

Please let me know if you have any questions or advice/constructive-criticism for me regarding the program.
And feel free to try out the demo interface and hear a reminder call!


Create free ringtones for the iPhone – Using iTunes

Posted: July 21st, 2010 | Author: | Filed under: Mac, Tech | Tags: , , , , , , | No Comments »

I haven’t seen any “clean” write-ups for creating free ringtones for your iPhone yet, so here goes.
Note: This is done on my Mac, if you notice any differences please let me know and I can make an updated PC-guide.

-Open up iTunes on the Mac/PC that you use to sync with your iPhone.
-Make sure that AAC is the import format. If not, change it by: iTunes, Preferences, Import Settings, Import using: AAC Encoder, Setting: iTunes Plus, then click OK.

You should notice that if you right-click on any song in your library, it will have a “create AAC version” option.
It is a good practice to make your ringtones 30 seconds in duration.

-Locate the song you wish to make in to a ringtone.
-Preview and note the point in the song that you want the ringtone to start
-Right-click on the song, Get Info
-Go to the options tab, put in your start time and end time for the song, click OK

-Double-click the song to play the 30-second clip you just set, adjust start and end time if necessary
-Once you have the 30 seconds of ringtone goodness, right-click on the song and create AAC version

After the song is converted you should see a duplicate song below the original with a duration of 30 seconds. Left-click and drag this new song to your desktop. The ringtone will be copied to your desktop as a .m4a file. Left-click and rename to .m4r extension. You will get a prompt that says, “Are you sure you want to change the extension from “.m4a” to “.m4r”? Choose “Use .m4r”

Left-click the ringtones folder in iTunes and drag your new .m4r file to it, you now have your new ringtone! Make sure it will be copied by editing your sync settings to copy all ringtones! Voila!

Note: Make sure to cleanup and remove the start and end times from your songs that you made ringtones. It will be annoying whenever you play them and they will only play for 30 seconds.