You should look into Asterisk, an open-source PBX
You might want to look at the pre-bundled distributions rather than starting from scratch, as Asterisk is quite configurable and can be daunting to the newcomer at a low level (much like Apache httpd).
To send the alerts you describe, I'd suggest using the spool file configuration. Build a dialplan that when invoked dials the appropriate number and plays the right file. Once that's working, you can drop files into an Asterisk directory which will cause that portion of your dialplan to be invoked. You can pass parameters and such in the spool files, so you wouldn't have to create each message from scratch - you could have it read out the server letter-by-letter or use the integration to several TTS engines to try to say the server name.
You will need outbound termination to get the call out onto the PSTN, but there are many providers of such services. Most offer pricing where you pay a small standing charge for the account and then a low (on the order of cents per minute) outbound call charge.
Hope that helps.