The following is an MSAccess application I created to cycle through an MSAccess (or linked table) calling type table and construct a URL with the phone number field in the database. The constructed URL is then passed into the web browser (for an IVR type system or anything web based) and the web response codes (along with the calling list and who it's calling) are displayed to a neat little form. It uses the timer event extensively in the process. Everything is menu/form driven.
The difficult part was getting it to cycle through the table and increase the next calling times in the table in coordination with the response from the browser. If the browser returns a "failure" response (ie. it didn't make the call because all the IP ports were all busy), that phone record is increased to call back within the next 3 minutes (or whatever time you designate) otherwise it will call that phone number back increasing the next call time with whatever minutes you set it to increase to. (Note: your IVR or other system needs to delete the record out of the dbo_CallQueSQL table if the caller completes whatever IVR code you've setup so the caller is not called back from the dbo_CallQueSQL table.) All calling activity is logged into MSAccess tables.
It's setup to cycle through the IP ports (you determine) and embed these into the URL. If for example you had 4 VOIP boxes (each on it's own IP port), the code would cycle through each of those IP ports until it found one free and use that to create the URL. It could also be used for other outbound calling type systems but if you use it for URL web posting (to make the actual call), you'll only need to change the string on the part which constructs the URL and what IP ports to use.
You can adjust many things in the tables/forms including the start/end calling date/time along with how many minutes to add to call that same phone number back again.
It took me about a month to put all this code together in vba. I had to do a lot of digging to find the right vba code. It's a complete application which does many, many things related to outbound calling. I use this in conjunction with a voxeo IVR system which initiates once the URL is successfully passed and the call is made.
I hope it's helpful for someone else (it's fully commented) or gives them insight when developing this type of system via vba. If you're looking for a good IVR application that is easy to setup, easy to develop an IVR application, comes with 2 free ports, and has an excellent 5 star support team, I recommend the Voxeo Prophecy application. Voxeo support is absolutely the BEST support team I've ever worked with and you can call them and talk directly to their support staff without going through an in-depth IVR menu system (ie. you don't need to push a thousand digits to get to a human voice.)