Avaya  Release 6.0 Programmer's Manual
Avaya  Release 6.0 Programmer's Manual

Avaya Release 6.0 Programmer's Manual

Agent data unit server

Advertisement

Quick Links

Avaya™ Interaction Center
Release 6.0
Agent Data Unit Server Programmer's Guide
DXX-1015-01
Issue 1.0
June 2002

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the Avaya Release 6.0 and is the answer not in the manual?

Questions and answers

Summary of Contents for Avaya Avaya Release 6.0

  • 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.
  • Page 3: Table Of Contents

    ONTENTS ........5 EFORE EGIN ADU S...
  • Page 4 Contents Setting Event Monitoring Criteria ..........29 Monitoring Criteria: Syntax .
  • Page 5: Before You Begin

    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.
  • Page 6: Product 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...
  • Page 9: The Adu Server

    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.
  • Page 10: Cooperation Of Adu Servers

    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.
  • Page 11: The Agent Data Unit

    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.
  • Page 12: Adu Termination

    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.
  • Page 13: The Aduid

    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.
  • Page 14: Adu Contents

    (_). 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.
  • Page 15: Core Adu Fields

    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.
  • Page 16: Agent Adu Fields

    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...
  • Page 19: Voice Data Containers

    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.
  • Page 20: Queue Adu Fields

    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...
  • Page 21: Containers

    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.
  • Page 22: Container Names And Special Tokens

    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.
  • Page 23: Limitations Of Container Syntax

    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.
  • Page 24: Container Configurations

    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...
  • Page 27: Event

    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.
  • Page 28: Starting And Stopping Event Monitoring

    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.
  • Page 29: Setting Event Monitoring Criteria

    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.
  • Page 31: Relational Operators

    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.
  • Page 32: Boolean Operators

    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.
  • Page 33: Monitoring Criteria: Examples

    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...
  • Page 35: Alarms

    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 &...
  • Page 36: Adu Server Configuration

    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.
  • Page 37: System Considerations

    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.
  • Page 43: Idl Specification

    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 );...
  • Page 45: Adu Server Methods

    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.
  • Page 46: Routing Requests

    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.
  • Page 48: Methods

    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 69: Index

    NDEX .logout Symbols .privileges .state (adudata.alarm.priority) .state..total (adudata.data.onlyname) .updatetime (adudata.event.ifname) (adudata.eventname) (adudata.perecnt) (adus) abandoned (checkpoint.interval) – Active (database) (duindex.info1) activity (duindex.info2) agent fields (duindex.info3) creation (duindex.lookup1) description (duindex.lookup2) listing active (dustore) queue fields (filter) structure (findcreatestoresearch) – (idletime) termination (initialdatalength) abnormal (keepevents) ADU Contents...
  • Page 70 Index ADU.SetHistoryFilter Adudata Event Name adudata.alarm.priority ADU.SetOneValue adudata.data.onlyname ADU.SetValues adudata.event.ifname ADU.SetValuesExtended adudata.eventname ADU.Terminate adudata.perecnt ADU.TerminateMine ADUHS, support for ADU.Transfer aduhskeepname ADU Server, overview ADUID ADU.Assign ADUID, structure of ADU.change adus ADU.Create agent fields ADU.Deassign Alarm Name ADU.delete Alarms ADU.DeleteOneValue Alerting ADU.DeleteSubTree Alias name, reserved ADU.DeleteValues...
  • Page 71 Index – FindByKey method findcreatestoresearch ForwardEvent method Data Element Names Database database Deassign method gencount Deassign method, to stop monitoring GetActive method DeleteOneValue method GetOneValue method DeleteSubTree method GetSomeValues method DeleteValues method GetSubTree method DUindex Info1 GetValueHistory method DUindex Info2 GetValues method DUindex Info3 GetValuesHistory method...
  • 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...
  • Page 73 Index voice.X.holdtime.Y voice.X.leg_id voice.X.loginid Victims voice.X.origin voice.1.state voice.X.queue voice.1.state.alerting.starttime voice.X.queue_number voice.1.state.disconnected.starttime voice.X.queuetime voice.1.state.hold.starttime voice.X.ringtime voice.1.state.incall.starttime voice.X.talktime voice.2.state voice.X.transfer voice.2.state.incall.starttime voice.acdname voice.connector voice.connectorname WAN environment voice.state.hold.total Watchers voice.state.incall.total watchers voice.X Wildcard usage voice.X.abandon Wildcards voice.X.agent_key – Wrap-up voice.X.conferencedest.Z voice.X.connect voice.X.destination voice.X.direction youngest voice.X.exit_reason Issue 1.0 June 2002...
  • Page 74 Index 74 Agent Data Unit Server Programmer’s Guide...

This manual is also suitable for:

Interaction center 6.0

Table of Contents