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 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.
|
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.
|
Function Documentation
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.
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.
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.
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.
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.
|