亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rasdef.h

?? 基于h323協議的軟phone
?? H
字號:

/*

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

#include <rpool.h>
#include <hash.h>
#include <ema.h>
#include <rvh323timer.h>
#include <rvlock.h>
#include <q931asn1.h>
#include <cmiAddOns.h>
#include <cmiras.h>

#ifdef __cplusplus
extern "C" {
#endif


#if defined(RV_DEBUG)
#define RV_RAS_DEBUG
#endif


/* Type of transaction */
#define RAS_OUT_TX    (1) /* Outgoing transaction */
#define RAS_IN_TX     (2) /* Incoming transaction */


/* rasTxMsgType enumeration */
typedef enum
{
    rasTxMsgRequest, /* Incoming request message */
    rasTxMsgReject, /* Incoming reject response */
    rasTxMsgConfirm, /* Incoming confirm response */
    rasTxMsgOther /* Other type (RIP, IRR,...) */
} rasTxMsgType;


/* rasTxState enumeration for both incoming and outgoing transactions */
typedef enum
{
    rasTxStateIdle, /* Idle state of transaction */
    rasTxStateReplySent, /* Incoming transaction's reply was sent */
    rasTxStateRipSent, /* Incoming transaction's RIP was sent */
    rasTxStateRequestSent, /* Outgoing transaction's request was sent */
    rasTxStateReplyReceived, /* Outgoing transaction's reply was received */
    rasTxStateRipReceived, /* Outgoing transaction's RIP was received */
    rasTxStateTimedOut /* Outgoing transaction has timedout */
} rasTxState;


/* rasResponseSet enumeration for incoming transactions */
typedef enum
{
    rasNoResponseSet, /* No response created for transaction */
    rasConfirmSet, /* Confirm response created for Teansaction */
    rasRejectSet /* Reject response created for Teansaction */
} rasResponseSet;


/************************************************************************
 * rasMessages enumeration
 * This enumeration holds all the supported message types known to the
 * RAS instance. The specific enumeration value is the index of the
 * message inside RasMessage CHOICE in the H225 ASN.1 definition.
 ************************************************************************/
typedef enum
{
    rasMsgGatekeeperRequest = 0,
    rasMsgGatekeeperConfirm,
    rasMsgGatekeeperReject,
    rasMsgRegistrationRequest,
    rasMsgRegistrationConfirm,
    rasMsgRegistrationReject,
    rasMsgUnregistrationRequest,
    rasMsgUnregistrationConfirm,
    rasMsgUnregistrationReject,
    rasMsgAdmissionRequest,
    rasMsgAdmissionConfirm,
    rasMsgAdmissionReject,
    rasMsgBandwidthRequest,
    rasMsgBandwidthConfirm,
    rasMsgBandwidthReject,
    rasMsgDisengageRequest,
    rasMsgDisengageConfirm,
    rasMsgDisengageReject,
    rasMsgLocationRequest,
    rasMsgLocationConfirm,
    rasMsgLocationReject,
    rasMsgInfoRequest,
    rasMsgInfoRequestResponse,
    rasMsgNonStandardMessage,
    rasMsgUnknownMessageResponse,
    rasMsgRequestInProgress,
    rasMsgResourcesAvailableIndicate,
    rasMsgResourcesAvailableConfirm,
    rasMsgInfoRequestAck,
    rasMsgInfoRequestNak,
    rasMsgServiceControlIndication,
    rasMsgServiceControlResponse,
    rasMsgLast /* Must be the last in enum */
} rasMessages;


/********************************************************************************************
 * Description of THREAD_RasLocalStorage
 * This structure holds thread related information for RAS
 * bufferSize   - The size of allocated buffer. We might need that when we'll have to realloc
 * buffer       - The encoding/decoding buffer
 ********************************************************************************************/
typedef struct
{
    RvUint32    bufferSize;
    RvUint8*    buffer;
} THREAD_RasLocalStorage;


