unit tsapi; interface uses Windows, Messages; {$Z4} //enumeration 4 bytes type EnumServerNamesCB = function( serverName: PChar; lParam: longword ): Boolean; stdcall; retcode_t = integer; streamtype_t = ( ST_, ST_CSTA, ST_OAM, ST_DIRECTORY, ST_NMSRV ); function acsEnumServerNames ( streamType: streamtype_t; callback: EnumServerNamesCB; lParam: longword ): retcode_t; stdcall; external 'CSTA32.dll'; const ACSPOSITIVE_ACK = 0; ACSERR_APIVERDENIED = -1; ACSERR_BADPARAMETER = -2; ACSERR_DUPSTREAM = -3; ACSERR_NODRIVER = -4; ACSERR_NOSERVER = -5; ACSERR_NORESOURCE = -6; ACSERR_UBUFSMALL = -7; ACSERR_NOMESSAGE = -8; ACSERR_UNKNOWN = -9; ACSERR_BADHDL = -10; ACSERR_STREAM_FAILED = -11; ACSERR_NOBUFFERS = -12; ACSERR_QUEUE_FULL = -13; type ServerID_t = array[0..48]of char; LoginID_t = array[0..48]of char; enum = integer; ACSAuthType_t = enum; const REQUIRES_EXTERNAL_AUTH = -1; AUTH_LOGIN_ID_ONLY = 0; AUTH_LOGIN_ID_IS_DEFAULT = 1; NEED_LOGIN_ID_AND_PASSWD = 2; ANY_LOGIN_ID = 3; type ACSAuthInfo_t = record authType: ACSAuthType_t; authLoginID: LoginID_t; end; PACSAuthInfo_t = ^ACSAuthInfo_t; function acsQueryAuthInfo( serverID: PChar; authInfo: PACSAuthInfo_t ): retcode_t; stdcall; external 'CSTA32.dll'; type acshandle_t = longword; Pacshandle_t = ^acshandle_t; invokeid_t = longword; invokeidtype_t = ( APP_GEN_ID, LIB_GEN_ID ); Passwd_t = array[0..48]of char; AppName_t = array[0..20]of char; level_t = ( ACS_LEVEL, ACS_LEVEL1, ACS_LEVEL2, ACS_LEVEL3, ACS_LEVEL4 ); Version_t = array[0..20]of char; PrivateData_t = record vendor: array[0..31]of char; length: word; data: char; end; PPrivateData_t = ^PrivateData_t; function acsOpenStream( acsHandle: PACSHandle_t; invokeIDType: invokeIDType_t; invokeID: invokeID_t; streamType: streamType_t; serverID: PChar; loginID: PChar; passwd: PChar; applicationName: PChar; acsLevelReq: level_t; apiVer: PChar; sendQSize: word; sendExtraBufs: word; recvQSize: word; recvExtraBufs: word; privateData: Pprivatedata_t ): retcode_t; stdcall; external 'CSTA32.dll'; function acsAbortStream ( acsHandle: ACSHandle_t; privateData: PPrivateData_t ): RetCode_t; stdcall; external 'CSTA32.dll'; type pword = ^word; function acsGetEventBlock ( acsHandle: ACSHandle_t; eventBuf: pointer; eventBufSize: pword; privateData: PPrivateData_t; numEvents: pword ): RetCode_t; stdcall; external 'CSTA32.dll'; function acsGetEventPoll ( acsHandle: ACSHandle_t; eventBuf: pointer; eventBufSize: pword; privateData: PPrivateData_t; numEvents: pword ): RetCode_t; stdcall; external 'CSTA32.dll'; type EventClass_t = word; const ACSREQUEST = 0; ACSUNSOLICITED = 1; ACSCONFIRMATION = 2; CSTAREQUEST = 3; CSTAUNSOLICITED = 4; CSTACONFIRMATION = 5; CSTAEVENTREPORT = 6; type EventType_t = word; const ACS_OPEN_STREAM = 1; ACS_OPEN_STREAM_CONF = 2; ACS_CLOSE_STREAM = 3; ACS_CLOSE_STREAM_CONF = 4; ACS_ABORT_STREAM = 5; ACS_UNIVERSAL_FAILURE_CONF = 6; ACS_UNIVERSAL_FAILURE = 7; ACS_KEY_REQUEST = 8; ACS_KEY_REPLY = 9; ACS_NAME_SRV_REQUEST = 10; ACS_NAME_SRV_REPLY = 11; ACS_AUTH_REPLY = 12; ACS_AUTH_REPLY_TWO = 13; type ACSEventHeader_t = record acsHandle: ACSHandle_t; eventClass: EventClass_t; eventType: EventType_t; end; ACSUniversalFailure_t = enum; const TSERVER_STREAM_FAILED = 0; TSERVER_NO_THREAD = 1; TSERVER_BAD_DRIVER_ID = 2; TSERVER_DEAD_DRIVER = 3; TSERVER_MESSAGE_HIGH_WATER_MARK = 4; TSERVER_FREE_BUFFER_FAILED = 5; TSERVER_SEND_TO_DRIVER = 6; TSERVER_RECEIVE_FROM_DRIVER = 7; TSERVER_REGISTRATION_FAILED = 8; TSERVER_SPX_FAILED = 9; TSERVER_TRACE = 10; TSERVER_NO_MEMORY = 11; TSERVER_ENCODE_FAILED = 12; TSERVER_DECODE_FAILED = 13; TSERVER_BAD_CONNECTION = 14; TSERVER_BAD_PDU = 15; TSERVER_NO_VERSION = 16; TSERVER_ECB_MAX_EXCEEDED = 17; TSERVER_NO_ECBS = 18; TSERVER_NO_SDB = 19; TSERVER_NO_SDB_CHECK_NEEDED = 20; TSERVER_SDB_CHECK_NEEDED = 21; TSERVER_BAD_SDB_LEVEL = 22; TSERVER_BAD_SERVERID = 23; TSERVER_BAD_STREAM_TYPE = 24; TSERVER_BAD_PASSWORD_OR_LOGIN = 25; TSERVER_NO_USER_RECORD = 26; TSERVER_NO_DEVICE_RECORD = 27; TSERVER_DEVICE_NOT_ON_LIST = 28; TSERVER_USERS_RESTRICTED_HOME = 30; TSERVER_NO_AWAYPERMISSION = 31; TSERVER_NO_HOMEPERMISSION = 32; TSERVER_NO_AWAY_WORKTOP = 33; TSERVER_BAD_DEVICE_RECORD = 34; TSERVER_DEVICE_NOT_SUPPORTED = 35; TSERVER_INSUFFICIENT_PERMISSION = 36; TSERVER_NO_RESOURCE_TAG = 37; TSERVER_INVALID_MESSAGE = 38; TSERVER_EXCEPTION_LIST = 39; TSERVER_NOT_ON_OAM_LIST = 40; TSERVER_PBX_ID_NOT_IN_SDB = 41; TSERVER_USER_LICENSES_EXCEEDED = 42; TSERVER_OAM_DROP_CONNECTION = 43; TSERVER_NO_VERSION_RECORD = 44; TSERVER_OLD_VERSION_RECORD = 45; TSERVER_BAD_PACKET = 46; TSERVER_OPEN_FAILED = 47; TSERVER_OAM_IN_USE = 48; TSERVER_DEVICE_NOT_ON_HOME_LIST = 49; TSERVER_DEVICE_NOT_ON_CALL_CONTROL_LIST = 50; TSERVER_DEVICE_NOT_ON_AWAY_LIST = 51; TSERVER_DEVICE_NOT_ON_ROUTE_LIST = 52; TSERVER_DEVICE_NOT_ON_MONITOR_DEVICE_LIST = 53; TSERVER_DEVICE_NOT_ON_MONITOR_CALL_DEVICE_LIST = 54; TSERVER_NO_CALL_CALL_MONITOR_PERMISSION = 55; TSERVER_HOME_DEVICE_LIST_EMPTY = 56; TSERVER_CALL_CONTROL_LIST_EMPTY = 57; TSERVER_AWAY_LIST_EMPTY = 58; TSERVER_ROUTE_LIST_EMPTY = 59; TSERVER_MONITOR_DEVICE_LIST_EMPTY = 60; TSERVER_MONITOR_CALL_DEVICE_LIST_EMPTY = 61; TSERVER_USER_AT_HOME_WORKTOP = 62; TSERVER_DEVICE_LIST_EMPTY = 63; TSERVER_BAD_GET_DEVICE_LEVEL = 64; TSERVER_DRIVER_UNREGISTERED = 65; TSERVER_NO_ACS_STREAM = 66; TSERVER_DROP_OAM = 67; TSERVER_ECB_TIMEOUT = 68; TSERVER_BAD_ECB = 69; TSERVER_ADVERTISE_FAILED = 70; TSERVER_NETWARE_FAILURE = 71; TSERVER_TDI_QUEUE_FAULT = 72; TSERVER_DRIVER_CONGESTION = 73; TSERVER_NO_TDI_BUFFERS = 74; TSERVER_OLD_INVOKEID = 75; TSERVER_HWMARK_TO_LARGE = 76; TSERVER_SET_ECB_TO_LOW = 77; TSERVER_NO_RECORD_IN_FILE = 78; TSERVER_ECB_OVERDUE = 79; TSERVER_BAD_PW_ENCRYPTION = 80; TSERVER_BAD_TSERV_PROTOCOL = 81; TSERVER_BAD_DRIVER_PROTOCOL = 82; TSERVER_BAD_TRANSPORT_TYPE = 83; TSERVER_PDU_VERSION_MISMATCH = 84; TSERVER_VERSION_MISMATCH = 85; TSERVER_LICENSE_MISMATCH = 86; TSERVER_BAD_ATTRIBUTE_LIST = 87; TSERVER_BAD_TLIST_TYPE = 88; TSERVER_BAD_PROTOCOL_FORMAT = 89; TSERVER_OLD_TSLIB = 90; TSERVER_BAD_LICENSE_FILE = 91; TSERVER_NO_PATCHES = 92; TSERVER_SYSTEM_ERROR = 93; TSERVER_OAM_LIST_EMPTY = 94; TSERVER_TCP_FAILED = 95; TSERVER_SPX_DISABLED = 96; TSERVER_TCP_DISABLED = 97; TSERVER_REQUIRED_MODULES_NOT_LOADED = 98; TSERVER_TRANSPORT_IN_USE_BY_OAM = 99; TSERVER_NO_NDS_OAM_PERMISSION = 100; TSERVER_OPEN_SDB_LOG_FAILED = 101; TSERVER_INVALID_LOG_SIZE = 102; TSERVER_WRITE_SDB_LOG_FAILED = 103; TSERVER_NT_FAILURE = 104; TSERVER_LOAD_LIB_FAILED = 105; TSERVER_INVALID_DRIVER = 106; TSERVER_REGISTRY_ERROR = 107; TSERVER_DUPLICATE_ENTRY = 108; TSERVER_DRIVER_LOADED = 109; TSERVER_DRIVER_NOT_LOADED = 110; TSERVER_NO_LOGON_PERMISSION = 111; TSERVER_ACCOUNT_DISABLED = 112; TSERVER_NO_NETLOGON = 113; TSERVER_ACCT_RESTRICTED = 114; TSERVER_INVALID_LOGON_TIME = 115; TSERVER_INVALID_WORKSTATION = 116; TSERVER_ACCT_LOCKED_OUT = 117; TSERVER_PASSWORD_EXPIRED = 118; DRIVER_DUPLICATE_ACSHANDLE = 1000; DRIVER_INVALID_ACS_REQUEST = 1001; DRIVER_ACS_HANDLE_REJECTION = 1002; DRIVER_INVALID_CLASS_REJECTION = 1003; DRIVER_GENERIC_REJECTION = 1004; DRIVER_RESOURCE_LIMITATION = 1005; DRIVER_ACSHANDLE_TERMINATION = 1006; DRIVER_LINK_UNAVAILABLE = 1007; DRIVER_OAM_IN_USE = 1008; type ACSUniversalFailureConfEvent_t = record error: ACSUniversalFailure_t; end; ACSUniversalFailureEvent_t = record error: ACSUniversalFailure_t; end; ACSUnsolicitedEvent = record case Integer of 0: ( failureEvent: ACSUniversalFailureEvent_t ); end; ACSOpenStreamConfEvent_t = record apiVer: Version_t; libVer: Version_t; tsrvVer: Version_t; drvrVer: Version_t; end; Nulltype = shortint; ACSCloseStreamConfEvent_t = record null: Nulltype; end; ACSConfirmationEvent = record invokeID: InvokeID_t; case Integer of 0: ( acsopen: ACSOpenStreamConfEvent_t ); 1: ( acsclose: ACSCloseStreamConfEvent_t ); 2: ( failureEvent: ACSUniversalFailureConfEvent_t ); end; const ACS_MAX_HEAP = 1024; type ACSEvent_t = record eventHeader: ACSEventHeader_t; event: record case Integer of 0: ( acsUnsolicited: ACSUnsolicitedEvent ); 1: ( acsConfirmation: ACSConfirmationEvent ); end; heap: array[1..ACS_MAX_HEAP] of char; end; const WM_TSAPIMSG = WM_USER+2130; WM_TSAPIFAILURE = WM_USER+2131; WM_TSAPIACSUNSOLICITED = WM_USER+2132; WM_TSAPIACSCONFIRMATION = WM_USER+2133; WM_TSAPICSTAUNSOLICITED = WM_USER+2134; WM_TSAPICSTACONFIRMATION = WM_USER+2135; function acsEventNotify ( acsHandle: ACSHandle_t; hwnd: HWND; msg: UINT; notifyAll: Boolean ): RetCode_t; stdcall; external 'CSTA32.dll'; const CSTA_ALTERNATE_CALL = 1; CSTA_ALTERNATE_CALL_CONF = 2; CSTA_ANSWER_CALL = 3; CSTA_ANSWER_CALL_CONF = 4; CSTA_CALL_COMPLETION = 5; CSTA_CALL_COMPLETION_CONF = 6; CSTA_CLEAR_CALL = 7; CSTA_CLEAR_CALL_CONF = 8; CSTA_CLEAR_CONNECTION = 9; CSTA_CLEAR_CONNECTION_CONF = 10; CSTA_CONFERENCE_CALL = 11; CSTA_CONFERENCE_CALL_CONF = 12; CSTA_CONSULTATION_CALL = 13; CSTA_CONSULTATION_CALL_CONF = 14; CSTA_DEFLECT_CALL = 15; CSTA_DEFLECT_CALL_CONF = 16; CSTA_PICKUP_CALL = 17; CSTA_PICKUP_CALL_CONF = 18; CSTA_GROUP_PICKUP_CALL = 19; CSTA_GROUP_PICKUP_CALL_CONF = 20; CSTA_HOLD_CALL = 21; CSTA_HOLD_CALL_CONF = 22; CSTA_MAKE_CALL = 23; CSTA_MAKE_CALL_CONF = 24; CSTA_MAKE_PREDICTIVE_CALL = 25; CSTA_MAKE_PREDICTIVE_CALL_CONF = 26; CSTA_QUERY_MWI = 27; CSTA_QUERY_MWI_CONF = 28; CSTA_QUERY_DND = 29; CSTA_QUERY_DND_CONF = 30; CSTA_QUERY_FWD = 31; CSTA_QUERY_FWD_CONF = 32; CSTA_QUERY_AGENT_STATE = 33; CSTA_QUERY_AGENT_STATE_CONF = 34; CSTA_QUERY_LAST_NUMBER = 35; CSTA_QUERY_LAST_NUMBER_CONF = 36; CSTA_QUERY_DEVICE_INFO = 37; CSTA_QUERY_DEVICE_INFO_CONF = 38; CSTA_RECONNECT_CALL = 39; CSTA_RECONNECT_CALL_CONF = 40; CSTA_RETRIEVE_CALL = 41; CSTA_RETRIEVE_CALL_CONF = 42; CSTA_SET_MWI = 43; CSTA_SET_MWI_CONF = 44; CSTA_SET_DND = 45; CSTA_SET_DND_CONF = 46; CSTA_SET_FWD = 47; CSTA_SET_FWD_CONF = 48; CSTA_SET_AGENT_STATE = 49; CSTA_SET_AGENT_STATE_CONF = 50; CSTA_TRANSFER_CALL = 51; CSTA_TRANSFER_CALL_CONF = 52; CSTA_UNIVERSAL_FAILURE_CONF = 53; CSTA_CALL_CLEARED = 54; CSTA_CONFERENCED = 55; CSTA_CONNECTION_CLEARED = 56; CSTA_DELIVERED = 57; CSTA_DIVERTED = 58; CSTA_ESTABLISHED = 59; CSTA_FAILED = 60; CSTA_HELD = 61; CSTA_NETWORK_REACHED = 62; CSTA_ORIGINATED = 63; CSTA_QUEUED = 64; CSTA_RETRIEVED = 65; CSTA_SERVICE_INITIATED = 66; CSTA_TRANSFERRED = 67; CSTA_CALL_INFORMATION = 68; CSTA_DO_NOT_DISTURB = 69; CSTA_FORWARDING = 70; CSTA_MESSAGE_WAITING = 71; CSTA_LOGGED_ON = 72; CSTA_LOGGED_OFF = 73; CSTA_NOT_READY = 74; CSTA_READY = 75; CSTA_WORK_NOT_READY = 76; CSTA_WORK_READY = 77; CSTA_ROUTE_REGISTER_REQ = 78; CSTA_ROUTE_REGISTER_REQ_CONF = 79; CSTA_ROUTE_REGISTER_CANCEL = 80; CSTA_ROUTE_REGISTER_CANCEL_CONF = 81; CSTA_ROUTE_REGISTER_ABORT = 82; CSTA_ROUTE_REQUEST = 83; CSTA_ROUTE_SELECT_REQUEST = 84; CSTA_RE_ROUTE_REQUEST = 85; CSTA_ROUTE_USED = 86; CSTA_ROUTE_END = 87; CSTA_ROUTE_END_REQUEST = 88; CSTA_ESCAPE_SVC = 89; CSTA_ESCAPE_SVC_CONF = 90; CSTA_ESCAPE_SVC_REQ = 91; CSTA_ESCAPE_SVC_REQ_CONF = 92; CSTA_PRIVATE = 93; CSTA_PRIVATE_STATUS = 94; CSTA_SEND_PRIVATE = 95; CSTA_BACK_IN_SERVICE = 96; CSTA_OUT_OF_SERVICE = 97; CSTA_REQ_SYS_STAT = 98; CSTA_SYS_STAT_REQ_CONF = 99; CSTA_SYS_STAT_START = 100; CSTA_SYS_STAT_START_CONF = 101; CSTA_SYS_STAT_STOP = 102; CSTA_SYS_STAT_STOP_CONF = 103; CSTA_CHANGE_SYS_STAT_FILTER = 104; CSTA_CHANGE_SYS_STAT_FILTER_CONF = 105; CSTA_SYS_STAT = 106; CSTA_SYS_STAT_ENDED = 107; CSTA_SYS_STAT_REQ = 108; CSTA_REQ_SYS_STAT_CONF = 109; CSTA_SYS_STAT_EVENT_SEND = 110; CSTA_MONITOR_DEVICE = 111; CSTA_MONITOR_CALL = 112; CSTA_MONITOR_CALLS_VIA_DEVICE = 113; CSTA_MONITOR_CONF = 114; CSTA_CHANGE_MONITOR_FILTER = 115; CSTA_CHANGE_MONITOR_FILTER_CONF = 116; CSTA_MONITOR_STOP = 117; CSTA_MONITOR_STOP_CONF = 118; CSTA_MONITOR_ENDED = 119; CSTA_SNAPSHOT_CALL = 120; CSTA_SNAPSHOT_CALL_CONF = 121; CSTA_SNAPSHOT_DEVICE = 122; CSTA_SNAPSHOT_DEVICE_CONF = 123; CSTA_GETAPI_CAPS = 124; CSTA_GETAPI_CAPS_CONF = 125; CSTA_GET_DEVICE_LIST = 126; CSTA_GET_DEVICE_LIST_CONF = 127; CSTA_QUERY_CALL_MONITOR = 128; CSTA_QUERY_CALL_MONITOR_CONF = 129; CSTA_ROUTE_REQUEST_EXT = 130; CSTA_ROUTE_USED_EXT = 131; CSTA_ROUTE_SELECT_INV_REQUEST = 132; CSTA_ROUTE_END_INV_REQUEST = 133; type CSTAUniversalFailure_t = enum; const GENERIC_UNSPECIFIED = 0; GENERIC_OPERATION = 1; REQUEST_INCOMPATIBLE_WITH_OBJECT = 2; VALUE_OUT_OF_RANGE = 3; OBJECT_NOT_KNOWN = 4; INVALID_CALLING_DEVICE = 5; INVALID_CALLED_DEVICE = 6; INVALID_FORWARDING_DESTINATION = 7; PRIVILEGE_VIOLATION_ON_SPECIFIED_DEVICE = 8; PRIVILEGE_VIOLATION_ON_CALLED_DEVICE = 9; PRIVILEGE_VIOLATION_ON_CALLING_DEVICE = 10; INVALID_CSTA_CALL_IDENTIFIER = 11; INVALID_CSTA_DEVICE_IDENTIFIER = 12; INVALID_CSTA_CONNECTION_IDENTIFIER = 13; INVALID_DESTINATION = 14; INVALID_FEATURE = 15; INVALID_ALLOCATION_STATE = 16; INVALID_CROSS_REF_ID = 17; INVALID_OBJECT_TYPE = 18; SECURITY_VIOLATION = 19; GENERIC_STATE_INCOMPATIBILITY = 21; INVALID_OBJECT_STATE = 22; INVALID_CONNECTION_ID_FOR_ACTIVE_CALL = 23; NO_ACTIVE_CALL = 24; NO_HELD_CALL = 25; NO_CALL_TO_CLEAR = 26; NO_CONNECTION_TO_CLEAR = 27; NO_CALL_TO_ANSWER = 28; NO_CALL_TO_COMPLETE = 29; GENERIC_SYSTEM_RESOURCE_AVAILABILITY = 31; SERVICE_BUSY = 32; RESOURCE_BUSY = 33; RESOURCE_OUT_OF_SERVICE = 34; NETWORK_BUSY = 35; NETWORK_OUT_OF_SERVICE = 36; OVERALL_MONITOR_LIMIT_EXCEEDED = 37; CONFERENCE_MEMBER_LIMIT_EXCEEDED = 38; GENERIC_SUBSCRIBED_RESOURCE_AVAILABILITY = 41; OBJECT_MONITOR_LIMIT_EXCEEDED = 42; EXTERNAL_TRUNK_LIMIT_EXCEEDED = 43; OUTSTANDING_REQUEST_LIMIT_EXCEEDED = 44; GENERIC_PERFORMANCE_MANAGEMENT = 51; PERFORMANCE_LIMIT_EXCEEDED = 52; UNSPECIFIED_SECURITY_ERROR = 60; SEQUENCE_NUMBER_VIOLATED = 61; TIME_STAMP_VIOLATED = 62; PAC_VIOLATED = 63; SEAL_VIOLATED = 64; GENERIC_UNSPECIFIED_REJECTION = 70; GENERIC_OPERATION_REJECTION = 71; DUPLICATE_INVOCATION_REJECTION = 72; UNRECOGNIZED_OPERATION_REJECTION = 73; MISTYPED_ARGUMENT_REJECTION = 74; RESOURCE_LIMITATION_REJECTION = 75; ACS_HANDLE_TERMINATION_REJECTION = 76; SERVICE_TERMINATION_REJECTION = 77; REQUEST_TIMEOUT_REJECTION = 78; REQUESTS_ON_DEVICE_EXCEEDED_REJECTION = 79; UNRECOGNIZED_APDU_REJECTION = 80; MISTYPED_APDU_REJECTION = 81; BADLY_STRUCTURED_APDU_REJECTION = 82; INITIATOR_RELEASING_REJECTION = 83; UNRECOGNIZED_LINKEDID_REJECTION = 84; LINKED_RESPONSE_UNEXPECTED_REJECTION = 85; UNEXPECTED_CHILD_OPERATION_REJECTION = 86; MISTYPED_RESULT_REJECTION = 87; UNRECOGNIZED_ERROR_REJECTION = 88; UNEXPECTED_ERROR_REJECTION = 89; MISTYPED_PARAMETER_REJECTION = 90; NON_STANDARD = 100; const CSTA_MAX_HEAP = 1024; type RouteRegisterReqID_t = longint; RoutingCrossRefID_t = longint; deviceid_t = array[0..63]of char; pDeviceID_t = ^DeviceID_t; ConnectionID_Device_t = ( STATIC_ID, DYNAMIC_ID ); ConnectionID_t = record callID: longint; deviceID: DeviceID_t; devIDType: ConnectionID_Device_t; end; PConnectionID_t = ^ConnectionID_t; SelectValue_t = ( SV_NORMAL, SV_LEAST_COST, SV_EMERGENCY, SV_ACD, SV_USER_DEFINED ); SetUpValues_t = record length: integer; value: pointer; end; CSTARouteRequestEvent_t = record routeRegisterReqID: RouteRegisterReqID_t; routingCrossRefID: RoutingCrossRefID_t; currentRoute: DeviceID_t; callingDevice: DeviceID_t; routedCall: ConnectionID_t; routedSelAlgorithm: SelectValue_t; priority: boolean; setupInformation: SetUpValues_t; end; DeviceIDType_t = enum; const DEVICE_IDENTIFIER = 0; IMPLICIT_PUBLIC = 20; EXPLICIT_PUBLIC_UNKNOWN = 30; EXPLICIT_PUBLIC_INTERNATIONAL = 31; EXPLICIT_PUBLIC_NATIONAL = 32; EXPLICIT_PUBLIC_NETWORK_SPECIFIC = 33; EXPLICIT_PUBLIC_SUBSCRIBER = 34; EXPLICIT_PUBLIC_ABBREVIATED = 35; IMPLICIT_PRIVATE = 40; EXPLICIT_PRIVATE_UNKNOWN = 50; EXPLICIT_PRIVATE_LEVEL3_REGIONAL_NUMBER = 51; EXPLICIT_PRIVATE_LEVEL2_REGIONAL_NUMBER = 52; EXPLICIT_PRIVATE_LEVEL1_REGIONAL_NUMBER = 53; EXPLICIT_PRIVATE_PTN_SPECIFIC_NUMBER = 54; EXPLICIT_PRIVATE_LOCAL_NUMBER = 55; EXPLICIT_PRIVATE_ABBREVIATED = 56; OTHER_PLAN = 60; TRUNK_IDENTIFIER = 70; TRUNK_GROUP_IDENTIFIER = 71; type DeviceIDStatus_t = ( ID_PROVIDED, ID_NOT_KNOWN, ID_NOT_REQUIRED ); ExtendedDeviceID_t = record deviceID: DeviceID_t; deviceIDType: DeviceIDType_t; deviceIDStatus: DeviceIDStatus_t; end; CalledDeviceID_t = ExtendedDeviceID_t; PCalledDeviceID_t = ^CalledDeviceID_t; CallingDeviceID_t = ExtendedDeviceID_t; PCallingDeviceID_t = ^CallingDeviceID_t; CSTARouteRequestExtEvent_t = record routeRegisterReqID: RouteRegisterReqID_t; routingCrossRefID: RoutingCrossRefID_t; currentRoute: CalledDeviceID_t; callingDevice: CallingDeviceID_t; routedCall: ConnectionID_t; routedSelAlgorithm: SelectValue_t; priority: Boolean; setupInformation: SetUpValues_t; end; CSTAReRouteRequest_t = record routeRegisterReqID: RouteRegisterReqID_t; routingCrossRefID: RoutingCrossRefID_t; end; CSTAEscapeSvcReqEvent_t = record null: Nulltype; end; CSTASysStatReqEvent_t = record null: Nulltype; end; CSTARequestEvent = record invokeID: InvokeID_t; case Integer of 0: (routeRequest: CSTARouteRequestEvent_t); 1: (routeRequestExt: CSTARouteRequestExtEvent_t); 2: (reRouteRequest: CSTAReRouteRequest_t); 3: (escapeSvcReqeust: CSTAEscapeSvcReqEvent_t); 4: (sysStatRequest: CSTASysStatReqEvent_t); end; CSTAMonitorCrossRefID_t = longint; LocalConnectionState_t = enum; PLocalConnectionState_t = ^LocalConnectionState_t; const CS_NONE = -1; CS_NULL = 0; CS_INITIATE = 1; CS_ALERTING = 2; CS_CONNECT = 3; CS_HOLD = 4; CS_QUEUED = 5; CS_FAIL = 6; type CSTAEventCause_t = enum; const EC_NONE = -1; EC_ACTIVE_MONITOR = 1; EC_ALTERNATE = 2; EC_BUSY = 3; EC_CALL_BACK = 4; EC_CALL_CANCELLED = 5; EC_CALL_FORWARD_ALWAYS = 6; EC_CALL_FORWARD_BUSY = 7; EC_CALL_FORWARD_NO_ANSWER = 8; EC_CALL_FORWARD = 9; EC_CALL_NOT_ANSWERED = 10; EC_CALL_PICKUP = 11; EC_CAMP_ON = 12; EC_DEST_NOT_OBTAINABLE = 13; EC_DO_NOT_DISTURB = 14; EC_INCOMPATIBLE_DESTINATION = 15; EC_INVALID_ACCOUNT_CODE = 16; EC_KEY_CONFERENCE = 17; EC_LOCKOUT = 18; EC_MAINTENANCE = 19; EC_NETWORK_CONGESTION = 20; EC_NETWORK_NOT_OBTAINABLE = 21; EC_NEW_CALL = 22; EC_NO_AVAILABLE_AGENTS = 23; EC_OVERRIDE = 24; EC_PARK = 25; EC_OVERFLOW = 26; EC_RECALL = 27; EC_REDIRECTED = 28; EC_REORDER_TONE = 29; EC_RESOURCES_NOT_AVAILABLE = 30; EC_SILENT_MONITOR = 31; EC_TRANSFER = 32; EC_TRUNKS_BUSY = 33; EC_VOICE_UNIT_INITIATOR = 34; type CSTACallClearedEvent_t = record clearedCall: ConnectionID_t; localConnectionInfo: LocalConnectionState_t; cause: CSTAEventCause_t; end; SubjectDeviceID_t = ExtendedDeviceID_t; PSubjectDeviceID_t = ^SubjectDeviceID_t; Connection_t = record party: ConnectionID_t; staticDevice: SubjectDeviceID_t; end; PConnection_t = ^Connection_t; ConnectionList_t = record count: integer; connection: PConnection_t; end; CSTAConferencedEvent_t = record primaryOldCall: ConnectionID_t; secondaryOldCall: ConnectionID_t; confController: SubjectDeviceID_t; addedParty: SubjectDeviceID_t; conferenceConnections: ConnectionList_t; localConnectionInfo: LocalConnectionState_t; cause: CSTAEventCause_t; end; CSTAConnectionClearedEvent_t = record droppedConnection: ConnectionID_t; releasingDevice: SubjectDeviceID_t; localConnectionInfo: LocalConnectionState_t; cause: CSTAEventCause_t; end; RedirectionDeviceID_t = ExtendedDeviceID_t; CSTADeliveredEvent_t = record connection: ConnectionID_t; alertingDevice: SubjectDeviceID_t; callingDevice: CallingDeviceID_t; calledDevice: CalledDeviceID_t; lastRedirectionDevice: RedirectionDeviceID_t; localConnectionInfo: LocalConnectionState_t; cause: CSTAEventCause_t; end; CSTADivertedEvent_t = record connection: ConnectionID_t; divertingDevice: SubjectDeviceID_t; newDestination: CalledDeviceID_t; localConnectionInfo: LocalConnectionState_t; cause: CSTAEventCause_t; end; CSTAEstablishedEvent_t = record establishedConnection: ConnectionID_t; answeringDevice: SubjectDeviceID_t; callingDevice: CallingDeviceID_t; calledDevice: CalledDeviceID_t; lastRedirectionDevice: RedirectionDeviceID_t; localConnectionInfo: LocalConnectionState_t; cause: CSTAEventCause_t; end; CSTAFailedEvent_t = record failedConnection: ConnectionID_t; failingDevice: SubjectDeviceID_t; calledDevice: CalledDeviceID_t; localConnectionInfo: LocalConnectionState_t; cause: CSTAEventCause_t; end; CSTAHeldEvent_t = record heldConnection: ConnectionID_t; holdingDevice: SubjectDeviceID_t; localConnectionInfo: LocalConnectionState_t; cause: CSTAEventCause_t; end; CSTANetworkReachedEvent_t = record connection: ConnectionID_t; trunkUsed: SubjectDeviceID_t; calledDevice: CalledDeviceID_t; localConnectionInfo: LocalConnectionState_t; cause: CSTAEventCause_t; end; CSTAOriginatedEvent_t = record originatedConnection: ConnectionID_t; callingDevice: SubjectDeviceID_t; calledDevice: CalledDeviceID_t; localConnectionInfo: LocalConnectionState_t; cause: CSTAEventCause_t; end; CSTAQueuedEvent_t = record queuedConnection: ConnectionID_t; queue: SubjectDeviceID_t; callingDevice: CallingDeviceID_t; calledDevice: CalledDeviceID_t; lastRedirectionDevice: RedirectionDeviceID_t; numberQueued: shortint; localConnectionInfo: LocalConnectionState_t; cause: CSTAEventCause_t; end; CSTARetrievedEvent_t = record retrievedConnection: ConnectionID_t; retrievingDevice: SubjectDeviceID_t; localConnectionInfo: LocalConnectionState_t; cause: CSTAEventCause_t; end; CSTAServiceInitiatedEvent_t = record initiatedConnection: ConnectionID_t; localConnectionInfo: LocalConnectionState_t; cause: CSTAEventCause_t; end; CSTATransferredEvent_t = record primaryOldCall: ConnectionID_t; secondaryOldCall: ConnectionID_t; transferringDevice: SubjectDeviceID_t; transferredDevice: SubjectDeviceID_t; transferredConnections: ConnectionList_t; localConnectionInfo: LocalConnectionState_t; cause: CSTAEventCause_t; end; AccountInfo_t = array[0..31]of char; AuthCode_t = array[0..31]of char; CSTACallInformationEvent_t = record connection: ConnectionID_t; device: SubjectDeviceID_t; accountInfo: AccountInfo_t; authorisationCode: AuthCode_t; end; CSTADoNotDisturbEvent_t = record device: SubjectDeviceID_t; doNotDisturbOn: Boolean; end; ForwardingType_t = ( FWD_IMMEDIATE, FWD_BUSY, FWD_NO_ANS, FWD_BUSY_INT, FWD_BUSY_EXT, FWD_NO_ANS_INT, FWD_NO_ANS_EXT ); ForwardingInfo_t = record forwardingType: ForwardingType_t; forwardingOn: Boolean; forwardDN: DeviceID_t; end; CSTAForwardingEvent_t = record device: SubjectDeviceID_t; forwardingInformation: ForwardingInfo_t; end; CSTAMessageWaitingEvent_t = record deviceForMessage: CalledDeviceID_t; invokingDevice: SubjectDeviceID_t; messageWaitingOn: Boolean; end; AgentID_t = array[0..31]of char; AgentGroup_t = DeviceID_t; AgentPassword_t = array[0..31]of char; CSTALoggedOnEvent_t = record agentDevice: SubjectDeviceID_t; agentID: AgentID_t; agentGroup: AgentGroup_t; password: AgentPassword_t; end; CSTALoggedOffEvent_t = record agentDevice: SubjectDeviceID_t; agentID: AgentID_t; agentGroup: AgentGroup_t ; end; CSTANotReadyEvent_t = record agentDevice: SubjectDeviceID_t; agentID: AgentID_t; end; CSTAReadyEvent_t = record agentDevice: SubjectDeviceID_t; agentID: AgentID_t; end; CSTAWorkNotReadyEvent_t = record agentDevice: SubjectDeviceID_t; agentID: AgentID_t; end; CSTAWorkReadyEvent_t = record agentDevice: SubjectDeviceID_t; agentID: AgentID_t; end; CSTABackInServiceEvent_t = record device: DeviceID_t; cause: CSTAEventCause_t; end; CSTAOutOfServiceEvent_t = record device: DeviceID_t; cause: CSTAEventCause_t; end; CSTAPrivateStatusEvent_t = record null: Nulltype; end; CSTAMonitorEndedEvent_t = record cause: CSTAEventCause_t; end; CSTAUnsolicitedEvent = record monitorCrossRefId: CSTAMonitorCrossRefID_t; case Integer of 0: (callCleared: CSTACallClearedEvent_t); 1: (conferenced: CSTAConferencedEvent_t); 2: (connectionCleared: CSTAConnectionClearedEvent_t); 3: (delivered: CSTADeliveredEvent_t); 4: (diverted: CSTADivertedEvent_t); 5: (established: CSTAEstablishedEvent_t); 6: (failed: CSTAFailedEvent_t); 7: (held: CSTAHeldEvent_t); 8: (networkReached: CSTANetworkReachedEvent_t); 9: (originated: CSTAOriginatedEvent_t); 10: (queued: CSTAQueuedEvent_t); 11: (retrieved: CSTARetrievedEvent_t); 12: (serviceInitiated: CSTAServiceInitiatedEvent_t); 13: (transferred: CSTATransferredEvent_t); 14: (callInformation: CSTACallInformationEvent_t); 15: (doNotDisturb: CSTADoNotDisturbEvent_t); 16: (forwarding: CSTAForwardingEvent_t); 17: (messageWaiting: CSTAMessageWaitingEvent_t); 18: (loggedOn: CSTALoggedOnEvent_t); 19: (loggedOff: CSTALoggedOffEvent_t); 20: (notReady: CSTANotReadyEvent_t); 21: (ready: CSTAReadyEvent_t); 22: (workNotReady: CSTAWorkNotReadyEvent_t); 23: (workReady: CSTAWorkReadyEvent_t); 24: (backInService: CSTABackInServiceEvent_t); 25: (outOfService: CSTAOutOfServiceEvent_t); 26: (privateStatus: CSTAPrivateStatusEvent_t); 27: (monitorEnded: CSTAMonitorEndedEvent_t); end; CSTAAlternateCallConfEvent_t = record null: Nulltype; end; CSTAAnswerCallConfEvent_t = record null: Nulltype; end; CSTACallCompletionConfEvent_t = record null: Nulltype; end; CSTAClearCallConfEvent_t = record null: Nulltype; end; CSTAClearConnectionConfEvent_t = record null: Nulltype; end; CSTAConferenceCallConfEvent_t = record newCall: ConnectionID_t; connList: ConnectionList_t; end; CSTAConsultationCallConfEvent_t = record newCall: ConnectionID_t; end; CSTADeflectCallConfEvent_t = record null: Nulltype; end; CSTAPickupCallConfEvent_t = record null: Nulltype; end; CSTAGroupPickupCallConfEvent_t = record null: Nulltype; end; CSTAHoldCallConfEvent_t = record null: Nulltype; end; CSTAMakeCallConfEvent_t = record newCall: ConnectionID_t; end; CSTAMakePredictiveCallConfEvent_t = record newCall: ConnectionID_t; end; CSTAQueryMwiConfEvent_t = record messages: Boolean; end; CSTAQueryDndConfEvent_t = record doNotDisturb: Boolean; end; ListForwardParameters_t = record count: shortint; param: array[0..6] of ForwardingInfo_t; end; CSTAQueryFwdConfEvent_t = record forward: listForwardParameters_t; end; AgentState_t = ( AG_NOT_READY, AG_NULL, AG_READY, AG_WORK_NOT_READY, AG_WORK_READY ); CSTAQueryAgentStateConfEvent_t = record agentState: AgentState_t; end; CSTAQueryLastNumberConfEvent_t = record lastNumber: DeviceID_t; end; DeviceType_t = enum; const DT_STATION = 0; DT_LINE = 1; DT_BUTTON = 2; DT_ACD = 3; DT_TRUNK = 4; DT_OPERATOR = 5; DT_STATION_GROUP = 16; DT_LINE_GROUP = 17; DT_BUTTON_GROUP = 18; DT_ACD_GROUP = 19; DT_TRUNK_GROUP = 20; DT_OPERATOR_GROUP = 21; DT_OTHER = 255; type DeviceClass_t = byte; const DC_VOICE = $80; DC_DATA = $40; DC_IMAGE = $20; DC_OTHER = $10; type CSTAQueryDeviceInfoConfEvent_t = record device: DeviceID_t; deviceType: DeviceType_t; deviceClass: DeviceClass_t; end; CSTAReconnectCallConfEvent_t = record null: Nulltype; end; CSTARetrieveCallConfEvent_t = record null: Nulltype; end; CSTASetMwiConfEvent_t = record null: Nulltype; end; CSTASetDndConfEvent_t = record null: Nulltype; end; CSTASetFwdConfEvent_t = record null: Nulltype; end; CSTASetAgentStateConfEvent_t = record null: Nulltype; end; CSTATransferCallConfEvent_t = record newCall: ConnectionID_t; connList: ConnectionList_t; end; CSTAUniversalFailureConfEvent_t = record error: CSTAUniversalFailure_t; end; CSTACallFilter_t = word; const CF_CALL_CLEARED = $8000; CF_CONFERENCED = $4000; CF_CONNECTION_CLEARED = $2000; CF_DELIVERED = $1000; CF_DIVERTED = $0800; CF_ESTABLISHED = $0400; CF_FAILED = $0200; CF_HELD = $0100; CF_NETWORK_REACHED = $0080; CF_ORIGINATED = $0040; CF_QUEUED = $0020; CF_RETRIEVED = $0010; CF_SERVICE_INITIATED = $0008; CF_TRANSFERRED = $0004; type CSTAFeatureFilter_t = byte; const FF_CALL_INFORMATION = $80; FF_DO_NOT_DISTURB = $40; FF_FORWARDING = $20; FF_MESSAGE_WAITING = $10; type CSTAAgentFilter_t = byte; const AF_LOGGED_ON = $80; AF_LOGGED_OFF = $40; AF_NOT_READY = $20; AF_READY = $10; AF_WORK_NOT_READY = $08; AF_WORK_READY = $04; type CSTAMaintenanceFilter_t = byte; const MF_BACK_IN_SERVICE = $80; MF_OUT_OF_SERVICE = $40; type CSTAMonitorFilter_t = record call: CSTACallFilter_t; feature: CSTAFeatureFilter_t; agent: CSTAAgentFilter_t; maintenance: CSTAMaintenanceFilter_t; privateFilter: longint; end; PCSTAMonitorFilter_t = ^CSTAMonitorFilter_t; CSTAMonitorConfEvent_t = record monitorCrossRefID: CSTAMonitorCrossRefID_t; monitorFilter: CSTAMonitorFilter_t; end; CSTAChangeMonitorFilterConfEvent_t = record monitorFilter: CSTAMonitorFilter_t; end; CSTAMonitorStopConfEvent_t = record null: Nulltype; end; CSTACallState_t = record count: integer; state: PLocalConnectionState_t; end; CSTASnapshotDeviceResponseInfo_t = record callIdentifier: ConnectionID_t; localCallState: CSTACallState_t; end; PCSTASnapshotDeviceResponseInfo_t = ^CSTASnapshotDeviceResponseInfo_t; CSTASnapshotDeviceData_t = record count: integer; info: PCSTASnapshotDeviceResponseInfo_t; end; CSTASnapshotDeviceConfEvent_t = record snapshotData: CSTASnapshotDeviceData_t; end; CSTASnapshotCallResponseInfo_t = record deviceOnCall: SubjectDeviceID_t; callIdentifier: ConnectionID_t; localConnectionState: LocalConnectionState_t; end; PCSTASnapshotCallResponseInfo_t = ^CSTASnapshotCallResponseInfo_t; CSTASnapshotCallData_t = record count: integer; info: PCSTASnapshotCallResponseInfo_t; end; CSTASnapshotCallConfEvent_t = record snapshotData: CSTASnapshotCallData_t; end; CSTARouteRegisterReqConfEvent_t = record registerReqID: RouteRegisterReqID_t; end; CSTARouteRegisterCancelConfEvent_t = record routeRegisterReqID: RouteRegisterReqID_t; end; CSTAEscapeSvcConfEvent_t = record null: Nulltype; end; SystemStatus_t = ( SS_INITIALIZING, SS_ENABLED, SS_NORMAL, SS_MESSAGES_LOST, SS_DISABLED, SS_OVERLOAD_IMMINENT, SS_OVERLOAD_REACHED, SS_OVERLOAD_RELIEVED ); CSTASysStatReqConfEvent_t = record systemStatus: SystemStatus_t; end; SystemStatusFilter_t = byte; const SF_INITIALIZING = $80; SF_ENABLED = $40; SF_NORMAL = $20; SF_MESSAGES_LOST = $10; SF_DISABLED = $08; SF_OVERLOAD_IMMINENT = $04; SF_OVERLOAD_REACHED = $02; SF_OVERLOAD_RELIEVED = $01; type CSTASysStatStartConfEvent_t = record statusFilter: SystemStatusFilter_t; end; CSTASysStatStopConfEvent_t = record null: Nulltype; end; CSTAChangeSysStatFilterConfEvent_t = record statusFilterSelected: SystemStatusFilter_t; statusFilterActive: SystemStatusFilter_t; end; CSTAGetAPICapsConfEvent_t = record alternateCall, answerCall, callCompletion, clearCall, clearConnection, conferenceCall, consultationCall, deflectCall, pickupCall, groupPickupCall, holdCall, makeCall, makePredictiveCall, queryMwi, queryDnd, queryFwd, queryAgentState, queryLastNumber, queryDeviceInfo, reconnectCall, retrieveCall, setMwi, setDnd, setFwd, setAgentState, transferCall, eventReport, callClearedEvent, conferencedEvent, connectionClearedEvent, deliveredEvent, divertedEvent, establishedEvent, failedEvent, heldEvent, networkReachedEvent, originatedEvent, queuedEvent, retrievedEvent, serviceInitiatedEvent, transferredEvent, callInformationEvent, doNotDisturbEvent, forwardingEvent, messageWaitingEvent, loggedOnEvent, loggedOffEvent, notReadyEvent, readyEvent, workNotReadyEvent, workReadyEvent, backInServiceEvent, outOfServiceEvent, privateEvent, routeRequestEvent, reRoute, routeSelect, routeUsedEvent, routeEndEvent, monitorDevice, monitorCall, monitorCallsViaDevice, changeMonitorFilter, monitorStop, monitorEnded, snapshotDeviceReq, snapshotCallReq, escapeService, privateStatusEvent, escapeServiceEvent, escapeServiceConf, sendPrivateEvent, sysStatReq, sysStatStart, sysStatStop, changeSysStatFilter, sysStatReqEvent, sysStatReqConf, sysStatEvent: smallint; end; SDBLevel_t = enum; const NO_SDB_CHECKING = -1; ACS_ONLY = 1; ACS_AND_CSTA_CHECKING = 0; type CSTALevel_t = ( CSTA_LEVEL, CSTA_HOME_WORK_TOP, CSTA_AWAY_WORK_TOP, CSTA_DEVICE_DEVICE_MONITOR, CSTA_CALL_DEVICE_MONITOR, CSTA_CALL_CONTROL, CSTA_ROUTING, CSTA_CALL_CALL_MONITOR ); DeviceList_t = record count: smallint; device: array[0..19] of DeviceID_t; end; CSTAGetDeviceListConfEvent_t = record driverSdbLevel: SDBLevel_t; level: CSTALevel_t; index: longint; devList: DeviceList_t; end; CSTAQueryCallMonitorConfEvent_t = record callMonitor: Boolean; end; CSTAConfirmationEvent = record invokeID: InvokeID_t; case Integer of 0: (alternateCall: CSTAAlternateCallConfEvent_t); 1: (answerCall: CSTAAnswerCallConfEvent_t); 2: (callCompletion: CSTACallCompletionConfEvent_t); 3: (clearCall: CSTAClearCallConfEvent_t); 4: (clearConnection: CSTAClearConnectionConfEvent_t); 5: (conferenceCall: CSTAConferenceCallConfEvent_t); 6: (consultationCall: CSTAConsultationCallConfEvent_t); 7: (deflectCall: CSTADeflectCallConfEvent_t); 8: (pickupCall: CSTAPickupCallConfEvent_t); 9: (groupPickupCall: CSTAGroupPickupCallConfEvent_t); 10: (holdCall: CSTAHoldCallConfEvent_t); 11: (makeCall: CSTAMakeCallConfEvent_t); 12: (makePredictiveCall: CSTAMakePredictiveCallConfEvent_t); 13: (queryMwi: CSTAQueryMwiConfEvent_t); 14: (queryDnd: CSTAQueryDndConfEvent_t); 15: (queryFwd: CSTAQueryFwdConfEvent_t); 16: (queryAgentState: CSTAQueryAgentStateConfEvent_t); 17: (queryLastNumber: CSTAQueryLastNumberConfEvent_t); 18: (queryDeviceInfo: CSTAQueryDeviceInfoConfEvent_t); 19: (reconnectCall: CSTAReconnectCallConfEvent_t); 20: (retrieveCall: CSTARetrieveCallConfEvent_t); 21: (setMwi: CSTASetMwiConfEvent_t); 22: (setDnd: CSTASetDndConfEvent_t); 23: (setFwd: CSTASetFwdConfEvent_t); 24: (setAgentState: CSTASetAgentStateConfEvent_t); 25: (transferCall: CSTATransferCallConfEvent_t); 26: (universalFailure:CSTAUniversalFailureConfEvent_t); 27: (monitorStart: CSTAMonitorConfEvent_t); 28: (changeMonitorFilter: CSTAChangeMonitorFilterConfEvent_t); 29: (monitorStop: CSTAMonitorStopConfEvent_t); 30: (snapshotDevice: CSTASnapshotDeviceConfEvent_t); 31: (snapshotCall: CSTASnapshotCallConfEvent_t); 32: (routeRegister: CSTARouteRegisterReqConfEvent_t); 33: (routeCancel: CSTARouteRegisterCancelConfEvent_t); 34: (escapeService: CSTAEscapeSvcConfEvent_t); 35: (sysStatReq: CSTASysStatReqConfEvent_t); 36: (sysStatStart: CSTASysStatStartConfEvent_t); 37: (sysStatStop: CSTASysStatStopConfEvent_t); 38: (changeSysStatFilter: CSTAChangeSysStatFilterConfEvent_t); 39: (getAPICaps: CSTAGetAPICapsConfEvent_t); 40: (getDeviceList: CSTAGetDeviceListConfEvent_t); 41: (queryCallMonitor: CSTAQueryCallMonitorConfEvent_t); end; CSTARouteRegisterAbortEvent_t = record routeRegisterReqID: RouteRegisterReqID_t; end; CSTARouteUsedEvent_t = record routeRegisterReqID: RouteRegisterReqID_t; routingCrossRefID: RoutingCrossRefID_t; routeUsed: DeviceID_t; callingDevice: DeviceID_t; domain: Boolean; end; CSTARouteUsedExtEvent_t = record routeRegisterReqID: RouteRegisterReqID_t; routingCrossRefID: RoutingCrossRefID_t; routeUsed: CalledDeviceID_t; callingDevice: CallingDeviceID_t; domain: Boolean; end; CSTARouteEndEvent_t = record routeRegisterReqID: RouteRegisterReqID_t; routingCrossRefID: RoutingCrossRefID_t; errorValue: CSTAUniversalFailure_t; end; CSTAPrivateEvent_t = record null: Nulltype; end; CSTASysStatEvent_t = record systemStatus: SystemStatus_t; end; CSTASysStatEndedEvent_t = record null: Nulltype; end; CSTAEventReport_t = record case Integer of 0: (registerAbort: CSTARouteRegisterAbortEvent_t); 1: (routeUsed: CSTARouteUsedEvent_t); 2: (routeUsedExt: CSTARouteUsedExtEvent_t); 3: (routeEnd: CSTARouteEndEvent_t); 4: (privateEvent: CSTAPrivateEvent_t); 5: (sysStat: CSTASysStatEvent_t); 6: (sysStatEnded: CSTASysStatEndedEvent_t); end; CSTAEvent_t = record eventHeader: ACSEventHeader_t; event: record case Integer of 0: (acsUnsolicited: ACSUnsolicitedEvent); 1: (acsConfirmation: ACSConfirmationEvent); 2: (cstaRequest: CSTARequestEvent); 3: (cstaUnsolicited: CSTAUnsolicitedEvent); 4: (cstaConfirmation: CSTAConfirmationEvent); 5: (cstaEventReport: CSTAEventReport_t); end; heap: array[1..CSTA_MAX_HEAP] of char; end; long = longint; function cstaMonitorDevice ( acsHandle: ACSHandle_t; invokeID: InvokeID_t; deviceID: PDeviceID_t; monitorFilter: PCSTAMonitorFilter_t; privateData: PPrivateData_t ): RetCode_t; stdcall; external 'CSTA32.dll'; function cstaMakeCall ( acsHandle: ACSHandle_t; invokeID: InvokeID_t; callingDevice: PDeviceID_t; calledDevice: PDeviceID_t; privateData: PPrivateData_t ): RetCode_t; stdcall; external 'CSTA32.dll'; function cstaClearConnection ( acsHandle: ACSHandle_t; invokeID: InvokeID_t; call: PConnectionID_t; privateData: PPrivateData_t ): RetCode_t; stdcall; external 'CSTA32.dll'; function cstaAnswerCall ( acsHandle: ACSHandle_t; invokeID: InvokeID_t; alertingCall: pConnectionID_t; privateData: PPrivateData_t ): RetCode_t; stdcall; external 'CSTA32.dll'; implementation end.