IVRS models
Asterisk is open source and includes the ability to define and trigger IVR interactions.
They have proprietary hardware to interface with the PSTN, or you can build services on top of VoiceOverIP protocols such as SIP (i.e., IP only).
See the Asterisk Gateway Interface page for a description of the primitives you will use in your IVR script.
source to share
I am using Asterisk to implement IVR. I don't think the learning curve was too steep, especially considering that I am not actually in telecommunications, and it works very well for what I have been using. I currently have an IVR with 8 E1 channels (240 channels) with Asterisk and a Sangoma card, works very well. And it's easy to test the new features as I can only get it running on my machine using VoIP by setting up SIP in Asterisk and using the X-Lite softphone.
I am connecting Asterisk to my Java application using FastAGI and JAGIServer / OrderlyCalls on the Java side.
source to share