/************************************************************************
 * rasMessageInfoStruct
 * This struct holds static information about a specific message type.
 *
 ************************************************************************/
typedef struct
{
    int                 trType; /* Indication of the transaction type: Incoming or Outgoing.
                                   Can be RAS_OUT_TX, RAS_IN_TX, RV_ERROR_UNKNOWN */
    rasTxMsgType        msgType; /* Type of the message */
    cmRASTransaction    transaction; /* The transaction that this message is associated with
                                        IRR is handled separately. */
} rasMessageInfoStruct;



/* Static informatino about the message types we're dealing with */
extern const rasMessageInfoStruct rasMessageInfo[];



/************************************************************************
 * rasOutTx
 * Outgoing transaction struct
 *
 ************************************************************************/
typedef struct
{
    void*               hashValue; /* Handle to the hash value in the outgoing hash table */
    rasTxState          state; /* Current state of the transaction */
    cmRASTransaction    transactionType; /* Type of transaction we're dealing with */
    cmRASTransport      destAddress; /* Destination address of this transaction */
    RvBool              isMulticast; /* Is this a multicast transaction or a unicast one */
    RvInt32             retryCount; /* Number of retries left for this transaction */
    RvPvtNodeId         txProperty; /* Property DB of the transaction - part of the API */
    HRPOOLELEM          encodedMsg; /* Encoded message handle in RPOOL */
    RvTimer*            timer; /* Timer handle used for retries */
    cmiEvRASResponseT   evResponse; /* Callback that is called on responses */
    HCALL               hsCall; /* Stack's call handle for this transaction. NULL if not applicable */
    void*               hMsgContext; /* Message context of the incoming response message.
                                        This parameter is used by security applications
                                        that want to pass information for later scrunity
                                        of the application. */
} rasOutTx;


/************************************************************************
 * rasInTx
 * Incoming transaction struct
 *
 ************************************************************************/
typedef struct rasInTx_tag rasInTx;
struct rasInTx_tag
{
    void*               hashValue; /* Handle to the hash value in the outgoing hash table */
    rasTxState          state; /* Current state of the transaction */
    cmRASTransaction    transactionType; /* Type of transaction we're dealing with */
    cmRASTransport      destAddress; /* Destination address of this transaction */
    RvBool              isMulticast; /* Is this a multicast transaction or a unicast one */
    RvInt32             stopTime; /* Absolute stop time of this transaction.
                                     After that time, this transaction should be closed.
                                     Calculated in seconds. */
    RvInt32             ripStopTime; /* Absolute stop time of RIP message on this transaction.
                                        Used to calculate a retransmission of a RIP message.
                                        Calculated in seconds. */
    RvPvtNodeId         txProperty; /* Property DB of the transaction - part of the API */
    rasResponseSet      responseSet; /* Indicates if a response message was already built or not */
    HRPOOLELEM          encodedMsg; /* Encoded message handle in RPOOL of the reply */
    HCALL               hsCall; /* Call handle associated with the transaction. NULL if not applicable */
    void*               hMsgContext; /* Message context of the incoming request message.
                                        This parameter is used by security applications
                                        that want to pass information for later scrunity
                                        of the application. */
    rasInTx*            next; /* Next transaction in the closed transactions list.
                                 If this is set to NULL, then the transaction wasn't
                                 closed by the application */
};


/************************************************************************
 * rasInTxKey
 * Incoming transaction key struct
 * This is the key used for the hash table
 *
 ************************************************************************/
typedef struct
{
    RvUint32            seqNumber; /* Sequence number of the incoming transaction */
    rasMessages         msgType; /* Type of message invoking this incoming transaction */
    cmTransportAddress  address; /* Address of sender */
} rasInTxKey;


/************************************************************************
 * rasDecoderStruct struct
 * This struct holds information needed for fast decoding of the first
 * 2 fields inside a RAS message. It is calculated on initialization of
 * the RAS instance.
 *
 ************************************************************************/
