Win32 API 日本語リファレンス
ホームDevices.Tapi › LINEAGENTSESSIONINFO

LINEAGENTSESSIONINFO

構造体
サイズx64: 76 バイト / x86: 76 バイトパッキング1

サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。

フィールド

フィールドサイズx64x86説明
dwTotalSizeDWORD4+0+0この構造体に割り当てられた合計サイズ(バイト単位)。
dwNeededSizeDWORD4+4+4要求されたすべての情報を格納するために必要なサイズ(バイト単位)。
dwUsedSizeDWORD4+8+8この構造体のうち、有効な情報が格納されている部分のサイズ(バイト単位)。
dwAgentSessionStateDWORD4+12+12LINEAGENTSESSIONSTATE_ 定数のいずれか。
dwNextAgentSessionStateDWORD4+16+16LINEAGENTSESSIONSTATE_ 定数のいずれか。
dateSessionStartTimeDOUBLE8+20+20セッションが作成された時刻。
dwSessionDurationDWORD4+28+28エージェントセッションの継続時間(秒単位)。アクティブな期間のみが対象で、セッションが ASST_SESSION_ENDED 状態になると計時は停止します。
dwNumberOfCallsDWORD4+32+32このエージェントがこのエージェントセッション中に処理した ACD 呼び出しの数。
dwTotalTalkTimeDWORD4+36+36このエージェントがこのエージェントセッション中に ACD 呼び出しでの通話に費やした秒数。
dwAverageTalkTimeDWORD4+40+40このエージェントがこのエージェントセッション中に各 ACD 呼び出しの通話に費やした平均時間(秒単位)。
dwTotalCallTimeDWORD4+44+44このエージェントがこのエージェントセッション中に ACD 呼び出しに費やした秒数。通話時間に加えて後処理(ラップアップ)時間も含まれます。
dwAverageCallTimeDWORD4+48+48このエージェントセッション中に各 ACD 呼び出しに費やした平均時間(秒単位)。通話時間に加えて後処理(ラップアップ)時間も含まれます。
dwTotalWrapUpTimeDWORD4+52+52このエージェントがこのエージェントセッション中に ACD 呼び出しの後処理(通話後作業)に費やした秒数。
dwAverageWrapUpTimeDWORD4+56+56このエージェントセッション中に各 ACD 呼び出しの後処理(通話後作業)に費やした平均時間(秒単位)。
cyACDCallRateCY8+60+60各エージェントセッションの通話料金レート。これは固定小数点の 10 進数です。
dwLongestTimeToAnswerDWORD4+68+68呼び出しが応答されるまで待機した最長時間(秒単位)。
dwAverageTimeToAnswerDWORD4+72+72呼び出しが応答されるまで待機した平均時間(秒単位)。

公式ドキュメント

LINEAGENTSESSIONINFO 構造体には、ACD エージェントセッションに関する情報が格納されます。 lineGetAgentSessionInfo 関数は LINEAGENTSESSIONINFO 構造体を返します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

#include <windows.h>

// CY  (x64 8 / x86 8 バイト)
typedef struct CY {
    _Anonymous_e__Struct Anonymous;
    LONGLONG int64;
} CY;

// LINEAGENTSESSIONINFO  (x64 76 / x86 76 バイト)
#pragma pack(push, 1)
typedef struct LINEAGENTSESSIONINFO {
    DWORD dwTotalSize;
    DWORD dwNeededSize;
    DWORD dwUsedSize;
    DWORD dwAgentSessionState;
    DWORD dwNextAgentSessionState;
    DOUBLE dateSessionStartTime;
    DWORD dwSessionDuration;
    DWORD dwNumberOfCalls;
    DWORD dwTotalTalkTime;
    DWORD dwAverageTalkTime;
    DWORD dwTotalCallTime;
    DWORD dwAverageCallTime;
    DWORD dwTotalWrapUpTime;
    DWORD dwAverageWrapUpTime;
    CY cyACDCallRate;
    DWORD dwLongestTimeToAnswer;
    DWORD dwAverageTimeToAnswer;
} LINEAGENTSESSIONINFO;
#pragma pack(pop)
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct CY
{
    public _Anonymous_e__Struct Anonymous;
    public long int64;
}

[StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Unicode)]
public struct LINEAGENTSESSIONINFO
{
    public uint dwTotalSize;
    public uint dwNeededSize;
    public uint dwUsedSize;
    public uint dwAgentSessionState;
    public uint dwNextAgentSessionState;
    public double dateSessionStartTime;
    public uint dwSessionDuration;
    public uint dwNumberOfCalls;
    public uint dwTotalTalkTime;
    public uint dwAverageTalkTime;
    public uint dwTotalCallTime;
    public uint dwAverageCallTime;
    public uint dwTotalWrapUpTime;
    public uint dwAverageWrapUpTime;
    public CY cyACDCallRate;
    public uint dwLongestTimeToAnswer;
    public uint dwAverageTimeToAnswer;
}
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure CY
    Public Anonymous As _Anonymous_e__Struct
    Public int64 As Long
End Structure

<StructLayout(LayoutKind.Sequential, Pack:=1, CharSet:=CharSet.Unicode)>
Public Structure LINEAGENTSESSIONINFO
    Public dwTotalSize As UInteger
    Public dwNeededSize As UInteger
    Public dwUsedSize As UInteger
    Public dwAgentSessionState As UInteger
    Public dwNextAgentSessionState As UInteger
    Public dateSessionStartTime As Double
    Public dwSessionDuration As UInteger
    Public dwNumberOfCalls As UInteger
    Public dwTotalTalkTime As UInteger
    Public dwAverageTalkTime As UInteger
    Public dwTotalCallTime As UInteger
    Public dwAverageCallTime As UInteger
    Public dwTotalWrapUpTime As UInteger
    Public dwAverageWrapUpTime As UInteger
    Public cyACDCallRate As CY
    Public dwLongestTimeToAnswer As UInteger
    Public dwAverageTimeToAnswer As UInteger
End Structure
import ctypes
from ctypes import wintypes

class CY(ctypes.Structure):
    _fields_ = [
        ("Anonymous", _Anonymous_e__Struct),
        ("int64", ctypes.c_longlong),
    ]

class LINEAGENTSESSIONINFO(ctypes.Structure):
    _pack_ = 1
    _fields_ = [
        ("dwTotalSize", wintypes.DWORD),
        ("dwNeededSize", wintypes.DWORD),
        ("dwUsedSize", wintypes.DWORD),
        ("dwAgentSessionState", wintypes.DWORD),
        ("dwNextAgentSessionState", wintypes.DWORD),
        ("dateSessionStartTime", ctypes.c_double),
        ("dwSessionDuration", wintypes.DWORD),
        ("dwNumberOfCalls", wintypes.DWORD),
        ("dwTotalTalkTime", wintypes.DWORD),
        ("dwAverageTalkTime", wintypes.DWORD),
        ("dwTotalCallTime", wintypes.DWORD),
        ("dwAverageCallTime", wintypes.DWORD),
        ("dwTotalWrapUpTime", wintypes.DWORD),
        ("dwAverageWrapUpTime", wintypes.DWORD),
        ("cyACDCallRate", CY),
        ("dwLongestTimeToAnswer", wintypes.DWORD),
        ("dwAverageTimeToAnswer", wintypes.DWORD),
    ]
#[repr(C)]
pub struct CY {
    pub Anonymous: _Anonymous_e__Struct,
    pub int64: i64,
}

#[repr(C, packed(1))]
pub struct LINEAGENTSESSIONINFO {
    pub dwTotalSize: u32,
    pub dwNeededSize: u32,
    pub dwUsedSize: u32,
    pub dwAgentSessionState: u32,
    pub dwNextAgentSessionState: u32,
    pub dateSessionStartTime: f64,
    pub dwSessionDuration: u32,
    pub dwNumberOfCalls: u32,
    pub dwTotalTalkTime: u32,
    pub dwAverageTalkTime: u32,
    pub dwTotalCallTime: u32,
    pub dwAverageCallTime: u32,
    pub dwTotalWrapUpTime: u32,
    pub dwAverageWrapUpTime: u32,
    pub cyACDCallRate: CY,
    pub dwLongestTimeToAnswer: u32,
    pub dwAverageTimeToAnswer: u32,
}
import "golang.org/x/sys/windows"

