ACD Agent Monitoring and Control
Monitoring and control of ACD agent status on stations is supported through these functions: lineGetAgentCaps, lineGetAgentStatus, lineGetAgentGroupList, lineGetAgentActivityList, lineSetAgentGroup, lineSetAgentState, and lineSetAgentActivity.
The LINE_AGENTSTATUS message is used to indicate when agent information has changed.
These controls are associated with an address instead of a line because many ACD systems are implemented with different ACD queues associated with buttons on the phone terminal (and separate call appearances). Also, ACD agent phones can often have separate call appearances for personal calls.
Architecturally, ACD functionality should be implemented in a server-based application. The client functions mentioned above, rather than mapping to the telephony service provider, are conveyed to a server application that has registered (using an option of lineOpen) as a handler for such functions. The LINE_PROXYREQUEST message is used to signal to the handler application when a request has been made; it calls the lineProxyResponse function to return results and data. Handler applications can also call lineProxyMessage to generate LINE_AGENTSTATUS messages when required. In the case of a legacy PBX or stand-alone ACD that implements ACD functionality itself, the telephony service provider for the switch must include a proxy server application that accepts the requests and routes them (possibly using lineDevSpecific functions or a private interface) to the service provider, which routes them to the switch.