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.

950 lines
32 KiB

  1. /****************************************************************************
  2. *
  3. * $Archive: S:/STURGEON/SRC/INCLUDE/VCS/callcont.h_v $
  4. *
  5. * INTEL Corporation Prorietary Information
  6. *
  7. * This listing is supplied under the terms of a license agreement
  8. * with INTEL Corporation and may not be copied nor disclosed except
  9. * in accordance with the terms of that agreement.
  10. *
  11. * Copyright (c) 1993-1994 Intel Corporation.
  12. *
  13. * $Revision: 1.102 $
  14. * $Date: 13 Feb 1997 21:28:38 $
  15. * $Author: MANDREWS $
  16. *
  17. * Deliverable:
  18. *
  19. * Abstract:
  20. *
  21. *
  22. * Notes:
  23. *
  24. ***************************************************************************/
  25. #ifndef CALLCONT_H
  26. #define CALLCONT_H
  27. #if defined(CALL_CONTROL_EXPORT)
  28. #define CC_API __declspec (dllexport)
  29. #else // CALL_CONTROL_IMPORT
  30. #define CC_API __declspec (dllimport)
  31. #endif
  32. #pragma pack(push,8)
  33. #ifndef H245API_H
  34. #include "h245api.h"
  35. #endif H245API_H
  36. #ifndef CCERROR_H
  37. #include "ccerror.h"
  38. #endif CCERROR_H
  39. #ifdef __cplusplus
  40. extern "C" {
  41. #endif
  42. // Indication codes
  43. #define CC_RINGING_INDICATION 1
  44. #define CC_CONNECT_INDICATION 2
  45. #define CC_TX_CHANNEL_OPEN_INDICATION 3
  46. #define CC_RX_CHANNEL_REQUEST_INDICATION 4
  47. #define CC_RX_CHANNEL_CLOSE_INDICATION 5
  48. #define CC_MUTE_INDICATION 6
  49. #define CC_UNMUTE_INDICATION 7
  50. #define CC_PEER_ADD_INDICATION 8
  51. #define CC_PEER_DROP_INDICATION 9
  52. #define CC_PEER_CHANGE_CAP_INDICATION 10
  53. #define CC_CONFERENCE_TERMINATION_INDICATION 11
  54. #define CC_HANGUP_INDICATION 12
  55. #define CC_RX_NONSTANDARD_MESSAGE_INDICATION 13
  56. #define CC_MULTIPOINT_INDICATION 14
  57. #define CC_PEER_UPDATE_INDICATION 15
  58. #define CC_H245_MISCELLANEOUS_COMMAND_INDICATION 16
  59. #define CC_H245_MISCELLANEOUS_INDICATION_INDICATION 17
  60. #define CC_H245_CONFERENCE_REQUEST_INDICATION 18
  61. #define CC_H245_CONFERENCE_RESPONSE_INDICATION 19
  62. #define CC_H245_CONFERENCE_COMMAND_INDICATION 20
  63. #define CC_H245_CONFERENCE_INDICATION_INDICATION 21
  64. #define CC_FLOW_CONTROL_INDICATION 22
  65. #define CC_TX_CHANNEL_CLOSE_REQUEST_INDICATION 23
  66. #define CC_REQUEST_MODE_INDICATION 24
  67. #define CC_REQUEST_MODE_RESPONSE_INDICATION 25
  68. #define CC_VENDOR_ID_INDICATION 26
  69. #define CC_MAXIMUM_AUDIO_VIDEO_SKEW_INDICATION 27
  70. #define CC_T120_CHANNEL_REQUEST_INDICATION 28
  71. #define CC_T120_CHANNEL_OPEN_INDICATION 29
  72. #define CC_BANDWIDTH_CHANGED_INDICATION 30
  73. #define CC_ACCEPT_CHANNEL_INDICATION 31
  74. #define CC_TERMINAL_ID_REQUEST_INDICATION 32
  75. #define CC_PING_RESPONSE_INDICATION 33
  76. #define CC_TERMINAL_NUMBER_INDICATION 34
  77. // Conference configuration values; these are bit mask values
  78. #define CC_CONFIGURE_MULTIPOINT_CAPABLE 0x0001
  79. #define CC_CONFIGURE_FORCE_MC 0x0002
  80. // Timeout type codes
  81. #define CC_Q931_ALERTING_TIMEOUT 1
  82. #define CC_H245_RETRY_COUNT 2
  83. #define CC_H245_TIMEOUT 3
  84. // Conference termination reasons
  85. #define CC_PEER_HANGUP 0
  86. #define CC_GATEKEEPER_HANGUP 1
  87. typedef enum {
  88. CC_WILL_TRANSMIT_PREFERRED_MODE,
  89. CC_WILL_TRANSMIT_LESS_PREFERRED_MODE,
  90. CC_MODE_UNAVAILABLE,
  91. CC_MULTIPOINT_CONSTRAINT,
  92. CC_REQUEST_DENIED
  93. } CC_REQUEST_MODE_RESPONSE;
  94. typedef H245_TOTCAP_T CC_TERMCAP, *PCC_TERMCAP, **PPCC_TERMCAP;
  95. typedef struct {
  96. WORD wLength;
  97. PPCC_TERMCAP pTermCapArray;
  98. } CC_TERMCAPLIST, *PCC_TERMCAPLIST;
  99. typedef struct {
  100. WORD wLength;
  101. H245_TOTCAPDESC_T **pTermCapDescriptorArray;
  102. } CC_TERMCAPDESCRIPTORS, *PCC_TERMCAPDESCRIPTORS;
  103. typedef struct {
  104. BYTE bMCUNumber;
  105. BYTE bTerminalNumber;
  106. } CC_TERMINAL_LABEL, *PCC_TERMINAL_LABEL;
  107. typedef struct {
  108. CC_TERMINAL_LABEL TerminalLabel;
  109. CC_OCTETSTRING TerminalID;
  110. } CC_PARTICIPANTINFO, *PCC_PARTICIPANTINFO;
  111. typedef struct {
  112. WORD wLength;
  113. PCC_PARTICIPANTINFO ParticipantInfoArray;
  114. } CC_PARTICIPANTLIST, *PCC_PARTICIPANTLIST;
  115. typedef struct
  116. {
  117. BOOL bMaster;
  118. BOOL bMultipointController;
  119. BOOL bMultipointConference;
  120. CC_CONFERENCEID ConferenceID;
  121. CC_TERMINAL_LABEL LocalTerminalLabel;
  122. WORD wNumCalls;
  123. PCC_PARTICIPANTLIST pParticipantList;
  124. DWORD dwConferenceToken;
  125. DWORD dwBandwidthAllocated;
  126. DWORD dwBandwidthUsed;
  127. } CC_CONFERENCEATTRIBUTES, *PCC_CONFERENCEATTRIBUTES;
  128. typedef struct {
  129. BYTE bSessionID;
  130. BYTE bAssociatedSessionID;
  131. CC_OCTETSTRING SessionDescription;
  132. PCC_TERMCAP pTermCap;
  133. PCC_ADDR pRTPAddr;
  134. PCC_ADDR pRTCPAddr;
  135. } CC_SESSIONINFO, *PCC_SESSIONINFO;
  136. typedef struct {
  137. WORD wLength;
  138. PCC_SESSIONINFO SessionInfoArray;
  139. } CC_SESSIONTABLE, *PCC_SESSIONTABLE;
  140. typedef struct
  141. {
  142. CC_HCALL hCall;
  143. PCC_ALIASNAMES pCallerAliasNames;
  144. PCC_ALIASNAMES pCalleeAliasNames;
  145. PCC_NONSTANDARDDATA pNonStandardData;
  146. PWSTR pszDisplay;
  147. PCC_VENDORINFO pVendorInfo;
  148. WORD wGoal;
  149. CC_CONFERENCEID ConferenceID;
  150. PCC_ADDR pCallerAddr;
  151. PCC_ADDR pCalleeAddr;
  152. DWORD dwListenToken;
  153. } CC_LISTEN_CALLBACK_PARAMS, *PCC_LISTEN_CALLBACK_PARAMS;
  154. typedef void * PCC_CONFERENCE_CALLBACK_PARAMS;
  155. // CC_RINGING_INDICATION callback parameters (pConferenceCallbackParams)
  156. typedef struct
  157. {
  158. PCC_NONSTANDARDDATA pNonStandardData;
  159. DWORD dwUserToken;
  160. } CC_RINGING_CALLBACK_PARAMS, *PCC_RINGING_CALLBACK_PARAMS;
  161. // CC_CONNECT_INDICATION callback parameters (pConferenceCallbackParams)
  162. typedef struct
  163. {
  164. PCC_NONSTANDARDDATA pNonStandardData;
  165. PWSTR pszPeerDisplay;
  166. BYTE bRejectReason;
  167. PCC_TERMCAPLIST pTermCapList;
  168. PCC_TERMCAP pH2250MuxCapability;
  169. PCC_TERMCAPDESCRIPTORS pTermCapDescriptors;
  170. PCC_ADDR pLocalAddr;
  171. PCC_ADDR pPeerAddr;
  172. PCC_VENDORINFO pVendorInfo;
  173. BOOL bMultipointConference;
  174. PCC_CONFERENCEID pConferenceID;
  175. PCC_ADDR pMCAddress;
  176. PCC_ADDR pAlternateAddress;
  177. DWORD dwUserToken;
  178. } CC_CONNECT_CALLBACK_PARAMS, *PCC_CONNECT_CALLBACK_PARAMS;
  179. // CC_TX_CHANNEL_OPEN_INDICATION callback parameters (pConferenceCallbackParams)
  180. typedef struct
  181. {
  182. CC_HCHANNEL hChannel;
  183. PCC_ADDR pPeerRTPAddr;
  184. PCC_ADDR pPeerRTCPAddr;
  185. DWORD dwRejectReason;
  186. DWORD dwUserToken;
  187. } CC_TX_CHANNEL_OPEN_CALLBACK_PARAMS, *PCC_TX_CHANNEL_OPEN_CALLBACK_PARAMS;
  188. // CC_RX_CHANNEL_REQUEST_INDICATION callback parameters (pConferenceCallbackParams)
  189. typedef struct
  190. {
  191. CC_HCHANNEL hChannel;
  192. PCC_TERMCAP pChannelCapability;
  193. BYTE bSessionID;
  194. BYTE bAssociatedSessionID;
  195. PCC_ADDR pPeerRTPAddr;
  196. PCC_ADDR pPeerRTCPAddr;
  197. BYTE bRTPPayloadType;
  198. BOOL bSilenceSuppression;
  199. CC_TERMINAL_LABEL TerminalLabel;
  200. } CC_RX_CHANNEL_REQUEST_CALLBACK_PARAMS, *PCC_RX_CHANNEL_REQUEST_CALLBACK_PARAMS;
  201. // CC_RX_CHANNEL_CLOSE_INDICATION callback parameters (pConferenceCallbackParams)
  202. typedef struct
  203. {
  204. CC_HCHANNEL hChannel;
  205. } CC_RX_CHANNEL_CLOSE_CALLBACK_PARAMS, *PCC_RX_CHANNEL_CLOSE_CALLBACK_PARAMS;
  206. // CC_MUTE_INDICATION callback parameters (pConferenceCallbackParams)
  207. typedef struct
  208. {
  209. CC_HCHANNEL hChannel;
  210. } CC_MUTE_CALLBACK_PARAMS, *PCC_MUTE_CALLBACK_PARAMS;
  211. // CC_UNMUTE_INDICATION callback parameters (pConferenceCallbackParams)
  212. typedef struct
  213. {
  214. CC_HCHANNEL hChannel;
  215. } CC_UNMUTE_CALLBACK_PARAMS, *PCC_UNMUTE_CALLBACK_PARAMS;
  216. // CC_PEER_ADD_INDICATION callback parameters (pConferenceCallbackParams)
  217. typedef struct
  218. {
  219. CC_HCALL hCall;
  220. CC_TERMINAL_LABEL TerminalLabel;
  221. PCC_OCTETSTRING pPeerTerminalID;
  222. } CC_PEER_ADD_CALLBACK_PARAMS, *PCC_PEER_ADD_CALLBACK_PARAMS;
  223. // CC_PEER_DROP_INDICATION callback parameters (pConferenceCallbackParams)
  224. typedef struct
  225. {
  226. CC_HCALL hCall;
  227. CC_TERMINAL_LABEL TerminalLabel;
  228. PCC_OCTETSTRING pPeerTerminalID;
  229. } CC_PEER_DROP_CALLBACK_PARAMS, *PCC_PEER_DROP_CALLBACK_PARAMS;
  230. // CC_PEER_CHANGE_CAP_INDICATION callback parameters (pConferenceCallbackParams)
  231. typedef struct
  232. {
  233. PCC_TERMCAPLIST pTermCapList;
  234. PCC_TERMCAP pH2250MuxCapability;
  235. PCC_TERMCAPDESCRIPTORS pTermCapDescriptors;
  236. } CC_PEER_CHANGE_CAP_CALLBACK_PARAMS, *PCC_PEER_CHANGE_CAP_CALLBACK_PARAMS;
  237. // CC_CONFERENCE_TERMINATION_INDICATION callback parameters (pConferenceCallbackParams)
  238. typedef struct
  239. {
  240. DWORD dwReason;
  241. } CC_CONFERENCE_TERMINATION_CALLBACK_PARAMS, *PCC_CONFERENCE_TERMINATION_CALLBACK_PARAMS;
  242. // CC_HANGUP_INDICATION callback parameters (pConferenceCallbackParams)
  243. typedef struct
  244. {
  245. DWORD dwUserToken;
  246. } CC_HANGUP_CALLBACK_PARAMS, *PCC_HANGUP_CALLBACK_PARAMS;
  247. // CC_RX_NONSTANDARD_MESSAGE_INDICATION callback parameters (pConferenceCallbackParams)
  248. typedef struct
  249. {
  250. CC_HCALL hCall;
  251. CC_TERMINAL_LABEL InitiatorTerminalLabel;
  252. BYTE bH245MessageType;
  253. CC_NONSTANDARDDATA NonStandardData;
  254. } CC_RX_NONSTANDARD_MESSAGE_CALLBACK_PARAMS, *PCC_RX_NONSTANDARD_MESSAGE_CALLBACK_PARAMS;
  255. // CC_MULTIPOINT_INDICATION callback parameters (pConferenceCallbackParams)
  256. typedef struct {
  257. PCC_PARTICIPANTINFO pTerminalInfo;
  258. PCC_SESSIONTABLE pSessionTable;
  259. } CC_MULTIPOINT_CALLBACK_PARAMS, *PCC_MULTIPOINT_CALLBACK_PARAMS;
  260. // CC_PEER_UPDATE_INDICATION callback parameters (pConferenceCallbackParams)
  261. typedef struct
  262. {
  263. CC_HCALL hCall;
  264. CC_TERMINAL_LABEL TerminalLabel;
  265. PCC_OCTETSTRING pPeerTerminalID;
  266. } CC_PEER_UPDATE_CALLBACK_PARAMS, *PCC_PEER_UPDATE_CALLBACK_PARAMS;
  267. // CC_H245_MISCELLANEOUS_COMMAND_INDICATION callback parameters (pConferenceCallbackParams)
  268. typedef struct
  269. {
  270. CC_HCALL hCall;
  271. CC_TERMINAL_LABEL InitiatorTerminalLabel;
  272. CC_HCHANNEL hChannel;
  273. BOOL bH323ActionRequired;
  274. MiscellaneousCommand *pMiscellaneousCommand;
  275. } CC_H245_MISCELLANEOUS_COMMAND_CALLBACK_PARAMS, *PCC_H245_MISCELLANEOUS_COMMAND_CALLBACK_PARAMS;
  276. // CC_H245_MISCELLANEOUS_INDICATION_INDICATION callback parameters (pConferenceCallbackParams)
  277. typedef struct
  278. {
  279. CC_HCALL hCall;
  280. CC_TERMINAL_LABEL InitiatorTerminalLabel;
  281. CC_HCHANNEL hChannel;
  282. MiscellaneousIndication *pMiscellaneousIndication;
  283. } CC_H245_MISCELLANEOUS_INDICATION_CALLBACK_PARAMS, *PCC_H245_MISCELLANEOUS_INDICATION_CALLBACK_PARAMS;
  284. // CC_H245_CONFERENCE_REQUEST_INDICATION callback parameters (pConferenceCallbackParams)
  285. typedef struct
  286. {
  287. CC_HCALL hCall;
  288. CC_TERMINAL_LABEL InitiatorTerminalLabel;
  289. H245_CONFER_REQ_ENUM_T RequestType;
  290. CC_TERMINAL_LABEL TerminalLabel;
  291. } CC_H245_CONFERENCE_REQUEST_CALLBACK_PARAMS, *PCC_H245_CONFERENCE_REQUEST_CALLBACK_PARAMS;
  292. // CC_H245_CONFERENCE_RESPONSE_INDICATION callback parameters (pConferenceCallbackParams)
  293. typedef struct
  294. {
  295. CC_HCALL hCall;
  296. CC_TERMINAL_LABEL InitiatorTerminalLabel;
  297. H245_CONFER_RSP_ENUM_T ResponseType;
  298. CC_TERMINAL_LABEL TerminalLabel;
  299. PCC_OCTETSTRING pOctetString;
  300. CC_TERMINAL_LABEL *pTerminalList;
  301. WORD wTerminalListCount;
  302. } CC_H245_CONFERENCE_RESPONSE_CALLBACK_PARAMS, *PCC_H245_CONFERENCE_RESPONSE_CALLBACK_PARAMS;
  303. // CC_H245_CONFERENCE_COMMAND_INDICATION callback parameters (pConferenceCallbackParams)
  304. typedef struct
  305. {
  306. CC_HCALL hCall;
  307. CC_TERMINAL_LABEL InitiatorTerminalLabel;
  308. CC_HCHANNEL hChannel;
  309. H245_CONFER_CMD_ENUM_T CommandType;
  310. CC_TERMINAL_LABEL TerminalLabel;
  311. } CC_H245_CONFERENCE_COMMAND_CALLBACK_PARAMS, *PCC_H245_CONFERENCE_COMMAND_CALLBACK_PARAMS;
  312. // CC_H245_CONFERENCE_INDICATION_INDICATION callback parameters (pConferenceCallbackParams)
  313. typedef struct
  314. {
  315. CC_HCALL hCall;
  316. CC_TERMINAL_LABEL InitiatorTerminalLabel;
  317. H245_CONFER_IND_ENUM_T IndicationType;
  318. BYTE bSBENumber;
  319. CC_TERMINAL_LABEL TerminalLabel;
  320. } CC_H245_CONFERENCE_INDICATION_CALLBACK_PARAMS, *PCC_H245_CONFERENCE_INDICATION_CALLBACK_PARAMS;
  321. // CC_FLOW_CONTROL_INDICATION callback parameters (pConferenceCallbackParams)
  322. typedef struct {
  323. CC_HCHANNEL hChannel;
  324. DWORD dwRate;
  325. } CC_FLOW_CONTROL_CALLBACK_PARAMS, *PCC_FLOW_CONTROL_CALLBACK_PARAMS;
  326. // CC_TX_CHANNEL_CLOSE_REQUEST_INDICATION callback parameters (pConferenceCallbackParams)
  327. typedef struct {
  328. CC_HCHANNEL hChannel;
  329. } CC_TX_CHANNEL_CLOSE_REQUEST_CALLBACK_PARAMS, *PCC_TX_CHANNEL_CLOSE_REQUEST_CALLBACK_PARAMS;
  330. // CC_REQUEST_MODE_INDICATION callback parameters (pConferenceCallbackParams)
  331. typedef struct {
  332. CC_HCALL hCall;
  333. CC_TERMINAL_LABEL InitiatorTerminalLabel;
  334. RequestedModesLink pRequestedModes;
  335. } CC_REQUEST_MODE_CALLBACK_PARAMS, *PCC_REQUEST_MODE_CALLBACK_PARAMS;
  336. // CC_REQUEST_MODE_RESPONSE_INDICATION callback parameters (pConferenceCallbackParams)
  337. typedef struct {
  338. CC_HCALL hCall;
  339. CC_TERMINAL_LABEL TerminalLabel;
  340. CC_REQUEST_MODE_RESPONSE RequestModeResponse;
  341. } CC_REQUEST_MODE_RESPONSE_CALLBACK_PARAMS, *PCC_REQUEST_MODE_RESPONSE_CALLBACK_PARAMS;
  342. // CC_VENDOR_ID_INDICATION callback parameters (pConferenceCallbackParams)
  343. typedef struct {
  344. CC_HCALL hCall;
  345. CC_TERMINAL_LABEL InitiatorTerminalLabel;
  346. PCC_NONSTANDARDDATA pNonStandardData;
  347. PCC_OCTETSTRING pProductNumber;
  348. PCC_OCTETSTRING pVersionNumber;
  349. } CC_VENDOR_ID_CALLBACK_PARAMS, *PCC_VENDOR_ID_CALLBACK_PARAMS;
  350. // CC_MAXIMUM_AUDIO_VIDEO_SKEW_INDICATION callback parameters (pConferenceCallbackParams)
  351. typedef struct {
  352. CC_HCHANNEL hChannel1;
  353. CC_HCHANNEL hChannel2;
  354. WORD wMaximumSkew;
  355. } CC_MAXIMUM_AUDIO_VIDEO_SKEW_CALLBACK_PARAMS, *PCC_MAXIMUM_AUDIO_VIDEO_SKEW_CALLBACK_PARAMS;
  356. // CC_T120_CHANNEL_OPEN_INDICATION callback parameters (pConferenceCallbackParams)
  357. typedef struct {
  358. CC_HCHANNEL hChannel;
  359. CC_HCALL hCall;
  360. BOOL bAssociateConference;
  361. PCC_OCTETSTRING pExternalReference;
  362. PCC_ADDR pAddr;
  363. DWORD dwRejectReason;
  364. DWORD dwUserToken;
  365. } CC_T120_CHANNEL_OPEN_CALLBACK_PARAMS, *PCC_T120_CHANNEL_OPEN_CALLBACK_PARAMS;
  366. // CC_T120_CHANNEL_REQUEST_INDICATION callback parameters (pConferenceCallbackParams)
  367. typedef struct {
  368. CC_HCHANNEL hChannel;
  369. BOOL bAssociateConference;
  370. PCC_OCTETSTRING pExternalReference;
  371. PCC_ADDR pAddr;
  372. BOOL bMultipointController;
  373. CC_TERMINAL_LABEL TerminalLabel;
  374. } CC_T120_CHANNEL_REQUEST_CALLBACK_PARAMS, *PCC_T120_CHANNEL_REQUEST_CALLBACK_PARAMS;
  375. typedef struct {
  376. CC_HCALL hCall;
  377. DWORD dwBandwidthTotal;
  378. long lBandwidthChange;
  379. } CC_BANDWIDTH_CALLBACK_PARAMS, *PCC_BANDWIDTH_CALLBACK_PARAMS;
  380. // CC_ACCEPT_CHANNEL_INDICATION callback parameters (pConferenceCallbackParams)
  381. typedef struct
  382. {
  383. CC_HCHANNEL hChannel;
  384. } CC_ACCEPT_CHANNEL_CALLBACK_PARAMS, *PCC_ACCEPT_CHANNEL_CALLBACK_PARAMS;
  385. // CC_PING_RESPONSE_INDICATION callback parameters (pConferenceCallbackParams)
  386. typedef struct
  387. {
  388. CC_HCALL hCall;
  389. CC_TERMINAL_LABEL TerminalLabel;
  390. BOOL bResponse;
  391. } CC_PING_RESPONSE_CALLBACK_PARAMS, *PCC_PING_RESPONSE_CALLBACK_PARAMS;
  392. #ifndef NO_APIS
  393. typedef void (*CC_LISTEN_CALLBACK)( HRESULT hStatus,
  394. PCC_LISTEN_CALLBACK_PARAMS ListenCallbackParams);
  395. typedef HRESULT (*CC_CONFERENCE_CALLBACK)(
  396. BYTE bIndication,
  397. HRESULT hStatus,
  398. CC_HCONFERENCE hConference,
  399. DWORD dwConferenceToken,
  400. PCC_CONFERENCE_CALLBACK_PARAMS pConferenceCallbackParams);
  401. typedef HRESULT (*CC_SESSIONTABLE_CONSTRUCTOR)(
  402. CC_HCONFERENCE hConference,
  403. DWORD dwConferenceToken,
  404. BOOL bCreate,
  405. BOOL *pbSessionTableChanged,
  406. WORD wListCount,
  407. PCC_TERMCAPLIST pTermCapList[],
  408. PCC_TERMCAPDESCRIPTORS pTermCapDescriptors[],
  409. PCC_SESSIONTABLE *ppSessionTable);
  410. typedef HRESULT (*CC_TERMCAP_CONSTRUCTOR)(
  411. CC_HCONFERENCE hConference,
  412. DWORD dwConferenceToken,
  413. BOOL bCreate,
  414. BOOL *pbTermCapsChanged,
  415. WORD wListCount,
  416. PCC_TERMCAPLIST pInTermCapList[],
  417. PCC_TERMCAPDESCRIPTORS pInTermCapDescriptors[],
  418. PCC_TERMCAPLIST *ppOutTermCapList,
  419. PCC_TERMCAPDESCRIPTORS *ppOutTermCapDescriptors);
  420. CC_API
  421. HRESULT CC_AcceptCall( CC_HCONFERENCE hConference,
  422. PCC_NONSTANDARDDATA pNonStandardData,
  423. PWSTR pszDisplay,
  424. CC_HCALL hCall,
  425. DWORD dwBandwidth,
  426. DWORD dwUserToken);
  427. typedef HRESULT (*CC_ACCEPTCALL)( CC_HCONFERENCE hConference,
  428. PCC_NONSTANDARDDATA pNonStandardData,
  429. PWSTR pszDisplay,
  430. CC_HCALL hCall,
  431. DWORD dwBandwidth,
  432. DWORD dwUserToken);
  433. CC_API
  434. HRESULT CC_AcceptChannel( CC_HCHANNEL hChannel,
  435. PCC_ADDR pRTPAddr,
  436. PCC_ADDR pRTCPAddr,
  437. DWORD dwChannelBitRate);
  438. typedef HRESULT (*CC_ACCEPTCHANNEL) ( CC_HCHANNEL hChannel,
  439. PCC_ADDR pRTPAddr,
  440. PCC_ADDR pRTCPAddr,
  441. DWORD dwChannelBitRate);
  442. CC_API
  443. HRESULT CC_AcceptT120Channel( CC_HCHANNEL hChannel,
  444. BOOL bAssociateConference,
  445. PCC_OCTETSTRING pExternalReference,
  446. PCC_ADDR pAddr);
  447. typedef HRESULT (*CC_ACCEPTT120CHANNEL)(CC_HCHANNEL hChannel,
  448. BOOL bAssociateConference,
  449. PCC_OCTETSTRING pExternalReference,
  450. PCC_ADDR pAddr);
  451. CC_API
  452. HRESULT CC_CallListen( PCC_HLISTEN phListen,
  453. PCC_ADDR pListenAddr,
  454. PCC_ALIASNAMES pLocalAliasNames,
  455. DWORD dwListenToken,
  456. CC_LISTEN_CALLBACK ListenCallback);
  457. typedef HRESULT (*CC_CALLLISTEN)( PCC_HLISTEN phListen,
  458. PCC_ADDR pListenAddr,
  459. PCC_ALIASNAMES pLocalAliasNames,
  460. DWORD dwListenToken,
  461. CC_LISTEN_CALLBACK ListenCallback);
  462. CC_API
  463. HRESULT CC_CancelCall( CC_HCALL hCall);
  464. typedef HRESULT (*CC_CANCELCALL)( CC_HCALL hCall);
  465. CC_API
  466. HRESULT CC_CancelListen( CC_HLISTEN hListen);
  467. typedef HRESULT (*CC_CANCELLISTEN)( CC_HLISTEN hListen);
  468. CC_API
  469. HRESULT CC_ChangeConferenceCapabilities(
  470. CC_HCONFERENCE hConference,
  471. PCC_TERMCAPLIST pTermCapList,
  472. PCC_TERMCAPDESCRIPTORS pTermCapDescriptors);
  473. typedef HRESULT (*CC_CHANGECONFERENCECAPABILITIES)(
  474. CC_HCONFERENCE hConference,
  475. PCC_TERMCAPLIST pTermCapList,
  476. PCC_TERMCAPDESCRIPTORS pTermCapDescriptors);
  477. CC_API
  478. HRESULT CC_CloseChannel( CC_HCHANNEL hChannel);
  479. typedef HRESULT (*CC_CLOSECHANNEL)( CC_HCHANNEL hChannel);
  480. CC_API
  481. HRESULT CC_CloseChannelResponse( CC_HCHANNEL hChannel,
  482. BOOL bWillCloseChannel);
  483. typedef HRESULT (*CC_CLOSECHANNELRESPONSE)(
  484. CC_HCHANNEL hChannel,
  485. BOOL bWillCloseChannel);
  486. CC_API
  487. HRESULT CC_CreateConference( PCC_HCONFERENCE phConference,
  488. PCC_CONFERENCEID pConferenceID,
  489. DWORD dwConferenceConfiguration,
  490. PCC_TERMCAPLIST pTermCapList,
  491. PCC_TERMCAPDESCRIPTORS pTermCapDescriptors,
  492. PCC_VENDORINFO pVendorInfo,
  493. PCC_OCTETSTRING pTerminalID,
  494. DWORD dwConferenceToken,
  495. CC_TERMCAP_CONSTRUCTOR TermCapConstructor,
  496. CC_SESSIONTABLE_CONSTRUCTOR SessionTableConstructor,
  497. CC_CONFERENCE_CALLBACK ConferenceCallback);
  498. typedef HRESULT (*CC_CREATECONFERENCE) (PCC_HCONFERENCE phConference,
  499. PCC_CONFERENCEID pConferenceID,
  500. DWORD dwConferenceConfiguration,
  501. PCC_TERMCAPLIST pTermCapList,
  502. PCC_TERMCAPDESCRIPTORS pTermCapDescriptors,
  503. PCC_VENDORINFO pVendorInfo,
  504. PCC_OCTETSTRING pTerminalID,
  505. DWORD dwConferenceToken,
  506. CC_TERMCAP_CONSTRUCTOR TermCapConstructor,
  507. CC_SESSIONTABLE_CONSTRUCTOR SessionTableConstructor,
  508. CC_CONFERENCE_CALLBACK ConferenceCallback);
  509. CC_API
  510. HRESULT CC_DestroyConference( CC_HCONFERENCE hConference,
  511. BOOL bAutoAccept);
  512. typedef HRESULT (*CC_DESTROYCONFERENCE)(CC_HCONFERENCE hConference,
  513. BOOL bAutoAccept);
  514. CC_API
  515. HRESULT CC_EnumerateConferences( PWORD pwNumConferences,
  516. CC_HCONFERENCE ConferenceList[]);
  517. typedef HRESULT (*CC_ENUMERATECONFERENCES)(
  518. PWORD pwNumConferences,
  519. CC_HCONFERENCE ConferenceList[]);
  520. CC_API
  521. HRESULT CC_FlowControl( CC_HCHANNEL hChannel,
  522. DWORD dwRate);
  523. typedef HRESULT (*CC_FLOWCONTROL)( CC_HCHANNEL hChannel,
  524. DWORD dwRate);
  525. CC_API
  526. HRESULT CC_GetCallControlVersion( WORD wArraySize,
  527. PWSTR pszVersion);
  528. typedef HRESULT (*CC_GETCALLCONTROLVERSION)
  529. (WORD wArraySize,
  530. PWSTR pszVersion);
  531. CC_API
  532. HRESULT CC_GetConferenceAttributes( CC_HCONFERENCE hConference,
  533. PCC_CONFERENCEATTRIBUTES pConferenceAttributes);
  534. typedef HRESULT (*CC_GETCONFERENCEATTRIBUTES)
  535. (CC_HCONFERENCE hConference,
  536. PCC_CONFERENCEATTRIBUTES pConferenceAttributes);
  537. CC_API
  538. HRESULT CC_H245ConferenceRequest( CC_HCALL hCall,
  539. H245_CONFER_REQ_ENUM_T RequestType,
  540. CC_TERMINAL_LABEL TerminalLabel);
  541. typedef HRESULT (*CC_H245CONFERENCEREQUEST)(
  542. CC_HCALL hCall,
  543. H245_CONFER_REQ_ENUM_T RequestType,
  544. CC_TERMINAL_LABEL TerminalLabel);
  545. CC_API
  546. HRESULT CC_H245ConferenceResponse( CC_HCALL hCall,
  547. H245_CONFER_RSP_ENUM_T ResponseType,
  548. CC_TERMINAL_LABEL TerminalLabel,
  549. PCC_OCTETSTRING pOctetString,
  550. CC_TERMINAL_LABEL *pTerminalList,
  551. WORD wTerminalListCount);
  552. typedef HRESULT (*CC_H245CONFERENCERESPONSE)(
  553. CC_HCALL hCall,
  554. H245_CONFER_RSP_ENUM_T ResponseType,
  555. CC_TERMINAL_LABEL TerminalLabel,
  556. PCC_OCTETSTRING pOctetString,
  557. CC_TERMINAL_LABEL *pTerminalList,
  558. WORD wTerminalListCount);
  559. CC_API
  560. HRESULT CC_H245ConferenceCommand( CC_HCALL hCall,
  561. CC_HCHANNEL hChannel,
  562. H245_CONFER_CMD_ENUM_T CommandType,
  563. CC_TERMINAL_LABEL TerminalLabel);
  564. typedef HRESULT (*CC_H245CONFERENCECOMMAND)(
  565. CC_HCALL hCall,
  566. CC_HCHANNEL hChannel,
  567. H245_CONFER_CMD_ENUM_T CommandType,
  568. CC_TERMINAL_LABEL TerminalLabel);
  569. CC_API
  570. HRESULT CC_H245ConferenceIndication( CC_HCALL hCall,
  571. H245_CONFER_IND_ENUM_T IndicationType,
  572. BYTE bSBENumber,
  573. CC_TERMINAL_LABEL TerminalLabel);
  574. typedef HRESULT (*CC_H245CONFERENCEINDICATION)(
  575. CC_HCALL hCall,
  576. H245_CONFER_IND_ENUM_T IndicationType,
  577. BYTE bSBENumber,
  578. CC_TERMINAL_LABEL TerminalLabel);
  579. CC_API
  580. HRESULT CC_H245MiscellaneousCommand( CC_HCALL hCall,
  581. CC_HCHANNEL hChannel,
  582. MiscellaneousCommand *pMiscellaneousCommand);
  583. typedef HRESULT (*CC_H245MISCELLANEOUSCOMMAND)(
  584. CC_HCALL hCall,
  585. CC_HCHANNEL hChannel,
  586. MiscellaneousCommand *pMiscellaneousCommand);
  587. CC_API
  588. HRESULT CC_H245MiscellaneousIndication(
  589. CC_HCALL hCall,
  590. CC_HCHANNEL hChannel,
  591. MiscellaneousIndication *pMiscellaneousIndication);
  592. typedef HRESULT (*CC_H245MISCELLANEOUSINDICATION)(
  593. CC_HCALL hCall,
  594. CC_HCHANNEL hChannel,
  595. MiscellaneousIndication *pMiscellaneousIndication);
  596. CC_API
  597. HRESULT CC_Hangup( CC_HCONFERENCE hConference,
  598. BOOL bTerminateConference,
  599. DWORD dwUserToken);
  600. typedef HRESULT (*CC_HANGUP)( CC_HCONFERENCE hConference,
  601. BOOL bTerminateConference,
  602. DWORD dwUserToken);
  603. CC_API
  604. HRESULT CC_MaximumAudioVideoSkew( CC_HCHANNEL hChannelAudio,
  605. CC_HCHANNEL hChannelVideo,
  606. WORD wMaximumSkew);
  607. typedef HRESULT (*CC_MAXIMUMAUDIOVIDEOSKEW)(
  608. CC_HCHANNEL hChannelAudio,
  609. CC_HCHANNEL hChannelVideo,
  610. WORD wMaximumSkew);
  611. CC_API
  612. HRESULT CC_Mute( CC_HCHANNEL hChannel);
  613. typedef HRESULT (*CC_MUTE)( CC_HCHANNEL hChannel);
  614. CC_API
  615. HRESULT CC_OpenChannel( CC_HCONFERENCE hConference,
  616. PCC_HCHANNEL phChannel,
  617. BYTE bSessionID,
  618. BYTE bAssociatedSessionID,
  619. BOOL bSilenceSuppression,
  620. PCC_TERMCAP pTermCap,
  621. PCC_ADDR pLocalRTCPAddr,
  622. BYTE bDynamicRTPPayloadType,
  623. DWORD dwChannelBitRate,
  624. DWORD dwUserToken);
  625. typedef HRESULT (*CC_OPENCHANNEL)( CC_HCONFERENCE hConference,
  626. PCC_HCHANNEL phChannel,
  627. BYTE bSessionID,
  628. BYTE bAssociatedSessionID,
  629. BOOL bSilenceSuppression,
  630. PCC_TERMCAP pTermCap,
  631. PCC_ADDR pLocalRTCPAddr,
  632. BYTE bDynamicRTPPayloadType,
  633. DWORD dwChannelBitRate,
  634. DWORD dwUserToken);
  635. CC_API
  636. HRESULT CC_OpenT120Channel( CC_HCONFERENCE hConference,
  637. PCC_HCHANNEL phChannel,
  638. BOOL bAssociateConference,
  639. PCC_OCTETSTRING pExternalReference,
  640. PCC_ADDR pAddr,
  641. DWORD dwChannelBitRate,
  642. DWORD dwUserToken);
  643. typedef HRESULT (*CC_OPENT120CHANNEL)( CC_HCONFERENCE hConference,
  644. PCC_HCHANNEL phChannel,
  645. BOOL bAssociateConference,
  646. PCC_OCTETSTRING pExternalReference,
  647. PCC_ADDR pAddr,
  648. DWORD dwChannelBitRate,
  649. DWORD dwUserToken);
  650. CC_API
  651. HRESULT CC_Ping( CC_HCALL hCall,
  652. DWORD dwTimeout);
  653. typedef HRESULT (*CC_PING)( CC_HCALL hCall,
  654. DWORD dwTimeout);
  655. CC_API
  656. HRESULT CC_PlaceCall( CC_HCONFERENCE hConference,
  657. PCC_HCALL phCall,
  658. PCC_ALIASNAMES pLocalAliasNames,
  659. PCC_ALIASNAMES pCalleeAliasNames,
  660. PCC_ALIASNAMES pCalleeExtraAliasNames,
  661. PCC_ALIASITEM pCalleeExtension,
  662. PCC_NONSTANDARDDATA pNonStandardData,
  663. PWSTR pszDisplay,
  664. PCC_ADDR pDestinationAddr,
  665. PCC_ADDR pConnectAddr,
  666. DWORD dwBandwidth,
  667. DWORD dwUserToken);
  668. typedef HRESULT (*CC_PLACECALL)( CC_HCONFERENCE hConference,
  669. PCC_HCALL phCall,
  670. PCC_ALIASNAMES pLocalAliasNames,
  671. PCC_ALIASNAMES pCalleeAliasNames,
  672. PCC_ALIASNAMES pCalleeExtraAliasNames,
  673. PCC_ALIASITEM pCalleeExtension,
  674. PCC_NONSTANDARDDATA pNonStandardData,
  675. PWSTR pszDisplay,
  676. PCC_ADDR pDestinationAddr,
  677. PCC_ADDR pConnectAddr,
  678. DWORD dwBandwidth,
  679. DWORD dwUserToken);
  680. CC_API
  681. HRESULT CC_RejectCall( BYTE bRejectReason,
  682. PCC_NONSTANDARDDATA pNonStandardData,
  683. CC_HCALL hCall);
  684. typedef HRESULT (*CC_REJECTCALL)( BYTE bRejectReason,
  685. PCC_NONSTANDARDDATA pNonStandardData,
  686. CC_HCALL hCall);
  687. CC_API
  688. HRESULT CC_RejectChannel( CC_HCHANNEL hChannel,
  689. DWORD dwRejectReason);
  690. typedef HRESULT (*CC_REJECTCHANNEL)( CC_HCHANNEL hChannel,
  691. DWORD dwRejectReason);
  692. CC_API
  693. HRESULT CC_RequestMode( CC_HCALL hCall,
  694. WORD wNumModeDescriptions,
  695. ModeDescription ModeDescriptions[]);
  696. typedef HRESULT (*CC_REQUESTMODE)( CC_HCALL hCall,
  697. WORD wNumModeDescriptions,
  698. ModeDescription ModeDescriptions[]);
  699. CC_API
  700. HRESULT CC_RequestModeResponse( CC_HCALL hCall,
  701. CC_REQUEST_MODE_RESPONSE RequestModeResponse);
  702. typedef HRESULT (*CC_REQUESTMODERESPONSE)(
  703. CC_HCALL hCall,
  704. CC_REQUEST_MODE_RESPONSE RequestModeResponse);
  705. CC_API
  706. HRESULT CC_SendNonStandardMessage( CC_HCALL hCall,
  707. BYTE bMessageType,
  708. CC_NONSTANDARDDATA NonStandardData);
  709. typedef HRESULT (*CC_SENDNONSTANDARDMESSAGE)(
  710. CC_HCALL hCall,
  711. BYTE bMessageType,
  712. CC_NONSTANDARDDATA NonStandardData);
  713. CC_API
  714. HRESULT CC_SendVendorID( CC_HCALL hCall,
  715. CC_NONSTANDARDDATA NonStandardData,
  716. PCC_OCTETSTRING pProductNumber,
  717. PCC_OCTETSTRING pVersionNumber);
  718. typedef HRESULT (*CC_SENDVENDORID)( CC_HCALL hCall,
  719. CC_NONSTANDARDDATA NonStandardData,
  720. PCC_OCTETSTRING pProductNumber,
  721. PCC_OCTETSTRING pVersionNumber);
  722. CC_API
  723. HRESULT CC_SetCallControlTimeout( WORD wType,
  724. DWORD dwDuration);
  725. typedef HRESULT (*CC_SETCALLCONTROLTIMEOUT)
  726. (WORD wType,
  727. DWORD dwDuration);
  728. CC_API
  729. HRESULT CC_SetTerminalID( CC_HCONFERENCE hConference,
  730. PCC_OCTETSTRING pTerminalID);
  731. typedef HRESULT (*CC_SETTERMINALID)( CC_HCONFERENCE hConference,
  732. PCC_OCTETSTRING pTerminalID);
  733. CC_API
  734. HRESULT CC_Shutdown();
  735. CC_API
  736. HRESULT CC_Initialize();
  737. typedef HRESULT (*CC_SHUTDOWN)();
  738. typedef HRESULT (*CC_INITIALIZE)();
  739. CC_API
  740. HRESULT CC_UnMute( CC_HCHANNEL hChannel);
  741. typedef HRESULT (*CC_UNMUTE)( CC_HCHANNEL hChannel);
  742. CC_API
  743. HRESULT CC_UpdatePeerList( CC_HCONFERENCE hConference);
  744. typedef HRESULT (*CC_UPDATEPEERLIST)( CC_HCONFERENCE hConference);
  745. CC_API
  746. HRESULT CC_UserInput( CC_HCALL hCall,
  747. PWSTR pszUserInput);
  748. typedef HRESULT (*CC_USERINPUT)( CC_HCALL hCall,
  749. PWSTR pszUserInput);
  750. // structure used for holding the entry points to the CallControl module
  751. typedef struct _CALLCONTROLAPI
  752. {
  753. CC_ACCEPTCALL CC_AcceptCall;
  754. CC_ACCEPTCHANNEL CC_AcceptChannel;
  755. CC_ACCEPTT120CHANNEL CC_AcceptT120Channel;
  756. CC_CALLLISTEN CC_CallListen;
  757. CC_CANCELCALL CC_CancelCall;
  758. CC_CANCELLISTEN CC_CancelListen;
  759. CC_CLOSECHANNEL CC_CloseChannel;
  760. CC_CLOSECHANNELRESPONSE CC_CloseChannelResponse;
  761. CC_CHANGECONFERENCECAPABILITIES CC_ChangeConferenceCapabilities;
  762. CC_CREATECONFERENCE CC_CreateConference;
  763. CC_DESTROYCONFERENCE CC_DestroyConference;
  764. CC_ENUMERATECONFERENCES CC_EnumerateConferences;
  765. CC_FLOWCONTROL CC_FlowControl;
  766. CC_GETCALLCONTROLVERSION CC_GetCallControlVersion;
  767. CC_GETCONFERENCEATTRIBUTES CC_GetConferenceAttributes;
  768. CC_H245CONFERENCEREQUEST CC_H245ConferenceRequest;
  769. CC_H245CONFERENCERESPONSE CC_H245ConferenceResponse;
  770. CC_H245CONFERENCECOMMAND CC_H245ConferenceCommand;
  771. CC_H245CONFERENCEINDICATION CC_H245ConferenceIndication;
  772. CC_H245MISCELLANEOUSCOMMAND CC_H245MiscellaneousCommand;
  773. CC_H245MISCELLANEOUSINDICATION CC_H245MiscellaneousIndication;
  774. CC_HANGUP CC_Hangup;
  775. CC_MAXIMUMAUDIOVIDEOSKEW CC_MaximumAudioVideoSkew;
  776. CC_MUTE CC_Mute;
  777. CC_OPENCHANNEL CC_OpenChannel;
  778. CC_OPENT120CHANNEL CC_OpenT120Channel;
  779. CC_PING CC_Ping;
  780. CC_PLACECALL CC_PlaceCall;
  781. CC_REJECTCALL CC_RejectCall;
  782. CC_REJECTCHANNEL CC_RejectChannel;
  783. CC_REQUESTMODE CC_RequestMode;
  784. CC_REQUESTMODERESPONSE CC_RequestModeResponse;
  785. CC_SENDNONSTANDARDMESSAGE CC_SendNonStandardMessage;
  786. CC_SENDVENDORID CC_SendVendorID;
  787. CC_SETCALLCONTROLTIMEOUT CC_SetCallControlTimeout;
  788. CC_SETTERMINALID CC_SetTerminalID;
  789. CC_SHUTDOWN CC_Shutdown;
  790. CC_INITIALIZE CC_Initialize;
  791. CC_UNMUTE CC_UnMute;
  792. CC_UPDATEPEERLIST CC_UpdatePeerList;
  793. CC_USERINPUT CC_UserInput;
  794. } CALLCONTROLAPI, *LPCALLCONTROLAPI;
  795. #endif
  796. #ifdef __cplusplus
  797. }
  798. #endif
  799. #pragma pack(pop)
  800. #endif CALLCONT_H