type CY struct {
	Anonymous _Anonymous_e__Struct
	int64 int64
}

type LINEAGENTSESSIONINFO struct {
	dwTotalSize uint32
	dwNeededSize uint32
	dwUsedSize uint32
	dwAgentSessionState uint32
	dwNextAgentSessionState uint32
	dateSessionStartTime float64
	dwSessionDuration uint32
	dwNumberOfCalls uint32
	dwTotalTalkTime uint32
	dwAverageTalkTime uint32
	dwTotalCallTime uint32
	dwAverageCallTime uint32
	dwTotalWrapUpTime uint32
	dwAverageWrapUpTime uint32
	cyACDCallRate CY
	dwLongestTimeToAnswer uint32
	dwAverageTimeToAnswer uint32
}
type
  CY = record
    Anonymous: _Anonymous_e__Struct;
    int64: Int64;
  end;

  LINEAGENTSESSIONINFO = packed record
    dwTotalSize: DWORD;
    dwNeededSize: DWORD;
    dwUsedSize: DWORD;
    dwAgentSessionState: DWORD;
    dwNextAgentSessionState: DWORD;
    dateSessionStartTime: Double;
    dwSessionDuration: DWORD;
    dwNumberOfCalls: DWORD;
    dwTotalTalkTime: DWORD;
    dwAverageTalkTime: DWORD;
    dwTotalCallTime: DWORD;
    dwAverageCallTime: DWORD;
    dwTotalWrapUpTime: DWORD;
    dwAverageWrapUpTime: DWORD;
    cyACDCallRate: CY;
    dwLongestTimeToAnswer: DWORD;
    dwAverageTimeToAnswer: DWORD;
  end;
const CY = extern struct {
    Anonymous: _Anonymous_e__Struct,
    int64: i64,
};

const LINEAGENTSESSIONINFO = extern struct {
    dwTotalSize: u32,
    dwNeededSize: u32,
    dwUsedSize: u32,
    dwAgentSessionState: u32,
    dwNextAgentSessionState: u32,
    dateSessionStartTime: f64,
    dwSessionDuration: u32,
    dwNumberOfCalls: u32,
    dwTotalTalkTime: u32,
    dwAverageTalkTime: u32,
    dwTotalCallTime: u32,
    dwAverageCallTime: u32,
    dwTotalWrapUpTime: u32,
    dwAverageWrapUpTime: u32,
    cyACDCallRate: CY,
    dwLongestTimeToAnswer: u32,
    dwAverageTimeToAnswer: u32,
};
type
  CY {.bycopy.} = object
    Anonymous: _Anonymous_e__Struct
    int64: int64

  LINEAGENTSESSIONINFO {.packed.} = object
    dwTotalSize: uint32
    dwNeededSize: uint32
    dwUsedSize: uint32
    dwAgentSessionState: uint32
    dwNextAgentSessionState: uint32
    dateSessionStartTime: float64
    dwSessionDuration: uint32
    dwNumberOfCalls: uint32
    dwTotalTalkTime: uint32
    dwAverageTalkTime: uint32
    dwTotalCallTime: uint32
    dwAverageCallTime: uint32
    dwTotalWrapUpTime: uint32
    dwAverageWrapUpTime: uint32
    cyACDCallRate: CY
    dwLongestTimeToAnswer: uint32
    dwAverageTimeToAnswer: uint32
struct CY
{
    _Anonymous_e__Struct Anonymous;
    long int64;
}

