Objective Systems, Inc.  

H.245 logical channel management


Data Structures

struct  OOLogicalChannel
 Structure to store information on logical channels for a call. More...

Defines

#define ooLogicalChannel   OOLogicalChannel

Enumerations

enum  OOLogicalChannelState {
  OO_LOGICAL_CHAN_UNKNOWN,
  OO_LOGICALCHAN_IDLE,
  OO_LOGICALCHAN_PROPOSED,
  OO_LOGICALCHAN_ESTABLISHED
}
 Logical channel states.

Functions

EXTERN ooLogicalChannel * ooAddNewLogicalChannel (struct OOH323CallData *call, int channelNo, int sessionID, char *dir, ooH323EpCapability *epCap)
 This function is used to add a new logical channel entry into the list of currently active logical channels.
EXTERN ooLogicalChannel * ooFindLogicalChannelByLogicalChannelNo (struct OOH323CallData *call, int channelNo)
 This function is used to find a logical channel using the logical channel number as a key.
EXTERN int ooOnLogicalChannelEstablished (struct OOH323CallData *call, OOLogicalChannel *pChannel)
 This function is called when a new logical channel is established.
EXTERN ooLogicalChannel * ooGetLogicalChannel (struct OOH323CallData *call, int sessionID, char *dir)
 This function is used to retrieve a logical channel with a particular sessionID.
EXTERN int ooRemoveLogicalChannel (struct OOH323CallData *call, int ChannelNo)
 This function is used to remove a logical channel from the list of channels within the call structure.
EXTERN int ooClearLogicalChannel (struct OOH323CallData *call, int channelNo)
 This function is used to cleanup a logical channel.
EXTERN int ooClearAllLogicalChannels (struct OOH323CallData *call)
 This function is used to cleanup all the logical channels associated with the call.
EXTERN OOLogicalChannelooFindLogicalChannelByOLC (struct OOH323CallData *call, H245OpenLogicalChannel *olc)
 This function is used to find a logical channel from a received H.245 Open Logical Channel (OLC) message.
EXTERN OOLogicalChannelooFindLogicalChannel (struct OOH323CallData *call, int sessionID, char *dir, H245DataType *dataType)
 This function is used to find a logical channel based on session Id, direction of channel and datatype.

Function Documentation

EXTERN ooLogicalChannel* ooAddNewLogicalChannel ( struct OOH323CallData call,
int  channelNo,
int  sessionID,
char *  dir,
ooH323EpCapability epCap 
)

This function is used to add a new logical channel entry into the list of currently active logical channels.

Parameters:
call Pointer to the call for which new logical channel entry has to be created.
channelNo Channel number for the new channel entry.
sessionID Session identifier for the new channel.
dir Direction of the channel(transmit/receive)
epCap Capability to be used for the new channel.
Returns:
Pointer to logical channel, on success. NULL, on failure

EXTERN ooLogicalChannel* ooFindLogicalChannelByLogicalChannelNo ( struct OOH323CallData call,
int  channelNo 
)

This function is used to find a logical channel using the logical channel number as a key.

Parameters:
call Pointer to the call for which logical channel is required.
channelNo Forward Logical Channel number for the logical channel
Returns:
Pointer to the logical channel if found, NULL otherwise.

EXTERN int ooOnLogicalChannelEstablished ( struct OOH323CallData call,
OOLogicalChannel pChannel 
)

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.

Parameters:
call Handle to the call which owns the logical channel.
pChannel Handle to the newly established logical channel.
Returns:
OO_OK, on success. OO_FAILED, on failure.

EXTERN ooLogicalChannel* ooGetLogicalChannel ( struct OOH323CallData call,
int  sessionID,
char *  dir 
)

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.

Parameters:
call Handle to the call which owns the channels to be searched.
sessionID Session id of the session which is to be searched for.
dir Direction of the channel.(transmit/receive)
Returns:
Returns a pointer to the logical channel if found, NULL otherwise.

EXTERN int ooRemoveLogicalChannel ( struct OOH323CallData call,
int  ChannelNo 
)

This function is used to remove a logical channel from the list of channels within the call structure.

Parameters:
call Pointer to the call from which logical channel has to be removed.
ChannelNo Forward logical channel number of the channel to be removed.
Returns:
OO_OK, on success. OO_FAILED, on failure.

EXTERN int ooClearLogicalChannel ( 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.

Parameters:
call Handle to the call which owns the logical channel.
channelNo Channel number identifying the channel.
Returns:
OO_OK, on success. OO_FAILED, on failure.

EXTERN int ooClearAllLogicalChannels ( struct OOH323CallData call  ) 

This function is used to cleanup all the logical channels associated with the call.

Parameters:
call Handle to the call which owns the channels.
Returns:
OO_OK, on success. OO_FAILED, on failure.

EXTERN OOLogicalChannel* ooFindLogicalChannelByOLC ( struct OOH323CallData call,
H245OpenLogicalChannel *  olc 
)

This function is used to find a logical channel from a received H.245 Open Logical Channel (OLC) message.

Parameters:
call Handle to the related call.
olc Handle to the received OLC.
Returns:
Returns the corresponding logical channel if found, else returns NULL.

EXTERN OOLogicalChannel* ooFindLogicalChannel ( struct OOH323CallData call,
int  sessionID,
char *  dir,
H245DataType *  dataType 
)

This function is used to find a logical channel based on session Id, direction of channel and datatype.

Parameters:
call Handle to the call
sessionID Session ID for the channel to be searched.
dir Direction of the channel wrt local endpoint. (transmit/receive)
dataType Handle to the data type for the channel.
Returns:
Logical channel, if found, NULL otherwise.


This file was last modified on 28 May 2010.
Objective Open H.323 Stack, 0.9.1