📄 cm.h
字号:
/***********************************************************************
Copyright (c) 2002 RADVISION Ltd.
************************************************************************
NOTICE:
This document contains information that is confidential and proprietary
to RADVISION Ltd.. No part of this document may be reproduced in any
form whatsoever without written prior approval by RADVISION Ltd..
RADVISION Ltd. reserve the right to revise this publication and make
changes without obligation to notify any person of such revisions or
changes.
***********************************************************************/
#ifndef CM_H
#define CM_H
#include "rvcommon.h"
#include "rv_defs.h"
#include "coder.h"
#include "pvaltree.h"
#include "ci.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Handles declaration */
RV_DECLARE_HANDLE(HAPP);
RV_DECLARE_HANDLE(HAPPAPP);
RV_DECLARE_HANDLE(HAPPCALL);
RV_DECLARE_HANDLE(HCALL);
RV_DECLARE_HANDLE(HPROTCONN);
RV_DECLARE_HANDLE(HPROTOCOL);
RV_DECLARE_HANDLE(HAPPCONN);
RV_DECLARE_HANDLE(HAPPPARTNER);
typedef enum
{
cmQ931TpktChannel=0,
cmH245TpktChannel
}cmTpktChanHandleType;
typedef enum
{
cmRasUdpChannel=0,
cmRasUdpChannelMCast
}cmUdpChanHandleType;
typedef struct
{
RvUint8 cmCodingStandard;
RvUint8 cmSpare;
RvUint8 cmLocation;
RvUint8 cmRecomendation; /* optional set to -1 if not used */
RvUint8 cmCauseValue;
}
cmCallCauseInfo;
typedef struct
{
RvUint8 cmCodingStandard;
RvUint8 cmCallStateValue;
}
cmCallStateInfo;
typedef struct
{
cmCallCauseInfo callCauseInfo;
cmCallStateInfo callStateInfo;
char display[128];
}cmCallStatusMessage;
typedef struct {
/* Set one of the following choises */
/* 1. object id */
char object[128]; /* in object identifier ASN format: "0 1 2" */
int objectLength; /* in bytes. <=0 if not set */
/* 2. h.221 id */
RvUint8 t35CountryCode;
RvUint8 t35Extension;
RvUint16 manufacturerCode;
} cmNonStandardIdentifier;
typedef struct
{
RvUint8 t35CountryCode;
RvUint8 t35Extension;
RvUint16 manufacturerCode;
} cmNonStandard;
typedef struct
{
cmNonStandard info;
int productLen;
int versionLen;
char productID[256];
char versionID[256];
} cmVendor;
typedef struct
{
cmNonStandardIdentifier info;
int length;
char* data;
} cmNonStandardParam;
typedef enum
{
cmAliasTypeE164=cmTransportTypeIPLooseRoute+5,
cmAliasTypeH323ID,
cmAliasTypeEndpointID,
cmAliasTypeGatekeeperID,
cmAliasTypeURLID,
cmAliasTypeTransportAddress,
cmAliasTypeEMailID,
cmAliasTypePartyNumber,
cmAliasTypeLast /* Last element in enumeration - must be the last one */
} cmAliasType;
typedef enum
{
/* the numbering plan is according to
Recommendations E.163 and E.164.*/
cmPartyNumberPublicUnknown,
/* if used number digits carry prefix indicating type
of number according to national recommendations*/
cmPartyNumberPublicInternationalNumber ,
cmPartyNumberPublicNationalNumber ,
cmPartyNumberPublicNetworkSpecificNumber,
/* not used, value reserved */
cmPartyNumberPublicSubscriberNumber ,
cmPartyNumberPublicAbbreviatedNumber ,
/* valid only for called party number at the outgoing
access, network substitutes appropriate number. */
cmPartyNumberDataPartyNumber,
/* not used, value reserved */
cmPartyNumberTelexPartyNumber,
/* not used, value reserved*/
cmPartyNumberPrivateUnknown,
cmPartyNumberPrivateLevel2RegionalNumber,
cmPartyNumberPrivateLevel1RegionalNumber,
cmPartyNumberPrivatePISNSpecificNumber,
cmPartyNumberPrivateLocalNumber,
cmPartyNumberPrivateAbbreviatedNumber,
cmPartyNumberNationalStandardPartyNumber
} cmPartyNumberType;
typedef struct
{
cmAliasType type;
RvUint16 length; /* string in bytes */
char* string;
cmPartyNumberType pnType;
cmTransportAddress transport;
} cmAlias;
typedef enum
{
cmEndpointTypeTerminal,
cmEndpointTypeGateway,
cmEndpointTypeMCU,
cmEndpointTypeGK,
cmEndpointTypeUndefined,
cmEndpointTypeSET
} cmEndpointType;
typedef enum
{
cmCallTypeP2P,
cmCallTypeOne2N,
cmCallTypeN2One,
cmCallTypeN2Nw
} cmCallType;
typedef enum
{
cmCallModelTypeDirect,
cmCallModelTypeGKRouted
} cmCallModelType;
typedef enum
{
cmTransportQOSEndpointControlled,
cmTransportQOSGatekeeperControlled,
cmTransportQOSNoControl
} cmTransportQOS;
/* These files are included only here and not in the beginning since they need some of the
declarations within this file */
#include "cmras.h"
#include "cmctrl.h"
#include "cmhook.h"
#include "faststart.h"
#include "rvh323watchdog.h"
/************************************************************************
* cmPreGrantedArqUse
* Indicates the way PreGranted ARQ is used by the EP for a call, even when the
* gatekeeper (using preGrantedArq parameter) allows direct calls.
* cmPreGrantedArqDirect - PreGranted ARQ feature is used for both direct and routed calls.
* cmPreGrantedArqRouted - PreGranted ARQ feature is used only for routed calls.
************************************************************************/
typedef enum
{
cmPreGrantedArqDirect=0,
cmPreGrantedArqRouted
}cmPreGrantedArqUse;
typedef enum
{
cmCallStateInit=-1,
cmCallStateDialtone,
cmCallStateProceeding,
cmCallStateRingBack,
cmCallStateConnected,
cmCallStateDisconnected,
cmCallStateIdle,
cmCallStateOffering,
cmCallStateTransfering,
cmCallStateIncompleteAddress = cmCallStateTransfering + 3,
cmCallStateWaitAddressAck
} cmCallState_e;
typedef enum
{
cmCallStateModeDisconnectedBusy,
cmCallStateModeDisconnectedNormal,
cmCallStateModeDisconnectedReject,
cmCallStateModeDisconnectedUnreachable,
cmCallStateModeDisconnectedUnknown,
cmCallStateModeDisconnectedLocal,
cmCallStateModeConnectedControl, /* not used. reserved for backward compatability */
cmCallStateModeConnectedCallSetup,
cmCallStateModeConnectedCall,
cmCallStateModeConnectedConference,
/* The next 3 state modes are here for backward compatability */
cmCallStateModeControlConnected=cmCallStateModeConnectedControl,
cmCallStateModeCallSetupConnected,
cmCallStateModeCallConnected,
cmCallStateModeOfferingCreate=cmCallStateModeConnectedConference+1,
cmCallStateModeOfferingInvite,
cmCallStateModeOfferingJoin,
cmCallStateModeOfferingCapabilityNegotiation,
cmCallStateModeOfferingCallIndependentSupplementaryService,
cmCallStateModeDisconnectedIncompleteAddress,
cmCallStateModeTransferingForwarded,
cmCallStateModeTransferingRouteToMC,
cmCallStateModeTransferingRouteToGatekeeper
} cmCallStateMode_e;
typedef enum
{
cmReasonTypeNoBandwidth,
cmReasonTypeGatekeeperResource,
cmReasonTypeUnreachableDestination,
cmReasonTypeDestinationRejection,
cmReasonTypeInvalidRevision,
cmReasonTypeNoPermision,
cmReasonTypeUnreachableGatekeeper,
cmReasonTypeGatewayResource,
cmReasonTypeBadFormatAddress,
cmReasonTypeAdaptiveBusy,
cmReasonTypeInConf,
cmReasonTypeUndefinedReason,
cmReasonTypeRouteCallToGatekeeper,
cmReasonTypeCallForwarded,
cmReasonTypeRouteCallToMC,
cmReasonTypeFacilityCallDeflection,
cmReasonTypeSecurityDenied,
cmReasonTypeCalledPartyNotRegistered,
cmReasonTypeCallerNotregistered,
cmReasonTypeConferenceListChoice,
cmReasonTypeStartH245,
cmReasonTypeNewConnectionNeeded,
cmReasonTypeNoH245,
cmReasonTypeNewTokens, /* FacilityReason */
cmReasonTypeFeatureSetUpdate, /* FacilityReason */
cmReasonTypeForwardedElements, /* FacilityReason */
cmReasonTypeTransportedInformation /* FacilityReason */
} cmReasonType;
typedef enum
{
cmCreate,
cmJoin,
cmInvite,
cmCapabilityNegotiation,
cmCallIndependentSupplementaryService,
cmLastCG
} cmConferenceGoalType;
/************************************************************************
* cmInformationTransferCapability
* The Information transfer capability that is part of the Bearer Capability
* element of Q931 messages.
* cmITCSpeech - Speech
* cmITCUnrestricted - Unrestricted digital information
* cmITCRestricted - Restricted digital information
* cmITCAudio - 3.1 kHz audio
* cmITCUnrestrictedTones - Unrestricted digital information with tones/announcements
* cmITCVideo - Video
************************************************************************/
typedef enum
{
cmITCSpeech=0,
cmITCUnrestricted=8,
cmITCRestricted=9,
cmITCAudio=16,
cmITCUnrestrictedTones=17,
cmITCVideo=24
} cmInformationTransferCapability;
typedef enum
{
cmParamFirst=0x1000,
cmParamSourceAddress, /* cmAlias */
cmParamSourceInfo, /* cmEndpointType enum */
cmParamDestinationAddress, /* cmAlias */
cmParamDestCallSignalAddress, /* cmTransportAddress */
cmParamSrcCallSignalAddress, /* cmTransportAddress */
cmParamDestExtraCallInfo, /* cmAlias */
cmParamActiveMc, /* RvBool */
cmParamCID, /* char[16] */
cmParamConferenceGoal, /* cmConferenceGoalType enum */
cmParamCallType, /* cmCallType */
cmParamSetupH245Address, /* cmTransportAddress */
cmParamH245Address, /* cmTransportAddress */
cmParamDestinationInfo, /* cmEndpointType enum */
cmParamReleaseCompleteReason, /* cmReasonType */
cmParamReleaseCompleteCause, /* int */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -