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

📄 cmras.h

📁 基于h323协议的软phone
💻 H
📖 第 1 页 / 共 3 页
字号:

/*

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 CMRAS_H
#define CMRAS_H

#ifdef __cplusplus
extern "C" {
#endif


#ifndef CM_H
#error cmras.h included improperly. Use #include <cm.h> instead.
#endif




/************************************************************************
 * Definitions for backward compatibility
 ************************************************************************/
#define cmRASTrPart                     cmRASTrStage

#define cmRASCallType                   cmCallType
#define cmRASCallTypeP2P                cmCallTypeP2P
#define cmRASCallTypeOne2N              cmCallTypeOne2N
#define cmRASCallTypeN2One              cmCallTypeN2One
#define cmRASCallTypeN2Nw               cmCallTypeN2Nw

#define cmRASCallModelTypeDirect        cmCallModelTypeDirect
#define cmRASCallModelTypeGKRouted      cmCallModelTypeGKRouted
#define cmRASCallModelType              cmCallModelType

#define cmRASRouteSize                  cmRouteSize
#define cmRASAliasType                  cmAliasType
#define cmRASAlias                      cmAlias
#define cmRASTransportType              cmTransportType
#define cmRASTransport                  cmTransportAddress

#define cmRASTransportTypeIP            cmTransportTypeIP /* No route */
#define cmRASTransportTypeIPStrictRoute cmTransportTypeIPStrictRoute
#define cmRASTransportTypeIPLooseRoute  cmTransportTypeIPLooseRoute

#define cmRASAliasTypeE164              cmAliasTypeE164
#define cmRASAliasTypeH323ID            cmAliasTypeH323ID
#define cmRASAliasTypeEndpointID        cmAliasTypeEndpointID
#define cmRASAliasTypeGatekeeperID      cmAliasTypeGatekeeperID

#define cmRASEndpointType               cmEndpointType
#define cmRASEndpointTypeTerminal       cmEndpointTypeTerminal
#define cmRASEndpointTypeGateway        cmEndpointTypeGateway
#define cmRASEndpointTypeMCU            cmEndpointTypeMCU
#define cmRASEndpointTypeGK             cmEndpointTypeGK
#define cmRASEndpointTypeUndefined      cmEndpointTypeUndefined
#define cmRASEndpointTypeSET            cmEndpointTypeSET

#define cmRASTransportQOSNotSupported   cmRASReasonTransportQOSNotSupported
#define cmRASInvalidAlias               cmRASReasonInvalidAlias
#define cmRASPermissionDenied           cmRASReasonPermissionDenied
#define cmRASQOSControlNotSupported     cmRASReasonQOSControlNotSupported
#define cmRASIncompleteAddress          cmRASReasonIncompleteAddress
#define cmRASFullRegistrationRequired   cmRASReasonFullRegistrationRequired
#define cmRASRouteCallToSCN             cmRASReasonRouteCallToSCN
#define cmRASAliasesInconsistent        cmRASReasonAliasesInconsistent




/************************************************************************
 * cmRASTransaction enum:
 * Indicates the type of RAS transaction we're dealing with.
 ************************************************************************/
typedef enum
{
    cmRASGatekeeper=1,          /* GRQ transaction */
    cmRASRegistration,          /* RRQ transaction */
    cmRASUnregistration,        /* URQ transaction */
    cmRASAdmission,             /* ARQ transaction */
    cmRASDisengage,             /* DRQ transaction */
    cmRASBandwidth,             /* BRQ transaction */
    cmRASLocation,              /* LRQ transaction */
    cmRASInfo,                  /* IRQ-IRR transaction */
    cmRASNonStandard,           /* NSM */
    cmRASUnknown,               /* XRS */
    cmRASResourceAvailability,  /* RAI-RAC transaction */
    cmRASUnsolicitedIRR,        /* Unsolicited IRR */
    cmRASServiceControl,        /* SCI-SCR transaction */
    cmRASMaxTransaction
} cmRASTransaction;


/************************************************************************
 * cmRASReason enum:
 * Indicates the reject reason of the transaction. We use a single
 * enumeration for all possible reasons in Reject messages.
 ************************************************************************/
