We need a CTI program that works as server and clients.
Server version of the CTI will connect to the asterisk manager and monitor and capture the required events (incoming, outgoing, answered, ... etc) and the server version has the ability to add, edit or delete the required events to capture.
When the server capture an event, then it will fire the required action to the client and the client has to receive this notification through UPD port communication.
For example, if an icoming call event receive this will be sent to all clients (broadcasting), after that if the caller enter a queue then fire event notification for the related extensions for this queue as new member join (event will be sent to the logged agents only), if call is transfered and ringing an extension, another event fire notification to the ringing extension cleint on the computer to display the caller id and caller name if found in the sugar CRM users or just caller id number if new number, then when the call answered the CTI client will popup a SugarCRM URL with parameters to process the CRM request.
Also, if there is a missed call (abandount call), the CTI server have to send a notofication to the CTI client on the computer display in order to notify the agent.
Also, we need the server and client CTI to be build by VB.NET and whole source code must be provided with the project.
Also, we need reporting system for all the CTI actions and events and notification.
If you need any other information or details, please let me know.