If you want real integration possibilities, look at Yate too. It's got a bit steeper learning curve, but seeing the whole PBX as lots of completely independent modules and the core as a message synchronisation engine only is very refreshing. After having fun with all three solutions, Yate is my favourite (even if it has a much smaller development group and community currently - these guys are serious about what they do).
You can also integrate with everything, because the external module interface is a simple text protocol (no - a sane one - not sip kind of simple). Use php, perl, bash, python, java, etc. as you want - helper libraries are provided.
Modularity and ability to integrate with almost anything(socket, events, http etc - that's just a guess) simply fascinated me.