Source code of Windows XP (NT5)
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.

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