Page 1
Avaya™ Interaction Center Release 6.0 Agent Data Unit Server Programmer’s Guide DXX-1015-01 Issue 1.0 June 2002...
Page 2
Avaya National Customer Care Center Intervoice is a registered trademark of Intervoice-Brite, Inc. UNIX is a Avaya provides a telephone number for you to use to report problems or to ask registered trademark of The Open Group in the United States and other questions about your contact center.
Caution: A caution points out actions that may lead to data loss or other serious problems. Contacting Technical Support If you are having trouble using Avaya software, you should: 1 Retry the action. Carefully follow the instructions in written or online documentation.
Technical Support for analysis of your application and its environment. Note: If you have difficulty reaching Avaya Technical Support through the above URL or email address, please go to www.avaya.com for further information.
Page 7
Online copies of documentation are included on the CD-ROM that accompanies every software release. An Avaya customer who has licensed software (a “Licensee”) is entitled to make this online documentation available on an internal network or “intranet” solely for the Licensee's use for internal business purposes.
Page 8
8 Agent Data Unit Server Programmer’s Guide...
ADU Server functions the same way as the EDU Server. Start-up Procedures When Avaya IC starts up, the Avaya Toolkit starts up the ADU Server. When an agent logs in to Avaya IC, the Toolkit invokes the ADU.FindOr() method, causing the ADU Server to find or create an ADU for the agent.
Chapter 1 The ADU Server Cooperation of ADU Servers When a new ADU Server is added to Avaya IC, existing ADU Servers must be made aware of the IC Administration Volume 1: Servers & new server through use of the IC Manager. Refer to Domains for information on updating servers.
GENT Definition of an ADU When an agent logs in to Avaya IC for the first time, a record called an Agent Data Unit (ADU) is created. The ADU contains information about the agent’s activities during the session. A typical ADU might contain the time the agent logged in, the various states the agent entered (InCall, WrapUp, and so on..), and the time when the agent last entered each state.
ADU Termination When an agent logs out of Avaya IC, the agent’s ADU should be closed. Before an ADU can be closed, the ADU Server must first verify that all processes are done with it. For each ADU, the ADU Server maintains an internal list of processes that have read, transferred, or modified the ADU.
When an ADU is created, it is automatically given an identification number (ADUID) that uniquely defines the agent's Avaya IC session. The ADUID is a 32 byte hexadecimal string partially composed of the time and date of creation of the ADU, as well as its progenitor–the software process and machine that created it.
(_). Data element names are case sensitive: “foo”, “Foo”, and “FOO” refer to three different data elements. The set of names that Avaya IC software reserves for its own system use are listed in the following section. Although they are not strictly reserved words in the technical sense, to use these field names for anything other than their pre-defined purposes could result in conflicts between applications.
ADU Contents Core ADU Fields The following ADU fields are used by both agents and queues on Avaya IC. Field Name Description Set By adu_id A string that uniquely identifies the ADU. ADU Server createtime The date and time the ADU was created ADU Server in yyyy-mm-dd hh:mm:ss format.
Chapter 2 The Agent Data Unit Agent ADU Fields The following ADU fields are used by agents on Avaya IC. Field Name Description Set By auxwork.<m>.detail A code that describes the reason that the Blender Server agent entered this state.
Page 17
ADU Contents Field Name Description Set By <media>.contactsoffered The total number of contacts that arrived Media Connector since the agent logged into this media Server channel. IC Manager computes handled contacts by taking the difference between <media>.contactsoffered and <media>.abandoned. <media>.currentload The current task load assigned to the Workflow Server agent for this media channel.
Page 18
Container names beginning with ts. are Definity Telephony reserved for use by the Avaya Definity Server Telephony Server. ts.<n>.loginid The login id of the agent for the Avaya Definity Telephony Definity switch. Server Agent extension, where n is the contact ts.<n>.phone...
Note: The 6.0 style call containers are presented in this table. Call containers in the 5.5 style are still supported, and is documented in Appendix B of the Telephony Services for the Avaya Definity G3, Release 5.5 manual.
The phone number to which the call has been transferred. Queue ADU Fields The following ADU fields are used by queues on Avaya IC. Field Name Description Set By abandoned The total number of contacts that have...
Containers Field Name Description Set By contactsoffered The total number of contacts received by Media Connector the queue. The number of handled Server contacts is computed by IC Manager by taking the difference between contactsoffered and abandoned. The media channel specific id of the Media Connector queue.
Note: For the Northern Telecom Meridian Link, the position ID and the IDN are considered separate logical phones, even though they share the same physical device. The ts containers are maintained by Telephony within Avaya IC. You can create additional containers to suit your specific application.
Containers The ! token expands into a numeric token that belongs to the client. Tokens that belong to a given client are created via a special use of the + token. Essentially, a subcontainer created with + is assumed to belong to a caller (usually the one who created it), and the ! token will find it.
Chapter 2 The Agent Data Unit Container Configurations The following TS configuration parameters were agreed upon with regards to containers: Parameter Type Default Description aducon bool false Turns ADU Containers on/off tscon bool false Turns EDU Containers on/off containers_56_style bool false Determines if “state”...
Page 25
Containers EDU Values written if tscon is set to true: voice.1.loginid voice.1.leg_id voice.1.agent_key voice.1.destination voice.1.origin voice.1.direction voice.1.connect voice.1.holdtime voice.2.loginid voice.2.leg_id voice.2.agent_key voice.2.destination voice.2.origin voice.2.direction voice.2.connect voice.1.exit_reason voice.2.transfer voice.2.ringtime voice.2.queuetime voice.2.talktime voice.2.exit_reason Issue 1.0 June 2002...
Page 26
Chapter 2 The Agent Data Unit ADU and EDU values written if containers_56_style is set to true: voice.1.state (value="alerting") voice.1.state.alerting.starttime voice.1.state (value ="incall”) voice.1.state.incall.starttime voice.state.incall.total voice.1.state (value="hold") voice.1.state.hold.starttime voice.state.hold.total voice.2.state (value="incall") voice.2.state.incall.starttime voice.1.state (value="disconnected") voice.1.state.disconnected.startti ADU and EDU Values written if containers_60_style is set to true: voice.1.stdstate.1009981854 (value="alerting”) voice.1.stdstate.1009981854.alerting.reason...
HAPTER VENT ONITORING ADU Event Monitoring This chapter describes the events that are sent by the ADU Server. This chapter also explains how to assign a request on behalf of a client and how to establish monitoring criteria. The ADU Server continuously monitors the contents of ADUs for changes, and reports those changes to interested clients through event messages.
Chapter 3 Event Monitoring Event Description Message ADU.end The ADU has been terminated. The server All of the data elements in the passes an ADU.end message to all ADU. monitoring applications. ADU.transfer The ADU has been transferred. The new client and the ADUID.
Setting Event Monitoring Criteria Assigning to the ADU Server and monitoring an ADU do not add a client's name to the internal list of ADU-modifying clients. (The internal list of clients is described in “ADU Termination,” on page 12.) Assigning allows the client to watch the activity of an ADU. The client does not have to issue an ADU.Terminate() for each ADU being watched.
Page 30
Chapter 3 Event Monitoring Example: ADU.Assign "loginid=Joe & ts.1.s=wrapup" In the above example, the client has assigned to the ADU Server, asking it to watch for any ADU that contains the following two values: “Joe” in the field loginid “wrapup” in the ts.1.s field. In other words, notify the client every time Joe is in the wrapup state.
Setting Event Monitoring Criteria This assign criteria watches all EDUs in the system because all EDU IDs are longer than empty strings. Change events that do not reflect a change in the loginid, any matching data.*, or any subcontainer of the call container are also suppressed. Change events that not suppressed are trimmed to list only the names that are provided on the projection list.
Chapter 3 Event Monitoring Boolean Operators Boolean comparisons that return evaluations of true or false can be performed between two values. The two boolean operators are described below. Symbol Definition Description & Both expressions must be true. True if one or both expressions are true. For example: ts.1.s=Available | ts.1.s=WrapUp selects all ADUs in which the agent state is either Available or WrapUp.
Setting Event Monitoring Criteria Monitoring Criteria: Examples The following examples demonstrate how to instruct the server to monitor ADUs that fulfill specific criteria. As you can see, there is flexibility in specifying monitoring criteria. Choose the method that best fits the current circumstances. Criteria Example Description ts.*.phone = "1234"...
Page 34
Chapter 3 Event Monitoring 34 Agent Data Unit Server Programmer’s Guide...
HAPTER LARMS IC Manager provides system administration tools for monitoring alarm events. Visual and sometimes auditory alarms (beeps) are triggered whenever the system detects problems that require human intervention, such as server failures. Alarms are categorized as Emergency, High, Low, or Informational. (For more information about monitoring alarms, refer to IC Administration Volume 1: Servers &...
Chapter 4 Alarms Cause/Recommended Alarm Name Priority Description Action Connection to <uuid> FailADUCon High A connection to a remote closed; n dropped server has failed. The UUID of watchers [reason] the remote server is reported, as is the number of clients that were assigned to the server.
HAPTER ADU S ERVER ONFIGURATION System Considerations The Max Active Adus configuration parameter, described below, should be set with consideration for system capability. The number of ADUs that can be effectively handled by the ADU Server is proportional to the system's available memory and processor speed. A typical ADU requires 40K in memory.
Page 38
Chapter 5 ADU Server Configuration Label Description No User Interval Minimum number of seconds an ADU may linger in memory when there are no users (nouserinterval) active for it. Default is 60 seconds. Minimum is 1 second, maximum is 90 minutes. Random Kill Interval Maximum number of seconds an ADU stays in memory after the usual timers have (randomkillinterval)
Page 39
Configuration Parameters Label Description DUStore Enables the use of the DUStore Server. Check the check box to enable or uncheck to (dustore) disable. DUStore ADU Batch Size The maximum number of ADUs that are sent to the DUStore Server in one set. The (maxkills) minimum is 1 and the default is 60.
Page 40
Chapter 5 ADU Server Configuration Label Description DUindex Info2 The name of one of the fields used to identify the ADU in the DUStore Server. Used (duindex.info2) with the Find method. The default value is media. DUindex Info3 The name of one of the fields used to identify the ADU in the DUStore Server. Used (duindex.info3) with the Find method.
Page 41
Configuration Parameters The following configuration parameters are not presented on the ADU tab in IC Manager. You can set them on the Config tab of the ADU Server Editor dialog. Name Description filter Sets the filter for determining which ADU events are sent to the HISTMAP server (the (filter) Report Server).
Page 42
– Used by individual applications. debug2 – Used by individual applications. Note: Previous versions of Avaya IC included the ADU History Server. To support existing installations, send the events to an existing ADU History Server. 1 Use the default for the Eventsink parameter (HISTMAP.EventsIn) to send events to the Reporting server.
HAPTER IDL S PECIFICATION The Interface Definition Language (IDL) is defined within CORBA standards. It is used to create interfaces that are called by client objects and provided by object implementations. The following is the IDL description of the ADU Server. The virtual interface is inherited by both the EDU Server and the ADU Server.
Page 44
Chapter 6 IDL Specification ORBStatus SetValuesExtended( in string vdu_id, in SeqCouple data, out SeqString newnames ); ORBStatus DeleteValues( in string vdu_id, in SeqString names ); ORBStatus DeleteOneValue( in string vdu_id, in string name ); ORBStatus DeleteSubTree( in string vdu_id, in string name ); ORBStatus SetAndTerminate( in string vdu_id, in SeqCouple data );...
ETHODS Method Objectives Clients request Avaya IC servers to perform various functions by issuing server-specific method invocations. These methods behave in a similar fashion across all servers. For example, when you invoke any of the various ADU Server Set methods, existing values are overwritten. Values that did not previously exist are created.
Chapter 7 ADU Server Methods You are not a server Cannot find subcontainer for that owner First token must be normal here No match (or illegal usage) Cannot access invalidated member Routing Requests In an environment with several ADU Servers, any method that accepts an ADUID routes the request to another ADU Server if the ADU named is not local to the first server.
Page 47
Method Overview ADU.GetUserSessions Returns the sessions of all clients believed to have an interest in the ADU. ADU.GetValues Retrieves all of the values of an ADU. ADU.GetValueHistory Returns everything that is known about the named field's values in an ADU. ADU.GetValuesHistory Returns everything that is known about all values in an ADU.
Description Create a session with the ADU Server. When a session is created, events are sent to the assigned Avaya IC client. When multiple ADU Servers are in use, Assigns watch all calls in the domain of the ADU Servers and notify the client with events when they occur.
Page 49
ADU.Deassign Output Parameters aduid Agent Data Unit Identifier. Returns VESP_SUCCESS Request was successful. VESP_ERROR Internal error in ADU Server. C Program Example _IDL_SEQUENCE_Couple *seq_couple; ADU_ID aduid; /* receives the id of the created ADU */ /* Create space for values */ seq_couple = vesp_couple_seq_create();...
Page 50
Chapter 7 ADU Server Methods If used with a container name (“a.b”), you only delete that one name, a.b. However, the ADU Server methods are not able to address names “below” that point. Although a.b.c may still exist, the ADU Server cannot find it, even though GetSubTree on “a” still sees them. Resolving a.b.c depends on resolving a.b, which does not exist anymore.
Page 51
ADU.EventsIn ADU.EventsIn IDL Syntax ONEWAY EventsIn(in string vdu_id, in SeqEvent events); Description This function adds a user-defined ADU event to an ADU. Values in the ADU are updated to reflect the names and values in the event. Input Parameters aduid Agent Data Unit Identifier.
Page 52
Chapter 7 ADU Server Methods Input Parameters search_criteria Criteria to be used for the search, consisting of names and values. If values contain spaces or anything other than letters and numbers, they must be enclosed in double quotes. If the value contains a \ or " character it must be quoted by a \ character.
Page 53
Note: This method is intended to by used by the Avaya Toolkit. If you know the ADU needs to be created, it is recommended that you use the Create method because it is considerably faster and much more efficient.
Page 54
Chapter 7 ADU Server Methods Description This method is reserved. ADU Servers use this method to pass events to each other. Client applications should not call this method. ADU.GetActive IDL Syntax ORBStatus GetActive( out SeqADU_ID aduseq ) ; Description This method finds all the active ADUs at the time the call is made. Note that only ADUs currently in memory are found.
Page 55
ADU.GetSomeValues Returns VESP_SUCCESS Request was successful. VESP_ERROR ADUID or name not found. C Program Example Get the value of “myfavoriteelement” from the ADU named by aduid. char *value; status = Vesp_Request( "ADU.GetOneValue", callback, 0x2132, session, aduid, "myfavoriteelement", &value ); ADU.GetSomeValues IDL Syntax ORBStatus GetSomeValues( in ADU_ID aduid, in string name, out SeqCouple matches) ;...
Page 56
Chapter 7 ADU Server Methods Output Parameters matches All names and values in the container or subcontainer. ADU.GetValues IDL Syntax ORBStatus GetValues( in ADU_ID aduid, out SeqCouple values ) ; Description This method retrieves all of the values of an ADU. Input Parameters aduid Agent Data Unit Identifier.
Page 57
ADU.GetValuesHistory Input Parameters aduid An ADUID of an existing ADU. name The name of a field. Output Parameters values A list of values to which the named field has been set. when When the field was set to each value, time_t string. The session ID of the client that set each value.
Page 58
Chapter 7 ADU Server Methods For example, field quark was set twice, once at ADU creation (11:37:00am, by Scott, to “truth”) and again at ADU transfer (11:38:00, by Jane, to “charm”). Specifying flags = ADU_GSGETTIME | ADU_GSGETVALUE | ADU_GSGETWHO would yield: header[0] = ADU_GSGETVALUE;...
Page 59
ADU.IncrValue ADU.IncrValue IDL Syntax ORBStatus IncrValue( in ADU_ID aduid, in string name, in long incr, out string newvalue ) ; Description This method is a useful alternative to using SetOneValue and GetOneValue to modify a value when there is a risk that two applications might conflict. This method changes one ADU data element.
Page 60
Chapter 7 ADU Server Methods Input Parameters monitorcriteria Monitor criteria string. If values contain anything other than letters and numbers (for example, spaces), they should be enclosed in double quotes, and \ or " characters must be quoted by a \ character. Refer to “ADU Event Monitoring,”...
Page 61
This method combines SetValues and Transfer into a single call, as these operations often occur together. If the operation succeeds, it generates a Change event containing all changes made to the ADU. This operation is usually performed by Avaya IC components, not client software. Input Parameters aduid Agent Data Unit Identifier.
Page 62
Chapter 7 ADU Server Methods This method allows the caller to specify which types of events are saved when ADUs are sent to the server named in the eventsink configuration parameter. The filter takes effect in subsequently created ADUs, not existing ones. All events generated for all subsequent ADUs are checked against the permissions in the bits set in the mask argument.
Page 63
ADU.SetOneValue Returns VESP_SUCCESS Request was successful. C Program Example Vesp_Request_Sync( "ADU.SetHistoryFilter", /* method identification */ &ev, /* environment pointer */ session, /* session object */ &request, /* pntr to pntr to request structure */ aduid, /* an ADU id */ HS_NOUSER /* The permission bit to be set for this ADU */ );...
Page 64
Chapter 7 ADU Server Methods C Program Example /*Set one value. */ status = Vesp_Request( "ADU.SetOneValue", callback, 0x2132, session, aduid, "my_favorite_element", "new value" ); ADU.SetValues IDL Syntax ORBStatus SetValues( in ADU_ID aduid, in SeqCouple values ); Description This method sets one or more ADU data elements. Data elements that do not exist are created. Existing elements are updated if permission allows.
Page 65
ADU.Suspend This method is useful for applications that need to know how names were generated, especially for applications that make repeated use of the + token and need to be able to go back and fill in values in the various subcontainers they have created. The following fields are restricted and cannot be changed by applications: aduid termination...
Page 66
Chapter 7 ADU Server Methods Input Parameters aduid Agent Data Unit Identifier. Returns VESP_SUCCESS Request was successful. VESP_PARTIAL_ The ADU was not found in memory. SUCCESS VESP_ERROR Specified ADU does not exist. C Program Example status = Vesp_Request( "ADU.Terminate", callback, 0x2132, session, aduid );...
Page 67
ADU.Transfer Returns VESP_SUCCESS Request was successful. VESP_ERROR ADU not found in memory or in the ADU Server. ADU.Transfer IDL Syntax ORBStatus Transfer( in ADU_ID aduid, in string to ) ; Description This method generates an ADU.Transfer event to any process monitoring the ADU, changes the value of the transfercount element and adds the new client to the ADU's list of interested parties.
Page 68
Chapter 7 ADU Server Methods 68 Agent Data Unit Server Programmer’s Guide...
Page 72
Index Memory, use of Routing requests Methods, overview list of minimumagents modifier Scan Interval Monitor method scaninterval Multiple database servers, use of serverresetinterval serverretryinterval servicelevel Name/value pairs, defined servicelevelmiss No User Interval SetAndTerminate method NoEventSink SetAndTransfer method NoMeInDS SetDefaultHistoryFilter method nouserinterval SetHistoryFilter method Number of Cached Adu events...
Need help?
Do you have a question about the Avaya Release 6.0 and is the answer not in the manual?
Questions and answers