LINEPROXYREQUEST structure (tapi.h)

The LINEPROXYREQUEST structure contains parameter values of the application making the proxy request. Multiple TAPI call center functions generate a LINE_PROXYREQUEST message that references a LINEPROXYREQUEST structure.

Syntax

typedef struct lineproxyrequest_tag {
  DWORD dwSize;
  DWORD dwClientMachineNameSize;
  DWORD dwClientMachineNameOffset;
  DWORD dwClientUserNameSize;
  DWORD dwClientUserNameOffset;
  DWORD dwClientAppAPIVersion;
  DWORD dwRequestType;
  union {
    struct {
      DWORD              dwAddressID;
      LINEAGENTGROUPLIST GroupList;
    } SetAgentGroup;
    struct {
      DWORD dwAddressID;
      DWORD dwAgentState;
      DWORD dwNextAgentState;
    } SetAgentState;
    struct {
      DWORD dwAddressID;
      DWORD dwActivityID;
    } SetAgentActivity;
    struct {
      DWORD         dwAddressID;
      LINEAGENTCAPS AgentCaps;
    } GetAgentCaps;
    struct {
      DWORD           dwAddressID;
      LINEAGENTSTATUS AgentStatus;
    } GetAgentStatus;
    struct {
      DWORD dwAddressID;
      DWORD dwAgentExtensionIDIndex;
      DWORD dwSize;
      BYTE  Params[1];
    } AgentSpecific;
    struct {
      DWORD                 dwAddressID;
      LINEAGENTACTIVITYLIST ActivityList;
    } GetAgentActivityList;
    struct {
      DWORD              dwAddressID;
      LINEAGENTGROUPLIST GroupList;
    } GetAgentGroupList;
    struct {
      HAGENT hAgent;
      DWORD  dwAgentIDSize;
      DWORD  dwAgentIDOffset;
      DWORD  dwAgentPINSize;
      DWORD  dwAgentPINOffset;
    } CreateAgent;
    struct {
      HAGENT hAgent;
      DWORD  dwAgentState;
      DWORD  dwNextAgentState;
    } SetAgentStateEx;
    struct {
      HAGENT hAgent;
      DWORD  dwMeasurementPeriod;
    } SetAgentMeasurementPeriod;
    struct {
      HAGENT        hAgent;
      LINEAGENTINFO AgentInfo;
    } GetAgentInfo;
    struct {
      HAGENTSESSION hAgentSession;
      DWORD         dwAgentPINSize;
      DWORD         dwAgentPINOffset;
      HAGENT        hAgent;
      GUID          GroupID;
      DWORD         dwWorkingAddressID;
    } CreateAgentSession;
    struct {
      HAGENT               hAgent;
      LINEAGENTSESSIONLIST SessionList;
    } GetAgentSessionList;
    struct {
      HAGENTSESSION        hAgentSession;
      LINEAGENTSESSIONINFO SessionInfo;
    } GetAgentSessionInfo;
    struct {
      HAGENTSESSION hAgentSession;
      DWORD         dwAgentSessionState;
      DWORD         dwNextAgentSessionState;
    } SetAgentSessionState;
    struct {
      GUID          GroupID;
      LINEQUEUELIST QueueList;
    } GetQueueList;
    struct {
      DWORD dwQueueID;
      DWORD dwMeasurementPeriod;
    } SetQueueMeasurementPeriod;
    struct {
      DWORD         dwQueueID;
      LINEQUEUEINFO QueueInfo;
    } GetQueueInfo;
    struct {
      LINEAGENTGROUPLIST GroupList;
    } GetGroupList;
  };
} LINEPROXYREQUEST, *LPLINEPROXYREQUEST;

Members

dwSize

Total number of bytes allocated by TAPI to contain the LINEPROXYREQUEST structure. The dwTotalSize member of any structure contained within LINEPROXYREQUEST (for example, LINEAGENTCAPS) reflects only the number of bytes allocated for that specific structure. Total size, in bytes, of the Params parameter block.

dwClientMachineNameSize

Size of the client machine name string, in bytes, including the null-terminating character.

dwClientMachineNameOffset

Offset from the beginning of the structure to a null-terminated string identifying the client machine that made this request. The size of the string is specified by dwClientMachineNameSize.

dwClientUserNameSize

Size of the client user name string, in bytes, including the null-terminating character.

dwClientUserNameOffset

Offset from the beginning of the structure to a null-terminated string identifying the user under whose account the application is running on the client machine. The size of the string is specified by dwClientUserNameSize.

dwClientAppAPIVersion

Highest API version supported by the application that made the request. The proxy handler should restrict the contents of any data returned to the application to those members and values that were defined in this, or earlier, versions of TAPI.

dwRequestType

One of the LINEPROXYREQUEST_ Constants. Identifies the type of function and the union component that defines the remaining data in the structure.

SetAgentGroup

Union component used when dwRequestType is LINEPROXYREQUEST_SETAGENT.

SetAgentGroup.dwAddressID

Identifier of the address for which the agent is to be set.

SetAgentGroup.GroupList