align(1)
struct LINEAGENTSESSIONINFO
{
    uint dwTotalSize;
    uint dwNeededSize;
    uint dwUsedSize;
    uint dwAgentSessionState;
    uint dwNextAgentSessionState;
    double dateSessionStartTime;
    uint dwSessionDuration;
    uint dwNumberOfCalls;
    uint dwTotalTalkTime;
    uint dwAverageTalkTime;
    uint dwTotalCallTime;
    uint dwAverageCallTime;
    uint dwTotalWrapUpTime;
    uint dwAverageWrapUpTime;
    CY cyACDCallRate;
    uint dwLongestTimeToAnswer;
    uint dwAverageTimeToAnswer;
}

HSP用 定義

HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。

; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; LINEAGENTSESSIONINFO サイズ: 76 バイト(x64)
dim st, 19    ; 4byte整数×19(構造体サイズ 76 / 4 切り上げ)
; dwTotalSize : DWORD (+0, 4byte)  st.0 = 値  /  値 = st.0   (lpoke/lpeek も可)
; dwNeededSize : DWORD (+4, 4byte)  st.1 = 値  /  値 = st.1   (lpoke/lpeek も可)
; dwUsedSize : DWORD (+8, 4byte)  st.2 = 値  /  値 = st.2   (lpoke/lpeek も可)
; dwAgentSessionState : DWORD (+12, 4byte)  st.3 = 値  /  値 = st.3   (lpoke/lpeek も可)
; dwNextAgentSessionState : DWORD (+16, 4byte)  st.4 = 値  /  値 = st.4   (lpoke/lpeek も可)
; dateSessionStartTime : DOUBLE (+20, 8byte)  qpoke st,20,値 / qpeek(st,20)  ※IronHSPのみ。3.7/3.8は lpoke st,20,下位 : lpoke st,24,上位
; dwSessionDuration : DWORD (+28, 4byte)  st.7 = 値  /  値 = st.7   (lpoke/lpeek も可)
; dwNumberOfCalls : DWORD (+32, 4byte)  st.8 = 値  /  値 = st.8   (lpoke/lpeek も可)
; dwTotalTalkTime : DWORD (+36, 4byte)  st.9 = 値  /  値 = st.9   (lpoke/lpeek も可)
; dwAverageTalkTime : DWORD (+40, 4byte)  st.10 = 値  /  値 = st.10   (lpoke/lpeek も可)
; dwTotalCallTime : DWORD (+44, 4byte)  st.11 = 値  /  値 = st.11   (lpoke/lpeek も可)
; dwAverageCallTime : DWORD (+48, 4byte)  st.12 = 値  /  値 = st.12   (lpoke/lpeek も可)
; dwTotalWrapUpTime : DWORD (+52, 4byte)  st.13 = 値  /  値 = st.13   (lpoke/lpeek も可)
; dwAverageWrapUpTime : DWORD (+56, 4byte)  st.14 = 値  /  値 = st.14   (lpoke/lpeek も可)
; cyACDCallRate : CY (+60, 8byte)  varptr(st)+60 を基点に操作(8byte:入れ子/配列)
; dwLongestTimeToAnswer : DWORD (+68, 4byte)  st.17 = 値  /  値 = st.17   (lpoke/lpeek も可)
; dwAverageTimeToAnswer : DWORD (+72, 4byte)  st.18 = 値  /  値 = st.18   (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global LINEAGENTSESSIONINFO, pack=1
    #field int dwTotalSize
    #field int dwNeededSize
    #field int dwUsedSize
    #field int dwAgentSessionState
    #field int dwNextAgentSessionState
    #field double dateSessionStartTime
    #field int dwSessionDuration
    #field int dwNumberOfCalls
    #field int dwTotalTalkTime
    #field int dwAverageTalkTime
    #field int dwTotalCallTime
    #field int dwAverageCallTime
    #field int dwTotalWrapUpTime
    #field int dwAverageWrapUpTime
    #field byte cyACDCallRate 8
    #field int dwLongestTimeToAnswer
    #field int dwAverageTimeToAnswer
#endstruct

stdim st, LINEAGENTSESSIONINFO        ; NSTRUCT 変数を確保
st->dwTotalSize = 100
mes "dwTotalSize=" + st->dwTotalSize
; ※union フィールドは byte 列で確保(NSTRUCT は union 非対応)。必要に応じ手動でアクセス。