I understand that there is a need to call people automatically, however it has to be out of some list of people to be called whose database shall be in your database.
Generally people employ a predictive dialer which can do power dialling- ie. rapid dialing of no.s and rejecting answering machines, busy tones and other irrelevant tones until a voice path has been established with the distant client.
Yes surely there is an algorithm to detect and reject unwanted tones and noise and redial after a predefined time interval(depending upon the type of tone encountered on first dial).
Then there are other modes of dialling i.e. Preview dialling- In which its upto the CSR to dial or not the next scheduled No. depending on his own status at that particular time, so that he may do justice to the called client.
Thirdly there is a predictive dialler, which takes care of all the possibilities and events automatically using a complex computer algorithm for predicting the availability of CSR i.e. how he/she readies him/her for next client to be called by him or the next call that shall land at his/her desk after considering his/her ideal time and wrap-up time etc.
Pls. go to this link and you will get to know it better: