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.