typedef enum
{
    cmRASReasonResourceUnavailable,             /* GRJ, RRJ, ARJ, LRJ - gatekeeper resources exhausted */
    cmRASReasonInsufficientResources,           /* BRJ */
    cmRASReasonInvalidRevision,                 /* GRJ, RRJ, BRJ */
    cmRASReasonInvalidCallSignalAddress,        /* RRJ */
    cmRASReasonInvalidRASAddress,               /* RRJ - supplied address is invalid */
    cmRASReasonInvalidTerminalType,             /* RRJ */
    cmRASReasonInvalidPermission,               /* ARJ - permission has expired */
                                                /* BRJ - true permission violation */
                                                /* LRJ - exclusion by administrator or feature */
    cmRASReasonInvalidConferenceID,             /* BRJ - possible revision */
    cmRASReasonInvalidEndpointID,               /* ARJ */
    cmRASReasonCallerNotRegistered,             /* ARJ */
    cmRASReasonCalledPartyNotRegistered,        /* ARJ - can't translate address */
    cmRASReasonDiscoveryRequired,               /* RRJ - registration permission has aged */
    cmRASReasonDuplicateAlias,                  /* RRJ - alias registered to another endpoint */
    cmRASReasonTransportNotSupported,           /* RRJ - one or more of the transports */
    cmRASReasonCallInProgress,                  /* URJ */
    cmRASReasonRouteCallToGatekeeper,           /* ARJ */
    cmRASReasonRequestToDropOther,              /* DRJ - can't request drop for others */
    cmRASReasonNotRegistered,                   /* DRJ, LRJ, INAK - not registered with gatekeeper */
    cmRASReasonUndefined,                       /* GRJ, RRJ, URJ, ARJ, BRJ, LRJ, INAK */
    cmRASReasonTerminalExcluded,                /* GRJ - permission failure, not a resource failure */
    cmRASReasonNotBound,                        /* BRJ - discovery permission has aged */
    cmRASReasonNotCurrentlyRegistered,          /* URJ */
    cmRASReasonRequestDenied,                   /* ARJ - no bandwidrg available */
                                                /* LRJ - cannot find location */
    cmRASReasonLocationNotFound,                /* LRJ - cannot find location */
    cmRASReasonSecurityDenial,                  /* GRJ, RRJ, URJ, ARJ, BRJ, LRJ, DRJ, INAK */
    cmRASReasonTransportQOSNotSupported,        /* RRJ */
    cmRASResourceUnavailable,                   /* Same as cmRASReasonResourceUnavailable */
    cmRASReasonInvalidAlias,                    /* RRJ - alias not consistent with gatekeeper rules */
    cmRASReasonPermissionDenied,                /* URJ - requesting user not allowed to unregister specified user */
    cmRASReasonQOSControlNotSupported,          /* ARJ */
    cmRASReasonIncompleteAddress,               /* ARJ, LRJ */
    cmRASReasonFullRegistrationRequired,        /* RRJ - registration permission has expired */
    cmRASReasonRouteCallToSCN,                  /* ARJ, LRJ */
    cmRASReasonAliasesInconsistent,             /* ARJ, LRJ - multiple aliases in request identify distinct people */
    cmRASReasonAdditiveRegistrationNotSupported,/* RRJ */
    cmRASReasonInvalidTerminalAliases,          /* RRJ */
    cmRASReasonExceedsCallCapacity,             /* ARJ - destination does not have the capacity for this call */
    cmRASReasonCollectDestination,              /* ARJ */
    cmRASReasonCollectPIN,                      /* ARJ */
    cmRASReasonGenericData,                     /* GRJ, RRJ, ARJ, LRJ */
    cmRASReasonNeededFeatureNotSupported,       /* GRJ, RRJ, ARJ, LRJ */
    cmRASReasonUnknownMessageResponse,          /* XRS message was received for the request */
    cmRASReasonHopCountExceeded                 /* LRJ */

} cmRASReason;


/************************************************************************
 * cmRASDisengageReason enum:
 * Indicates the reason given in the DRQ message (DisengageRequest).
 ************************************************************************/
typedef enum
{
    cmRASDisengageReasonForcedDrop,
    cmRASDisengageReasonNormalDrop,
    cmRASDisengageReasonUndefinedReason
}  cmRASDisengageReason;


/************************************************************************
 * cmRASUnregReason enum:
 * Indicates the reason given in the URQ message (UnregistrationRequest).
 ************************************************************************/
typedef enum
{
    cmRASUnregReasonReregistrationRequired,
    cmRASUnregReasonTtlExpired,
    cmRASUnregReasonSecurityDenial,
    cmRASUnregReasonUndefinedReason,
    cmRASUnregReasonMaintenance
}  cmRASUnregReason;