Structure of type LINEAGENTGROUPLIST. Offsets within this structure are relative to the beginning of SetAgentGroup.GroupList rather than to the beginning of the LINEPROXYREQUEST structure.

SetAgentState

Union component used when dwRequestType is LINEPROXYREQUEST_SETAGENTSTATE.

SetAgentState.dwAddressID

Identifier of the address for which the agent state is to be set.

SetAgentState.dwAgentState

New agent state, or zero to leave the agent state unchanged.

SetAgentState.dwNextAgentState

New next agent state, or zero to use the default next state associated with the specified agent state.

SetAgentActivity

Union component used when dwRequestType is LINEPROXYREQUEST_SETAGENTACTIVITY.

SetAgentActivity.dwAddressID

Identifier of the address for which the agent activity is to be set.

SetAgentActivity.dwActivityID

Identifier for the activity being selected.

GetAgentCaps

Union component used when dwRequestType is LINEPROXYREQUEST_GETAGENTCAPS.

GetAgentCaps.dwAddressID

Identifier of the address for which the agent capabilities are to be retrieved.

GetAgentCaps.AgentCaps

Structure of type LINEAGENTCAPS. Offsets within this structure are relative to the beginning of GetAgentCaps.AgentCaps rather than to the beginning of the LINEPROXYREQUEST structure. The dwTotalSize member is set by TAPI and the remaining bytes set to zero. The proxy handler must fill in dwNeededSize, dwUsedSize, and the remaining members as appropriate, before calling lineProxyResponse.

GetAgentStatus

Union component used when dwRequestType is LINEPROXYREQUEST_SETAGENTGROUP.

GetAgentStatus.dwAddressID

Identifier of the address for which the agent status is to be retrieved.

GetAgentStatus.AgentStatus

Structure of type LINEAGENTSTATUS. Offsets within this structure are relative to the beginning of GetAgentStatus.AgentStatus rather than to the beginning of the LINEPROXYREQUEST structure. The dwTotalSize member is set by TAPI and the remaining bytes set to zero. The proxy handler must fill in dwNeededSize, dwUsedSize, and the remaining members as appropriate, before calling lineProxyResponse.

AgentSpecific

Union component used when dwRequestType is LINEPROXYREQUEST_AGENTSPECIFIC.

AgentSpecific.dwAddressID

Identifier of the address for which the agent status is to be retrieved.

AgentSpecific.dwAgentExtensionIDIndex

Index of the handler extension being invoked; the identifier's position within the array of extension identifiers returned in LINEAGENTCAPS.

AgentSpecific.dwSize

Total size, in bytes, of the Params parameter block.

AgentSpecific.Params[1]

Block of memory that includes the contents passed to the handler from the application. If the handler is to return data to the application, it must be written into this parameter block before calling lineProxyResponse.

GetAgentActivityList

Union component used when dwRequestType is LINEPROXYREQUEST_GETAGENTACTIVITYLIST.

GetAgentActivityList.dwAddressID

Identifier of the address for which the agent activity list is to be retrieved.

GetAgentActivityList.ActivityList

Structure of type LINEAGENTACTIVITYLIST. Offsets within this structure are relative to the beginning of GetAgentActivityList.ActivityList rather than to the beginning of the LINEPROXYREQUEST structure. The dwTotalSize member is set by TAPI and the remaining bytes set to zero. The proxy handler must fill in dwNeededSize, dwUsedSize, and the remaining members as appropriate, before calling lineProxyResponse.

GetAgentGroupList

Union component used when dwRequestType is LINEPROXYREQUEST_GETAGENTGROUPLIST.

GetAgentGroupList.dwAddressID

Identifier of the address for which the agent group list is to be retrieved.

GetAgentGroupList.GroupList

Structure of type LINEAGENTGROUPLIST. Offsets within this structure are relative to the beginning of GetAgentGroupList.GroupList rather than to the beginning of the LINEPROXYREQUEST structure. The dwTotalSize member is set by TAPI and the remaining bytes set to zero. The proxy handler must fill in dwNeededSize, dwUsedSize, and the remaining members as appropriate, before calling lineProxyResponse.

CreateAgent

Union component used when dwRequestType is LINEPROXYREQUEST_CREATEAGENT.

CreateAgent.hAgent

Unique identifier for an agent. It is the responsibility of the agent handler to generate and maintain uniqueness of this identifier.

CreateAgent.dwAgentIDSize

Size of the agent ID string, in bytes.

CreateAgent.dwAgentIDOffset

Offset from the beginning of the structure to a null-terminated string that specifies the ID of the agent. The size of the string is specified by dwAgentIDSize.

CreateAgent.dwAgentPINSize

Size of the PIN string including the null terminator, in bytes.

CreateAgent.dwAgentPINOffset

Offset from the beginning of the structure to a null-terminated string that specifies the PIN or password of the agent. The size of the string is specified by dwAgentPINSize.

SetAgentStateEx

Union component used when dwRequestType is LINEPROXYREQUEST_SETAGENTSTATEEX.

SetAgentStateEx.hAgent

Unique identifier for an agent. It is the responsibility of the agent handler to generate and maintain uniqueness of this identifier.

