|
|
#ifndef _IGCCControlSAP_H_
#define _IGCCControlSAP_H_
#include <basetyps.h>
#include "gcc.h"
#include "igccapp.h"
/*
* These structures are used to hold the information included for the * various callback messages. In the case where these structures are used for * callbacks, the address of the structure is passed as the only parameter. */
typedef struct { PGCCConferenceName conference_name; GCCNumericString conference_modifier; BOOL use_password_in_the_clear; BOOL conference_is_locked; BOOL conference_is_listed; BOOL conference_is_conductible; GCCTerminationMethod termination_method; PGCCConferencePrivileges conduct_privilege_list; PGCCConferencePrivileges conduct_mode_privilege_list; PGCCConferencePrivileges non_conduct_privilege_list; LPWSTR pwszConfDescriptor; LPWSTR pwszCallerID; TransportAddress calling_address; TransportAddress called_address; PDomainParameters domain_parameters; UINT number_of_network_addresses; PGCCNetworkAddress *network_address_list; PConnectionHandle connection_handle; } GCCConfCreateReqCore;
typedef struct { GCCConfCreateReqCore Core; PGCCPassword convener_password; PGCCPassword password; BOOL fSecure; UINT number_of_user_data_members; PGCCUserData *user_data_list; } GCCConfCreateRequest;
/*********************************************************************
* * * NODE CONTROLLER CALLBACK INFO STRUCTURES * * * *********************************************************************/
typedef struct { GCCConfID conference_id; GCCResult result; } SimpleConfirmMsg;
/*
* GCC_CREATE_INDICATION * * Union Choice: * CreateIndicationMessage * This is a pointer to a structure that contains all necessary * information about the new conference that is about to be created. */ typedef struct { GCCConferenceName conference_name; GCCConferenceID conference_id; GCCPassword *convener_password; /* optional */ GCCPassword *password; /* optional */ BOOL conference_is_locked; BOOL conference_is_listed; BOOL conference_is_conductible; GCCTerminationMethod termination_method; GCCConferencePrivileges *conductor_privilege_list; /* optional */ GCCConferencePrivileges *conducted_mode_privilege_list; /* optional */ GCCConferencePrivileges *non_conducted_privilege_list; /* optional */ LPWSTR conference_descriptor; /* optional */ LPWSTR caller_identifier; /* optional */ TransportAddress calling_address; /* optional */ TransportAddress called_address; /* optional */ DomainParameters *domain_parameters; /* optional */ UINT number_of_user_data_members; GCCUserData **user_data_list; /* optional */ ConnectionHandle connection_handle; } CreateIndicationMessage, *PCreateIndicationMessage;
/*
* GCC_CREATE_CONFIRM * * Union Choice: * CreateConfirmMessage * This is a pointer to a structure that contains all necessary * information about the result of a conference create request. * The connection handle and physical handle will be zero on a * local create. */ typedef struct { GCCConferenceName conference_name; GCCNumericString conference_modifier; /* optional */ GCCConferenceID conference_id; DomainParameters *domain_parameters; /* optional */ UINT number_of_user_data_members; GCCUserData **user_data_list; /* optional */ GCCResult result; ConnectionHandle connection_handle; /* optional */ } CreateConfirmMessage, *PCreateConfirmMessage;
/*
* GCC_QUERY_INDICATION * * Union Choice: * QueryIndicationMessage * This is a pointer to a structure that contains all necessary * information about the conference query. */ typedef struct { GCCResponseTag query_response_tag; GCCNodeType node_type; GCCAsymmetryIndicator *asymmetry_indicator; TransportAddress calling_address; /* optional */ TransportAddress called_address; /* optional */ UINT number_of_user_data_members; GCCUserData **user_data_list; /* optional */ ConnectionHandle connection_handle; } QueryIndicationMessage, *PQueryIndicationMessage;
/*
* GCC_QUERY_CONFIRM * * Union Choice: * QueryConfirmMessage * This is a pointer to a structure that contains all necessary * information about the result of a conference query request. */ typedef struct { GCCNodeType node_type; GCCAsymmetryIndicator *asymmetry_indicator; /* optional */ UINT number_of_descriptors; GCCConferenceDescriptor **conference_descriptor_list; /* optional*/ UINT number_of_user_data_members; GCCUserData **user_data_list; /* optional */ GCCResult result; ConnectionHandle connection_handle; } QueryConfirmMessage, *PQueryConfirmMessage;
/*
* GCC_JOIN_INDICATION * * Union Choice: * JoinIndicationMessage * This is a pointer to a structure that contains all necessary * information about the join request. */ typedef struct { GCCResponseTag join_response_tag; GCCConferenceID conference_id; GCCPassword *convener_password; /* optional */ GCCChallengeRequestResponse*password_challenge; /* optional */ LPWSTR caller_identifier; /* optional */ TransportAddress calling_address; /* optional */ TransportAddress called_address; /* optional */ UINT number_of_user_data_members; GCCUserData **user_data_list; /* optional */ BOOL node_is_intermediate; ConnectionHandle connection_handle; } JoinIndicationMessage, *PJoinIndicationMessage;
/*
* GCC_JOIN_CONFIRM * * Union Choice: * JoinConfirmMessage * This is a pointer to a structure that contains all necessary * information about the join confirm. */ typedef struct { GCCConferenceName conference_name; GCCNumericString called_node_modifier; /* optional */ GCCNumericString calling_node_modifier; /* optional */ GCCConferenceID conference_id; GCCChallengeRequestResponse*password_challenge; /* optional */ DomainParameters *domain_parameters; BOOL clear_password_required; BOOL conference_is_locked; BOOL conference_is_listed; BOOL conference_is_conductible; GCCTerminationMethod termination_method; GCCConferencePrivileges *conductor_privilege_list; /* optional */ GCCConferencePrivileges *conducted_mode_privilege_list; /* optional */ GCCConferencePrivileges *non_conducted_privilege_list; /* optional */ LPWSTR conference_descriptor; /* optional */ UINT number_of_user_data_members; GCCUserData **user_data_list; /* optional */ GCCResult result; ConnectionHandle connection_handle; PBYTE pb_remote_cred; DWORD cb_remote_cred; } JoinConfirmMessage, *PJoinConfirmMessage;
/*
* GCC_INVITE_INDICATION * * Union Choice: * InviteIndicationMessage * This is a pointer to a structure that contains all necessary * information about the invite indication. */ typedef struct { GCCConferenceID conference_id; GCCConferenceName conference_name; LPWSTR caller_identifier; /* optional */ TransportAddress calling_address; /* optional */ TransportAddress called_address; /* optional */ BOOL fSecure; DomainParameters *domain_parameters; /* optional */ BOOL clear_password_required; BOOL conference_is_locked; BOOL conference_is_listed; BOOL conference_is_conductible; GCCTerminationMethod termination_method; GCCConferencePrivileges *conductor_privilege_list; /* optional */ GCCConferencePrivileges *conducted_mode_privilege_list; /* optional */ GCCConferencePrivileges *non_conducted_privilege_list; /* optional */ LPWSTR conference_descriptor; /* optional */ UINT number_of_user_data_members; GCCUserData **user_data_list; /* optional */ ConnectionHandle connection_handle; } InviteIndicationMessage, *PInviteIndicationMessage;
/*
* GCC_INVITE_CONFIRM * * Union Choice: * InviteConfirmMessage * This is a pointer to a structure that contains all necessary * information about the invite confirm. */ typedef struct { GCCConferenceID conference_id; UINT number_of_user_data_members; GCCUserData **user_data_list; /* optional */ GCCResult result; ConnectionHandle connection_handle; } InviteConfirmMessage, *PInviteConfirmMessage;
/*
* GCC_ADD_INDICATION * * Union Choice: * AddIndicationMessage */ typedef struct { GCCResponseTag add_response_tag; GCCConferenceID conference_id; UINT number_of_network_addresses; GCCNetworkAddress **network_address_list; UserID requesting_node_id; UINT number_of_user_data_members; GCCUserData **user_data_list; /* optional */ } AddIndicationMessage, *PAddIndicationMessage;
/*
* GCC_ADD_CONFIRM * * Union Choice: * AddConfirmMessage */ typedef struct { GCCConferenceID conference_id; UINT number_of_network_addresses; GCCNetworkAddress **network_address_list; UINT number_of_user_data_members; GCCUserData **user_data_list; /* optional */ GCCResult result; } AddConfirmMessage, *PAddConfirmMessage;
/*
* GCC_LOCK_INDICATION * * Union Choice: * LockIndicationMessage */ typedef struct { GCCConferenceID conference_id; UserID requesting_node_id; } LockIndicationMessage, *PLockIndicationMessage;
/*
* GCC_UNLOCK_INDICATION * * Union Choice: * UnlockIndicationMessage */ typedef struct { GCCConferenceID conference_id; UserID requesting_node_id; } UnlockIndicationMessage, *PUnlockIndicationMessage;
/*
* GCC_DISCONNECT_INDICATION * * Union Choice: * DisconnectIndicationMessage */ typedef struct { GCCConferenceID conference_id; GCCReason reason; UserID disconnected_node_id; } DisconnectIndicationMessage, *PDisconnectIndicationMessage;
/*
* GCC_DISCONNECT_CONFIRM * * Union Choice: * PDisconnectConfirmMessage */ typedef SimpleConfirmMsg DisconnectConfirmMessage, *PDisconnectConfirmMessage;
/*
* GCC_TERMINATE_INDICATION * * Union Choice: * TerminateIndicationMessage */ typedef struct { GCCConferenceID conference_id; UserID requesting_node_id; GCCReason reason; } TerminateIndicationMessage, *PTerminateIndicationMessage;
/*
* GCC_TERMINATE_CONFIRM * * Union Choice: * TerminateConfirmMessage */ typedef SimpleConfirmMsg TerminateConfirmMessage, *PTerminateConfirmMessage;
/*
* GCC_CONNECTION_BROKEN_INDICATION * * Union Choice: * ConnectionBrokenIndicationMessage * * Caveat: * This is a non-standard indication. */ typedef struct { ConnectionHandle connection_handle; } ConnectionBrokenIndicationMessage, *PConnectionBrokenIndicationMessage;
/*
* GCC_EJECT_USER_INDICATION * * Union Choice: * EjectUserIndicationMessage */ typedef struct { GCCConferenceID conference_id; UserID ejected_node_id; GCCReason reason; } EjectUserIndicationMessage, *PEjectUserIndicationMessage;
/*
* GCC_PERMIT_TO_ANNOUNCE_PRESENCE * * Union Choice: * PermitToAnnouncePresenceMessage */ typedef struct { GCCConferenceID conference_id; UserID node_id; } PermitToAnnouncePresenceMessage, *PPermitToAnnouncePresenceMessage;
/*
* GCC_ANNOUNCE_PRESENCE_CONFIRM * * Union Choice: * AnnouncePresenceConfirmMessage */ typedef SimpleConfirmMsg AnnouncePresenceConfirmMessage, *PAnnouncePresenceConfirmMessage;
/*
* GCC_ROSTER_REPORT_INDICATION * * Union Choice: * ConfRosterReportIndicationMessage */ typedef struct { GCCConferenceID conference_id; GCCConferenceRoster *conference_roster; } ConfRosterReportIndicationMessage, *PConfRosterReportIndicationMessage;
/*
* GCC_CONDUCT_GIVE_INDICATION * * Union Choice: * ConductorGiveIndicationMessage */ typedef struct { GCCConferenceID conference_id; } ConductGiveIndicationMessage, *PConductGiveIndicationMessage;
/*
* GCC_TIME_INQUIRE_INDICATION * * Union Choice: * TimeInquireIndicationMessage */ typedef struct { GCCConferenceID conference_id; BOOL time_is_conference_wide; UserID requesting_node_id; } TimeInquireIndicationMessage, *PTimeInquireIndicationMessage;
/*
* GCC_STATUS_INDICATION * * Union Choice: * GCCStatusMessage * This callback is used to relay GCC status to the node controller */ typedef enum { GCC_STATUS_PACKET_RESOURCE_FAILURE = 0, GCC_STATUS_PACKET_LENGTH_EXCEEDED = 1, GCC_STATUS_CTL_SAP_RESOURCE_ERROR = 2, GCC_STATUS_APP_SAP_RESOURCE_ERROR = 3, /* parameter = Sap Handle */ GCC_STATUS_CONF_RESOURCE_ERROR = 4, /* parameter = Conference ID */ GCC_STATUS_INCOMPATIBLE_PROTOCOL = 5, /* parameter = Physical Handle */ GCC_STATUS_JOIN_FAILED_BAD_CONF_NAME = 6, /* parameter = Physical Handle */ GCC_STATUS_JOIN_FAILED_BAD_CONVENER = 7, /* parameter = Physical Handle */ GCC_STATUS_JOIN_FAILED_LOCKED = 8 /* parameter = Physical Handle */ } GCCStatusMessageType;
typedef struct { GCCStatusMessageType status_message_type; UINT parameter; } GCCStatusIndicationMessage, *PGCCStatusIndicationMessage;
/*
* GCC_SUB_INITIALIZED_INDICATION * * Union Chice: * SubInitializedIndicationMessage */ typedef struct { ConnectionHandle connection_handle; UserID subordinate_node_id; } SubInitializedIndicationMessage, *PSubInitializedIndicationMessage;
#ifdef JASPER // ------------------------------------------------
/*
* GCC_LOCK_CONFIRM * * Union Choice: * LockConfirmMessage */ typedef SimpleConfirmMsg LockConfirmMessage, *PLockConfirmMessage;
/*
* GCC_UNLOCK_CONFIRM * * Union Choice: * UnlockConfirmMessage */ typedef SimpleConfirmMsg UnlockConfirmMessage, *PUnlockConfirmMessage;
/*
* GCC_LOCK_REPORT_INDICATION * * Union Choice: * LockReportIndicationMessage */ typedef struct { GCCConferenceID conference_id; BOOL conference_is_locked; } LockReportIndicationMessage, *PLockReportIndicationMessage;
/*
* GCC_EJECT_USER_CONFIRM * * Union Choice: * EjectUserConfirmMessage */ typedef struct { GCCConferenceID conference_id; GCCResult result; UserID ejected_node_id; } EjectUserConfirmMessage, *PEjectUserConfirmMessage;
/*
* GCC_TRANSFER_INDICATION * * Union Choice: * TransferIndicationMessage */ typedef struct { GCCConferenceID conference_id; GCCConferenceName destination_conference_name; GCCNumericString destination_conference_modifier;/* optional */ UINT number_of_destination_addresses; GCCNetworkAddress **destination_address_list; GCCPassword *password; /* optional */ } TransferIndicationMessage, *PTransferIndicationMessage;
/*
* GCC_TRANSFER_CONFIRM * * Union Choice: * TransferConfirmMessage */ typedef struct { GCCConferenceID conference_id; GCCConferenceName destination_conference_name; GCCNumericString destination_conference_modifier;/* optional */ UINT number_of_destination_nodes; UserID *destination_node_list; GCCResult result; } TransferConfirmMessage, *PTransferConfirmMessage;
/*
* GCC_CONDUCT_ASSIGN_CONFIRM * * Union Choice: * ConductAssignConfirmMessage */ typedef SimpleConfirmMsg ConductAssignConfirmMessage, *PConductAssignConfirmMessage;
/*
* GCC_CONDUCT_RELEASE_CONFIRM * * Union Choice: * ConductorReleaseConfirmMessage */ typedef SimpleConfirmMsg ConductReleaseConfirmMessage, *PConductReleaseConfirmMessage;
/*
* GCC_CONDUCT_PLEASE_INDICATION * * Union Choice: * ConductorPleaseIndicationMessage */ typedef struct { GCCConferenceID conference_id; UserID requester_node_id; } ConductPleaseIndicationMessage, *PConductPleaseIndicationMessage;
/*
* GCC_CONDUCT_PLEASE_CONFIRM * * Union Choice: * ConductPleaseConfirmMessage */ typedef SimpleConfirmMsg ConductPleaseConfirmMessage, *PConductPleaseConfirmMessage;
/*
* GCC_CONDUCT_GIVE_CONFIRM * * Union Choice: * ConductorGiveConfirmMessage */ typedef struct { GCCConferenceID conference_id; GCCResult result; UserID recipient_node_id; } ConductGiveConfirmMessage, *PConductGiveConfirmMessage;
/*
* GCC_CONDUCT_ASK_INDICATION * * Union Choice: * ConductPermitAskIndicationMessage */ typedef struct { GCCConferenceID conference_id; BOOL permission_is_granted; UserID requester_node_id; } ConductPermitAskIndicationMessage, *PConductPermitAskIndicationMessage;
/*
* GCC_CONDUCT_ASK_CONFIRM * * Union Choice: * ConductPermitAskConfirmMessage */ typedef struct { GCCConferenceID conference_id; GCCResult result; BOOL permission_is_granted; } ConductPermitAskConfirmMessage, *PConductPermitAskConfirmMessage;
/*
* GCC_CONDUCT_GRANT_CONFIRM * * Union Choice: * ConductPermissionGrantConfirmMessage */ typedef SimpleConfirmMsg ConductPermitGrantConfirmMessage, *PConductPermitGrantConfirmMessage;
/*
* GCC_TIME_REMAINING_INDICATION * * Union Choice: * TimeRemainingIndicationMessage */ typedef struct { GCCConferenceID conference_id; UINT time_remaining; UserID node_id; UserID source_node_id; } TimeRemainingIndicationMessage, *PTimeRemainingIndicationMessage;
/*
* GCC_TIME_REMAINING_CONFIRM * * Union Choice: * TimeRemainingConfirmMessage */ typedef SimpleConfirmMsg TimeRemainingConfirmMessage, *PTimeRemainingConfirmMessage;
/*
* GCC_TIME_INQUIRE_CONFIRM * * Union Choice: * TimeInquireConfirmMessage */ typedef SimpleConfirmMsg TimeInquireConfirmMessage, *PTimeInquireConfirmMessage;
/*
* GCC_CONFERENCE_EXTEND_INDICATION * * Union Choice: * ConferenceExtendIndicationMessage */ typedef struct { GCCConferenceID conference_id; UINT extension_time; BOOL time_is_conference_wide; UserID requesting_node_id; } ConferenceExtendIndicationMessage, *PConferenceExtendIndicationMessage;
/*
* GCC_CONFERENCE_EXTEND_CONFIRM * * Union Choice: * ConferenceExtendConfirmMessage */ typedef struct { GCCConferenceID conference_id; UINT extension_time; GCCResult result; } ConferenceExtendConfirmMessage, *PConferenceExtendConfirmMessage;
/*
* GCC_ASSISTANCE_INDICATION * * Union Choice: * ConferenceAssistIndicationMessage */ typedef struct { GCCConferenceID conference_id; UINT number_of_user_data_members; GCCUserData **user_data_list; UserID source_node_id; } ConferenceAssistIndicationMessage, *PConferenceAssistIndicationMessage;
/*
* GCC_ASSISTANCE_CONFIRM * * Union Choice: * ConferenceAssistConfirmMessage */ typedef SimpleConfirmMsg ConferenceAssistConfirmMessage, *PConferenceAssistConfirmMessage;
/*
* GCC_TEXT_MESSAGE_INDICATION * * Union Choice: * TextMessageIndicationMessage */ typedef struct { GCCConferenceID conference_id; LPWSTR text_message; UserID source_node_id; } TextMessageIndicationMessage, *PTextMessageIndicationMessage;
/*
* GCC_TEXT_MESSAGE_CONFIRM * * Union Choice: * TextMessageConfirmMessage */ typedef SimpleConfirmMsg TextMessageConfirmMessage, *PTextMessageConfirmMessage; #endif // JASPER // ------------------------------------------------
/*********************************************************************
* * * USER APPLICATION CALLBACK INFO STRUCTURES * * * *********************************************************************/
/*
* GCC_APP_ROSTER_REPORT_INDICATION * * Union Choice: * AppRosterReportIndicationMessage */ typedef struct { GCCConferenceID conference_id; ULONG number_of_rosters; GCCApplicationRoster **application_roster_list; } AppRosterReportIndicationMessage, *PAppRosterReportIndicationMessage;
/*********************************************************************
* * * SHARED CALLBACK INFO STRUCTURES * * (Note that this doesn't include all the shared callbacks) * * * *********************************************************************/
/*
* GCC_ROSTER_INQUIRE_CONFIRM * * Union Choice: * ConfRosterInquireConfirmMessage */ typedef struct { GCCConferenceID conference_id; GCCConferenceName conference_name; GCCNumericString conference_modifier; LPWSTR conference_descriptor; GCCConferenceRoster *conference_roster; GCCResult result; } ConfRosterInquireConfirmMessage, *PConfRosterInquireConfirmMessage;
/*
* GCC_APPLICATION_INVOKE_INDICATION * * Union Choice: * ApplicationInvokeIndicationMessage */ typedef struct { GCCConferenceID conference_id; ULONG number_of_app_protocol_entities; GCCAppProtocolEntity **app_protocol_entity_list; UserID invoking_node_id; } ApplicationInvokeIndicationMessage, *PApplicationInvokeIndicationMessage;
/*
* GCC_APPLICATION_INVOKE_CONFIRM * * Union Choice: * ApplicationInvokeConfirmMessage */ typedef struct { GCCConferenceID conference_id; ULONG number_of_app_protocol_entities; GCCAppProtocolEntity **app_protocol_entity_list; GCCResult result; } ApplicationInvokeConfirmMessage, *PApplicationInvokeConfirmMessage;
#ifdef JASPER // ------------------------------------------------
/*
* GCC_APP_ROSTER_INQUIRE_CONFIRM * * Union Choice: * AppRosterInquireConfirmMessage */ typedef struct { GCCConferenceID conference_id; ULONG number_of_rosters; GCCApplicationRoster **application_roster_list; GCCResult result; } AppRosterInquireConfirmMessage, *PAppRosterInquireConfirmMessage;
/*
* GCC_CONDUCT_INQUIRE_CONFIRM * * Union Choice: * ConductorInquireConfirmMessage */ typedef struct { GCCConferenceID conference_id; BOOL mode_is_conducted; UserID conductor_node_id; BOOL permission_is_granted; GCCResult result; } ConductInquireConfirmMessage, *PConductInquireConfirmMessage;
/*
* GCC_CONDUCT_ASSIGN_INDICATION * * Union Choice: * ConductAssignIndicationMessage */ typedef struct { GCCConferenceID conference_id; UserID node_id; } ConductAssignIndicationMessage, *PConductAssignIndicationMessage;
/*
* GCC_CONDUCT_RELEASE_INDICATION * * Union Choice: * ConductReleaseIndicationMessage */ typedef struct { GCCConferenceID conference_id; } ConductReleaseIndicationMessage, *PConductReleaseIndicationMessage;
/*
* GCC_CONDUCT_GRANT_INDICATION * * Union Choice: * ConductPermitGrantIndicationMessage */ typedef struct { GCCConferenceID conference_id; UINT number_granted; UserID *granted_node_list; UINT number_waiting; UserID *waiting_node_list; BOOL permission_is_granted; } ConductPermitGrantIndicationMessage, *PConductPermitGrantIndicationMessage; #endif // JASPER // ------------------------------------------------
/*
* GCCMessage * This structure defines the message that is passed from GCC to either * the node controller or a user application when an indication or * confirm occurs. */
typedef struct { GCCMessageType message_type; LPVOID user_defined;
// GCCNC relies on easy access to conference ID.
GCCConfID nConfID;
union { CreateIndicationMessage create_indication; CreateConfirmMessage create_confirm; QueryIndicationMessage query_indication; QueryConfirmMessage query_confirm; JoinIndicationMessage join_indication; JoinConfirmMessage join_confirm; InviteIndicationMessage invite_indication; InviteConfirmMessage invite_confirm; AddIndicationMessage add_indication; AddConfirmMessage add_confirm; LockIndicationMessage lock_indication; UnlockIndicationMessage unlock_indication; DisconnectIndicationMessage disconnect_indication; DisconnectConfirmMessage disconnect_confirm; TerminateIndicationMessage terminate_indication; TerminateConfirmMessage terminate_confirm; ConnectionBrokenIndicationMessage connection_broken_indication; EjectUserIndicationMessage eject_user_indication; ApplicationInvokeIndicationMessage application_invoke_indication; ApplicationInvokeConfirmMessage application_invoke_confirm; SubInitializedIndicationMessage conf_sub_initialized_indication; PermitToAnnouncePresenceMessage permit_to_announce_presence; AnnouncePresenceConfirmMessage announce_presence_confirm; ConfRosterReportIndicationMessage conf_roster_report_indication; ConductGiveIndicationMessage conduct_give_indication; TimeInquireIndicationMessage time_inquire_indication; GCCStatusIndicationMessage status_indication; AppRosterReportIndicationMessage app_roster_report_indication; ConfRosterInquireConfirmMessage conf_roster_inquire_confirm; #ifdef TSTATUS_INDICATION
TransportStatus transport_status; #endif // TSTATUS_INDICATION
#ifdef JASPER // ------------------------------------------------
TextMessageIndicationMessage text_message_indication; TimeRemainingIndicationMessage time_remaining_indication; AppRosterInquireConfirmMessage app_roster_inquire_confirm; ConferenceAssistConfirmMessage conference_assist_confirm; ConferenceAssistIndicationMessage conference_assist_indication; ConductPermitAskConfirmMessage conduct_permit_ask_confirm; ConductPermitAskIndicationMessage conduct_permit_ask_indication; ConductAssignConfirmMessage conduct_assign_confirm; ConductAssignIndicationMessage conduct_assign_indication; ConductGiveConfirmMessage conduct_give_confirm; ConductPermitGrantConfirmMessage conduct_permit_grant_confirm; ConductPermitGrantIndicationMessage conduct_permit_grant_indication; ConductInquireConfirmMessage conduct_inquire_confirm; ConductPleaseConfirmMessage conduct_please_confirm; ConductPleaseIndicationMessage conduct_please_indication; ConductReleaseConfirmMessage conduct_release_confirm; ConductReleaseIndicationMessage conduct_release_indication; ConferenceExtendConfirmMessage conference_extend_confirm; ConferenceExtendIndicationMessage conference_extend_indication; EjectUserConfirmMessage eject_user_confirm; LockConfirmMessage lock_confirm; LockReportIndicationMessage lock_report_indication; TextMessageConfirmMessage text_message_confirm; TimeInquireConfirmMessage time_inquire_confirm; TimeRemainingConfirmMessage time_remaining_confirm; TransferConfirmMessage transfer_confirm; TransferIndicationMessage transfer_indication; UnlockConfirmMessage unlock_confirm; #endif // JASPER // ------------------------------------------------
// easy acess to conf id and gcc result
SimpleConfirmMsg simple_confirm; } u; } GCCMessage, *PGCCMessage, T120Message, *PT120Message;
// node controller callback entry
typedef void (CALLBACK *LPFN_T120_CONTROL_SAP_CB) (T120Message *);
#undef INTERFACE
#define INTERFACE IT120ControlSAP
DECLARE_INTERFACE(IT120ControlSAP) { STDMETHOD_(void, ReleaseInterface) (THIS) PURE;
/*
* GCCError ConfCreateRequest() * This routine is a request to create a new conference. Both * the local node and the node to which the create conference * request is directed to, join the conference automatically. */ STDMETHOD_(GCCError, ConfCreateRequest) (THIS_ GCCConfCreateRequest *, GCCConfID *) PURE;
/*
* GCCError ConfCreateResponse() * This procedure is a remote node controller's response to a con- * ference creation request by the convener. */
STDMETHOD_(GCCError, ConfCreateResponse) (THIS_ GCCNumericString conference_modifier, GCCConfID, BOOL use_password_in_the_clear, DomainParameters *domain_parameters, UINT number_of_network_addresses, GCCNetworkAddress **local_network_address_list, UINT number_of_user_data_members, GCCUserData **user_data_list, GCCResult) PURE;
/*
* GCCError ConfQueryRequest() * This routine is a request to query a node for information about the * conferences that exist at that node. */ STDMETHOD_(GCCError, ConfQueryRequest) (THIS_ GCCNodeType node_type, GCCAsymmetryIndicator *asymmetry_indicator, TransportAddress calling_address, TransportAddress called_address, BOOL fSecure, UINT number_of_user_data_members, GCCUserData **user_data_list, ConnectionHandle *connection_handle) PURE;
STDMETHOD_(void, CancelConfQueryRequest) (THIS_ ConnectionHandle) PURE;
/*
* GCCError ConfQueryResponse() * This routine is called in response to a conference query request. */ STDMETHOD_(GCCError, ConfQueryResponse) (THIS_ GCCResponseTag query_response_tag, GCCNodeType node_type, GCCAsymmetryIndicator *asymmetry_indicator, UINT number_of_user_data_members, GCCUserData **user_data_list, GCCResult) PURE;
/*
* GCCError AnnouncePresenceRequest() * This routine is invoked by node controller when a node joins a * conference, to announce the presence of the new node to all * other nodes of the conference. This should be followed by a * GCCConferenceReport indication by the GCC to all nodes. */ STDMETHOD_(GCCError, AnnouncePresenceRequest) (THIS_ GCCConfID, GCCNodeType node_type, GCCNodeProperties node_properties, LPWSTR pwszNodeName, UINT number_of_participants, LPWSTR *ppwszParticipantNameList, LPWSTR pwszSiteInfo, UINT number_of_network_addresses, GCCNetworkAddress **network_address_list, LPOSTR alternative_node_id, UINT number_of_user_data_members, GCCUserData **user_data_list) PURE;
/*
* GCCError ConfJoinRequest() * This routine is invoked by node controller to cause the local * node to join an existing conference. */ STDMETHOD_(GCCError, ConfJoinRequest) (THIS_ GCCConferenceName *conference_name, GCCNumericString called_node_modifier, GCCNumericString calling_node_modifier, GCCPassword *convener_password, GCCChallengeRequestResponse*password_challenge, LPWSTR pwszCallerID, TransportAddress calling_address, TransportAddress called_address, BOOL fSecure, DomainParameters *domain_parameters, UINT number_of_network_addresses, GCCNetworkAddress **local_network_address_list, UINT number_of_user_data_members, GCCUserData **user_data_list, ConnectionHandle *connection_handle, GCCConfID *pnConfID) PURE;
/*
* GCCError ConfJoinResponse() * This routine is remote node controller's response to conference join * request by the local node controller. */ STDMETHOD_(GCCError, ConfJoinResponse) (THIS_ GCCResponseTag join_response_tag, GCCChallengeRequestResponse*password_challenge, UINT number_of_user_data_members, GCCUserData **user_data_list, GCCResult) PURE;
/*
* GCCError ConfInviteRequest() * This routine is invoked by node controller to invite a node * to join a conference. */ STDMETHOD_(GCCError, ConfInviteRequest) (THIS_ GCCConfID, LPWSTR pwszCallerID, TransportAddress calling_address, TransportAddress called_address, BOOL fSecure, UINT number_of_user_data_members, GCCUserData **user_data_list, ConnectionHandle *connection_handle) PURE;
STDMETHOD_(void, CancelInviteRequest) (THIS_ GCCConfID, ConnectionHandle) PURE;
/*
* GCCError ConfInviteResponse() * This routine is invoked by node controller to respond to an * invite indication. */ STDMETHOD_(GCCError, ConfInviteResponse) (THIS_ GCCConfID, GCCNumericString conference_modifier, BOOL fSecure, DomainParameters *domain_parameters, UINT number_of_network_addresses, GCCNetworkAddress **local_network_address_list, UINT number_of_user_data_members, GCCUserData **user_data_list, GCCResult) PURE;
/*
* GCCError ConfAddResponse() */ STDMETHOD_(GCCError, ConfAddResponse) (THIS_ GCCResponseTag app_response_tag, GCCConfID, UserID requesting_node, UINT number_of_user_data_members, GCCUserData **user_data_list, GCCResult) PURE;
/*
* GCCError ConfLockResponse() * This routine is invoked by node controller to respond to a * lock indication. */ STDMETHOD_(GCCError, ConfLockResponse) (THIS_ GCCConfID, UserID requesting_node, GCCResult) PURE;
/*
* GCCError ConfDisconnectRequest() * This routine is used by a node controller to disconnect itself * from a specified conference. GccConferenceDisconnectIndication * sent to all other nodes of the conference. This is for client * initiated case. */ STDMETHOD_(GCCError, ConfDisconnectRequest) (THIS_ GCCConfID) PURE;
/*
* GCCError ConfEjectUserRequest() */ STDMETHOD_(GCCError, ConfEjectUserRequest) (THIS_ GCCConfID, UserID ejected_node_id, GCCReason) PURE;
/*
* GCCError AppletInvokeRequest() */ STDMETHOD_(GCCError, AppletInvokeRequest) (THIS_ GCCConfID, UINT number_of_app_protcol_entities, GCCAppProtocolEntity **app_protocol_entity_list, UINT number_of_destination_nodes, UserID *list_of_destination_nodes) PURE;
/*
* GCCError ConfRosterInqRequest() * This routine is invoked to request a conference roster. It can be * called by either the Node Controller or the client application. */ STDMETHOD_(GCCError, ConfRosterInqRequest) (THIS_ GCCConfID) PURE;
/*
* GCCError ConductorGiveResponse() */ STDMETHOD_(GCCError, ConductorGiveResponse) (THIS_ GCCConfID, GCCResult) PURE;
/*
* GCCError ConfTimeRemainingRequest() */ STDMETHOD_(GCCError, ConfTimeRemainingRequest) (THIS_ GCCConfID, UINT time_remaining, UserID node_id) PURE;
STDMETHOD_(GCCError, GetParentNodeID) (THIS_ GCCConfID, GCCNodeID *) PURE;
#ifdef JASPER // ------------------------------------------------
/*
* GCCError ConfAddRequest() */ STDMETHOD_(GCCError, ConfAddRequest) (THIS_ GCCConfID, UINT number_of_network_addresses, GCCNetworkAddress **network_address_list, UserID adding_node, UINT number_of_user_data_members, GCCUserData **user_data_list) PURE;
/*
* GCCError ConfLockRequest() * This routine is invoked by node controller to lock a conference. */ STDMETHOD_(GCCError, ConfLockRequest) (THIS_ GCCConfID) PURE;
/*
* GCCError ConfUnlockRequest() * This routine is invoked by node controller to unlock a conference. */ STDMETHOD_(GCCError, ConfUnlockRequest) (THIS_ GCCConfID) PURE;
/*
* GCCError ConfUnlockResponse() * This routine is invoked by node controller to respond to an * unlock indication. */ STDMETHOD_(GCCError, ConfUnlockResponse) ( GCCConfID, UserID requesting_node, GCCResult) PURE;
/*
* GCCError ConfTerminateRequest() */ STDMETHOD_(GCCError, ConfTerminateRequest) (THIS_ GCCConfID, GCCReason) PURE;
/*
* GCCError ConfTransferRequest() */ STDMETHOD_(GCCError, ConfTransferRequest) (THIS_ GCCConfID, GCCConferenceName *destination_conference_name, GCCNumericString destination_conference_modifier, UINT number_of_destination_addresses, GCCNetworkAddress **destination_address_list, UINT number_of_destination_nodes, UserID *destination_node_list, GCCPassword *password) PURE;
/*
* GCCError ConductorAssignRequest() */ STDMETHOD_(GCCError, ConductorAssignRequest) (THIS_ GCCConfID) PURE;
/*
* GCCError ConductorReleaseRequest() */ STDMETHOD_(GCCError, ConductorReleaseRequest) (THIS_ GCCConfID) PURE;
/*
* GCCError ConductorPleaseRequest() */ STDMETHOD_(GCCError, ConductorPleaseRequest) (THIS_ GCCConfID) PURE;
/*
* GCCError ConductorGiveRequest() */ STDMETHOD_(GCCError, ConductorGiveRequest) (THIS_ GCCConfID, UserID recipient_user_id) PURE;
/*
* GCCError ConductorPermitAskRequest() */ STDMETHOD_(GCCError, ConductorPermitAskRequest) (THIS_ GCCConfID, BOOL grant_permission) PURE;
/*
* GCCError ConductorPermitGrantRequest() */ STDMETHOD_(GCCError, ConductorPermitGrantRequest) (THIS_ GCCConfID, UINT number_granted, UserID *granted_node_list, UINT number_waiting, UserID *waiting_node_list) PURE;
/*
* GCCError ConductorInquireRequest() */ STDMETHOD_(GCCError, ConductorInquireRequest) (THIS_ GCCConfID) PURE;
/*
* GCCError ConfTimeInquireRequest() */ STDMETHOD_(GCCError, ConfTimeInquireRequest) (THIS_ GCCConfID, BOOL time_is_conference_wide) PURE;
/*
* GCCError ConfExtendRequest() */ STDMETHOD_(GCCError, ConfExtendRequest) (THIS_ GCCConfID, UINT extension_time, BOOL time_is_conference_wide) PURE;
/*
* GCCError ConfAssistanceRequest() */ STDMETHOD_(GCCError, ConfAssistanceRequest) (THIS_ GCCConfID, UINT number_of_user_data_members, GCCUserData **user_data_list) PURE;
/*
* GCCError TextMessageRequest() */ STDMETHOD_(GCCError, TextMessageRequest) (THIS_ GCCConfID, LPWSTR pwszTextMsg, UserID destination_node) PURE; #endif // JASPER // ------------------------------------------------
};
//
// GCC Application Service Access Point exports
//
#ifdef __cplusplus
extern "C" { #endif
GCCError WINAPI T120_CreateControlSAP( OUT IT120ControlSAP **, IN LPVOID, // user defined data
IN LPFN_T120_CONTROL_SAP_CB);
#ifdef __cplusplus
} #endif
#endif // _IGCCControlSAP_H_
|