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

📄 cm.h

📁 基于h323协议的软phone
💻 H
📖 第 1 页 / 共 5 页
字号:
/***********************************************************************
        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 + -