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

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

?? sipconnection.h

?? 基于sipfoundy 公司開發(fā)的sipx協(xié)議API
?? H
字號:
// // // Copyright (C) 2005, 2006 SIPez LLC// Licensed to SIPfoundry under a Contributor Agreement.//// Copyright (C) 2005, 2006 SIPfoundry Inc.// Licensed by SIPfoundry under the LGPL license.// // Copyright (C) 2004, 2005 Pingtel Corp.// Licensed to SIPfoundry under a Contributor Agreement.// // $$//////////////////////////////////////////////////////////////////////////////// Author: Dan Petrie (dpetrie AT SIPez DOT com)#ifndef _SipConnection_h_#define _SipConnection_h_// SYSTEM INCLUDES//#include <...>// APPLICATION INCLUDES#include <cp/Connection.h>#include <net/SipContactDb.h>// DEFINES// MACROS// EXTERNAL FUNCTIONS// EXTERNAL VARIABLES// CONSTANTS// STRUCTS// TYPEDEFS// FORWARD DECLARATIONSclass SipUserAgent;class SipMessage;class SdpCodec;class SdpCodecFactory;//:Class short description which may consist of multiple lines (note the ':')// Class detailed description which may extend to multiple linesclass SipConnection : public Connection{    /* //////////////////////////// PUBLIC //////////////////////////////////// */public:    enum ReinviteStates    {        ACCEPT_INVITE = 0,        REINVITED,        REINVITING    };    /* ============================ CREATORS ================================== */    SipConnection(const char* outboundLineAddress,        UtlBoolean isEarlyMediaFor180Enabled = TRUE,        CpCallManager* callMgr = NULL,        CpCall* call = NULL,        CpMediaInterface* mediaInterface = NULL,        SipUserAgent* sipUA = NULL,        int offeringDelayMilliSeconds = IMMEDIATE,        int sessionReinviteTimer = 0,        int availableBehavior = RING,        const char* forwardUnconditionalUrl = NULL,        int busyBehavior = BUSY,        const char* forwardOnBusy = NULL);    //:Default constructor    virtual        ~SipConnection();    //:Destructor    /* ============================ MANIPULATORS ============================== */    virtual UtlBoolean dequeue(UtlBoolean callInFocus);        virtual UtlBoolean send(SipMessage& message,                        OsMsgQ* responseListener = NULL,                        void* responseListenerData = NULL);    virtual UtlBoolean dial(const char* dialString,        const char* callerId,        const char* callId,        const char* callController = NULL,        const char* originalCallConnection = NULL,        UtlBoolean requestQueuedCall = FALSE,        const void* pDisplay = NULL);    //! param: requestQueuedCall - indicates that the caller wishes to have the callee queue the call if busy    /// Initiate transfer on transfer controller connection in the original call.    virtual UtlBoolean originalCallTransfer(       UtlString&  transferTargetAddress,       const char* transferControllerAddress,       const char* targetCallId,       bool        holdBeforeTransfer = true                                            );    /**     * If fromAddress or toAddress are NULL it is assumed to be a blind transfer.     */        virtual UtlBoolean targetCallBlindTransfer(const char* transferTargetAddress,        const char* transferControllerAddress);    // Communicate blind transfer on transfer controller connection in    // the target call.  This is signaled by the transfer controller in the    // original call.    virtual UtlBoolean transfereeStatus(int connectionState, int response);    // Method to communicate status to original call on transferee side    virtual UtlBoolean transferControllerStatus(int connectionState, int response);    // Method to communicate status to target call on transfer    // controller side    virtual UtlBoolean answer(const void* hWnd = NULL);    virtual UtlBoolean hangUp();    virtual UtlBoolean hold();    virtual UtlBoolean offHold();    virtual UtlBoolean renegotiateCodecs();    virtual UtlBoolean accept(int forwardOnNoAnswerTimeOut);    virtual UtlBoolean reject();    virtual UtlBoolean redirect(const char* forwardAddress);    //! Change the local identity for the existing connection    /*! This sets the value used for PAssertedIdentity header in INVITE requests     *  (see RFC 3325).     *     *  \param newLocalIdentity - new identity to be used for local side in subsequent signalling     *  \param shouldSignalIdentityChangeNow - send SIP reINVITE now to indicate      *         local identity change.  FALSE means that the next reINVITE sent     *         for some other operation (e.g. on/off hold).     */    virtual UtlBoolean changeLocalIdentity(const UtlString& newLocalIdentity,                                           const UtlBoolean& shouldSignalIdentityChangeNow);    virtual UtlBoolean sendInfo(UtlString contentType, UtlString sContent);    virtual UtlBoolean processMessage(OsMsg& eventMessage,        UtlBoolean callInFocus, UtlBoolean onHook);    void setCallerId();    virtual UtlBoolean getRemoteAddress(UtlString* remoteAddress) const;    virtual UtlBoolean getRemoteAddress(UtlString* remoteAddress,        UtlBoolean leaveFieldParmetersIn) const;    static UtlBoolean processNewFinalMessage(SipUserAgent* sipUa,        OsMsg* eventMessage);    void setContactType(CONTACT_TYPE eType) ;    void setContactId(CONTACT_ID contactId) { mContactId = contactId; }    /* ============================ ACCESSORS ================================= */    virtual UtlBoolean getSession(SipSession& session);    //! Send a SIP message within the dialog of this connection    virtual UtlBoolean sendInDialog(SipMessage& message,                             OsMsgQ* responseQueue,                            void* responseListenerData);    virtual OsStatus getFromField(UtlString* fromField);    virtual OsStatus getToField(UtlString* toField);    virtual OsStatus getInvite(SipMessage* message);    int getNextCseq();    /* ============================ INQUIRY =================================== */    static UtlBoolean shouldCreateConnection(SipUserAgent& sipUa,        OsMsg& eventMessage,        SdpCodecFactory* codecFactory = NULL);    virtual UtlBoolean willHandleMessage(OsMsg& eventMessage) const;    virtual UtlBoolean isConnection(const char* callId,        const char* toTag,        const char* fromTag,        UtlBoolean  strictCompare) const;    virtual UtlBoolean isSameRemoteAddress(Url& remoteAddress) const;    virtual UtlBoolean isSameRemoteAddress(Url& remoteAddress,        UtlBoolean tagsMustMatch) const;    /* //////////////////////////// PROTECTED ///////////////////////////////// */protected:    CONTACT_TYPE selectCompatibleContactType(const SipMessage& request) ;    //: Select a compatible contact given the URI    void updateContact(Url* pContactUrl, CONTACT_TYPE eType) ;    static UtlBoolean requestShouldCreateConnection(const SipMessage* sipMsg,        SipUserAgent& sipUa,        SdpCodecFactory* codecFactory);    UtlBoolean doOffHold(UtlBoolean forceReInvite);    UtlBoolean doHangUp(const char* dialString = NULL,        const char* callerId = NULL);    void buildFromToAddresses(const char* dialString,        const char* callerId,        const char* callerDisplayName,        UtlString& fromAddress,        UtlString& goodToAddress) const;    void buildLocalContact(Url fromAddress,        UtlString& localContact) ;//for outbound call    void buildLocalContact(UtlString& localContact) ;//when getting inbound calls    UtlBoolean extendSessionReinvite();    // SIP Request handlers    UtlBoolean processRequest(const SipMessage* request,        UtlBoolean callInFocus, UtlBoolean onHook);    void processInviteRequest(const SipMessage* request);    void processReferRequest(const SipMessage* request);    void processAckRequest(const SipMessage* request);    void processByeRequest(const SipMessage* request);    void processCancelRequest(const SipMessage* request);    void processNotifyRequest(const SipMessage* request);    // SIP Response handlers    UtlBoolean processResponse(const SipMessage* response,        UtlBoolean callInFocus, UtlBoolean onHook);    void processInviteResponse(const SipMessage* request);    void processReferResponse(const SipMessage* request);    void processOptionsResponse(const SipMessage* request);    void processByeResponse(const SipMessage* request);    void processCancelResponse(const SipMessage* request);    void processNotifyResponse(const SipMessage* request);    /* //////////////////////////// PRIVATE /////////////////////////////////// */private:    SipUserAgent* sipUserAgent;    UtlString mFromTag;    SipMessage* inviteMsg;    UtlBoolean      mbCancelling;    SipMessage* mReferMessage;    UtlBoolean inviteFromThisSide;    UtlString mLastRequestMethod;    UtlString mRemoteContact; //last contact frield from the other side    Url mFromUrl; // SIP address for the local side    Url mToUrl;  //  SIP address for the remote side    UtlString mRemoteUriStr;  //  SIP uri string for the remote side    UtlString mLocalUriStr;  //  SIP uri string for the local side    UtlDList mRemotePAssertedIdentities; // SIP identities from p-Asserted-Identity header    UtlString mLocalPAssertedIdentity;    int lastLocalSequenceNumber;    int lastRemoteSequenceNumber;    int reinviteState;    UtlString mRouteField;    int mDefaultSessionReinviteTimer;    int mSessionReinviteTimer;    UtlString mAllowedRemote;  // Methods supported by the otherside    UtlBoolean mIsReferSent;   // used to determine whether to send ack when sequence number is smaller    UtlBoolean mIsAcceptSent;   // used to determine whether to accept ack when sequence number is smaller    int mHoldCompleteAction;    UtlBoolean mIsEarlyMediaFor180;    UtlString mLineId; //line identifier for incoming calls.    UtlString mLocalContact;    ///< The local Contact: field value - a URI in name-addr format.    CONTACT_TYPE mContactType ;    CONTACT_ID mContactId;    UtlBoolean getInitialSdpCodecs(const SipMessage* sdpMessage,        SdpCodecFactory& supportedCodecsArray,        int& numCodecsInCommon,        SdpCodec** &codecsInCommon,        UtlString& remoteAddress,        int& remotePort,        int& remoteRtcpPort) const;    virtual void proceedToRinging(const SipMessage* inviteMessage,        SipUserAgent* sipUserAgent,        int tagNum,        int availableBehavior);    UtlBoolean isMethodAllowed(const char* method);    void doBlindRefer();    //! Check INVITE for asserted identity change    UtlBoolean updateAssertedIds(const SipMessage& sipMessage);    SipConnection& operator=(const SipConnection& rhs);    //:Assignment operator (disabled)    SipConnection(const SipConnection& rSipConnection);    //:Copy constructor (disabled)};/* ============================ INLINE METHODS ============================ */#endif  // _SipConnection_h_

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩中文字幕一区二区三区| 久久综合视频网| 欧美日韩国产经典色站一区二区三区| 国产麻豆精品在线观看| 美女网站一区二区| 日韩国产欧美三级| 亚洲国产精品一区二区久久| 中文字幕一区二区三| 日本一区二区免费在线观看视频 | 欧美成人aa大片| 一区二区三区在线视频免费| 欧美性大战xxxxx久久久| 狠狠色丁香久久婷婷综| 欧美精品一区二区三区蜜桃| 激情偷乱视频一区二区三区| 日韩精品一区二| 91视频com| 丝袜美腿高跟呻吟高潮一区| 久久久久亚洲蜜桃| 国产精品久久久久久久久搜平片| 国产综合久久久久影院| 久久99国产精品久久99| 免费久久99精品国产| 美脚の诱脚舐め脚责91 | 中文字幕在线一区二区三区| 久久久久久久久久久久电影| 欧美不卡一区二区| 精品三级在线观看| 亚洲精品一线二线三线| 2021国产精品久久精品| 久久久影视传媒| 国产精品久久午夜| 欧美国产精品久久| 亚洲欧美一区二区在线观看| 亚洲影视在线观看| 成人午夜免费av| 国产乱人伦偷精品视频不卡| 国产伦理精品不卡| 成人av资源在线观看| 色哟哟在线观看一区二区三区| 日本久久一区二区三区| 欧美色综合网站| 欧美一二三在线| 精品伦理精品一区| 中文字幕一区二区三区在线不卡 | 美女在线观看视频一区二区| 久久精品久久精品| 粉嫩高潮美女一区二区三区 | 精品视频免费看| 欧美日韩一区二区三区视频| 久久一区二区视频| 国产欧美精品一区| 国产网站一区二区| 中文字幕视频一区二区三区久| 国产精品伦理在线| 亚洲制服丝袜在线| 亚洲色图.com| 久久精品国产精品青草| 成人一道本在线| 色就色 综合激情| 欧美乱妇一区二区三区不卡视频| 欧美高清视频一二三区| 久久久综合视频| 亚洲制服丝袜在线| 国产原创一区二区三区| 在线精品视频免费播放| 精品免费视频一区二区| 亚洲免费在线观看视频| 激情综合亚洲精品| 欧美在线观看视频一区二区三区| 2021国产精品久久精品| 亚洲欧美另类图片小说| 狠狠色狠狠色综合| 91成人在线精品| wwwwxxxxx欧美| 午夜视频久久久久久| 丁香婷婷综合色啪| 日韩视频一区二区三区| 亚洲精品欧美激情| 国产精品99久久久久久久vr| 777色狠狠一区二区三区| 国产精品无遮挡| 久热成人在线视频| 色狠狠一区二区| 国产精品电影一区二区三区| 蜜桃av一区二区| 色丁香久综合在线久综合在线观看| 精品国产露脸精彩对白| 丝袜美腿高跟呻吟高潮一区| 国产福利一区在线| 欧美高清视频www夜色资源网| 一区在线播放视频| 国产精品影视在线| 日韩精品专区在线影院重磅| 亚洲va在线va天堂| 中文字幕亚洲精品在线观看| 蜜桃视频一区二区三区在线观看 | 国产精品综合一区二区| 欧美人伦禁忌dvd放荡欲情| 青青草国产成人99久久| 精品国偷自产国产一区| 国产一区二区三区最好精华液 | 色偷偷一区二区三区| 亚洲午夜免费福利视频| 国产农村妇女毛片精品久久麻豆 | 中文字幕免费不卡| 国产激情一区二区三区四区 | 亚洲福中文字幕伊人影院| 欧美婷婷六月丁香综合色| 亚洲国产一区二区三区青草影视| 欧美视频在线一区| 爽好多水快深点欧美视频| 欧美日本韩国一区| 日韩av不卡在线观看| 精品欧美乱码久久久久久1区2区| 久久草av在线| 久久久九九九九| 成人91在线观看| 一区二区三区在线免费观看| 欧美性猛交xxxx黑人交| 日韩精品亚洲一区| 欧美精品一区二区精品网| 国产精品69毛片高清亚洲| 国产精品私人影院| 欧美午夜宅男影院| 免费的成人av| 国产女人aaa级久久久级 | 国产欧美日韩三级| 91在线国产观看| 亚洲国产人成综合网站| 精品日韩一区二区三区| 成人免费av在线| 亚洲国产人成综合网站| 欧美va在线播放| youjizz久久| 亚洲第一精品在线| 久久婷婷一区二区三区| 99免费精品视频| 日韩av电影一区| 国产日韩欧美精品电影三级在线 | 久久午夜羞羞影院免费观看| 97久久精品人人做人人爽| 五月婷婷综合网| 国产无遮挡一区二区三区毛片日本| 99久久99久久精品免费观看| 青青草97国产精品免费观看 | 欧美日韩电影一区| 国产欧美日韩卡一| 亚洲成人av电影| 美腿丝袜亚洲色图| 国产成人av福利| 99久久99久久综合| 欧美日韩高清一区二区三区| 欧美三区在线观看| 91精品国产综合久久香蕉的特点 | 成人福利视频网站| 亚洲欧美国产三级| 欧美成人一区二区三区| 99久久国产综合色|国产精品| 日本不卡视频在线| 中文字幕一区免费在线观看| 91精品国产综合久久精品麻豆| 成人性色生活片免费看爆迷你毛片| 五月激情综合婷婷| 日韩伦理电影网| 日韩一级黄色片| 色嗨嗨av一区二区三区| 国产精品18久久久久久久网站| 亚洲成人免费观看| 最新高清无码专区| 26uuu精品一区二区三区四区在线| 欧美日韩中文字幕一区二区| 国产精品1区2区| 久久精品国产精品亚洲红杏 | 成人激情电影免费在线观看| 全部av―极品视觉盛宴亚洲| 亚洲欧美一区二区三区孕妇| 久久久综合激的五月天| 91精品在线免费| 色八戒一区二区三区| 丁香激情综合五月| 久久国产欧美日韩精品| 天天综合日日夜夜精品| 亚洲最快最全在线视频| 国产精品乱人伦中文| 国产亚洲一本大道中文在线| 欧美一区二区精品在线| 精品视频1区2区3区| 91福利在线播放| 91麻豆福利精品推荐| www.性欧美| 成人国产精品免费观看动漫| 国产一区二区美女| 九九久久精品视频| 美腿丝袜亚洲色图| 麻豆成人免费电影| 麻豆91在线播放| 久久精品国产色蜜蜜麻豆| 奇米888四色在线精品| 日韩av不卡一区二区|