I need something that will periodically log into the a server and check asterisk process and check the status of a few things. It doesn't have to be remote, we've already got several devices monitoring our machines remotely, including the asterisk process themselves. I'm thinking of a cron job run locally that logs into the asterisk process and performs the litmus test...it makes an actual call. The process is able to somehow determine if the call successfully completed, maybe reading the sip debug/headers or something. It then forks to two possibilities: 1. all is fine and it can go back to sleep until it runs again. 2. something is amiss. If it notices something is wrong then it will perhaps try a few other things. Maybe wait 60 seconds and try again. Then if it fails for a second or third time it declares a "down down" type of situation and immidiately starts taking action. 1st it sends out a page to group of admins on a list with cell phones accessible by email (nagios type stuff). Then, the script itself will attempt to resolve the problem. 99.9% of the time the problem can be resolved by killing all asterisk process and restarting them. (we have a way we like to start the asterisk process but we can discuss later). Once it has restarted the asterisk process it then attempts the test again and determines if all is resolved. Here we have another fork. 1. If killing the asterisk process and restarting it did not resolved the process it simply shuts down the box. It then sends another page notifying the world that it has self-destructed. Obviously the same script is running on the backup box so we'll know if we have a bigger problem. 2, On the other hand, if the killall process worked, and the second test passes, then it sends a page that it has recovered. And the world is a good place to live again. ASterisk is a free open source pbx [login to view URL]
## Deliverables
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
## Platform
unix freebsd