SetAgentStateEx.dwAgentState

One of the LINEAGENTSTATEEX_ Constants.

SetAgentStateEx.dwNextAgentState

One of the LINEAGENTSTATEEX_ Constants.

SetAgentMeasurementPeriod

Union component used when dwRequestType is LINEPROXYREQUEST_SETAGENTMEASUREMENTPERIOD.

SetAgentMeasurementPeriod.hAgent

Unique identifier for an agent. It is the responsibility of the agent handler to generate and maintain uniqueness of this identifier.

SetAgentMeasurementPeriod.dwMeasurementPeriod

Period for which the switch or implementation stores and calculates information, in seconds. For example, dwNumberOfACDCalls holds the number of calls the agent handled; dwMeasurementPeriod indicates if this value referenced the calls handled in the last hour, day, or month.

GetAgentInfo

Union component used when dwRequestType is LINEPROXYREQUEST_GETAGENTINFO.

GetAgentInfo.hAgent

Unique identifier for an agent. It is the responsibility of the agent handler to generate and maintain uniqueness of this identifier.

GetAgentInfo.AgentInfo

Structure of type LINEAGENTINFO.

CreateAgentSession

Union component used when dwRequestType is LINEPROXYREQUEST_CREATEAGENTSESSION.

CreateAgentSession.hAgentSession

Unique identifier for an agent session.

CreateAgentSession.dwAgentPINSize

Size of the agent PIN string including the null terminator, in bytes.

CreateAgentSession.dwAgentPINOffset

Offset from the beginning of the structure to a null-terminated string that specifies the PIN or password of the agent. The size of this string is specified by dwAgentPINSize.

CreateAgentSession.hAgent

Unique identifier for an agent. It is the responsibility of the agent handler to generate and maintain uniqueness of this identifier.

CreateAgentSession.GroupID

Universally unique identifier for an ACD group. It is the responsibility of the agent handler to generate and maintain uniqueness of this identifier.

CreateAgentSession.dwWorkingAddressID

Identifier of the address on which the agent will receive calls for this session.

GetAgentSessionList

Union component used when dwRequestType is LINEPROXYREQUEST_GETAGENTSESSIONLIST.

GetAgentSessionList.hAgent

Unique identifier for an agent. It is the responsibility of the agent handler to generate and maintain uniqueness of this identifier.

GetAgentSessionList.SessionList

Structure of type LINEAGENTSESSIONLIST.

GetAgentSessionInfo

Union component used when dwRequestType is LINEPROXYREQUEST_GETAGENTSESSIONINFO.

GetAgentSessionInfo.hAgentSession

Unique identifier for an agent session. It is the responsibility of the agent handler to generate and maintain uniqueness of this identifier.

GetAgentSessionInfo.SessionInfo

Structure of type LINEAGENTSESSIONINFO.

SetAgentSessionState

Union component used when dwRequestType is LINEPROXYREQUEST_SETAGENTSESSIONSTATE.

SetAgentSessionState.hAgentSession

Unique identifier for an agent session. It is the responsibility of the agent handler to generate and maintain uniqueness of this identifier.

SetAgentSessionState.dwAgentSessionState

One of the LINEAGENTSESSIONSTATE_ constants.

SetAgentSessionState.dwNextAgentSessionState

One of the LINEAGENTSESSIONSTATE_ constants.

GetQueueList

Union component used when dwRequestType is LINEPROXYREQUEST_GETQUEUELIST.

GetQueueList.GroupID

Universally unique identifier for an ACD group. It is the responsibility of the agent handler to generate and maintain uniqueness of this identifier.

GetQueueList.QueueList

Structure of type LINEQUEUELIST.

SetQueueMeasurementPeriod

Union component used when dwRequestType is LINEPROXYREQUEST_SETQUEUEMEASUREMENTPERIOD.

SetQueueMeasurementPeriod.dwQueueID

Unique identifier for a queue. It is the responsibility of the agent handler to generate and maintain uniqueness of this identifier.

SetQueueMeasurementPeriod.dwMeasurementPeriod

Period for which the switch or implementation stores and calculates information, in seconds.

GetQueueInfo

Union component used when dwRequestType is LINEPROXYREQUEST_GETQUEUEINFO.

GetQueueInfo.dwQueueID

Unique identifier for a queue. It is the responsibility of the agent handler to generate and maintain uniqueness of this identifier.

GetQueueInfo.QueueInfo

Structure of type LINEQUEUEINFO.

GetGroupList

Union component used when dwRequestType is LINEPROXYREQUEST_GETGROUPLIST.

GetGroupList.GroupList

Structure of type LINEAGENTGROUPLIST.

Remarks

An address identifier is permanently associated with an address; the identifier remains constant across operating system upgrades.

Requirements

Requirement Value
Header tapi.h

See also

LINEAGENTACTIVITYLIST

LINEAGENTCAPS

LINEAGENTGROUPLIST

LINEAGENTSESSIONINFO

LINEAGENTSESSIONLIST

LINEAGENTSTATUS

LINEQUEUELIST

LINE_PROXYREQUEST

lineProxyResponse