We are using Autohotkey (AHK) to handle this.
There are some command line commands you can implement and for the other things you have to do some brainwork.
We use "NumpadEnter" to pick up calls:
^NumpadEnter::
id := WinExist("Zoiper")
ZoiperOK := "x44 y199"
WinActivate, ahk_id %id%
ControlClick, %ZoiperOK%, Zoiper,,,,NA
return