typedef struct
{
    RvUint32    firstExtField; /* Number of the first extended field in the list
                                  if fields of RasMessage CHOICE */
    RvUint32    numOfMessages; /* Number of RasMessage types in the CHOICE */
    RvUint32*   numOfOptFields; /* Number of the optional fields inside each type of RasMessage */
} rasDecoderStruct;



/************************************************************************
 * rasModule struct
 * This struct holds all the necessary information of the RAS.
 * It is returned by cmiRASInitialize() as the module handle.
 *
 ************************************************************************/
typedef struct
{
    HAPP                    app; /* Stack instance handle */
    RvLogSource             log; /* Log handle to use for messages */
    RvLogSource             logChan; /* Log handle of the ASN.1 messages */
    RvPvtNodeId             confNode; /* Configuration node id for RAS parameters */
    RvUint32                requestSeqNum; /* Last sequence number used for outgoing transactions */
    rasDecoderStruct        decoder; /* Information needed to decode the first 2 fields of
                                        any RAS message. */
    RvUint32                bufferSize;  /* Maximum size of a message in bytes */
    RvBool                  isGatekeeper; /* RV_TRUE if we should act as a GK */

    RvH323TimerPoolHandle   timers; /* Timer pool used for outgoing transactions retransmissions */
    RVHCAT                  hCat; /* CAT instance handle */
    HPVT                    hVal; /* Value tree used for property db and ASN.1 messages */
    HPST                    synMessage; /* RAS message syntax tree */
    HPST                    synProperty; /* RAS property database syntax tree */
    HHASH                   inHash; /* Incoming transactions hash table */
    HEMA                    inRa; /* Incoming transactions array */
    HHASH                   outHash; /* Outgoing transactions hash table */
    HEMA                    outRa; /* Outgoing transactions array */
    HRPOOL                  messages; /* Stored messages for retransmissions */

    /* Various lock objects */
    RvLock                  lockInHash; /* Lock handle of incoming hash table */
    RvLock                  lockOutHash; /* Lock handle of outgoing hash table */
    RvLock                  lockGarbage; /* Lock handle of garbage collection mechanism */

    RvPvtNodeId             defaultMessages[cmRASMaxTransaction][4];
                            /* Default RAS messages to set for outgoing requests and replies. */
                            /* We set the array up to 4 although we only have
                               Request,Confirm,Reject (=3) to allow easier
                               handling and clearer understanding of the code.
                               This doesn't take a lot of memory, as it is
                               allocated once per stack instance. */

    char                    epId[256]; /* Endpoint identifier buffer. Used when the endpoint is registered */
    int                     epIdLen; /* Length of the endpoint identifier in bytes */
    char                    gkId[256]; /* Gatekeeper identifier buffer. Used when the endpoint is registered */
    int                     gkIdLen; /* Length of the gatekeeper identifier in bytes */
    RvPvtNodeId             termAliasesNode; /* Terminal Aliases used for this terminal, as configured by the
                                                application and updated in RCF messages */


    /* The next 2 parameters are used for garbage collection mechanism of
       the incoming transactions database */
    rasInTx*                firstTx; /* First transaction in list of incoming transactions */
    rasInTx*                lastTx; /* Last transaction in list of incoming transactions */

    SCMRASEVENT             evApp; /* Application callback functions on RAS events */
    SCMAUTORASEVENT         evAutoRas; /* Application callback functions on Automatic RAS events */
    cmiEvRASEPRequestT      evEpRequest; /* Callback function for RAS requests not related to calls */
    cmiEvRASCallRequestT    evCallRequest; /* Callback function for RAS requests related to calls */
    cmRasMessageEvent       evMessages; /* Callback function for RAS messages */
    cmiEvRasMessageToSend   evSendMessage;
    cmiEvRASNewCallT        evRASNewCall;

    HAPPCONN                unicastAppHandle; /* Application handle of unicast connection */
    HAPPCONN                multicastAppHandle; /* Application handle of multicast connection */

    RvPvtNodeId             gatekeeperRASAddress; /* Gatekeeper's RAS address node ID */
    RvPvtNodeId             gatekeeperCallSignalAddress; /* Gatekeeper's Q931 address node ID */

    /* H.235 (security) related callbacks */
    cmiEvRASNewRawMessageT          cmiEvRASNewRawMessage; /* Called when incoming message needs to be decoded */
    cmiEvRASSendRawMessageT         cmiEvRASSendRawMessage; /* Called when outgoing message needs to be encoded */
    cmiEvRASReleaseMessageContextT  cmiEvRASReleaseMessageContext; /* Called when a message can be discarded */

    /* Resource enumeration values allocated by watchdog */
    RvUint32                rasTimersResourceVal;
} rasModule;



