📄 callcentoverview.html
字号:
<HR><CENTER><H3>Agent Terminal States</H3></CENTER><P><IMG SRC="images/Agnstat.gif" HEIGHT=400 WIDTH=540></P><P><IMG SRC="images/cyan-ball.gif">UNKNOWN: The AgentTerminal object enters the UNKNOWN state when the provideris unable to determine the state of the AgentTerminal.</P><P><IMG SRC="images/cyan-ball.gif">LOG_IN: The AgentTerminal object enters the LOG_IN state when the AgentTerminalis logged into an ACDAddress.</P><p><IMG SRC="images/cyan-ball.gif">LOG_OUT: The AgentTerminal object enters the LOG_OUT state when the AgentTerminal has logged out of an ACDAddress.</P><P><IMG SRC="images/cyan-ball.gif">NOT_READY: The AgentTerminal object enters the NOT_READY state when it isbusy with tasks other than servicing calls.</p><P><IMG SRC="images/cyan-ball.gif">READY: The AgentTerminal object enters the READY state when it isready to service calls.</p><P><IMG SRC="images/cyan-ball.gif">WORK_NOT_READY: The AgentTerminal object enters the WORK_NOT_READY state when it is disconnected from a call and is busy with tasks associated witha call.</p><P><IMG SRC="images/cyan-ball.gif">WORK_READY: The AgentTerminal object enters the WORK_READY state when it is ready to resume the tasks associated with a call.</p><p><IMG SRC="images/cyan-ball.gif">BUSY: The AgentTerminal object enters the BUSY state when is is engaged ina call and cannot handle other ACD calls.</p><HR><p><CENTER><H3>ACD Sample Code</H3></CENTER><H3>AgentTest Java Source</H3><PRE>import java.applet.*;import java.lang.*;import java.util.*;import java.telephony.*;import java.telephony.callcenter.*;public class AgentTest extends Applet { Provider myProvider; Terminal myTerminal; Address myAddress; AgentTerminal myAgentTerminal; ACDAddress myACDAddress; String agentID=""; String agent_passwd = ""; Agent[] myAgents = new Agent[1]; public void init() { /* * Create a provider by first obtaining the default implementation of * JTAPI and then the default provider of that implementation. */ Provider myprovider = null; try { JtapiPeer peer = JtapiPeerFactory.getJtapiPeer(null); myprovider = peer.getProvider(null); } catch (Exception excp) { System.out.println("Can't get Provider: " + excp.toString()); System.exit(0); } } public void start() { // if Terminal returned does not implement AgentTerminal return if (!(myTerminal instanceof AgentTerminal)) return; // else cast it to AgentTerminal myAgentTerminal = (AgentTerminal)myTerminal; Address myAddress; try { myAddress = myProvider.getAddress("74444"); // if Address is not an instance of ACDAddress return if (!(myAddress instanceof ACDAddress)) return; // else cast it to ACDAddress myACDAddress = (ACDAddress)myAddress; // prompt Agent for agent_passwd and agentID // log in to ACD group myAgents[0] = new Agent(Agent.LOG_IN, agentID, myACDAddress, myAddress, agent_passwd); myAgentTerminal.setAgents(myAgents); } catch (Exception e) { System.out.println("exception occured"); return; } } public void stop() { if (myAgentTerminal != null) { try { // log out of ACD group myAgents[0].setState(Agent.LOG_OUT); myAgentTerminal.setAgents(myAgents); } catch (Exception e) { System.out.println("exception occured"); return; } } }}</PRE><HR><CENTER><H3><BR>AgentTest Application Objects</H3></CENTER><H3><IMG SRC="images/Agntest.gif" HEIGHT=363 WIDTH=500></H3><HR><H3>ACDTest Java Source</H3><PRE>import java.applet.*;import java.lang.*;import java.util.*;import telephony.*;import telephony.events.AddressEvent;import telephony.callcenter.*;import telephony.callcenter.events.*;public class ACDTest extends Applet { Provider myProvider; Address myAddress; ACDAddress myACDAddress; MyACDObserver myACDObserver; public void init() { /* * Create a provider by first obtaining the default implementation of * JTAPI and then the default provider of that implementation. */ Provider myprovider = null; try { JtapiPeer peer = JtapiPeerFactory.getJtapiPeer(null); myprovider = peer.getProvider(null); } catch (Exception excp) { System.out.println("Can't get Provider: " + excp.toString()); System.exit(0); } } public void start() { // if Address returned does not implement ACDAddress return if (!(myAddress instanceof ACDAddress)) return; myACDAddress = (ACDAddress)myAddress; try { // add observer on my ACD Address myAddress.addObserver(myACDObserver); } catch (Exception e) { System.out.println("exception occured"); return; } } public void stop() { if (myACDAddress != null) { // delete observer on my ACD Address try { myAddress.removeObserver(myACDObserver); } catch (Exception e) { System.out.println("exception occured"); return; } } }}class MyACDObserver implements ACDAddressObserver{ public void addressChangedEvent(AddressEvent[] event) { if(!(event[0] instanceof CallCenterEvent)) return; CallCenterEvent ccEvent = (CallCenterEvent) event[0]; int eventType = ccEvent.getCallCenterType(); switch(eventType) { case ACDEvent.ACD_LOGGEDON_EVENT: case ACDEvent.ACD_LOGGEDOFF_EVENT: case ACDEvent.ACD_NOTREADY_EVENT: case ACDEvent.ACD_READY_EVENT: case ACDEvent.ACD_WORKNOTREADY_EVENT: case ACDEvent.ACD_WORKREADY_EVENT: case ACDEvent.ACD_UNKNOWN_EVENT: // call a routine which tracks ACD Agents ACDAddressEvent aaEvent = (ACDAddressEvent) ccEvent; trackACDAgents((ACDAddress)aaEvent.getAddress(), aaEvent.getAgentTerminal(), aaEvent.getAgentID()); return; default: return; } } public void trackACDAgents(ACDAddress acdGroup, AgentTerminal agentTerminal, String agentID) { // store information in global tables // use in a routing app to figure out destination return; }}</PRE><HR><CENTER><H3><BR>ACDTest Application Objects</H3></CENTER><PRE><IMG SRC="images/Acdtest.gif" HEIGHT=397 WIDTH=500></PRE><HR><BR><BR><BR><H3>ACD Manager</H3><p>Some Provider implementations have a more complex ACD feature in which a group of ACD Address can be managed logically as one Address. In order to support this function, the Call Center model has included another Address interface to handle this ACD Address group management. This interface is known as an ACDManagerAddress. It is an extension of an Address. Calls that are presented to an ACD Manager Address may be processed in several different ways. For example, the call may be queued at several different ACD Addresses before being distributed to an Agent Terminal, the call may be delivered immediately to one of the available Terminals associated with a given ACD Address in the group, or the call may be redirected to another ACD Manager Address or individual ACD Address.The Connection interface which represents the relationship between the ACD Manager Address and the Call is known as ACDManagerConnection.<p></a><CENTER><h3>ACD Manager Address Model</h3></CENTER><HR><center><img src="images/ACDMgrAd.gif"></center><HR><A NAME="PredCalling"><H2>Predictive Call</H2><HR><P>Predictive Call is a key cornerstone of Call Center feature. An applicationuses it when it wants to launch a call where the destination is connectedto the call first and the originator is connected only after the connectionto the destination is successful.</P><P>A typical application is one where an application wants to contact alist of potential customers, about for example a newspaper subscriptionpromotion. The application has a list of telephone numbers that correspondto the customers. The application picks one number at a time from thislist and makes a predictive call. If no one answers, the call is dropped.If a customer answers, an attempt is made to connect the originating device.The originating device may be an ACD group, in which case an ACD agentanwers for the originating device. After this call is established the applicationmoves on to the next telephone number on the list and repeats its actions.</P><A NAME="AppData"><H2>Application Data</H2><HR><P>Application Data allows application to associate application specificdata with a call. Methods on the CallCenterCall interface support settingand getting application data. In addition an event, ApplicationDataEvent,is sent when the set method is used or the provider associates data withthe call from another source.</P></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -