I am using android.telecom.InCallService in one of my of projects. It gives all telephony states excellently, but once you implement this service you need to create your own dialler, which can handle all call features i.e. call merge, conferencing, call waiting, etc.
Any link or suggestion to implement call waiting, merge and conference would be great help.