If you have moderate experience with Linux and can read manpages then you should have no real problem linking Asterisk servers between locations and setting up all common phone functions.
Asterisk (and its derivatives) are really quite powerful and easy to use. We use it everywhere that the commercial systems fail (like having working SIP without paying tens of thousands in licenses)