oologchan.h

来自「一个非常美妙的proxy。功能强大。基于sip的协议。如果还要的话」· C头文件 代码 · 共 191 行

H
191
字号
/* * Copyright (C) 2004-2005 by Objective Systems, Inc. * * This software is furnished under an open source license and may be  * used and copied only in accordance with the terms of this license.  * The text of the license may generally be found in the root  * directory of this installation in the COPYING file.  It  * can also be viewed online at the following URL: * *   http://www.obj-sys.com/open/license.html * * Any redistributions of this file including modified versions must  * maintain this copyright notice. * *****************************************************************************//** * @file ooLogChan.h  * This file contains structures and functions for maintaining information * on logical channels within the stack. */#ifndef _OOLOGCHAN_H_#define _OOLOGCHAN_H_#include "ootypes.h"#include "ooCapability.h"#ifdef __cplusplusextern "C" {#endif/** * @defgroup logchan H.245 logical channel management * @{ */struct ooH323EpCapability;struct OOH323CallData;/**  * Logical channel states. */typedef enum {   OO_LOGICAL_CHAN_UNKNOWN,    OO_LOGICALCHAN_IDLE,    OO_LOGICALCHAN_PROPOSED,    OO_LOGICALCHAN_ESTABLISHED} OOLogicalChannelState;/** * Structure to store information on logical channels for a call. */typedef struct OOLogicalChannel {   int  channelNo;   int  sessionID;   enum OOCapType type;   char dir[10];  /* receive/transmit */   char remoteIP[20];   int  remoteMediaPort;   int  remoteMediaControlPort;   int  localRtpPort;   int  localRtcpPort;   char localIP[20];   OOLogicalChannelState state;            struct ooH323EpCapability *chanCap;   struct OOLogicalChannel *next;} OOLogicalChannel;#define ooLogicalChannel OOLogicalChannel/** * This function is used to add a new logical channel entry into the list * of currently active logical channels. * @param call      Pointer to the call for which new logical channel  *                  entry has to be created. * @param channelNo Channel number for the new channel entry. * @param sessionID Session identifier for the new channel. * @param dir       Direction of the channel(transmit/receive) * @param epCap     Capability to be used for the new channel. * * @return          Pointer to logical channel, on success. NULL, on failure */EXTERN ooLogicalChannel* ooAddNewLogicalChannel   (struct OOH323CallData *call, int channelNo, int sessionID,     char *dir, ooH323EpCapability *epCap);/** * This function is used to find a logical channel using the logical  * channel number as a key. * @param call          Pointer to the call for which logical channel is  *                      required. * @param channelNo     Forward Logical Channel number for the logical channel * * @return              Pointer to the logical channel if found, NULL  *                      otherwise.    */EXTERN ooLogicalChannel* ooFindLogicalChannelByLogicalChannelNo(struct OOH323CallData *call, int channelNo);/** * This function is called when a new logical channel is established. It is  * particularly useful in case of faststart. When the remote endpoint selects  * one of the proposed alternatives, other channels for the same session type  * need to be closed. This function is used for that. * * @param call      Handle to the call which owns the logical channel. * @param pChannel  Handle to the newly established logical channel. * @return          OO_OK, on success. OO_FAILED, on failure. */EXTERN int ooOnLogicalChannelEstablished(struct OOH323CallData *call, OOLogicalChannel * pChannel);/** * This function is used to retrieve a logical channel with a particular  * sessionID. Note that there can be two entries of logical channel, one in  * each direction. This function will return the first channel which has the  * same session ID. * @param call      Handle to the call which owns the channels to be searched. * @param sessionID Session id of the session which is to be searched for. * @param dir       Direction of the channel.(transmit/receive) * * @return          Returns a pointer to the logical channel if found, NULL  *                  otherwise. */EXTERN ooLogicalChannel* ooGetLogicalChannel(struct OOH323CallData *call, int sessionID, char *dir);/** * This function is used to remove a logical channel from the list of  * channels within the call structure. * @param call              Pointer to the call from which logical channel has  *                          to be removed. * @param ChannelNo         Forward logical channel number of the channel to be *                          removed. * @return          OO_OK, on success. OO_FAILED, on failure. */EXTERN int ooRemoveLogicalChannel (struct OOH323CallData *call, int ChannelNo);/** * This function is used to cleanup a logical channel. It first stops media if * it is still active and then removes the channel from the list, freeing up  * all the associated memory. * @param call       Handle to the call which owns the logical channel. * @param channelNo  Channel number identifying the channel. * * @return           OO_OK, on success. OO_FAILED, on failure. */EXTERN int ooClearLogicalChannel (struct OOH323CallData *call, int channelNo);/** * This function is used to cleanup all the logical channels associated with  * the call. * @param call      Handle to the call which owns the channels. * * @return          OO_OK, on success. OO_FAILED, on failure. */EXTERN int ooClearAllLogicalChannels (struct OOH323CallData *call);/** * This function is used to find a logical channel from a received * H.245 Open Logical Channel (OLC) message. * @param call     Handle to the related call. * @param olc      Handle to the received OLC. * * @return         Returns the corresponding logical channel if found, *                 else returns NULL. */EXTERN OOLogicalChannel * ooFindLogicalChannelByOLC(struct OOH323CallData *call, H245OpenLogicalChannel *olc);/** * This function is used to find a logical channel based on session Id, * direction of channel and datatype. * @param call       Handle to the call * @param sessionID  Session ID for the channel to be searched. * @param dir        Direction of the channel wrt local endpoint. *                   (transmit/receive) * @param dataType   Handle to the data type for the channel. * * @return           Logical channel, if found, NULL otherwise. */EXTERN OOLogicalChannel * ooFindLogicalChannel(struct OOH323CallData* call, int sessionID, char *dir, H245DataType* dataType);/**  * @}  */#ifdef __cplusplus}#endif#endif

⌨️ 快捷键说明

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