/************************************************************************
 * cmRASIrrXXX
 * These definitions are part of the irrStatus field in the IRR message,
 * added on version 4.
 * The segment field is not part of these definition, since the values
 * 0-65535 can be used for each of the segments as a value.
 ************************************************************************/
#define cmRASIrrComplete    (-1)
#define cmRASIrrIncomplete  (-2)
#define cmRASIrrInvalidCall (-3)



/************************************************************************
 * cmRASTrStage enum:
 * Indicates the transaction state we want to use in the API function.
 * cmRASTrStageRequest  - Request message information
 * cmRASTrStageConfirm  - Confirm message information
 * cmRASTrStageReject   - Reject message information
 * cmRASTrStageTimeout  - Time-out occurred
 * cmRASTrStateProgress - RIP message information
 * Others               - unused
 ************************************************************************/
typedef enum
{
    cmRASTrStageRequest=1,
    cmRASTrStageConfirm,
    cmRASTrStageReject,
    cmRASTrStageTimeout,
    cmRASTrStageBegin,
    cmRASTrStageEnd,
    cmRASTrStageCreate,
    cmRASTrStageDummy,

    cmRASTrStageProgress,


    cmRASTrPartRequest=1, /* for backward compatability */
    cmRASTrPartConfirm,
    cmRASTrPartReject,
    cmRASTrPartTimeout

} cmRASTrStage;





/************************************************************************
 * cmRASParam enum:
 * Indicates the parameter we want to set/get from a RAS message
 ************************************************************************/
typedef enum
{
    cmRASParamGatekeeperID,                 /* cmAlias                          */
    cmRASParamRASAddress,                   /* cmTransportAddress               */
    cmRASParamCallSignalAddress,            /* cmTransportAddress               */
    cmRASParamEndpointType,                 /* cmEndpointType                   */
    cmRASParamTerminalType,                 /* cmEndpointType                   */
    cmRASParamEndpointAlias,                /* cmAlias                          */
    cmRASParamTerminalAlias,                /* cmAlias                          */
    cmRASParamDiscoveryComplete,            /* RvBool                           */
    cmRASParamEndpointVendor,               /* cmVendor                         */
    cmRASParamCallType,                     /* cmCallType                       */
    cmRASParamCallModel,                    /* cmCallModelType                  */
    cmRASParamEndpointID,                   /* cmAlias                          */
    cmRASParamDestInfo,                     /* cmAlias                          */
    cmRASParamSrcInfo,                      /* cmAlias                          */
    cmRASParamDestExtraCallInfo,            /* cmAlias                          */
    cmRASParamDestCallSignalAddress,        /* cmTransportAddress               */
    cmRASParamSrcCallSignalAddress,         /* cmTransportAddress               */
    cmRASParamBandwidth,                    /* int                              */
    cmRASParamActiveMC,                     /* RvBool                           */
    cmRASParamAnswerCall,                   /* RvBool                           */
    cmRASParamIrrFrequency,                 /* int                              */
    cmRASParamReplyAddress,                 /* cmTransportAddress               */
    cmRASParamDisengageReason,              /* cmRASDisengageReason             */
    cmRASParamRejectedAlias,                /* cmAlias                          */
    cmRASParamRejectReason,                 /* cmRASReason                      */
    cmRASParamCID,                          /* char[16]                         */
    cmRASParamDestinationIpAddress,         /* cmTransportAddress: the actual
                                               address to send message to       */
    cmRASParamNonStandard,                  /* cmNonStandardParam               */
    cmRASParamNonStandardData,              /* int - pvt nodeId                 */
    cmRASParamCRV,                          /* int                              */
    cmRASParamMulticastTransaction,         /* RvBool: is this a multicast
                                               transaction?                     */
    cmRASParamTransportQOS,                 /* cmTransportQOS                   */
    cmRASParamKeepAlive,                    /* RvBool                           */
    cmRASParamTimeToLive,                   /* int                              */
    cmRASParamDelay,                        /* int (in seconds)                 */
    cmRASParamCallID,                       /* char[16]                         */
    cmRASParamAnsweredCall,                 /* RvBool                           */
    cmRASParamAlmostOutOfResources,         /* RvBool                           */
    cmRASParamAlternateGatekeeper,          /* cmAlternateGatekeeper            */
    cmRASParamAltGKInfo,                    /* cmAlternateGatekeeper            */
    cmRASParamAltGKisPermanent,             /* RvBool                           */
    cmRASParamEmpty,                        /* none                             */
    cmRASParamSourceInfo,                   /* cmAlias                          */

⌨️ 快捷键说明

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