Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2859 lines
84 KiB

  1. /*
  2. * gcc.h
  3. *
  4. * Abstract:
  5. * This is the interface file for the GCC DLL. This file defines all
  6. * macros, types, and functions needed to use the GCC DLL, allowing GCC
  7. * services to be accessed from user applications.
  8. *
  9. * An application requests services from GCC by making direct
  10. * calls into the DLL (this includes T.124 requests and responses). GCC
  11. * sends information back to the application through a callback (this
  12. * includes T.124 indications and confirms). The callback for the node
  13. * controller is specified in the call GCCInitialize, and the callback
  14. * for a particular application service access point is specified in the
  15. * call GCCRegisterSAP.
  16. *
  17. * During initialization, GCC allocates a timer in order to give itself
  18. * a heartbeat. If zero is passed in here the owner application (the node
  19. * controller) must take the responsibility to call GCCHeartbeat. Almost
  20. * all work is done by GCC during these clocks ticks. It is during these
  21. * clock ticks that GCC checks with MCS to see if there is any work to be
  22. * done. It is also during these clock ticks that callbacks are made to
  23. * the user applications. GCC will NEVER invoke a user callback during a
  24. * user request (allowing the user applications to not worry about
  25. * re-entrancy). Since timer events are processed during the message
  26. * loop, the developer should be aware that long periods of time away
  27. * from the message loop will result in GCC "freezing" up.
  28. *
  29. * Note that this is a "C" language interface in order to prevent any "C++"
  30. * naming conflicts between different compiler manufacturers. Therefore,
  31. * if this file is included in a module that is being compiled with a "C++"
  32. * compiler, it is necessary to use the following syntax:
  33. *
  34. * extern "C"
  35. * {
  36. * #include "gcc.h"
  37. * }
  38. *
  39. * This disables C++ name mangling on the API entry points defined within
  40. * this file.
  41. *
  42. * Author:
  43. * blp
  44. *
  45. * Caveats:
  46. * none
  47. */
  48. #ifndef _GCC_
  49. #define _GCC_
  50. /*
  51. * This section defines the valid return values from GCC function calls. Do
  52. * not confuse this return value with the Result and Reason values defined
  53. * by T.124 (which are discussed later). These values are returned directly
  54. * from the call to the API entry point, letting you know whether or not the
  55. * request for service was successfully invoked. The Result and Reason
  56. * codes are issued as part of an indication or confirm which occurs
  57. * asynchronously to the call that causes it.
  58. *
  59. * All GCC function calls return type GCCError. Its valid values are as
  60. * follows:
  61. *
  62. * GCC_NO_ERROR
  63. * This means that the request was successfully invoked. It does NOT
  64. * mean that the service has been successfully completed. Remember that
  65. * all GCC calls are non-blocking. This means that each request call
  66. * begins the process, and if necessary, a subsequent indication or
  67. * confirm will result. By convention, if ANY GCC call returns a value
  68. * other than this, something went wrong. Note that this value should
  69. * also be returned to GCC during a callback if the application processes
  70. * the callback successfully.
  71. *
  72. * GCC_NOT_INITIALIZED
  73. * The application has attempted to use GCC services before GCC has been
  74. * initialized. It is necessary for the node controller (or whatever
  75. * application is serving as the node controller), to initialize GCC before
  76. * it is called upon to perform any services.
  77. *
  78. * GCC_ALREADY_INITIALIZED
  79. * The application has attempted to initialize GCC when it is already
  80. * initialized.
  81. *
  82. * GCC_ALLOCATION_FAILURE
  83. * This indicates a fatal resource error inside GCC. It usually results
  84. * in the automatic termination of the affected conference.
  85. *
  86. * GCC_NO_SUCH_APPLICATION
  87. * This indicates that the Application SAP handle passed in was invalid.
  88. *
  89. * GCC_INVALID_CONFERENCE
  90. * This indicates that an illegal conference ID was passed in.
  91. *
  92. * GCC_CONFERENCE_ALREADY_EXISTS
  93. * The Conference specified in the request or response is already in
  94. * existence.
  95. *
  96. * GCC_NO_TRANSPORT_STACKS
  97. * This indicates that MCS did not load any transport stacks during
  98. * initialization. This is not necessarily an error. MCS can still
  99. * be used in a local only manner. Transport stacks can also be loaded
  100. * after initialization using the call MCSLoadTransport.
  101. *
  102. * GCC_INVALID_ADDRESS_PREFIX
  103. * The called address parameter in a request such as
  104. * GCCConferenceCreateRequest does not contain a recognized prefix. MCS
  105. * relies on the prefix to know which transport stack to invoke.
  106. *
  107. * GCC_INVALID_TRANSPORT
  108. * The dynamic load of a transport stack failed either because the DLL
  109. * could not be found, or because it did not export at least one entry
  110. * point that MCS requires.
  111. *
  112. * GCC_FAILURE_CREATING_PACKET
  113. * This is a FATAL error which means that for some reason the
  114. * communications packet generated due to a request could not be created.
  115. * This typically flags a problem with the ASN.1 toolkit.
  116. *
  117. * GCC_QUERY_REQUEST_OUTSTANDING
  118. * This error indicates that all the domains that set aside for querying
  119. * are used up by other outstanding query request.
  120. *
  121. * GCC_INVALID_QUERY_TAG
  122. * The query response tag specified in the query response is not valid.
  123. *
  124. * GCC_FAILURE_CREATING_DOMAIN
  125. * Many requests such as GCCConferenceCreateRequest require that an MCS
  126. * domain be created. If the request to MCS fails this will be returned.
  127. *
  128. * GCC_CONFERENCE_NOT_ESTABLISHED
  129. * If a request is made to a conference before it is established, this
  130. * error value will be returned.
  131. *
  132. * GCC_INVALID_PASSWORD
  133. * The password passed in the request is not valid. This usually means
  134. * that a numeric string needs to be specified.
  135. *
  136. * GCC_INVALID_MCS_USER_ID
  137. * All MCS User IDs must have a value greater than 1000.
  138. *
  139. * GCC_INVALID_JOIN_RESPONSE_TAG
  140. * The join response tag specified in the join response is not valid.
  141. *
  142. * GCC_TRANSPORT_ALREADY_LOADED
  143. * This occurs if the transport specified in the GCCLoadTransport call has
  144. * already been loaded.
  145. *
  146. * GCC_TRANSPORT_BUSY
  147. * The transport is too busy to process the specified request.
  148. *
  149. * GCC_TRANSPORT_NOT_READY
  150. * Request was made to a transport before it was ready to process it.
  151. *
  152. * GCC_DOMAIN_PARAMETERS_UNACCEPTABLE
  153. * The specified domain parameters do not fit within the range allowable
  154. * by GCC and MCS.
  155. *
  156. * GCC_APP_NOT_ENROLLED
  157. * Occurs if a request is made by an Application Protocol Entity to a
  158. * conference before the "APE" is enrolled.
  159. *
  160. * GCC_NO_GIVE_RESPONSE_PENDING
  161. * This will occur if a conductor Give Request is issued before a
  162. * previously pending conductor Give Response has been processed.
  163. *
  164. * GCC_BAD_NETWORK_ADDRESS_TYPE
  165. * An illegal network address type was passed in. Valid types are
  166. * GCC_AGGREGATED_CHANNEL_ADDRESS, GCC_TRANSPORT_CONNECTION_ADDRESS and
  167. * GCC_NONSTANDARD_NETWORK_ADDRESS.
  168. *
  169. * GCC_BAD_OBJECT_KEY
  170. * The object key passed in is invalid.
  171. *
  172. * GCC_INVALID_CONFERENCE_NAME
  173. * The conference name passed in is not a valid conference name.
  174. *
  175. * GCC_INVALID_CONFERENCE_MODIFIER
  176. * The conference modifier passed in is not a valid conference name.
  177. *
  178. * GCC_BAD_SESSION_KEY
  179. * The session key passed in was not valid.
  180. *
  181. * GCC_BAD_CAPABILITY_ID
  182. * The capability ID passed into the request is not valid.
  183. *
  184. * GCC_BAD_REGISTRY_KEY
  185. * The registry key passed into the request is not valid.
  186. *
  187. * GCC_BAD_NUMBER_OF_APES
  188. * Zero was passed in for the number of APEs in the invoke request. Zero
  189. * is illegal here.
  190. *
  191. * GCC_BAD_NUMBER_OF_HANDLES
  192. * A number < 1 or > 1024 was passed into the allocate handle request.
  193. *
  194. * GCC_ALREADY_REGISTERED
  195. * The user application attempting to register itself has already
  196. * registered.
  197. *
  198. * GCC_APPLICATION_NOT_REGISTERED
  199. * The user application attempting to make a request to GCC has not
  200. * registered itself with GCC.
  201. *
  202. * GCC_BAD_CONNECTION_HANDLE_POINTER
  203. * A NULL connection handle pointer was passed in.
  204. *
  205. * GCC_INVALID_NODE_TYPE
  206. * A node type value other than GCC_TERMINAL, GCC_MULTIPORT_TERMINAL or
  207. * GCC_MCU was passed in.
  208. *
  209. * GCC_INVALID_ASYMMETRY_INDICATOR
  210. * An asymetry type other than GCC_ASYMMETRY_CALLER, GCC_ASYMMETRY_CALLED
  211. * or GCC_ASYMMETRY_UNKNOWN was passed into the request.
  212. *
  213. * GCC_INVALID_NODE_PROPERTIES
  214. * A node property other than GCC_PERIPHERAL_DEVICE, GCC_MANAGEMENT_DEVICE,
  215. * GCC_PERIPHERAL_AND_MANAGEMENT_DEVICE or
  216. * GCC_NEITHER_PERIPHERAL_NOR_MANAGEMENT was passed into the request.
  217. *
  218. * GCC_BAD_USER_DATA
  219. * The user data list passed into the request was not valid.
  220. *
  221. * GCC_BAD_NETWORK_ADDRESS
  222. * There was something wrong with the actual network address portion of
  223. * the passed in network address.
  224. *
  225. * GCC_INVALID_ADD_RESPONSE_TAG
  226. * The add response tag passed in the response does not match any add
  227. * response tag passed back in the add indication.
  228. *
  229. * GCC_BAD_ADDING_NODE
  230. * You can not request that the adding node be the node where the add
  231. * request is being issued.
  232. *
  233. * GCC_FAILURE_ATTACHING_TO_MCS
  234. * Request failed because GCC could not create a user attachment to MCS.
  235. *
  236. * GCC_INVALID_TRANSPORT_ADDRESS
  237. * The transport address specified in the request (usually the called
  238. * address) is not valid. This will occur when the transport stack
  239. * detects an illegal transport address.
  240. *
  241. * GCC_INVALID_PARAMETER
  242. * This indicates an illegal parameter is passed into the GCC function
  243. * call.
  244. *
  245. * GCC_COMMAND_NOT_SUPPORTED
  246. * This indicates that the user application has attempted to invoke an
  247. * GCC service that is not yet supported.
  248. *
  249. * GCC_UNSUPPORTED_ERROR
  250. * An error was returned from a request to MCS that is not recognized
  251. * by GCC.
  252. *
  253. * GCC_TRANSMIT_BUFFER_FULL
  254. * Request can not be processed because the transmit buffer is full.
  255. * This usually indicates a problem with the shared memory portal in the
  256. * Win32 client.
  257. *
  258. * GCC_INVALID_CHANNEL
  259. * The channel ID passed into the request is not a valid MCS channel ID
  260. * (zero is not valid).
  261. *
  262. * GCC_INVALID_MODIFICATION_RIGHTS
  263. * The modification rights passed in in not one of the enumerated types
  264. * supported.
  265. *
  266. * GCC_INVALID_REGISTRY_ITEM
  267. * The registry item passed in is not one of the valid enumerated types.
  268. *
  269. * GCC_INVALID_NODE_NAME
  270. * The node name passed in is not valid. Typically this means that it
  271. * is to long.
  272. *
  273. * GCC_INVALID_PARTICIPANT_NAME
  274. * The participant name passed in is not valid. Typically this means that
  275. * it is to long.
  276. *
  277. * GCC_INVALID_SITE_INFORMATION
  278. * The site information passed in is not valid. Typically this means that
  279. * it is to long.
  280. *
  281. * GCC_INVALID_NON_COLLAPSED_CAP
  282. * The non-collapsed capability passed in is not valid. Typically this
  283. * means that it is to long.
  284. *
  285. * GCC_INVALID_ALTERNATIVE_NODE_ID
  286. * Alternative node IDs can only be two characters long.
  287. */
  288. typedef enum
  289. {
  290. GCC_NO_ERROR = 0,
  291. GCC_NOT_INITIALIZED = 1,
  292. GCC_ALREADY_INITIALIZED = 2,
  293. GCC_ALLOCATION_FAILURE = 3,
  294. GCC_NO_SUCH_APPLICATION = 4,
  295. GCC_INVALID_CONFERENCE = 5,
  296. GCC_CONFERENCE_ALREADY_EXISTS = 6,
  297. GCC_NO_TRANSPORT_STACKS = 7,
  298. GCC_INVALID_ADDRESS_PREFIX = 8,
  299. GCC_INVALID_TRANSPORT = 9,
  300. GCC_FAILURE_CREATING_PACKET = 10,
  301. GCC_QUERY_REQUEST_OUTSTANDING = 11,
  302. GCC_INVALID_QUERY_TAG = 12,
  303. GCC_FAILURE_CREATING_DOMAIN = 13,
  304. GCC_CONFERENCE_NOT_ESTABLISHED = 14,
  305. GCC_INVALID_PASSWORD = 15,
  306. GCC_INVALID_MCS_USER_ID = 16,
  307. GCC_INVALID_JOIN_RESPONSE_TAG = 17,
  308. GCC_TRANSPORT_ALREADY_LOADED = 18,
  309. GCC_TRANSPORT_BUSY = 19,
  310. GCC_TRANSPORT_NOT_READY = 20,
  311. GCC_DOMAIN_PARAMETERS_UNACCEPTABLE = 21,
  312. GCC_APP_NOT_ENROLLED = 22,
  313. GCC_NO_GIVE_RESPONSE_PENDING = 23,
  314. GCC_BAD_NETWORK_ADDRESS_TYPE = 24,
  315. GCC_BAD_OBJECT_KEY = 25,
  316. GCC_INVALID_CONFERENCE_NAME = 26,
  317. GCC_INVALID_CONFERENCE_MODIFIER = 27,
  318. GCC_BAD_SESSION_KEY = 28,
  319. GCC_BAD_CAPABILITY_ID = 29,
  320. GCC_BAD_REGISTRY_KEY = 30,
  321. GCC_BAD_NUMBER_OF_APES = 31,
  322. GCC_BAD_NUMBER_OF_HANDLES = 32,
  323. GCC_ALREADY_REGISTERED = 33,
  324. GCC_APPLICATION_NOT_REGISTERED = 34,
  325. GCC_BAD_CONNECTION_HANDLE_POINTER = 35,
  326. GCC_INVALID_NODE_TYPE = 36,
  327. GCC_INVALID_ASYMMETRY_INDICATOR = 37,
  328. GCC_INVALID_NODE_PROPERTIES = 38,
  329. GCC_BAD_USER_DATA = 39,
  330. GCC_BAD_NETWORK_ADDRESS = 40,
  331. GCC_INVALID_ADD_RESPONSE_TAG = 41,
  332. GCC_BAD_ADDING_NODE = 42,
  333. GCC_FAILURE_ATTACHING_TO_MCS = 43,
  334. GCC_INVALID_TRANSPORT_ADDRESS = 44,
  335. GCC_INVALID_PARAMETER = 45,
  336. GCC_COMMAND_NOT_SUPPORTED = 46,
  337. GCC_UNSUPPORTED_ERROR = 47,
  338. GCC_TRANSMIT_BUFFER_FULL = 48,
  339. GCC_INVALID_CHANNEL = 49,
  340. GCC_INVALID_MODIFICATION_RIGHTS = 50,
  341. GCC_INVALID_REGISTRY_ITEM = 51,
  342. GCC_INVALID_NODE_NAME = 52,
  343. GCC_INVALID_PARTICIPANT_NAME = 53,
  344. GCC_INVALID_SITE_INFORMATION = 54,
  345. GCC_INVALID_NON_COLLAPSED_CAP = 55,
  346. GCC_INVALID_ALTERNATIVE_NODE_ID = 56,
  347. LAST_GCC_ERROR = GCC_INVALID_ALTERNATIVE_NODE_ID
  348. }GCCError;
  349. typedef GCCError FAR * PGCCError;
  350. /************************************************************************
  351. * *
  352. * Generally Used Typedefs *
  353. * *
  354. *************************************************************************/
  355. /*
  356. ** GCCReason
  357. ** When GCC issues an indication to a user application, it often includes a
  358. ** reason parameter informing the user of why the activity is occurring.
  359. */
  360. typedef enum
  361. {
  362. GCC_REASON_USER_INITIATED = 0,
  363. GCC_REASON_UNKNOWN = 1,
  364. GCC_REASON_NORMAL_TERMINATION = 2,
  365. GCC_REASON_TIMED_TERMINATION = 3,
  366. GCC_REASON_NO_MORE_PARTICIPANTS = 4,
  367. GCC_REASON_ERROR_TERMINATION = 5,
  368. GCC_REASON_ERROR_LOW_RESOURCES = 6,
  369. GCC_REASON_MCS_RESOURCE_FAILURE = 7,
  370. GCC_REASON_PARENT_DISCONNECTED = 8,
  371. GCC_REASON_CONDUCTOR_RELEASE = 9,
  372. GCC_REASON_SYSTEM_RELEASE = 10,
  373. GCC_REASON_NODE_EJECTED = 11,
  374. GCC_REASON_HIGHER_NODE_DISCONNECTED = 12,
  375. GCC_REASON_HIGHER_NODE_EJECTED = 13,
  376. GCC_REASON_DOMAIN_PARAMETERS_UNACCEPTABLE = 14,
  377. LAST_GCC_REASON = GCC_REASON_DOMAIN_PARAMETERS_UNACCEPTABLE
  378. }GCCReason;
  379. /*
  380. ** GCCResult
  381. ** When a user makes a request of GCC, GCC often responds with a result,
  382. ** letting the user know whether or not the request succeeded.
  383. */
  384. typedef enum
  385. {
  386. GCC_RESULT_SUCCESSFUL = 0,
  387. GCC_RESULT_RESOURCES_UNAVAILABLE = 1,
  388. GCC_RESULT_INVALID_CONFERENCE = 2,
  389. GCC_RESULT_INVALID_PASSWORD = 3,
  390. GCC_RESULT_INVALID_CONVENER_PASSWORD = 4,
  391. GCC_RESULT_SYMMETRY_BROKEN = 5,
  392. GCC_RESULT_UNSPECIFIED_FAILURE = 6,
  393. GCC_RESULT_NOT_CONVENER_NODE = 7,
  394. GCC_RESULT_REGISTRY_FULL = 8,
  395. GCC_RESULT_INDEX_ALREADY_OWNED = 9,
  396. GCC_RESULT_INCONSISTENT_TYPE = 10,
  397. GCC_RESULT_NO_HANDLES_AVAILABLE = 11,
  398. GCC_RESULT_CONNECT_PROVIDER_FAILED = 12,
  399. GCC_RESULT_CONFERENCE_NOT_READY = 13,
  400. GCC_RESULT_USER_REJECTED = 14,
  401. GCC_RESULT_ENTRY_DOES_NOT_EXIST = 15,
  402. GCC_RESULT_NOT_CONDUCTIBLE = 16,
  403. GCC_RESULT_NOT_THE_CONDUCTOR = 17,
  404. GCC_RESULT_NOT_IN_CONDUCTED_MODE = 18,
  405. GCC_RESULT_IN_CONDUCTED_MODE = 19,
  406. GCC_RESULT_ALREADY_CONDUCTOR = 20,
  407. GCC_RESULT_CHALLENGE_RESPONSE_REQUIRED = 21,
  408. GCC_RESULT_INVALID_CHALLENGE_RESPONSE = 22,
  409. GCC_RESULT_INVALID_REQUESTER = 23,
  410. GCC_RESULT_ENTRY_ALREADY_EXISTS = 24,
  411. GCC_RESULT_INVALID_NODE = 25,
  412. GCC_RESULT_INVALID_SESSION_KEY = 26,
  413. GCC_RESULT_INVALID_CAPABILITY_ID = 27,
  414. GCC_RESULT_INVALID_NUMBER_OF_HANDLES = 28,
  415. GCC_RESULT_CONDUCTOR_GIVE_IS_PENDING = 29,
  416. GCC_RESULT_INCOMPATIBLE_PROTOCOL = 30,
  417. GCC_RESULT_CONFERENCE_ALREADY_LOCKED = 31,
  418. GCC_RESULT_CONFERENCE_ALREADY_UNLOCKED = 32,
  419. GCC_RESULT_INVALID_NETWORK_TYPE = 33,
  420. GCC_RESULT_INVALID_NETWORK_ADDRESS = 34,
  421. GCC_RESULT_ADDED_NODE_BUSY = 35,
  422. GCC_RESULT_NETWORK_BUSY = 36,
  423. GCC_RESULT_NO_PORTS_AVAILABLE = 37,
  424. GCC_RESULT_CONNECTION_UNSUCCESSFUL = 38,
  425. GCC_RESULT_LOCKED_NOT_SUPPORTED = 39,
  426. GCC_RESULT_UNLOCK_NOT_SUPPORTED = 40,
  427. GCC_RESULT_ADD_NOT_SUPPORTED = 41,
  428. GCC_RESULT_DOMAIN_PARAMETERS_UNACCEPTABLE = 42,
  429. LAST_CGG_RESULT = GCC_RESULT_DOMAIN_PARAMETERS_UNACCEPTABLE
  430. }GCCResult;
  431. /*
  432. ** Macros for values of Booleans passed through the GCC API.
  433. */
  434. #define CONFERENCE_IS_LOCKED TRUE
  435. #define CONFERENCE_IS_NOT_LOCKED FALSE
  436. #define CONFERENCE_IS_LISTED TRUE
  437. #define CONFERENCE_IS_NOT_LISTED FALSE
  438. #define CONFERENCE_IS_CONDUCTIBLE TRUE
  439. #define CONFERENCE_IS_NOT_CONDUCTIBLE FALSE
  440. #define PERMISSION_IS_GRANTED TRUE
  441. #define PERMISSION_IS_NOT_GRANTED FALSE
  442. #define TIME_IS_CONFERENCE_WIDE TRUE
  443. #define TIME_IS_NOT_CONFERENCE_WIDE FALSE
  444. #define APPLICATION_IS_ENROLLED_ACTIVELY TRUE
  445. #define APPLICATION_IS_NOT_ENROLLED_ACTIVELY FALSE
  446. #define APPLICATION_IS_CONDUCTING TRUE
  447. #define APPLICATION_IS_NOT_CONDUCTING_CAPABLE FALSE
  448. #define APPLICATION_IS_ENROLLED TRUE
  449. #define APPLICATION_IS_NOT_ENROLLED FALSE
  450. #define DELIVERY_IS_ENABLED TRUE
  451. #define DELIVERY_IS_NOT_ENABLED FALSE
  452. /*
  453. ** Typedef for a GCC octet string. This typedef is used throughout GCC for
  454. ** storing variable length single byte character strings with embedded NULLs.
  455. */
  456. typedef struct
  457. {
  458. unsigned short octet_string_length;
  459. unsigned char FAR * octet_string;
  460. } GCCOctetString;
  461. /*
  462. ** Typedef for a GCC hex string. This typedef is used throughout GCC for
  463. ** storing variable length wide character strings with embedded NULLs.
  464. */
  465. typedef struct
  466. {
  467. unsigned short hex_string_length;
  468. unsigned short FAR * hex_string;
  469. } GCCHexString;
  470. /*
  471. ** Typedef for a GCC long string. This typedef is used in GCC for
  472. ** storing variable length strings of longs with embedded NULLs.
  473. */
  474. typedef struct
  475. {
  476. unsigned short long_string_length;
  477. unsigned long FAR * long_string;
  478. } GCCLongString;
  479. /*
  480. ** Typedef for a GCC Unicode string. This typedef is used throughout GCC for
  481. ** storing variable length, NULL terminated, wide character strings.
  482. */
  483. typedef unsigned short GCCUnicodeCharacter;
  484. typedef GCCUnicodeCharacter FAR * GCCUnicodeString;
  485. /*
  486. ** Typedef for a GCC Character string. This typedef is used throughout GCC for
  487. ** storing variable length, NULL terminated, single byte character strings.
  488. */
  489. typedef unsigned char GCCCharacter;
  490. typedef GCCCharacter FAR * GCCCharacterString;
  491. /*
  492. ** Typedef for a GCC Numeric string. This typedef is used throughout GCC for
  493. ** storing variable length, NULL terminated, single byte character strings.
  494. ** A single character in this string is constrained to numeric values
  495. ** ranging from "0" to "9".
  496. */
  497. typedef unsigned char GCCNumericCharacter;
  498. typedef GCCNumericCharacter FAR * GCCNumericString;
  499. /*
  500. ** Typdef for GCC version which is used when registering the node controller
  501. ** or an application.
  502. */
  503. typedef struct
  504. {
  505. unsigned short major_version;
  506. unsigned short minor_version;
  507. } GCCVersion;
  508. /*
  509. ** The following enum structure typedefs are used to define the GCC Object Key.
  510. ** The GCC Object Key is used throughout GCC for things like the Application
  511. ** keys and Capability IDs.
  512. */
  513. typedef enum
  514. {
  515. GCC_OBJECT_KEY = 1,
  516. GCC_H221_NONSTANDARD_KEY = 2
  517. } GCCObjectKeyType;
  518. typedef struct
  519. {
  520. GCCObjectKeyType key_type;
  521. union
  522. {
  523. GCCLongString object_id;
  524. GCCOctetString h221_non_standard_id;
  525. } u;
  526. } GCCObjectKey;
  527. /*
  528. ** GCCNonStandardParameter
  529. ** This structure is used within the NetworkAddress typedef and
  530. ** the NetworkService typedef defined below.
  531. */
  532. typedef struct
  533. {
  534. GCCObjectKey object_key;
  535. GCCOctetString parameter_data;
  536. } GCCNonStandardParameter;
  537. /*
  538. ** GCCConferenceName
  539. ** This structure defines the conference name. In a create request, the
  540. ** conference name can include an optional unicode string but it must
  541. ** always include the simple numeric string. In a join request, either
  542. ** one can be specified.
  543. */
  544. typedef struct
  545. {
  546. GCCNumericString numeric_string;
  547. GCCUnicodeString text_string; /* optional */
  548. } GCCConferenceName;
  549. /*
  550. ** GCCConferenceID
  551. ** Locally allocated identifier of a created conference. All subsequent
  552. ** references to the conference are made using the ConferenceID as a unique
  553. ** identifier. The ConferenceID shall be identical to the MCS domain
  554. ** selector used locally to identify the MCS domain associated with the
  555. ** conference.
  556. */
  557. typedef unsigned long GCCConferenceID;
  558. /*
  559. ** GCCResponseTag
  560. ** Generally used by GCC to match up certain responses to certain
  561. ** indications.
  562. */
  563. typedef unsigned long GCCResponseTag;
  564. /*
  565. ** MCSChannelType
  566. ** Should this be defined in MCATMCS? It is used in a couple of places
  567. ** below and is explicitly defined in the T.124 specification.
  568. */
  569. typedef enum
  570. {
  571. MCS_STATIC_CHANNEL = 0,
  572. MCS_DYNAMIC_MULTICAST_CHANNEL = 1,
  573. MCS_DYNAMIC_PRIVATE_CHANNEL = 2,
  574. MCS_DYNAMIC_USER_ID_CHANNEL = 3,
  575. MCS_NO_CHANNEL_TYPE_SPECIFIED = 4
  576. } MCSChannelType;
  577. /*
  578. ** GCCUserData
  579. ** This structure defines a user data element which is used throughout GCC.
  580. */
  581. typedef struct
  582. {
  583. GCCObjectKey key;
  584. GCCOctetString FAR * octet_string; /* optional */
  585. } GCCUserData;
  586. /************************************************************************
  587. * *
  588. * Node Controller Related Typedefs *
  589. * *
  590. *************************************************************************/
  591. /*
  592. ** GCCTerminationMethod
  593. ** The termination method is used by GCC to determine
  594. ** what action to take when all participants of a conference have
  595. ** disconnected. The conference can either be manually terminated
  596. ** by the node controller or it can terminate itself automatically when
  597. ** all the participants have left the conference.
  598. */
  599. typedef enum
  600. {
  601. GCC_AUTOMATIC_TERMINATION_METHOD = 0,
  602. GCC_MANUAL_TERMINATION_METHOD = 1
  603. } GCCTerminationMethod;
  604. /*
  605. ** GCCNodeType
  606. ** GCC specified node types. These node types dictate node controller
  607. ** behavior under certain conditions. See T.124 specification for
  608. ** proper assignment based on the needs of the Node Controller.
  609. */
  610. typedef enum
  611. {
  612. GCC_TERMINAL = 0,
  613. GCC_MULTIPORT_TERMINAL = 1,
  614. GCC_MCU = 2
  615. } GCCNodeType;
  616. /*
  617. ** GCCNodeProperties
  618. ** GCC specified node properties. See T.124 specification for proper
  619. ** assignment by the Node Controller.
  620. */
  621. typedef enum
  622. {
  623. GCC_PERIPHERAL_DEVICE = 0,
  624. GCC_MANAGEMENT_DEVICE = 1,
  625. GCC_PERIPHERAL_AND_MANAGEMENT_DEVICE = 2,
  626. GCC_NEITHER_PERIPHERAL_NOR_MANAGEMENT = 3
  627. } GCCNodeProperties;
  628. /*
  629. ** GCCPassword
  630. ** This is the unique password specified by the convenor of the
  631. ** conference that is used by the node controller to insure conference
  632. ** security. This is also a unicode string.
  633. */
  634. typedef struct
  635. {
  636. GCCNumericString numeric_string;
  637. GCCUnicodeString text_string; /* optional */
  638. } GCCPassword;
  639. /*
  640. ** GCCChallengeResponseItem
  641. ** This structure defines what a challenge response should look like.
  642. ** Note that either a password string or response data should be passed
  643. ** but not both.
  644. */
  645. typedef struct
  646. {
  647. GCCPassword FAR * password_string;
  648. unsigned short number_of_response_data_members;
  649. GCCUserData FAR * FAR * response_data_list;
  650. } GCCChallengeResponseItem;
  651. typedef enum
  652. {
  653. GCC_IN_THE_CLEAR_ALGORITHM = 0,
  654. GCC_NON_STANDARD_ALGORITHM = 1
  655. } GCCPasswordAlgorithmType;
  656. typedef struct
  657. {
  658. GCCPasswordAlgorithmType password_algorithm_type;
  659. GCCNonStandardParameter FAR * non_standard_algorithm; /* optional */
  660. } GCCChallengeResponseAlgorithm;
  661. typedef struct
  662. {
  663. GCCChallengeResponseAlgorithm response_algorithm;
  664. unsigned short number_of_challenge_data_members;
  665. GCCUserData FAR * FAR * challenge_data_list;
  666. } GCCChallengeItem;
  667. typedef struct
  668. {
  669. GCCResponseTag challenge_tag;
  670. unsigned short number_of_challenge_items;
  671. GCCChallengeItem FAR * FAR * challenge_item_list;
  672. } GCCChallengeRequest;
  673. typedef struct
  674. {
  675. GCCResponseTag challenge_tag;
  676. GCCChallengeResponseAlgorithm response_algorithm;
  677. GCCChallengeResponseItem response_item;
  678. } GCCChallengeResponse;
  679. typedef enum
  680. {
  681. GCC_PASSWORD_IN_THE_CLEAR = 0,
  682. GCC_PASSWORD_CHALLENGE = 1
  683. } GCCPasswordChallengeType;
  684. typedef struct
  685. {
  686. GCCPasswordChallengeType password_challenge_type;
  687. union
  688. {
  689. GCCPassword password_in_the_clear;
  690. struct
  691. {
  692. GCCChallengeRequest FAR * challenge_request; /* optional */
  693. GCCChallengeResponse FAR * challenge_response; /* optional */
  694. } challenge_request_response;
  695. } u;
  696. } GCCChallengeRequestResponse;
  697. /*
  698. ** GCCAsymmetryType
  699. ** Used in queries to determine if the calling and called node are known
  700. ** by both Node Controllers involved with the connection.
  701. */
  702. typedef enum
  703. {
  704. GCC_ASYMMETRY_CALLER = 1,
  705. GCC_ASYMMETRY_CALLED = 2,
  706. GCC_ASYMMETRY_UNKNOWN = 3
  707. } GCCAsymmetryType;
  708. /*
  709. ** GCCAsymmetryIndicator
  710. ** Defines how the Node Controller sees itself when making a Query
  711. ** request or response. The random number portion of this structure is
  712. ** only used if the asymmetry_type is specified to be
  713. ** GCC_ASYMMETRY_UNKNOWN.
  714. */
  715. typedef struct
  716. {
  717. GCCAsymmetryType asymmetry_type;
  718. unsigned long random_number; /* optional */
  719. } GCCAsymmetryIndicator;
  720. /*
  721. ** GCCNetworkAddress
  722. ** The following block of structures defines the Network Address as defined
  723. ** by T.124. Most of these structures were taken almost verbatim from the
  724. ** ASN.1 interface file. Since I'm not really sure what most of this stuff
  725. ** is for I really didn't know how to simplify it.
  726. */
  727. typedef struct
  728. {
  729. T120Boolean speech;
  730. T120Boolean voice_band;
  731. T120Boolean digital_56k;
  732. T120Boolean digital_64k;
  733. T120Boolean digital_128k;
  734. T120Boolean digital_192k;
  735. T120Boolean digital_256k;
  736. T120Boolean digital_320k;
  737. T120Boolean digital_384k;
  738. T120Boolean digital_512k;
  739. T120Boolean digital_768k;
  740. T120Boolean digital_1152k;
  741. T120Boolean digital_1472k;
  742. T120Boolean digital_1536k;
  743. T120Boolean digital_1920k;
  744. T120Boolean packet_mode;
  745. T120Boolean frame_mode;
  746. T120Boolean atm;
  747. } GCCTransferModes;
  748. #define MAXIMUM_DIAL_STRING_LENGTH 17
  749. typedef char GCCDialingString[MAXIMUM_DIAL_STRING_LENGTH];
  750. typedef struct
  751. {
  752. unsigned short length;
  753. unsigned short FAR * value;
  754. } GCCExtraDialingString;
  755. typedef struct
  756. {
  757. T120Boolean telephony3kHz;
  758. T120Boolean telephony7kHz;
  759. T120Boolean videotelephony;
  760. T120Boolean videoconference;
  761. T120Boolean audiographic;
  762. T120Boolean audiovisual;
  763. T120Boolean multimedia;
  764. } GCCHighLayerCompatibility;
  765. typedef struct
  766. {
  767. GCCTransferModes transfer_modes;
  768. GCCDialingString international_number;
  769. GCCCharacterString sub_address_string; /* optional */
  770. GCCExtraDialingString FAR * extra_dialing_string; /* optional */
  771. GCCHighLayerCompatibility FAR * high_layer_compatibility; /* optional */
  772. } GCCAggregatedChannelAddress;
  773. #define MAXIMUM_NSAP_ADDRESS_SIZE 20
  774. typedef struct
  775. {
  776. struct
  777. {
  778. unsigned short length;
  779. unsigned char value[MAXIMUM_NSAP_ADDRESS_SIZE];
  780. } nsap_address;
  781. GCCOctetString FAR * transport_selector; /* optional */
  782. } GCCTransportConnectionAddress;
  783. typedef enum
  784. {
  785. GCC_AGGREGATED_CHANNEL_ADDRESS = 1,
  786. GCC_TRANSPORT_CONNECTION_ADDRESS = 2,
  787. GCC_NONSTANDARD_NETWORK_ADDRESS = 3
  788. } GCCNetworkAddressType;
  789. typedef struct
  790. {
  791. GCCNetworkAddressType network_address_type;
  792. union
  793. {
  794. GCCAggregatedChannelAddress aggregated_channel_address;
  795. GCCTransportConnectionAddress transport_connection_address;
  796. GCCNonStandardParameter non_standard_network_address;
  797. } u;
  798. } GCCNetworkAddress;
  799. /*
  800. ** GCCNodeRecord
  801. ** This structure defines a single conference roster record. See the
  802. ** T.124 specification for parameter definitions.
  803. */
  804. typedef struct
  805. {
  806. UserID node_id;
  807. UserID superior_node_id;
  808. GCCNodeType node_type;
  809. GCCNodeProperties node_properties;
  810. GCCUnicodeString node_name; /* optional */
  811. unsigned short number_of_participants;
  812. GCCUnicodeString FAR * participant_name_list; /* optional */
  813. GCCUnicodeString site_information; /* optional */
  814. unsigned short number_of_network_addresses;
  815. GCCNetworkAddress FAR * FAR * network_address_list; /* optional */
  816. GCCOctetString FAR * alternative_node_id; /* optional */
  817. unsigned short number_of_user_data_members;
  818. GCCUserData FAR * FAR * user_data_list; /* optional */
  819. } GCCNodeRecord;
  820. /*
  821. ** GCCConferenceRoster
  822. ** This structure hold a complete conference roster. See the
  823. ** T.124 specification for parameter definitions.
  824. */
  825. typedef struct
  826. {
  827. unsigned short instance_number;
  828. T120Boolean nodes_were_added;
  829. T120Boolean nodes_were_removed;
  830. unsigned short number_of_records;
  831. GCCNodeRecord FAR * FAR * node_record_list;
  832. } GCCConferenceRoster;
  833. /*
  834. ** GCCConferenceDescriptor
  835. ** Definition for the conference descriptor returned in a
  836. ** conference query confirm. This holds information about the
  837. ** conferences that exists at the queried node.
  838. */
  839. typedef struct
  840. {
  841. GCCConferenceName conference_name;
  842. GCCNumericString conference_name_modifier; /* optional */
  843. GCCUnicodeString conference_descriptor; /* optional */
  844. T120Boolean conference_is_locked;
  845. T120Boolean password_in_the_clear_required;
  846. unsigned short number_of_network_addresses;
  847. GCCNetworkAddress FAR * FAR * network_address_list; /* optional */
  848. } GCCConferenceDescriptor;
  849. /*
  850. ** ConferencePrivileges
  851. ** This structure defines the list of privileges that can be assigned to
  852. ** a particular conference.
  853. */
  854. typedef struct
  855. {
  856. T120Boolean terminate_is_allowed;
  857. T120Boolean eject_user_is_allowed;
  858. T120Boolean add_is_allowed;
  859. T120Boolean lock_unlock_is_allowed;
  860. T120Boolean transfer_is_allowed;
  861. } GCCConferencePrivileges;
  862. /************************************************************************
  863. * *
  864. * User Application Related Typedefs *
  865. * *
  866. *************************************************************************/
  867. /*
  868. ** SapHandle
  869. ** When the node controller or a user application registers it's service
  870. ** access point with GCC, it is assigned a SapHandle that can be used to
  871. ** perform GCC services. GCC uses the SapHandles to keep track of
  872. ** applications enrolled with the conference and also uses these to keep
  873. ** track of the callbacks it makes to route the indications and confirms
  874. ** to the appropriate application or node controller.
  875. */
  876. typedef unsigned short GCCSapHandle;
  877. /*
  878. ** GCCSessionKey
  879. ** This is a unique identifier for an application that is
  880. ** using GCC. See the T.124 for the specifics on what an application
  881. ** key should look like. A session id of zero indicates that it is
  882. ** not being used.
  883. */
  884. typedef struct
  885. {
  886. GCCObjectKey application_protocol_key;
  887. unsigned short session_id;
  888. } GCCSessionKey;
  889. /*
  890. ** CapabilityType
  891. ** T.124 supports three different rules when collapsing the capabilities
  892. ** list. "Logical" keeps a count of the Application Protocol Entities
  893. ** (APEs) that have that capability, "Unsigned Minimum" collapses to the
  894. ** minimum value and "Unsigned Maximum" collapses to the maximum value.
  895. */
  896. typedef enum
  897. {
  898. GCC_LOGICAL_CAPABILITY = 1,
  899. GCC_UNSIGNED_MINIMUM_CAPABILITY = 2,
  900. GCC_UNSIGNED_MAXIMUM_CAPABILITY = 3
  901. } GCCCapabilityType;
  902. typedef enum
  903. {
  904. GCC_STANDARD_CAPABILITY = 0,
  905. GCC_NON_STANDARD_CAPABILITY = 1
  906. } GCCCapabilityIDType;
  907. /*
  908. ** CapabilityID
  909. ** T.124 supports both standard and non-standard capabilities. This
  910. ** structure is used to differentiate between the two.
  911. */
  912. typedef struct
  913. {
  914. GCCCapabilityIDType capability_id_type;
  915. union
  916. {
  917. unsigned short standard_capability;
  918. GCCObjectKey non_standard_capability;
  919. } u;
  920. } GCCCapabilityID;
  921. /*
  922. ** CapabilityClass
  923. ** This structure defines the class of capability and holds the associated
  924. ** value. Note that Logical is not necessary. Information associated with
  925. ** logical is stored in number_of_entities in the GCCApplicationCapability
  926. ** structure.
  927. */
  928. typedef struct
  929. {
  930. GCCCapabilityType capability_type;
  931. union
  932. {
  933. unsigned long unsigned_min;
  934. unsigned long unsigned_max;
  935. } u;
  936. } GCCCapabilityClass;
  937. /*
  938. ** GCCApplicationCapability
  939. ** This structure holds all the data associated with a single T.124
  940. ** defined application capability.
  941. */
  942. typedef struct
  943. {
  944. GCCCapabilityID capability_id;
  945. GCCCapabilityClass capability_class;
  946. unsigned long number_of_entities;
  947. } GCCApplicationCapability;
  948. /*
  949. ** GCCNonCollapsingCapability
  950. */
  951. typedef struct
  952. {
  953. GCCCapabilityID capability_id;
  954. GCCOctetString FAR * application_data; /* optional */
  955. } GCCNonCollapsingCapability;
  956. /*
  957. ** GCCApplicationRecord
  958. ** This structure holds all the data associated with a single T.124
  959. ** application record. See the T.124 specification for what parameters
  960. ** are optional.
  961. */
  962. typedef struct
  963. {
  964. UserID node_id;
  965. unsigned short entity_id;
  966. T120Boolean is_enrolled_actively;
  967. T120Boolean is_conducting_capable;
  968. MCSChannelType startup_channel_type;
  969. UserID application_user_id; /* optional */
  970. unsigned short number_of_non_collapsed_caps;
  971. GCCNonCollapsingCapability
  972. FAR * FAR * non_collapsed_caps_list; /* optional */
  973. } GCCApplicationRecord;
  974. /*
  975. ** GCCApplicationRoster
  976. ** This structure holds all the data associated with a single T.124
  977. ** application roster. This includes the collapsed capabilites and
  978. ** the complete list of application records associated with an Application
  979. ** Protocol Entity (APE).
  980. */
  981. typedef struct
  982. {
  983. GCCSessionKey session_key;
  984. T120Boolean application_roster_was_changed;
  985. unsigned short number_of_records;
  986. GCCApplicationRecord FAR * FAR * application_record_list;
  987. unsigned short instance_number;
  988. T120Boolean nodes_were_added;
  989. T120Boolean nodes_were_removed;
  990. T120Boolean capabilities_were_changed;
  991. unsigned short number_of_capabilities;
  992. GCCApplicationCapability FAR * FAR * capabilities_list; /* optional */
  993. } GCCApplicationRoster;
  994. /*
  995. ** GCCRegistryKey
  996. ** This key is used to identify a specific resource used
  997. ** by an application. This may be a particular channel or token needed
  998. ** for control purposes.
  999. */
  1000. typedef struct
  1001. {
  1002. GCCSessionKey session_key;
  1003. GCCOctetString resource_id; /* Max length is 64 */
  1004. } GCCRegistryKey;
  1005. /*
  1006. ** RegistryItemType
  1007. ** This enum is used to specify what type of registry item is contained
  1008. ** at the specified slot in the registry.
  1009. */
  1010. typedef enum
  1011. {
  1012. GCC_REGISTRY_CHANNEL_ID = 1,
  1013. GCC_REGISTRY_TOKEN_ID = 2,
  1014. GCC_REGISTRY_PARAMETER = 3,
  1015. GCC_REGISTRY_NONE = 4
  1016. } GCCRegistryItemType;
  1017. /*
  1018. ** GCCRegistryItem
  1019. ** This structure is used to hold a single registry item. Note that the
  1020. ** union supports all three registry types supported by GCC.
  1021. */
  1022. typedef struct
  1023. {
  1024. GCCRegistryItemType item_type;
  1025. union
  1026. {
  1027. ChannelID channel_id;
  1028. TokenID token_id;
  1029. GCCOctetString parameter; /* Max length is 64 */
  1030. } u;
  1031. } GCCRegistryItem;
  1032. /*
  1033. ** GCCRegistryEntryOwner
  1034. **
  1035. */
  1036. typedef struct
  1037. {
  1038. T120Boolean entry_is_owned;
  1039. UserID owner_node_id;
  1040. unsigned short owner_entity_id;
  1041. } GCCRegistryEntryOwner;
  1042. /*
  1043. ** GCCModificationRights
  1044. ** This enum is used when specifing what kind of rights a node has to
  1045. ** alter the contents of a registry "parameter".
  1046. */
  1047. typedef enum
  1048. {
  1049. GCC_OWNER_RIGHTS = 0,
  1050. GCC_SESSION_RIGHTS = 1,
  1051. GCC_PUBLIC_RIGHTS = 2,
  1052. GCC_NO_MODIFICATION_RIGHTS_SPECIFIED = 3
  1053. } GCCModificationRights;
  1054. /*
  1055. ** GCCAppProtocolEntity
  1056. ** This structure is used to identify a protocol entity at a remote node
  1057. ** when invoke is used.
  1058. */
  1059. typedef struct
  1060. {
  1061. GCCSessionKey session_key;
  1062. unsigned short number_of_expected_capabilities;
  1063. GCCApplicationCapability FAR * FAR * expected_capabilities_list;
  1064. MCSChannelType startup_channel_type;
  1065. T120Boolean must_be_invoked;
  1066. } GCCAppProtocolEntity;
  1067. /*
  1068. ** GCCMessageType
  1069. ** This section defines the messages that can be sent to the application
  1070. ** through the callback facility. These messages correspond to the
  1071. ** indications and confirms that are defined within T.124.
  1072. */
  1073. typedef enum
  1074. {
  1075. /******************* NODE CONTROLLER CALLBACKS ***********************/
  1076. /* Conference Create, Terminate related calls */
  1077. GCC_CREATE_INDICATION = 0,
  1078. GCC_CREATE_CONFIRM = 1,
  1079. GCC_QUERY_INDICATION = 2,
  1080. GCC_QUERY_CONFIRM = 3,
  1081. GCC_JOIN_INDICATION = 4,
  1082. GCC_JOIN_CONFIRM = 5,
  1083. GCC_INVITE_INDICATION = 6,
  1084. GCC_INVITE_CONFIRM = 7,
  1085. GCC_ADD_INDICATION = 8,
  1086. GCC_ADD_CONFIRM = 9,
  1087. GCC_LOCK_INDICATION = 10,
  1088. GCC_LOCK_CONFIRM = 11,
  1089. GCC_UNLOCK_INDICATION = 12,
  1090. GCC_UNLOCK_CONFIRM = 13,
  1091. GCC_LOCK_REPORT_INDICATION = 14,
  1092. GCC_DISCONNECT_INDICATION = 15,
  1093. GCC_DISCONNECT_CONFIRM = 16,
  1094. GCC_TERMINATE_INDICATION = 17,
  1095. GCC_TERMINATE_CONFIRM = 18,
  1096. GCC_EJECT_USER_INDICATION = 19,
  1097. GCC_EJECT_USER_CONFIRM = 20,
  1098. GCC_TRANSFER_INDICATION = 21,
  1099. GCC_TRANSFER_CONFIRM = 22,
  1100. GCC_APPLICATION_INVOKE_INDICATION = 23, /* SHARED CALLBACK */
  1101. GCC_APPLICATION_INVOKE_CONFIRM = 24, /* SHARED CALLBACK */
  1102. GCC_SUB_INITIALIZED_INDICATION = 25,
  1103. /* Conference Roster related callbacks */
  1104. GCC_ANNOUNCE_PRESENCE_CONFIRM = 26,
  1105. GCC_ROSTER_REPORT_INDICATION = 27, /* SHARED CALLBACK */
  1106. GCC_ROSTER_INQUIRE_CONFIRM = 28, /* SHARED CALLBACK */
  1107. /* Conductorship related callbacks */
  1108. GCC_CONDUCT_ASSIGN_INDICATION = 29, /* SHARED CALLBACK */
  1109. GCC_CONDUCT_ASSIGN_CONFIRM = 30,
  1110. GCC_CONDUCT_RELEASE_INDICATION = 31, /* SHARED CALLBACK */
  1111. GCC_CONDUCT_RELEASE_CONFIRM = 32,
  1112. GCC_CONDUCT_PLEASE_INDICATION = 33,
  1113. GCC_CONDUCT_PLEASE_CONFIRM = 34,
  1114. GCC_CONDUCT_GIVE_INDICATION = 35,
  1115. GCC_CONDUCT_GIVE_CONFIRM = 36,
  1116. GCC_CONDUCT_INQUIRE_CONFIRM = 37, /* SHARED CALLBACK */
  1117. GCC_CONDUCT_ASK_INDICATION = 38,
  1118. GCC_CONDUCT_ASK_CONFIRM = 39,
  1119. GCC_CONDUCT_GRANT_INDICATION = 40, /* SHARED CALLBACK */
  1120. GCC_CONDUCT_GRANT_CONFIRM = 41,
  1121. /* Miscellaneous Node Controller callbacks */
  1122. GCC_TIME_REMAINING_INDICATION = 42,
  1123. GCC_TIME_REMAINING_CONFIRM = 43,
  1124. GCC_TIME_INQUIRE_INDICATION = 44,
  1125. GCC_TIME_INQUIRE_CONFIRM = 45,
  1126. GCC_CONFERENCE_EXTEND_INDICATION = 46,
  1127. GCC_CONFERENCE_EXTEND_CONFIRM = 47,
  1128. GCC_ASSISTANCE_INDICATION = 48,
  1129. GCC_ASSISTANCE_CONFIRM = 49,
  1130. GCC_TEXT_MESSAGE_INDICATION = 50,
  1131. GCC_TEXT_MESSAGE_CONFIRM = 51,
  1132. /***************** USER APPLICATION CALLBACKS *******************/
  1133. /* Application Roster related callbacks */
  1134. GCC_PERMIT_TO_ENROLL_INDICATION = 52,
  1135. GCC_ENROLL_CONFIRM = 53,
  1136. GCC_APP_ROSTER_REPORT_INDICATION = 54, /* SHARED CALLBACK */
  1137. GCC_APP_ROSTER_INQUIRE_CONFIRM = 55, /* SHARED CALLBACK */
  1138. /* Application Registry related callbacks */
  1139. GCC_REGISTER_CHANNEL_CONFIRM = 56,
  1140. GCC_ASSIGN_TOKEN_CONFIRM = 57,
  1141. GCC_RETRIEVE_ENTRY_CONFIRM = 58,
  1142. GCC_DELETE_ENTRY_CONFIRM = 59,
  1143. GCC_SET_PARAMETER_CONFIRM = 60,
  1144. GCC_MONITOR_INDICATION = 61,
  1145. GCC_MONITOR_CONFIRM = 62,
  1146. GCC_ALLOCATE_HANDLE_CONFIRM = 63,
  1147. /****************** NON-Standard Primitives **********************/
  1148. GCC_PERMIT_TO_ANNOUNCE_PRESENCE = 100, /* Node Controller Callback */
  1149. GCC_CONNECTION_BROKEN_INDICATION = 101, /* Node Controller Callback */
  1150. GCC_FATAL_ERROR_SAP_REMOVED = 102, /* Application Callback */
  1151. GCC_STATUS_INDICATION = 103, /* Node Controller Callback */
  1152. GCC_TRANSPORT_STATUS_INDICATION = 104 /* Node Controller Callback */
  1153. } GCCMessageType;
  1154. /*
  1155. * These structures are used to hold the information included for the
  1156. * various callback messages. In the case where these structures are used for
  1157. * callbacks, the address of the structure is passed as the only parameter.
  1158. */
  1159. /*********************************************************************
  1160. * *
  1161. * NODE CONTROLLER CALLBACK INFO STRUCTURES *
  1162. * *
  1163. *********************************************************************/
  1164. /*
  1165. * GCC_CREATE_INDICATION
  1166. *
  1167. * Union Choice:
  1168. * CreateIndicationMessage
  1169. * This is a pointer to a structure that contains all necessary
  1170. * information about the new conference that is about to be created.
  1171. */
  1172. typedef struct
  1173. {
  1174. GCCConferenceName conference_name;
  1175. GCCConferenceID conference_id;
  1176. GCCPassword FAR * convener_password; /* optional */
  1177. GCCPassword FAR * password; /* optional */
  1178. T120Boolean conference_is_locked;
  1179. T120Boolean conference_is_listed;
  1180. T120Boolean conference_is_conductible;
  1181. GCCTerminationMethod termination_method;
  1182. GCCConferencePrivileges FAR * conductor_privilege_list; /* optional */
  1183. GCCConferencePrivileges FAR * conducted_mode_privilege_list;/* optional */
  1184. GCCConferencePrivileges FAR * non_conducted_privilege_list; /* optional */
  1185. GCCUnicodeString conference_descriptor; /* optional */
  1186. GCCUnicodeString caller_identifier; /* optional */
  1187. TransportAddress calling_address; /* optional */
  1188. TransportAddress called_address; /* optional */
  1189. DomainParameters FAR * domain_parameters; /* optional */
  1190. unsigned short number_of_user_data_members;
  1191. GCCUserData FAR * FAR * user_data_list; /* optional */
  1192. ConnectionHandle connection_handle;
  1193. PhysicalHandle physical_handle;
  1194. } CreateIndicationMessage;
  1195. /*
  1196. * GCC_CREATE_CONFIRM
  1197. *
  1198. * Union Choice:
  1199. * CreateConfirmMessage
  1200. * This is a pointer to a structure that contains all necessary
  1201. * information about the result of a conference create request.
  1202. * The connection handle and physical handle will be zero on a
  1203. * local create.
  1204. */
  1205. typedef struct
  1206. {
  1207. GCCConferenceName conference_name;
  1208. GCCNumericString conference_modifier; /* optional */
  1209. GCCConferenceID conference_id;
  1210. DomainParameters FAR * domain_parameters; /* optional */
  1211. unsigned short number_of_user_data_members;
  1212. GCCUserData FAR * FAR * user_data_list; /* optional */
  1213. GCCResult result;
  1214. ConnectionHandle connection_handle; /* optional */
  1215. PhysicalHandle physical_handle; /* optional */
  1216. } CreateConfirmMessage;
  1217. /*
  1218. * GCC_QUERY_INDICATION
  1219. *
  1220. * Union Choice:
  1221. * QueryIndicationMessage
  1222. * This is a pointer to a structure that contains all necessary
  1223. * information about the conference query.
  1224. */
  1225. typedef struct
  1226. {
  1227. GCCResponseTag query_response_tag;
  1228. GCCNodeType node_type;
  1229. GCCAsymmetryIndicator FAR * asymmetry_indicator;
  1230. TransportAddress calling_address; /* optional */
  1231. TransportAddress called_address; /* optional */
  1232. unsigned short number_of_user_data_members;
  1233. GCCUserData FAR * FAR * user_data_list; /* optional */
  1234. ConnectionHandle connection_handle;
  1235. PhysicalHandle physical_handle;
  1236. } QueryIndicationMessage;
  1237. /*
  1238. * GCC_QUERY_CONFIRM
  1239. *
  1240. * Union Choice:
  1241. * QueryConfirmMessage
  1242. * This is a pointer to a structure that contains all necessary
  1243. * information about the result of a conference query request.
  1244. */
  1245. typedef struct
  1246. {
  1247. GCCNodeType node_type;
  1248. GCCAsymmetryIndicator FAR * asymmetry_indicator; /* optional */
  1249. unsigned short number_of_descriptors;
  1250. GCCConferenceDescriptor FAR * FAR * conference_descriptor_list;/* optional*/
  1251. unsigned short number_of_user_data_members;
  1252. GCCUserData FAR * FAR * user_data_list; /* optional */
  1253. GCCResult result;
  1254. ConnectionHandle connection_handle;
  1255. PhysicalHandle physical_handle;
  1256. } QueryConfirmMessage;
  1257. /*
  1258. * GCC_JOIN_INDICATION
  1259. *
  1260. * Union Choice:
  1261. * JoinIndicationMessage
  1262. * This is a pointer to a structure that contains all necessary
  1263. * information about the join request.
  1264. */
  1265. typedef struct
  1266. {
  1267. GCCResponseTag join_response_tag;
  1268. GCCConferenceID conference_id;
  1269. GCCPassword FAR * convener_password; /* optional */
  1270. GCCChallengeRequestResponse
  1271. FAR * password_challenge; /* optional */
  1272. GCCUnicodeString caller_identifier; /* optional */
  1273. TransportAddress calling_address; /* optional */
  1274. TransportAddress called_address; /* optional */
  1275. unsigned short number_of_user_data_members;
  1276. GCCUserData FAR * FAR * user_data_list; /* optional */
  1277. T120Boolean node_is_intermediate;
  1278. ConnectionHandle connection_handle;
  1279. PhysicalHandle physical_handle;
  1280. } JoinIndicationMessage;
  1281. /*
  1282. * GCC_JOIN_CONFIRM
  1283. *
  1284. * Union Choice:
  1285. * JoinConfirmMessage
  1286. * This is a pointer to a structure that contains all necessary
  1287. * information about the join confirm.
  1288. */
  1289. typedef struct
  1290. {
  1291. GCCConferenceName conference_name;
  1292. GCCNumericString called_node_modifier; /* optional */
  1293. GCCNumericString calling_node_modifier; /* optional */
  1294. GCCConferenceID conference_id;
  1295. GCCChallengeRequestResponse
  1296. FAR * password_challenge; /* optional */
  1297. DomainParameters FAR * domain_parameters;
  1298. T120Boolean clear_password_required;
  1299. T120Boolean conference_is_locked;
  1300. T120Boolean conference_is_listed;
  1301. T120Boolean conference_is_conductible;
  1302. GCCTerminationMethod termination_method;
  1303. GCCConferencePrivileges FAR * conductor_privilege_list; /* optional */
  1304. GCCConferencePrivileges FAR * conducted_mode_privilege_list;/* optional */
  1305. GCCConferencePrivileges FAR * non_conducted_privilege_list; /* optional */
  1306. GCCUnicodeString conference_descriptor; /* optional */
  1307. unsigned short number_of_user_data_members;
  1308. GCCUserData FAR * FAR * user_data_list; /* optional */
  1309. GCCResult result;
  1310. ConnectionHandle connection_handle;
  1311. PhysicalHandle physical_handle;
  1312. } JoinConfirmMessage;
  1313. /*
  1314. * GCC_INVITE_INDICATION
  1315. *
  1316. * Union Choice:
  1317. * InviteIndicationMessage
  1318. * This is a pointer to a structure that contains all necessary
  1319. * information about the invite indication.
  1320. */
  1321. typedef struct
  1322. {
  1323. GCCConferenceID conference_id;
  1324. GCCConferenceName conference_name;
  1325. GCCUnicodeString caller_identifier; /* optional */
  1326. TransportAddress calling_address; /* optional */
  1327. TransportAddress called_address; /* optional */
  1328. DomainParameters FAR * domain_parameters; /* optional */
  1329. T120Boolean clear_password_required;
  1330. T120Boolean conference_is_locked;
  1331. T120Boolean conference_is_listed;
  1332. T120Boolean conference_is_conductible;
  1333. GCCTerminationMethod termination_method;
  1334. GCCConferencePrivileges FAR * conductor_privilege_list; /* optional */
  1335. GCCConferencePrivileges FAR * conducted_mode_privilege_list;/* optional */
  1336. GCCConferencePrivileges FAR * non_conducted_privilege_list; /* optional */
  1337. GCCUnicodeString conference_descriptor; /* optional */
  1338. unsigned short number_of_user_data_members;
  1339. GCCUserData FAR * FAR * user_data_list; /* optional */
  1340. ConnectionHandle connection_handle;
  1341. PhysicalHandle physical_handle;
  1342. } InviteIndicationMessage;
  1343. /*
  1344. * GCC_INVITE_CONFIRM
  1345. *
  1346. * Union Choice:
  1347. * InviteConfirmMessage
  1348. * This is a pointer to a structure that contains all necessary
  1349. * information about the invite confirm.
  1350. */
  1351. typedef struct
  1352. {
  1353. GCCConferenceID conference_id;
  1354. unsigned short number_of_user_data_members;
  1355. GCCUserData FAR * FAR * user_data_list; /* optional */
  1356. GCCResult result;
  1357. ConnectionHandle connection_handle;
  1358. PhysicalHandle physical_handle;
  1359. } InviteConfirmMessage;
  1360. /*
  1361. * GCC_ADD_INDICATION
  1362. *
  1363. * Union Choice:
  1364. * AddIndicationMessage
  1365. */
  1366. typedef struct
  1367. {
  1368. GCCResponseTag add_response_tag;
  1369. GCCConferenceID conference_id;
  1370. unsigned short number_of_network_addresses;
  1371. GCCNetworkAddress FAR * FAR * network_address_list;
  1372. UserID requesting_node_id;
  1373. unsigned short number_of_user_data_members;
  1374. GCCUserData FAR * FAR * user_data_list; /* optional */
  1375. } AddIndicationMessage;
  1376. /*
  1377. * GCC_ADD_CONFIRM
  1378. *
  1379. * Union Choice:
  1380. * AddConfirmMessage
  1381. */
  1382. typedef struct
  1383. {
  1384. GCCConferenceID conference_id;
  1385. unsigned short number_of_network_addresses;
  1386. GCCNetworkAddress FAR * FAR * network_address_list;
  1387. unsigned short number_of_user_data_members;
  1388. GCCUserData FAR * FAR * user_data_list; /* optional */
  1389. GCCResult result;
  1390. } AddConfirmMessage;
  1391. /*
  1392. * GCC_LOCK_INDICATION
  1393. *
  1394. * Union Choice:
  1395. * LockIndicationMessage
  1396. */
  1397. typedef struct
  1398. {
  1399. GCCConferenceID conference_id;
  1400. UserID requesting_node_id;
  1401. } LockIndicationMessage;
  1402. /*
  1403. * GCC_LOCK_CONFIRM
  1404. *
  1405. * Union Choice:
  1406. * LockConfirmMessage
  1407. */
  1408. typedef struct
  1409. {
  1410. GCCConferenceID conference_id;
  1411. GCCResult result;
  1412. } LockConfirmMessage;
  1413. /*
  1414. * GCC_UNLOCK_INDICATION
  1415. *
  1416. * Union Choice:
  1417. * UnlockIndicationMessage
  1418. */
  1419. typedef struct
  1420. {
  1421. GCCConferenceID conference_id;
  1422. UserID requesting_node_id;
  1423. } UnlockIndicationMessage;
  1424. /*
  1425. * GCC_UNLOCK_CONFIRM
  1426. *
  1427. * Union Choice:
  1428. * UnlockConfirmMessage
  1429. */
  1430. typedef struct
  1431. {
  1432. GCCConferenceID conference_id;
  1433. GCCResult result;
  1434. } UnlockConfirmMessage;
  1435. /*
  1436. * GCC_LOCK_REPORT_INDICATION
  1437. *
  1438. * Union Choice:
  1439. * LockReportIndicationMessage
  1440. */
  1441. typedef struct
  1442. {
  1443. GCCConferenceID conference_id;
  1444. T120Boolean conference_is_locked;
  1445. } LockReportIndicationMessage;
  1446. /*
  1447. * GCC_DISCONNECT_INDICATION
  1448. *
  1449. * Union Choice:
  1450. * DisconnectIndicationMessage
  1451. */
  1452. typedef struct
  1453. {
  1454. GCCConferenceID conference_id;
  1455. GCCReason reason;
  1456. UserID disconnected_node_id;
  1457. } DisconnectIndicationMessage;
  1458. /*
  1459. * GCC_DISCONNECT_CONFIRM
  1460. *
  1461. * Union Choice:
  1462. * PDisconnectConfirmMessage
  1463. */
  1464. typedef struct
  1465. {
  1466. GCCConferenceID conference_id;
  1467. GCCResult result;
  1468. } DisconnectConfirmMessage;
  1469. /*
  1470. * GCC_TERMINATE_INDICATION
  1471. *
  1472. * Union Choice:
  1473. * TerminateIndicationMessage
  1474. */
  1475. typedef struct
  1476. {
  1477. GCCConferenceID conference_id;
  1478. UserID requesting_node_id;
  1479. GCCReason reason;
  1480. } TerminateIndicationMessage;
  1481. /*
  1482. * GCC_TERMINATE_CONFIRM
  1483. *
  1484. * Union Choice:
  1485. * TerminateConfirmMessage
  1486. */
  1487. typedef struct
  1488. {
  1489. GCCConferenceID conference_id;
  1490. GCCResult result;
  1491. } TerminateConfirmMessage;
  1492. /*
  1493. * GCC_CONNECTION_BROKEN_INDICATION
  1494. *
  1495. * Union Choice:
  1496. * ConnectionBrokenIndicationMessage
  1497. *
  1498. * Caveat:
  1499. * This is a non-standard indication.
  1500. */
  1501. typedef struct
  1502. {
  1503. ConnectionHandle connection_handle;
  1504. PhysicalHandle physical_handle;
  1505. } ConnectionBrokenIndicationMessage;
  1506. /*
  1507. * GCC_EJECT_USER_INDICATION
  1508. *
  1509. * Union Choice:
  1510. * EjectUserIndicationMessage
  1511. */
  1512. typedef struct
  1513. {
  1514. GCCConferenceID conference_id;
  1515. UserID ejected_node_id;
  1516. GCCReason reason;
  1517. } EjectUserIndicationMessage;
  1518. /*
  1519. * GCC_EJECT_USER_CONFIRM
  1520. *
  1521. * Union Choice:
  1522. * EjectUserConfirmMessage
  1523. */
  1524. typedef struct
  1525. {
  1526. GCCConferenceID conference_id;
  1527. UserID ejected_node_id;
  1528. GCCResult result;
  1529. } EjectUserConfirmMessage;
  1530. /*
  1531. * GCC_TRANSFER_INDICATION
  1532. *
  1533. * Union Choice:
  1534. * TransferIndicationMessage
  1535. */
  1536. typedef struct
  1537. {
  1538. GCCConferenceID conference_id;
  1539. GCCConferenceName destination_conference_name;
  1540. GCCNumericString destination_conference_modifier; /* optional */
  1541. unsigned short number_of_destination_addresses;
  1542. GCCNetworkAddress FAR * FAR *
  1543. destination_address_list;
  1544. GCCPassword FAR * password; /* optional */
  1545. } TransferIndicationMessage;
  1546. /*
  1547. * GCC_TRANSFER_CONFIRM
  1548. *
  1549. * Union Choice:
  1550. * TransferConfirmMessage
  1551. */
  1552. typedef struct
  1553. {
  1554. GCCConferenceID conference_id;
  1555. GCCConferenceName destination_conference_name;
  1556. GCCNumericString destination_conference_modifier; /* optional */
  1557. unsigned short number_of_destination_nodes;
  1558. UserID FAR * destination_node_list;
  1559. GCCResult result;
  1560. } TransferConfirmMessage;
  1561. /*
  1562. * GCC_PERMIT_TO_ANNOUNCE_PRESENCE
  1563. *
  1564. * Union Choice:
  1565. * PermitToAnnouncePresenceMessage
  1566. */
  1567. typedef struct
  1568. {
  1569. GCCConferenceID conference_id;
  1570. UserID node_id;
  1571. } PermitToAnnouncePresenceMessage;
  1572. /*
  1573. * GCC_ANNOUNCE_PRESENCE_CONFIRM
  1574. *
  1575. * Union Choice:
  1576. * AnnouncePresenceConfirmMessage
  1577. */
  1578. typedef struct
  1579. {
  1580. GCCConferenceID conference_id;
  1581. GCCResult result;
  1582. } AnnouncePresenceConfirmMessage;
  1583. /*
  1584. * GCC_ROSTER_REPORT_INDICATION
  1585. *
  1586. * Union Choice:
  1587. * ConfRosterReportIndicationMessage
  1588. */
  1589. typedef struct
  1590. {
  1591. GCCConferenceID conference_id;
  1592. GCCConferenceRoster FAR * conference_roster;
  1593. } ConfRosterReportIndicationMessage;
  1594. /*
  1595. * GCC_CONDUCT_ASSIGN_CONFIRM
  1596. *
  1597. * Union Choice:
  1598. * ConductAssignConfirmMessage
  1599. */
  1600. typedef struct
  1601. {
  1602. GCCConferenceID conference_id;
  1603. GCCResult result;
  1604. } ConductAssignConfirmMessage;
  1605. /*
  1606. * GCC_CONDUCT_RELEASE_CONFIRM
  1607. *
  1608. * Union Choice:
  1609. * ConductorReleaseConfirmMessage
  1610. */
  1611. typedef struct
  1612. {
  1613. GCCConferenceID conference_id;
  1614. GCCResult result;
  1615. } ConductReleaseConfirmMessage;
  1616. /*
  1617. * GCC_CONDUCT_PLEASE_INDICATION
  1618. *
  1619. * Union Choice:
  1620. * ConductorPleaseIndicationMessage
  1621. */
  1622. typedef struct
  1623. {
  1624. GCCConferenceID conference_id;
  1625. UserID requester_node_id;
  1626. } ConductPleaseIndicationMessage;
  1627. /*
  1628. * GCC_CONDUCT_PLEASE_CONFIRM
  1629. *
  1630. * Union Choice:
  1631. * ConductPleaseConfirmMessage
  1632. */
  1633. typedef struct
  1634. {
  1635. GCCConferenceID conference_id;
  1636. GCCResult result;
  1637. } ConductPleaseConfirmMessage;
  1638. /*
  1639. * GCC_CONDUCT_GIVE_INDICATION
  1640. *
  1641. * Union Choice:
  1642. * ConductorGiveIndicationMessage
  1643. */
  1644. typedef struct
  1645. {
  1646. GCCConferenceID conference_id;
  1647. } ConductGiveIndicationMessage;
  1648. /*
  1649. * GCC_CONDUCT_GIVE_CONFIRM
  1650. *
  1651. * Union Choice:
  1652. * ConductorGiveConfirmMessage
  1653. */
  1654. typedef struct
  1655. {
  1656. GCCConferenceID conference_id;
  1657. UserID recipient_node_id;
  1658. GCCResult result;
  1659. } ConductGiveConfirmMessage;
  1660. /*
  1661. * GCC_CONDUCT_ASK_INDICATION
  1662. *
  1663. * Union Choice:
  1664. * ConductPermitAskIndicationMessage
  1665. */
  1666. typedef struct
  1667. {
  1668. GCCConferenceID conference_id;
  1669. T120Boolean permission_is_granted;
  1670. UserID requester_node_id;
  1671. } ConductPermitAskIndicationMessage;
  1672. /*
  1673. * GCC_CONDUCT_ASK_CONFIRM
  1674. *
  1675. * Union Choice:
  1676. * ConductPermitAskConfirmMessage
  1677. */
  1678. typedef struct
  1679. {
  1680. GCCConferenceID conference_id;
  1681. T120Boolean permission_is_granted;
  1682. GCCResult result;
  1683. } ConductPermitAskConfirmMessage;
  1684. /*
  1685. * GCC_CONDUCT_GRANT_CONFIRM
  1686. *
  1687. * Union Choice:
  1688. * ConductPermissionGrantConfirmMessage
  1689. */
  1690. typedef struct
  1691. {
  1692. GCCConferenceID conference_id;
  1693. GCCResult result;
  1694. } ConductPermitGrantConfirmMessage;
  1695. /*
  1696. * GCC_TIME_REMAINING_INDICATION
  1697. *
  1698. * Union Choice:
  1699. * TimeRemainingIndicationMessage
  1700. */
  1701. typedef struct
  1702. {
  1703. GCCConferenceID conference_id;
  1704. unsigned long time_remaining;
  1705. UserID node_id;
  1706. UserID source_node_id;
  1707. } TimeRemainingIndicationMessage;
  1708. /*
  1709. * GCC_TIME_REMAINING_CONFIRM
  1710. *
  1711. * Union Choice:
  1712. * TimeRemainingConfirmMessage
  1713. */
  1714. typedef struct
  1715. {
  1716. GCCConferenceID conference_id;
  1717. GCCResult result;
  1718. } TimeRemainingConfirmMessage;
  1719. /*
  1720. * GCC_TIME_INQUIRE_INDICATION
  1721. *
  1722. * Union Choice:
  1723. * TimeInquireIndicationMessage
  1724. */
  1725. typedef struct
  1726. {
  1727. GCCConferenceID conference_id;
  1728. T120Boolean time_is_conference_wide;
  1729. UserID requesting_node_id;
  1730. } TimeInquireIndicationMessage;
  1731. /*
  1732. * GCC_TIME_INQUIRE_CONFIRM
  1733. *
  1734. * Union Choice:
  1735. * TimeInquireConfirmMessage
  1736. */
  1737. typedef struct
  1738. {
  1739. GCCConferenceID conference_id;
  1740. GCCResult result;
  1741. } TimeInquireConfirmMessage;
  1742. /*
  1743. * GCC_CONFERENCE_EXTEND_INDICATION
  1744. *
  1745. * Union Choice:
  1746. * ConferenceExtendIndicationMessage
  1747. */
  1748. typedef struct
  1749. {
  1750. GCCConferenceID conference_id;
  1751. unsigned long extension_time;
  1752. T120Boolean time_is_conference_wide;
  1753. UserID requesting_node_id;
  1754. } ConferenceExtendIndicationMessage;
  1755. /*
  1756. * GCC_CONFERENCE_EXTEND_CONFIRM
  1757. *
  1758. * Union Choice:
  1759. * ConferenceExtendConfirmMessage
  1760. */
  1761. typedef struct
  1762. {
  1763. GCCConferenceID conference_id;
  1764. unsigned long extension_time;
  1765. GCCResult result;
  1766. } ConferenceExtendConfirmMessage;
  1767. /*
  1768. * GCC_ASSISTANCE_INDICATION
  1769. *
  1770. * Union Choice:
  1771. * ConferenceAssistIndicationMessage
  1772. */
  1773. typedef struct
  1774. {
  1775. GCCConferenceID conference_id;
  1776. unsigned short number_of_user_data_members;
  1777. GCCUserData FAR * FAR * user_data_list;
  1778. UserID source_node_id;
  1779. } ConferenceAssistIndicationMessage;
  1780. /*
  1781. * GCC_ASSISTANCE_CONFIRM
  1782. *
  1783. * Union Choice:
  1784. * ConferenceAssistConfirmMessage
  1785. */
  1786. typedef struct
  1787. {
  1788. GCCConferenceID conference_id;
  1789. GCCResult result;
  1790. } ConferenceAssistConfirmMessage;
  1791. /*
  1792. * GCC_TEXT_MESSAGE_INDICATION
  1793. *
  1794. * Union Choice:
  1795. * TextMessageIndicationMessage
  1796. */
  1797. typedef struct
  1798. {
  1799. GCCConferenceID conference_id;
  1800. GCCUnicodeString text_message;
  1801. UserID source_node_id;
  1802. } TextMessageIndicationMessage;
  1803. /*
  1804. * GCC_TEXT_MESSAGE_CONFIRM
  1805. *
  1806. * Union Choice:
  1807. * TextMessageConfirmMessage
  1808. */
  1809. typedef struct
  1810. {
  1811. GCCConferenceID conference_id;
  1812. GCCResult result;
  1813. } TextMessageConfirmMessage;
  1814. /*
  1815. * GCC_STATUS_INDICATION
  1816. *
  1817. * Union Choice:
  1818. * GCCStatusMessage
  1819. * This callback is used to relay GCC status to the node controller
  1820. */
  1821. typedef enum
  1822. {
  1823. GCC_STATUS_PACKET_RESOURCE_FAILURE = 0,
  1824. GCC_STATUS_PACKET_LENGTH_EXCEEDED = 1,
  1825. GCC_STATUS_CTL_SAP_RESOURCE_ERROR = 2,
  1826. GCC_STATUS_APP_SAP_RESOURCE_ERROR = 3, /* parameter = Sap Handle */
  1827. GCC_STATUS_CONF_RESOURCE_ERROR = 4, /* parameter = Conference ID */
  1828. GCC_STATUS_INCOMPATIBLE_PROTOCOL = 5, /* parameter = Physical Handle */
  1829. GCC_STATUS_JOIN_FAILED_BAD_CONF_NAME= 6, /* parameter = Physical Handle */
  1830. GCC_STATUS_JOIN_FAILED_BAD_CONVENER = 7, /* parameter = Physical Handle */
  1831. GCC_STATUS_JOIN_FAILED_LOCKED = 8 /* parameter = Physical Handle */
  1832. } GCCStatusMessageType;
  1833. typedef struct
  1834. {
  1835. GCCStatusMessageType status_message_type;
  1836. unsigned long parameter;
  1837. } GCCStatusIndicationMessage;
  1838. /*
  1839. * GCC_SUB_INITIALIZED_INDICATION
  1840. *
  1841. * Union Chice:
  1842. * SubInitializedIndicationMessage
  1843. */
  1844. typedef struct
  1845. {
  1846. ConnectionHandle connection_handle;
  1847. UserID subordinate_node_id;
  1848. } SubInitializedIndicationMessage;
  1849. /*********************************************************************
  1850. * *
  1851. * USER APPLICATION CALLBACK INFO STRUCTURES *
  1852. * *
  1853. *********************************************************************/
  1854. /*
  1855. * GCC_PERMIT_TO_ENROLL_INDICATION
  1856. *
  1857. * Union Choice:
  1858. * PermitToEnrollIndicationMessage
  1859. */
  1860. typedef struct
  1861. {
  1862. GCCConferenceID conference_id;
  1863. GCCConferenceName conference_name;
  1864. GCCNumericString conference_modifier; /* optional */
  1865. T120Boolean permission_is_granted;
  1866. } PermitToEnrollIndicationMessage;
  1867. /*
  1868. * GCC_ENROLL_CONFIRM
  1869. *
  1870. * Union Choice:
  1871. * EnrollConfirmMessage
  1872. */
  1873. typedef struct
  1874. {
  1875. GCCConferenceID conference_id;
  1876. GCCSessionKey FAR * session_key;
  1877. unsigned short entity_id;
  1878. UserID node_id;
  1879. GCCResult result;
  1880. } EnrollConfirmMessage;
  1881. /*
  1882. * GCC_APP_ROSTER_REPORT_INDICATION
  1883. *
  1884. * Union Choice:
  1885. * AppRosterReportIndicationMessage
  1886. */
  1887. typedef struct
  1888. {
  1889. GCCConferenceID conference_id;
  1890. unsigned short number_of_rosters;
  1891. GCCApplicationRoster FAR * FAR * application_roster_list;
  1892. } AppRosterReportIndicationMessage;
  1893. /*
  1894. * GCC_REGISTER_CHANNEL_CONFIRM
  1895. *
  1896. * Union Choice:
  1897. * RegisterChannelConfirmMessage
  1898. */
  1899. typedef struct
  1900. {
  1901. GCCConferenceID conference_id;
  1902. GCCRegistryKey registry_key;
  1903. GCCRegistryItem registry_item;
  1904. GCCRegistryEntryOwner entry_owner;
  1905. GCCResult result;
  1906. } RegisterChannelConfirmMessage;
  1907. /*
  1908. * GCC_ASSIGN_TOKEN_CONFIRM
  1909. *
  1910. * Union Choice:
  1911. * AssignTokenConfirmMessage
  1912. */
  1913. typedef struct
  1914. {
  1915. GCCConferenceID conference_id;
  1916. GCCRegistryKey registry_key;
  1917. GCCRegistryItem registry_item;
  1918. GCCRegistryEntryOwner entry_owner;
  1919. GCCResult result;
  1920. } AssignTokenConfirmMessage;
  1921. /*
  1922. * GCC_SET_PARAMETER_CONFIRM
  1923. *
  1924. * Union Choice:
  1925. * SetParameterConfirmMessage
  1926. */
  1927. typedef struct
  1928. {
  1929. GCCConferenceID conference_id;
  1930. GCCRegistryKey registry_key;
  1931. GCCRegistryItem registry_item;
  1932. GCCRegistryEntryOwner entry_owner;
  1933. GCCModificationRights modification_rights;
  1934. GCCResult result;
  1935. } SetParameterConfirmMessage;
  1936. /*
  1937. * GCC_RETRIEVE_ENTRY_CONFIRM
  1938. *
  1939. * Union Choice:
  1940. * RetrieveEntryConfirmMessage
  1941. */
  1942. typedef struct
  1943. {
  1944. GCCConferenceID conference_id;
  1945. GCCRegistryKey registry_key;
  1946. GCCRegistryItem registry_item;
  1947. GCCRegistryEntryOwner entry_owner;
  1948. GCCModificationRights modification_rights;
  1949. GCCResult result;
  1950. } RetrieveEntryConfirmMessage;
  1951. /*
  1952. * GCC_DELETE_ENTRY_CONFIRM
  1953. *
  1954. * Union Choice:
  1955. * DeleteEntryConfirmMessage
  1956. */
  1957. typedef struct
  1958. {
  1959. GCCConferenceID conference_id;
  1960. GCCRegistryKey registry_key;
  1961. GCCResult result;
  1962. } DeleteEntryConfirmMessage;
  1963. /*
  1964. * GCC_MONITOR_INDICATION
  1965. *
  1966. * Union Choice:
  1967. * MonitorIndicationMessage
  1968. */
  1969. typedef struct
  1970. {
  1971. GCCConferenceID conference_id;
  1972. GCCRegistryKey registry_key;
  1973. GCCRegistryItem registry_item;
  1974. GCCRegistryEntryOwner entry_owner;
  1975. GCCModificationRights modification_rights;
  1976. } MonitorIndicationMessage;
  1977. /*
  1978. * GCC_MONITOR_CONFIRM
  1979. *
  1980. * Union Choice:
  1981. * MonitorConfirmMessage
  1982. */
  1983. typedef struct
  1984. {
  1985. GCCConferenceID conference_id;
  1986. T120Boolean delivery_is_enabled;
  1987. GCCRegistryKey registry_key;
  1988. GCCResult result;
  1989. } MonitorConfirmMessage;
  1990. /*
  1991. * GCC_ALLOCATE_HANDLE_CONFIRM
  1992. *
  1993. * Union Choice:
  1994. * AllocateHandleConfirmMessage
  1995. */
  1996. typedef struct
  1997. {
  1998. GCCConferenceID conference_id;
  1999. unsigned short number_of_handles;
  2000. unsigned long handle_value;
  2001. GCCResult result;
  2002. } AllocateHandleConfirmMessage;
  2003. /*********************************************************************
  2004. * *
  2005. * SHARED CALLBACK INFO STRUCTURES *
  2006. * (Note that this doesn't include all the shared callbacks) *
  2007. * *
  2008. *********************************************************************/
  2009. /*
  2010. * GCC_ROSTER_INQUIRE_CONFIRM
  2011. *
  2012. * Union Choice:
  2013. * ConfRosterInquireConfirmMessage
  2014. */
  2015. typedef struct
  2016. {
  2017. GCCConferenceID conference_id;
  2018. GCCConferenceName conference_name;
  2019. GCCNumericString conference_modifier;
  2020. GCCUnicodeString conference_descriptor;
  2021. GCCConferenceRoster FAR * conference_roster;
  2022. GCCResult result;
  2023. } ConfRosterInquireConfirmMessage;
  2024. /*
  2025. * GCC_APP_ROSTER_INQUIRE_CONFIRM
  2026. *
  2027. * Union Choice:
  2028. * AppRosterInquireConfirmMessage
  2029. */
  2030. typedef struct
  2031. {
  2032. GCCConferenceID conference_id;
  2033. unsigned short number_of_rosters;
  2034. GCCApplicationRoster FAR * FAR * application_roster_list;
  2035. GCCResult result;
  2036. } AppRosterInquireConfirmMessage;
  2037. /*
  2038. * GCC_CONDUCT_INQUIRE_CONFIRM
  2039. *
  2040. * Union Choice:
  2041. * ConductorInquireConfirmMessage
  2042. */
  2043. typedef struct
  2044. {
  2045. GCCConferenceID conference_id;
  2046. T120Boolean mode_is_conducted;
  2047. UserID conductor_node_id;
  2048. T120Boolean permission_is_granted;
  2049. GCCResult result;
  2050. } ConductInquireConfirmMessage;
  2051. /*
  2052. * GCC_CONDUCT_ASSIGN_INDICATION
  2053. *
  2054. * Union Choice:
  2055. * ConductAssignIndicationMessage
  2056. */
  2057. typedef struct
  2058. {
  2059. GCCConferenceID conference_id;
  2060. UserID node_id;
  2061. } ConductAssignIndicationMessage;
  2062. /*
  2063. * GCC_CONDUCT_RELEASE_INDICATION
  2064. *
  2065. * Union Choice:
  2066. * ConductReleaseIndicationMessage
  2067. */
  2068. typedef struct
  2069. {
  2070. GCCConferenceID conference_id;
  2071. } ConductReleaseIndicationMessage;
  2072. /*
  2073. * GCC_CONDUCT_GRANT_INDICATION
  2074. *
  2075. * Union Choice:
  2076. * ConductPermitGrantIndicationMessage
  2077. */
  2078. typedef struct
  2079. {
  2080. GCCConferenceID conference_id;
  2081. unsigned short number_granted;
  2082. UserID FAR * granted_node_list;
  2083. unsigned short number_waiting;
  2084. UserID FAR * waiting_node_list;
  2085. T120Boolean permission_is_granted;
  2086. } ConductPermitGrantIndicationMessage;
  2087. /*
  2088. * GCC_APPLICATION_INVOKE_INDICATION
  2089. *
  2090. * Union Choice:
  2091. * ApplicationInvokeIndicationMessage
  2092. */
  2093. typedef struct
  2094. {
  2095. GCCConferenceID conference_id;
  2096. unsigned short number_of_app_protocol_entities;
  2097. GCCAppProtocolEntity FAR * FAR * app_protocol_entity_list;
  2098. UserID invoking_node_id;
  2099. } ApplicationInvokeIndicationMessage;
  2100. /*
  2101. * GCC_APPLICATION_INVOKE_CONFIRM
  2102. *
  2103. * Union Choice:
  2104. * ApplicationInvokeConfirmMessage
  2105. */
  2106. typedef struct
  2107. {
  2108. GCCConferenceID conference_id;
  2109. unsigned short number_of_app_protocol_entities;
  2110. GCCAppProtocolEntity FAR * FAR * app_protocol_entity_list;
  2111. GCCResult result;
  2112. } ApplicationInvokeConfirmMessage;
  2113. /*
  2114. * GCCMessage
  2115. * This structure defines the message that is passed from GCC to either
  2116. * the node controller or a user application when an indication or
  2117. * confirm occurs.
  2118. */
  2119. typedef struct
  2120. {
  2121. GCCMessageType message_type;
  2122. void FAR * user_defined;
  2123. union
  2124. {
  2125. CreateIndicationMessage create_indication;
  2126. CreateConfirmMessage create_confirm;
  2127. QueryIndicationMessage query_indication;
  2128. QueryConfirmMessage query_confirm;
  2129. JoinIndicationMessage join_indication;
  2130. JoinConfirmMessage join_confirm;
  2131. InviteIndicationMessage invite_indication;
  2132. InviteConfirmMessage invite_confirm;
  2133. AddIndicationMessage add_indication;
  2134. AddConfirmMessage add_confirm;
  2135. LockIndicationMessage lock_indication;
  2136. LockConfirmMessage lock_confirm;
  2137. UnlockIndicationMessage unlock_indication;
  2138. UnlockConfirmMessage unlock_confirm;
  2139. LockReportIndicationMessage lock_report_indication;
  2140. DisconnectIndicationMessage disconnect_indication;
  2141. DisconnectConfirmMessage disconnect_confirm;
  2142. TerminateIndicationMessage terminate_indication;
  2143. TerminateConfirmMessage terminate_confirm;
  2144. ConnectionBrokenIndicationMessage connection_broken_indication;
  2145. EjectUserIndicationMessage eject_user_indication;
  2146. EjectUserConfirmMessage eject_user_confirm;
  2147. TransferIndicationMessage transfer_indication;
  2148. TransferConfirmMessage transfer_confirm;
  2149. ApplicationInvokeIndicationMessage application_invoke_indication;
  2150. ApplicationInvokeConfirmMessage application_invoke_confirm;
  2151. SubInitializedIndicationMessage conf_sub_initialized_indication;
  2152. PermitToAnnouncePresenceMessage permit_to_announce_presence;
  2153. AnnouncePresenceConfirmMessage announce_presence_confirm;
  2154. ConfRosterReportIndicationMessage conf_roster_report_indication;
  2155. ConductAssignIndicationMessage conduct_assign_indication;
  2156. ConductAssignConfirmMessage conduct_assign_confirm;
  2157. ConductReleaseIndicationMessage conduct_release_indication;
  2158. ConductReleaseConfirmMessage conduct_release_confirm;
  2159. ConductPleaseIndicationMessage conduct_please_indication;
  2160. ConductPleaseConfirmMessage conduct_please_confirm;
  2161. ConductGiveIndicationMessage conduct_give_indication;
  2162. ConductGiveConfirmMessage conduct_give_confirm;
  2163. ConductPermitAskIndicationMessage conduct_permit_ask_indication;
  2164. ConductPermitAskConfirmMessage conduct_permit_ask_confirm;
  2165. ConductPermitGrantIndicationMessage conduct_permit_grant_indication;
  2166. ConductPermitGrantConfirmMessage conduct_permit_grant_confirm;
  2167. ConductInquireConfirmMessage conduct_inquire_confirm;
  2168. TimeRemainingIndicationMessage time_remaining_indication;
  2169. TimeRemainingConfirmMessage time_remaining_confirm;
  2170. TimeInquireIndicationMessage time_inquire_indication;
  2171. TimeInquireConfirmMessage time_inquire_confirm;
  2172. ConferenceExtendIndicationMessage conference_extend_indication;
  2173. ConferenceExtendConfirmMessage conference_extend_confirm;
  2174. ConferenceAssistIndicationMessage conference_assist_indication;
  2175. ConferenceAssistConfirmMessage conference_assist_confirm;
  2176. TextMessageIndicationMessage text_message_indication;
  2177. TextMessageConfirmMessage text_message_confirm;
  2178. GCCStatusIndicationMessage status_indication;
  2179. PermitToEnrollIndicationMessage permit_to_enroll_indication;
  2180. EnrollConfirmMessage enroll_confirm;
  2181. AppRosterReportIndicationMessage app_roster_report_indication;
  2182. RegisterChannelConfirmMessage register_channel_confirm;
  2183. AssignTokenConfirmMessage assign_token_confirm;
  2184. SetParameterConfirmMessage set_parameter_confirm;
  2185. RetrieveEntryConfirmMessage retrieve_entry_confirm;
  2186. DeleteEntryConfirmMessage delete_entry_confirm;
  2187. MonitorIndicationMessage monitor_indication;
  2188. MonitorConfirmMessage monitor_confirm;
  2189. AllocateHandleConfirmMessage allocate_handle_confirm;
  2190. ConfRosterInquireConfirmMessage conf_roster_inquire_confirm;
  2191. AppRosterInquireConfirmMessage app_roster_inquire_confirm;
  2192. TransportStatus transport_status;
  2193. } u;
  2194. } GCCMessage;
  2195. /*
  2196. * This is the definition for the GCC callback function. Applications
  2197. * writing callback routines should NOT use the typedef to define their
  2198. * functions. These should be explicitly defined the way that the
  2199. * typedef is defined.
  2200. */
  2201. #define GCC_CALLBACK_NOT_PROCESSED 0
  2202. #define GCC_CALLBACK_PROCESSED 1
  2203. typedef T120Boolean (CALLBACK *GCCCallBack) (GCCMessage FAR * gcc_message);
  2204. /**************** GCC ENTRY POINTS *******************************/
  2205. /*********************************************************************
  2206. * *
  2207. * NODE CONTROLLER ENTRY POINTS *
  2208. * *
  2209. *********************************************************************/
  2210. /*
  2211. * These entry points are implementation specific primitives, that
  2212. * do not directly correspond to primitives defined in T.124.
  2213. */
  2214. GCCError APIENTRY GCCRegisterNodeControllerApplication (
  2215. GCCCallBack control_sap_callback,
  2216. void FAR * user_defined,
  2217. GCCVersion gcc_version_requested,
  2218. unsigned short FAR * initialization_flags,
  2219. unsigned long FAR * application_id,
  2220. unsigned short FAR * capabilities_mask,
  2221. GCCVersion FAR * gcc_high_version,
  2222. GCCVersion FAR * gcc_version);
  2223. GCCError APIENTRY GCCRegisterUserApplication (
  2224. unsigned short FAR * initialization_flags,
  2225. unsigned long FAR * application_id,
  2226. unsigned short FAR * capabilities_mask,
  2227. GCCVersion FAR * gcc_version);
  2228. GCCError APIENTRY GCCCleanup (
  2229. unsigned long application_id);
  2230. GCCError APIENTRY GCCHeartbeat (void);
  2231. GCCError APIENTRY GCCCreateSap(
  2232. GCCCallBack user_defined_callback,
  2233. void FAR * user_defined,
  2234. GCCSapHandle FAR * application_sap_handle);
  2235. GCCError APIENTRY GCCDeleteSap(
  2236. GCCSapHandle sap_handle);
  2237. GCCError APIENTRY GCCLoadTransport (
  2238. char FAR * transport_identifier,
  2239. char FAR * transport_file_name);
  2240. GCCError APIENTRY GCCUnloadTransport (
  2241. char FAR * transport_identifier);
  2242. GCCError APIENTRY GCCResetDevice (
  2243. char FAR * transport_identifier,
  2244. char FAR * device_identifier);
  2245. /*
  2246. * These entry points are specific primitives that directly correspond
  2247. * to primitives defined in T.124.
  2248. *
  2249. * Note that an attempt was made in the prototypes to define the optional
  2250. * parameters as pointers wherever possible.
  2251. */
  2252. /********** Conference Establishment and Termination Functions ***********/
  2253. GCCError APIENTRY GCCConferenceCreateRequest
  2254. (
  2255. GCCConferenceName FAR * conference_name,
  2256. GCCNumericString conference_modifier,
  2257. GCCPassword FAR * convener_password,
  2258. GCCPassword FAR * password,
  2259. T120Boolean use_password_in_the_clear,
  2260. T120Boolean conference_is_locked,
  2261. T120Boolean conference_is_listed,
  2262. T120Boolean conference_is_conductible,
  2263. GCCTerminationMethod termination_method,
  2264. GCCConferencePrivileges FAR * conduct_privilege_list,
  2265. GCCConferencePrivileges FAR *
  2266. conducted_mode_privilege_list,
  2267. GCCConferencePrivileges FAR *
  2268. non_conducted_privilege_list,
  2269. GCCUnicodeString conference_descriptor,
  2270. GCCUnicodeString caller_identifier,
  2271. TransportAddress calling_address,
  2272. TransportAddress called_address,
  2273. DomainParameters FAR * domain_parameters,
  2274. unsigned short number_of_network_addresses,
  2275. GCCNetworkAddress FAR * FAR * local_network_address_list,
  2276. unsigned short number_of_user_data_members,
  2277. GCCUserData FAR * FAR * user_data_list,
  2278. ConnectionHandle FAR * connection_handle
  2279. );
  2280. GCCError APIENTRY GCCConferenceCreateResponse
  2281. (
  2282. GCCNumericString conference_modifier,
  2283. GCCConferenceID conference_id,
  2284. T120Boolean use_password_in_the_clear,
  2285. DomainParameters FAR * domain_parameters,
  2286. unsigned short number_of_network_addresses,
  2287. GCCNetworkAddress FAR * FAR * local_network_address_list,
  2288. unsigned short number_of_user_data_members,
  2289. GCCUserData FAR * FAR * user_data_list,
  2290. GCCResult result
  2291. );
  2292. GCCError APIENTRY GCCConferenceQueryRequest
  2293. (
  2294. GCCNodeType node_type,
  2295. GCCAsymmetryIndicator FAR * asymmetry_indicator,
  2296. TransportAddress calling_address,
  2297. TransportAddress called_address,
  2298. unsigned short number_of_user_data_members,
  2299. GCCUserData FAR * FAR * user_data_list,
  2300. ConnectionHandle FAR * connection_handle
  2301. );
  2302. GCCError APIENTRY GCCConferenceQueryResponse
  2303. (
  2304. GCCResponseTag query_response_tag,
  2305. GCCNodeType node_type,
  2306. GCCAsymmetryIndicator FAR * asymmetry_indicator,
  2307. unsigned short number_of_user_data_members,
  2308. GCCUserData FAR * FAR * user_data_list,
  2309. GCCResult result
  2310. );
  2311. GCCError APIENTRY GCCConferenceJoinRequest
  2312. (
  2313. GCCConferenceName FAR * conference_name,
  2314. GCCNumericString called_node_modifier,
  2315. GCCNumericString calling_node_modifier,
  2316. GCCPassword FAR * convener_password,
  2317. GCCChallengeRequestResponse
  2318. FAR * password_challenge,
  2319. GCCUnicodeString caller_identifier,
  2320. TransportAddress calling_address,
  2321. TransportAddress called_address,
  2322. DomainParameters FAR * domain_parameters,
  2323. unsigned short number_of_network_addresses,
  2324. GCCNetworkAddress FAR * FAR * local_network_address_list,
  2325. unsigned short number_of_user_data_members,
  2326. GCCUserData FAR * FAR * user_data_list,
  2327. ConnectionHandle FAR * connection_handle
  2328. );
  2329. GCCError APIENTRY GCCConferenceJoinResponse
  2330. (
  2331. GCCResponseTag join_response_tag,
  2332. GCCChallengeRequestResponse
  2333. FAR * password_challenge,
  2334. unsigned short number_of_user_data_members,
  2335. GCCUserData FAR * FAR * user_data_list,
  2336. GCCResult result
  2337. );
  2338. GCCError APIENTRY GCCConferenceInviteRequest
  2339. (
  2340. GCCConferenceID conference_id,
  2341. GCCUnicodeString caller_identifier,
  2342. TransportAddress calling_address,
  2343. TransportAddress called_address,
  2344. unsigned short number_of_user_data_members,
  2345. GCCUserData FAR * FAR * user_data_list,
  2346. ConnectionHandle FAR * connection_handle
  2347. );
  2348. GCCError APIENTRY GCCConferenceInviteResponse
  2349. (
  2350. GCCConferenceID conference_id,
  2351. GCCNumericString conference_modifier,
  2352. DomainParameters FAR * domain_parameters,
  2353. unsigned short number_of_network_addresses,
  2354. GCCNetworkAddress FAR * FAR * local_network_address_list,
  2355. unsigned short number_of_user_data_members,
  2356. GCCUserData FAR * FAR * user_data_list,
  2357. GCCResult result
  2358. );
  2359. GCCError APIENTRY GCCConferenceAddRequest
  2360. (
  2361. GCCConferenceID conference_id,
  2362. unsigned short number_of_network_addresses,
  2363. GCCNetworkAddress FAR * FAR * network_address_list,
  2364. UserID adding_node,
  2365. unsigned short number_of_user_data_members,
  2366. GCCUserData FAR * FAR * user_data_list
  2367. );
  2368. GCCError APIENTRY GCCConferenceAddResponse
  2369. (
  2370. GCCResponseTag add_response_tag,
  2371. GCCConferenceID conference_id,
  2372. UserID requesting_node,
  2373. unsigned short number_of_user_data_members,
  2374. GCCUserData FAR * FAR * user_data_list,
  2375. GCCResult result
  2376. );
  2377. GCCError APIENTRY GCCConferenceLockRequest
  2378. (
  2379. GCCConferenceID conference_id
  2380. );
  2381. GCCError APIENTRY GCCConferenceLockResponse
  2382. (
  2383. GCCConferenceID conference_id,
  2384. UserID requesting_node,
  2385. GCCResult result
  2386. );
  2387. GCCError APIENTRY GCCConferenceUnlockRequest
  2388. (
  2389. GCCConferenceID conference_id
  2390. );
  2391. GCCError APIENTRY GCCConferenceUnlockResponse
  2392. (
  2393. GCCConferenceID conference_id,
  2394. UserID requesting_node,
  2395. GCCResult result
  2396. );
  2397. GCCError APIENTRY GCCConferenceDisconnectRequest
  2398. (
  2399. GCCConferenceID conference_id
  2400. );
  2401. GCCError APIENTRY GCCConferenceTerminateRequest
  2402. (
  2403. GCCConferenceID conference_id,
  2404. GCCReason reason
  2405. );
  2406. GCCError APIENTRY GCCConferenceEjectUserRequest
  2407. (
  2408. GCCConferenceID conference_id,
  2409. UserID ejected_node_id,
  2410. GCCReason reason
  2411. );
  2412. GCCError APIENTRY GCCConferenceTransferRequest
  2413. (
  2414. GCCConferenceID conference_id,
  2415. GCCConferenceName FAR * destination_conference_name,
  2416. GCCNumericString destination_conference_modifier,
  2417. unsigned short number_of_destination_addresses,
  2418. GCCNetworkAddress FAR * FAR *
  2419. destination_address_list,
  2420. unsigned short number_of_destination_nodes,
  2421. UserID FAR * destination_node_list,
  2422. GCCPassword FAR * password
  2423. );
  2424. /********** Conference Roster Functions ***********/
  2425. GCCError APIENTRY GCCAnnouncePresenceRequest
  2426. (
  2427. GCCConferenceID conference_id,
  2428. GCCNodeType node_type,
  2429. GCCNodeProperties node_properties,
  2430. GCCUnicodeString node_name,
  2431. unsigned short number_of_participants,
  2432. GCCUnicodeString FAR * participant_name_list,
  2433. GCCUnicodeString site_information,
  2434. unsigned short number_of_network_addresses,
  2435. GCCNetworkAddress FAR * FAR * network_address_list,
  2436. GCCOctetString FAR * alternative_node_id,
  2437. unsigned short number_of_user_data_members,
  2438. GCCUserData FAR * FAR * user_data_list
  2439. );
  2440. /********** Conductorship Functions ***********/
  2441. GCCError APIENTRY GCCConductorAssignRequest
  2442. (
  2443. GCCConferenceID conference_id
  2444. );
  2445. GCCError APIENTRY GCCConductorReleaseRequest
  2446. (
  2447. GCCConferenceID conference_id
  2448. );
  2449. GCCError APIENTRY GCCConductorPleaseRequest
  2450. (
  2451. GCCConferenceID conference_id
  2452. );
  2453. GCCError APIENTRY GCCConductorGiveRequest
  2454. (
  2455. GCCConferenceID conference_id,
  2456. UserID recipient_node_id
  2457. );
  2458. GCCError APIENTRY GCCConductorGiveResponse
  2459. (
  2460. GCCConferenceID conference_id,
  2461. GCCResult result
  2462. );
  2463. GCCError APIENTRY GCCConductorPermitGrantRequest
  2464. (
  2465. GCCConferenceID conference_id,
  2466. unsigned short number_granted,
  2467. UserID FAR * granted_node_list,
  2468. unsigned short number_waiting,
  2469. UserID FAR * waiting_node_list
  2470. );
  2471. /********** Miscellaneous Functions ***********/
  2472. GCCError APIENTRY GCCConferenceTimeRemainingRequest
  2473. (
  2474. GCCConferenceID conference_id,
  2475. unsigned long time_remaining,
  2476. UserID node_id
  2477. );
  2478. GCCError APIENTRY GCCConferenceTimeInquireRequest
  2479. (
  2480. GCCConferenceID conference_id,
  2481. T120Boolean time_is_conference_wide
  2482. );
  2483. GCCError APIENTRY GCCConferenceExtendRequest
  2484. (
  2485. GCCConferenceID conference_id,
  2486. unsigned long extension_time,
  2487. T120Boolean time_is_conference_wide
  2488. );
  2489. GCCError APIENTRY GCCConferenceAssistanceRequest
  2490. (
  2491. GCCConferenceID conference_id,
  2492. unsigned short number_of_user_data_members,
  2493. GCCUserData FAR * FAR * user_data_list
  2494. );
  2495. GCCError APIENTRY GCCTextMessageRequest
  2496. (
  2497. GCCConferenceID conference_id,
  2498. GCCUnicodeString text_message,
  2499. UserID destination_node
  2500. );
  2501. /*********************************************************************
  2502. * *
  2503. * USER APPLICATION ENTRY POINTS *
  2504. * *
  2505. *********************************************************************/
  2506. /* Application Roster related function calls */
  2507. GCCError APIENTRY GCCApplicationEnrollRequest
  2508. (
  2509. GCCSapHandle sap_handle,
  2510. GCCConferenceID conference_id,
  2511. GCCSessionKey FAR * session_key,
  2512. T120Boolean enroll_actively,
  2513. UserID application_user_id,
  2514. T120Boolean is_conducting_capable,
  2515. MCSChannelType startup_channel_type,
  2516. unsigned short number_of_non_collapsed_caps,
  2517. GCCNonCollapsingCapability FAR * FAR *
  2518. non_collapsed_caps_list,
  2519. unsigned short number_of_collapsed_caps,
  2520. GCCApplicationCapability FAR * FAR *
  2521. collapsed_caps_list,
  2522. T120Boolean application_is_enrolled
  2523. );
  2524. /* Application Registry related function calls */
  2525. GCCError APIENTRY GCCRegisterChannelRequest
  2526. (
  2527. GCCSapHandle sap_handle,
  2528. GCCConferenceID conference_id,
  2529. GCCRegistryKey FAR * registry_key,
  2530. ChannelID channel_id
  2531. );
  2532. GCCError APIENTRY GCCRegistryAssignTokenRequest
  2533. (
  2534. GCCSapHandle sap_handle,
  2535. GCCConferenceID conference_id,
  2536. GCCRegistryKey FAR * registry_key
  2537. );
  2538. GCCError APIENTRY GCCRegistrySetParameterRequest
  2539. (
  2540. GCCSapHandle sap_handle,
  2541. GCCConferenceID conference_id,
  2542. GCCRegistryKey FAR * registry_key,
  2543. GCCOctetString FAR * parameter_value,
  2544. GCCModificationRights modification_rights
  2545. );
  2546. GCCError APIENTRY GCCRegistryRetrieveEntryRequest
  2547. (
  2548. GCCSapHandle sap_handle,
  2549. GCCConferenceID conference_id,
  2550. GCCRegistryKey FAR * registry_key
  2551. );
  2552. GCCError APIENTRY GCCRegistryDeleteEntryRequest
  2553. (
  2554. GCCSapHandle sap_handle,
  2555. GCCConferenceID conference_id,
  2556. GCCRegistryKey FAR * registry_key
  2557. );
  2558. GCCError APIENTRY GCCRegistryMonitorRequest
  2559. (
  2560. GCCSapHandle sap_handle,
  2561. GCCConferenceID conference_id,
  2562. T120Boolean enable_delivery,
  2563. GCCRegistryKey FAR * registry_key
  2564. );
  2565. GCCError APIENTRY GCCRegistryAllocateHandleRequest
  2566. (
  2567. GCCSapHandle sap_handle,
  2568. GCCConferenceID conference_id,
  2569. unsigned short number_of_handles
  2570. );
  2571. /*********************************************************************
  2572. * *
  2573. * SHARED ENTRY POINTS *
  2574. * *
  2575. *********************************************************************/
  2576. /* Use Zero for the SapHandle if your are the Node Controller */
  2577. GCCError APIENTRY GCCConferenceRosterInqRequest
  2578. (
  2579. GCCSapHandle sap_handle,
  2580. GCCConferenceID conference_id
  2581. );
  2582. GCCError APIENTRY GCCApplicationRosterInqRequest
  2583. (
  2584. GCCSapHandle sap_handle,
  2585. GCCConferenceID conference_id,
  2586. GCCSessionKey FAR * session_key
  2587. );
  2588. GCCError APIENTRY GCCConductorInquireRequest
  2589. (
  2590. GCCSapHandle sap_handle,
  2591. GCCConferenceID conference_id
  2592. );
  2593. GCCError APIENTRY GCCApplicationInvokeRequest
  2594. (
  2595. GCCSapHandle sap_handle,
  2596. GCCConferenceID conference_id,
  2597. unsigned short number_of_app_protocol_entities,
  2598. GCCAppProtocolEntity FAR * FAR *
  2599. app_protocol_entity_list,
  2600. unsigned short number_of_destination_nodes,
  2601. UserID FAR * list_of_destination_nodes
  2602. );
  2603. GCCError APIENTRY GCCConductorPermitAskRequest
  2604. (
  2605. GCCSapHandle sap_handle,
  2606. GCCConferenceID conference_id,
  2607. T120Boolean permission_is_granted
  2608. );
  2609. GCCError APIENTRY GCCGetLocalAddress
  2610. (
  2611. GCCConferenceID conference_id,
  2612. ConnectionHandle connection_handle,
  2613. TransportAddress transport_identifier,
  2614. int * transport_identifier_length,
  2615. TransportAddress local_address,
  2616. int * local_address_length
  2617. );
  2618. #endif