I have been working with the Ozeki VOIP SIP SDK.
http://www.voip-sip-sdk.com/[
^] and the SDK from
http://www.portsip.com/[
^]
Thus far, using the Ozeki product, I have created a SoftPhone application. I have, also, created a Dialer that distinguishes between a Human answer vs an Answering machine. When a Human answers, the dialer does a Blind Transfer to a CSR extension.
I prefer the PortSip IVR SDK to create a dynamic IVR.
I am utilizing this with an Asterisk PBX running on Linux.