I think this is more a feature request, but still. I’m using Microsoft OCS in workplace, who also connects to IP PBX (acting like IM), but it has a couple features which Asterisk-IM and Spark does not have:
You can answer a call via OCS client when your phone rings.
You can decide from OCS client if you want to call (over IP PBX) via the phone, or via the OCS client.
Are these features in the mind of developers, or they will not be produced?