The Asterisk Open-Source PBX can do this for you and more. Asterisk is
free -- visit http://asterisk.org/ for more info. A modem really isn't
going to give you the reliability and audio quality you want anyway.
Believe me, I used Asterisk to replace a vgetty-based voicemodem
system, and the customers were extremely satisfied with the results.
You will be, too.
If you want to use a phone line directly connected to your linux
server, then you'll need an FXO interface. I strongly suggest that if
you choose Asterisk, you use Digium hardware. It's sold by the same
folks that actually developed Asterisk, and is designed specifically
to work well with Asterisk. It's also only $99.95, which is a steal as
far as telelphony interfaces are concerned.
http://store.yahoo.com/asteriskpbx/wildcardx100p.html
If you don't want to pay for an extra phone line and FXO interface, or
plan not to make a lot of calls, consider using a VoIP provider that
will connect you to the public switched telephone network at
competitive rates. Within the Asterisk community of users, NuFone
comes highly recommended. I use them myself, and you could make almost
60 hours of calls for about the same as it would cost to buy the FXO
interface. They have excellent support via email and participate often
in the Asterisk-Users mailing list, though their website is still
under development.
http://nufone.net/
Finally, for an explanation of how it would all be put together: your
PHP script would need to verify the request with a call or email. Be
aware of the potential for abuse (a script could quickly sign up a
thousand different email addresses all with the same victim's phone
number, scheduled for calling on a single day). Once you've
sufficiently verified the request, your PHP script should log it in a
small database.
Then write a small perl script that is triggered by cron every day.
The perl script would look in the database to see if there are any
calls scheduled for the day. If so, the script dynamically generates
an outgoing call file for each call to be made and drops it in
/var/spool/asterisk/outgoing. Once you have Asterisk installed, see
the "sample.call" file for an example of the outgoing call file. The
application specified by the call file might be a simple Playback of a
canned WAV file, an interactive voice response (i.e., "press 1 to
leave a return message," etc.), or even a speech-synthesized dynamic
greeting customized to your recipient.
If this is a project with a budget, feel free to contact me for
implementation assistance. If it's just a hobby thing, then read the
asterisk-users list archives, join the list, and have fun with open
source telephony! |