#ifdef __cplusplus
}
#endif

#endif  /* RASDEF_H */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品一区二区在线观看| 777欧美精品| 国产精品99久久久久久似苏梦涵 | 91麻豆蜜桃一区二区三区| 国产福利精品导航| 久久99久久99精品免视看婷婷 | 欧美日韩免费观看一区三区| 欧美在线啊v一区| 精品视频一区三区九区| 欧美精品第一页| 日韩一区二区在线观看视频播放| 555夜色666亚洲国产免| 欧美一区二区在线免费播放| 日韩欧美亚洲国产精品字幕久久久| 精品国产免费人成电影在线观看四季| 欧美大片免费久久精品三p| 久久影音资源网| 国产精品毛片久久久久久久 | 在线影视一区二区三区| 欧美三级一区二区| 日韩精品中文字幕一区| 国产视频不卡一区| 夜夜精品浪潮av一区二区三区| 亚洲一区二区影院| 蜜臀久久久久久久| 国产不卡在线一区| 欧美色电影在线| 精品少妇一区二区三区在线视频| 久久精品人人做人人综合 | 久草中文综合在线| 91首页免费视频| 日韩一级黄色大片| 国产精品精品国产色婷婷| 亚洲一线二线三线视频| 国产成人在线观看免费网站| 色综合久久久久久久久| 日韩精品一区二区三区中文精品| 欧美激情一区不卡| 免费成人你懂的| 91毛片在线观看| 26uuu精品一区二区| 午夜激情久久久| 粉嫩欧美一区二区三区高清影视 | 久久精品亚洲乱码伦伦中文| 亚洲自拍都市欧美小说| 国产乱人伦偷精品视频免下载| 色综合色狠狠天天综合色| 精品三级在线观看| 一区二区三区**美女毛片| 国产69精品一区二区亚洲孕妇| 欧美日本国产视频| 亚洲视频免费在线| 成人黄色电影在线| 久久夜色精品一区| 久久精品噜噜噜成人88aⅴ| 色综合久久久久久久久| 中文字幕巨乱亚洲| 韩国午夜理伦三级不卡影院| 在线播放中文一区| 亚洲欧美日韩国产另类专区| 懂色av一区二区三区免费观看| 这里只有精品电影| 亚洲国产精品一区二区www在线| 成人av网站免费观看| 国产日韩欧美制服另类| 加勒比av一区二区| 欧美电影免费观看高清完整版在线 | 亚洲欧洲日产国产综合网| 国产精品一区二区在线观看网站 | 国产欧美日韩不卡| 国产精品亚洲专一区二区三区| 日韩女优av电影| 天天色天天爱天天射综合| 欧美性xxxxxxxx| 久久精品久久99精品久久| 91美女在线看| 伊人色综合久久天天人手人婷| 成人午夜激情视频| 国产精品免费久久久久| 国产99久久精品| 国产欧美日韩精品一区| av资源站一区| 夜夜嗨av一区二区三区四季av| 色狠狠色狠狠综合| 午夜免费久久看| 欧美二区三区91| 免费成人在线观看| 国产亚洲精品福利| 色综合天天综合给合国产| 亚洲综合小说图片| 日韩片之四级片| 韩国中文字幕2020精品| 国产精品久久久久久久裸模| 99久久久无码国产精品| 亚洲国产一区二区a毛片| 欧美日韩视频一区二区| 久久成人18免费观看| 日本一区二区三区四区在线视频| 99re这里都是精品| 亚洲成人7777| 久久久久久久久免费| www.一区二区| 青青草原综合久久大伊人精品优势 | 久久日一线二线三线suv| 风间由美一区二区三区在线观看| 亚洲欧美日韩中文播放 | 99久久99久久综合| 五月天精品一区二区三区| 精品国产一二三| 色综合久久综合中文综合网| 秋霞影院一区二区| 日本一区二区三区免费乱视频 | 在线不卡免费欧美| 成人激情开心网| 日韩制服丝袜av| 亚洲欧美在线视频观看| 91麻豆精品国产| 成人精品小蝌蚪| 婷婷成人激情在线网| 国产精品久久久久婷婷二区次| 欧美日本一区二区| 成人va在线观看| 国产一区不卡在线| 日韩在线播放一区二区| 亚洲欧美色图小说| 久久久亚洲欧洲日产国码αv| 欧美亚洲愉拍一区二区| 粉嫩av亚洲一区二区图片| 蜜桃视频一区二区三区| 自拍视频在线观看一区二区| 欧美精品一区在线观看| 欧美日韩aaa| 欧美在线观看你懂的| 91亚洲精品一区二区乱码| 色综合色狠狠综合色| 国产成人av一区二区三区在线 | 成人综合在线观看| 久久疯狂做爰流白浆xx| 午夜精品福利在线| 亚洲午夜免费电影| 亚洲人成在线播放网站岛国| 国产日韩欧美a| 2021中文字幕一区亚洲| 欧美电视剧免费全集观看| 欧美精品一级二级| 欧美欧美欧美欧美| 欧美日韩在线观看一区二区 | 欧美美女网站色| 精品视频1区2区| 欧美视频在线一区| 色8久久精品久久久久久蜜 | 天堂va蜜桃一区二区三区漫画版| 亚洲激情自拍视频| 一区二区三区中文字幕精品精品| 中文文精品字幕一区二区| 国产欧美日韩激情| 亚洲欧洲在线观看av| ...xxx性欧美| 久久国产人妖系列| 久久福利资源站| 国产精品亚洲第一区在线暖暖韩国| 精品一区二区三区的国产在线播放 | 视频一区二区欧美| 青青草原综合久久大伊人精品优势 | 国内精品写真在线观看| 国产中文字幕精品| 不卡的av在线播放| 91美女片黄在线| 欧美色中文字幕| 日韩一区二区三区三四区视频在线观看 | 欧美精彩视频一区二区三区| 久久精品夜夜夜夜久久| 国产精品理伦片| 亚洲尤物在线视频观看| 久久国产人妖系列| 成av人片一区二区| 91精品办公室少妇高潮对白| 欧美日韩国产综合一区二区| 在线成人av网站| 欧美国产97人人爽人人喊| 一区二区三区国产精品| 亚洲va国产天堂va久久en| 韩国精品免费视频| 99精品热视频| 欧美一级免费观看| 中日韩免费视频中文字幕| 亚洲丶国产丶欧美一区二区三区| 日韩在线播放一区二区| 高清不卡一区二区| 欧美久久免费观看| 国产精品色一区二区三区| 午夜成人免费电影| 成人aaaa免费全部观看| 欧美日本高清视频在线观看| 中文字幕欧美日韩一区| 日本欧美加勒比视频| 91亚洲国产成人精品一区二三 | 中文久久乱码一区二区| 日本亚洲天堂网| 色噜噜狠狠色综合中国|