⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cmctrl.h

📁 RVGatekeeper SIP SDK
💻 H
📖 第 1 页 / 共 3 页
字号:
#ifdef __cplusplus
extern "C" {
#endif



/*

NOTICE:
This document contains information that is proprietary to RADVision LTD..
No part of this publication may be reproduced in any form whatsoever without 
written prior approval by RADVision LTD..

RADVision LTD. reserves the right to revise this publication and make changes 
without obligation to notify any person of such revisions or changes.

*/ 

#ifndef CMCTRL_H
#define CMCTRL_H

#ifndef CM_H
#error cmctrl.h included improperly. Use #include <cm.h> instead.
#else

#ifndef _TRANSPCAP_
#include <transpcap.h>
#endif



DECLARE_OPAQUE(HAPPCHAN);
DECLARE_OPAQUE(HCHAN);


typedef 
int
(*cmNewProtocolEH)(void);

/*
typedef 
int
(*cmNewProtocolEH)(
		IN	HPdlAProtocol		haProtocolParent,
		IN	HPdlSProtocol		hsProtocol,
		OUT	HPdlAProtocol*		lphaProtocol,
		IN	char*			protocolName,
		OUT	newProtocolEH*		newProtocol,
		OUT	newMessageEH*		newMessage,
                OUT     BOOL*                   selfDestructing         
);
------------------------------------------------------------------------- */


typedef enum
{
    cmChannelStateDialtone,
    cmChannelStateRingBack,
    cmChannelStateConnected,
    cmChannelStateDisconnected,
    cmChannelStateIdle,
    cmChannelStateOffering
} cmChannelState_e;

typedef enum
{
    cmChannelStateModeOn,
    cmChannelStateModeOff,

    cmChannelStateModeDisconnectedLocal,
    cmChannelStateModeDisconnectedRemote,
    cmChannelStateModeDisconnectedMasterSlaveConflict,
    cmChannelStateModeDuplex,
/* marina */
    cmChannelStateModeDisconnectedReasonUnknown,
    cmChannelStateModeDisconnectedReasonReopen,
    cmChannelStateModeDisconnectedReasonReservationFailure

} cmChannelStateMode_e;



typedef enum {
  cmCapReceive=1,
  cmCapTransmit=2,
  cmCapReceiveAndTransmit=3
} cmCapDirection;


typedef enum {
  cmCapEmpty=0,
  cmCapAudio=1,
  cmCapVideo=2,
  cmCapData=3,
  cmCapNonStandard=4,
  cmCapUserInput=5,
  cmCapConference=6,
  cmCapH235=7,
  cmCapMaxPendingReplacementFor=8
} cmCapDataType;



typedef struct {
  char *name;
  INT32 capabilityId; /* capabilityTableEntryNumber */
  int capabilityHandle; /* capability item message tree (video/audio/data/nonStandard) */
  cmCapDirection direction;
  cmCapDataType type;
} cmCapStruct;


typedef enum {
  cmCapAccept=1,
  cmCapReject
} cmCapStatus;


typedef enum {
  cmMSSlave=1,
  cmMSMaster,
  cmMSError
} cmMSStatus;



typedef enum {
  cmRequestCloseRequest, /* Received request to close channel */
  cmRequestCloseConfirm, /* Request to close this channel is confirmed */
  cmRequestCloseReject   /* Request to close this channel is rejected */
} cmRequestCloseStatus;


typedef enum {
  cmMediaLoopRequest,    /* Received request for a media loop on a channel */
  cmMediaLoopConfirm,    /* Media loop confirmed */
  cmMediaLoopOff         /* Media loop on channel is canceled */
} cmMediaLoopStatus;



typedef struct {
  char *data; /* general string formatted data (4 bytes/char) */
  int length; /* in bytes */
} cmUserInputData;


typedef enum {
  /* path in paranthesis indicates the nodeId syntax */
  cmReqModeRequest,    /* request mode (requestMode.requestedModes) */
  cmReqModeAccept,     /* request acknoledged (requestModeAck.response) */
  cmReqModeReject,     /* request rejected (requestModeReject.cause) */
  cmReqModeReleaseOut, /* Outgoing request released due to timeout (N/A) */
  cmReqModeReleaseIn   /* Incoming request released due to timeout (N/A) */
} cmReqModeStatus;


typedef enum {
  cmMiscMpOn,  /* multipoint mode command is on (set) */
  cmMiscMpOff  /* multipoint mode command is off (cancel) */
} cmMiscStatus;


typedef struct {
  char name[32];
  INT32 entryId; /* ModeElement node id */
} cmReqModeEntry;

typedef struct {
  UINT8 mcuNumber; /* constraint: 0..192 */
  UINT8 terminalNumber; /* constraint: 0..192 */
} cmTerminalLabel;


typedef enum {
  cmControlStateConnected,
  cmControlStateConference,    
  cmControlStateTransportConnected,
  cmControlStateTransportDisconnected,
/* marina */
  cmControlStateFastStart
} cmControlState;


typedef enum {
  cmControlStateModeNull
} cmControlStateMode;

/* marina */
typedef enum
{
  cmIssueJoin	=0,
  cmIssueQueryAndJoin,
  cmIssueCreate	,
  cmIssueInvite	,
  cmWaitForInvite,
  cmOriginateCall,
  cmWaitForCall,	
  cmIssueQuery	
} cmT120SetupProcedure;

typedef enum
{
  cmCloseReasonUnknown=0,
  cmCloseReasonReopen	,
  cmCloseReasonReservationFailure,
  cmCloseReasonNormal /* for request close only */
}cmCloseLcnReason;

typedef struct
{
  int redundancyEncodingMethodId;
  int secondaryEncodingId;
}cmRedundancyEncoding;

typedef enum
{
	cmVideoFreezePicture=0,
	cmVideoSendSyncEveryGOB,
	cmVideoSendSyncEveryGOBCancel,
	cmSwitchReceiveMediaOff,
	cmSwitchReceiveMediaOn,
	cmVideoFastUpdatePicture
}
cmMiscellaneousCommand;


#ifndef _FAST_START_H
#include <faststart.h>
#endif
#ifndef _REDENCOD_H
#include <redencod.h>
#endif
#ifndef _USER_INPUT_H
#include <userinput.h>
#endif

/* Callback function prototypes____________________________________________________________________________*/






/* --- Control session callback functions --- */

typedef int 
    (CALLCONV *cmEvCallCapabilitiesT)(
		IN      HAPPCALL            haCall,
		IN      HCALL               hsCall,
		IN      cmCapStruct*        capabilities[]);

typedef int 
    (CALLCONV *cmEvCallCapabilitiesExtT)(
		IN      HAPPCALL            haCall,
		IN      HCALL               hsCall,
		IN      cmCapStruct***      capabilities[]);

typedef int
    (CALLCONV *cmEvCallNewChannelT)(
		IN      HAPPCALL            haCall,
		IN      HCALL               hsCall,
		IN      HCHAN               hsChan,
		OUT     LPHAPPCHAN          lphaChan);

typedef int
    (CALLCONV *cmEvCallCapabilitiesResponseT)(
		IN      HAPPCALL            haCall,
		IN      HCALL               hsCall,
		IN      UINT32              status);

typedef int
    (CALLCONV *cmEvCallMasterSlaveStatusT)(
		IN      HAPPCALL            haCall,
		IN      HCALL               hsCall,
		IN      UINT32              status);

typedef int
    (CALLCONV *cmEvCallRoundTripDelayT)(
		IN      HAPPCALL            haCall,
		IN      HCALL               hsCall,
		IN      INT32               delay); /* positive: msec delay, negative: expiration */

typedef int
    (CALLCONV *cmEvCallUserInputT)(
		IN      HAPPCALL            haCall,
		IN      HCALL               hsCall,
		IN      INT32               userInputId /* user input node id */
		);

typedef int
    (CALLCONV *cmEvCallRequestModeT)(
	     /* Request to transmit the following modes preferences */
		IN      HAPPCALL            haCall,
		IN      HCALL               hsCall,
		IN      cmReqModeStatus     status,
		IN      INT32               nodeId /* pvt nodeId handle according to status */
		); 


typedef int
    (CALLCONV *cmEvCallMiscStatusT)(
		IN      HAPPCALL            haCall,
		IN      HCALL               hsCall,
		IN      cmMiscStatus        status);


typedef int
    (CALLCONV *cmEvCallControlStateChangedT)(
		IN      HAPPCALL            haCall,
		IN      HCALL               hsCall,
		IN      UINT32              state,
		IN      UINT32              stateMode);


/* marina */

typedef int
    (CALLCONV *cmEvCallMasterSlaveT)(
		IN      HAPPCALL            haCall,
		IN      HCALL               hsCall,
		IN      UINT32              terminalType,
    IN      UINT32              statusDeterminationNumber);







RVAPI int CALLCONV
cmCallMasterSlaveDetermineExt(
			   /*  Start master slave determination request ,
          Acknowledge to master slave determination request 
          set terminalType and determinationNumber .
          */
			   IN 	HCALL	 	hsCall,
			   IN   int             terminalType,
         IN   int     determinationNumber);
    
typedef  struct 
{
  cmEvCallCapabilitiesT           cmEvCallCapabilities;
  cmEvCallCapabilitiesExtT        cmEvCallCapabilitiesExt;
  cmEvCallNewChannelT             cmEvCallNewChannel;
  cmEvCallCapabilitiesResponseT   cmEvCallCapabilitiesResponse;    
  cmEvCallMasterSlaveStatusT      cmEvCallMasterSlaveStatus;
  cmEvCallRoundTripDelayT         cmEvCallRoundTripDelay;
  cmEvCallUserInputT              cmEvCallUserInput;
  cmEvCallRequestModeT            cmEvCallRequestMode;
  cmEvCallMiscStatusT             cmEvCallMiscStatus;
  cmEvCallControlStateChangedT	  cmEvCallControlStateChanged;  
/* marina */
  cmEvCallMasterSlaveT            cmEvCallMasterSlave;
} SCMCONTROLEVENT,*CMCONTROLEVENT;

typedef SCMCONTROLEVENT SCMSESSIONEVENT; /* for backward compatability */
typedef CMCONTROLEVENT CMSESSIONEVENT;




/* --- Control channels callback functions --- */

    
typedef int 
    (CALLCONV *cmEvChannelStateChangedT)(
		IN      HAPPCHAN            haChan,
		IN      HCHAN               hsChan,
		IN      UINT32              state,
		IN      UINT32              stateMode);

typedef int 
    (CALLCONV *cmEvChannelNewRateT)(
		IN      HAPPCHAN            haChan,
		IN      HCHAN               hsChan,
		IN      UINT32              rate);

typedef int 
    (CALLCONV *cmEvChannelMaxSkewT)(
		IN      HAPPCHAN            haChan1,
		IN      HCHAN               hsChan1,
		IN      HAPPCHAN            haChan2,                
		IN      HCHAN               hsChan2,
		IN      UINT32              skew);

typedef int 
    (CALLCONV *cmEvChannelSetAddressT)(
		IN      HAPPCHAN            haChan,
		IN      HCHAN               hsChan,
		IN      UINT32              ip,
		IN      UINT16              port);

typedef int 
    (CALLCONV *cmEvChannelSetRTCPAddressT)(
		IN      HAPPCHAN            haChan,
		IN      HCHAN               hsChan,
		IN      UINT32              ip,
		IN      UINT16              port);

typedef int
    (CALLCONV *cmEvChannelParametersT)(
		IN      HAPPCHAN            haChan,
		IN      HCHAN               hsChan,
		IN      char*               channelName,
		IN      HAPPCHAN            haChanSameSession,
		IN      HCHAN               hsChanSameSession,
		IN      HAPPCHAN            haChanAssociated,
		IN      HCHAN               hsChanAssociated,
		IN      UINT32              rate);

typedef int 
    (CALLCONV *cmEvChannelRTPDynamicPayloadTypeT)(
		IN      HAPPCHAN            haChan,
		IN      HCHAN               hsChan,
		IN      INT8                dynamicPayloadType);

typedef int 
    (CALLCONV *cmEvChannelVideoFastUpdatePictureT)(
		IN      HAPPCHAN            haChan,
		IN      HCHAN               hsChan);

typedef int 
    (CALLCONV *cmEvChannelVideoFastUpdateGOBT)(
		IN      HAPPCHAN            haChan,
		IN      HCHAN               hsChan,
		IN      int                 firstGOB,
		IN      int                 numberOfGOBs);

typedef int 
    (CALLCONV *cmEvChannelVideoFastUpdateMBT)(
		IN      HAPPCHAN            haChan,
		IN      HCHAN               hsChan,
		IN      int                 firstGOB,
		IN      int                 firstMB,
		IN      int                 numberOfMBs);

typedef int 
    (CALLCONV *cmEvChannelHandleT)(
		  /* provide data type tree handle for this channel */
		IN      HAPPCHAN            haChan,
		IN      HCHAN               hsChan,
		IN      int                 dataTypeHandle,
		IN      cmCapDataType       dataType);


typedef int 
    (CALLCONV *cmEvChannelGetRTCPAddressT)(
		IN      HAPPCHAN            haChan,
		IN      HCHAN               hsChan,
		IN      UINT32*             ip,
		IN      UINT16*             port);

typedef int 
    (CALLCONV *cmEvChannelRequestCloseStatusT)(
		IN      HAPPCHAN              haChan,
		IN      HCHAN                 hsChan,
		IN      cmRequestCloseStatus  status);

typedef int 
    (CALLCONV *cmEvChannelTSTOT)(
		IN      HAPPCHAN              haChan,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -