Although Asterisk was originally built as a PBX, VOIP providers have realized a long time ago that when combined with proper load balancing software like OpenSIPS/Kamailio it can be as powerful as software costing hundreds of thousands of dollars.
Over the years more and more companies have realized the power of Asterisk, and it has become a major player in almost any phone related business, like call centers, online ordering etc.
Asterisk has become more and more friendly to load balancing and multi tenants with the introduction of Asterisk Real Time, ODBC voice-mail storage etc. where multiple asterisk servers can work independently of the other and still share all the needed info, Digium has also added multiple parking lots which really helped companies providing hosted PBX service.
There is one major issue which can be a killer for companies providing hosted pbx service or large call centers who rely on Asterisk for their incoming calls, its the “queue” app, the queue app cannot share states with other servers, therefore all callers on a queue need to be on same server which really makes it impossible to use in large installations.
I know there are workarounds like Vicidial but lots of companies don’t allow third party apps for multiple reasons mainly because of reliability and support reasons, it can also cause major headaches when upgrading Asterisk versions.
Therefore I’m really surprised that the app which is mostly used in big installations like call centers has been so neglected, its not a major deal to make it database aware, I understand that there are other details which would have to be worked out, for example agents might not be registered to same server, sometimes they are registered to a OpenSIPS server etc. and then asterisk does not know the state of the agent but this can also be a easy fix by using a shared database, I think that this is long past due.