personally, I'm using Linphone
for the purposes you have described.
It is totally free, doesn't have any annoying ads and is supported on Windows, Linux, Mac, Android, Iphones.
You can register how many SIP accounts you want, so you can receive calls for several DID numbers, and you can choose your preferred and cheapest provider to make outbound calls. You can also create a Linphone SIP account that gives you a SIP URI firstname.lastname@example.org.
I have never used it on Centos (I use Ubuntu), but it seems to be supported too. See Linphone getting started: linux