#include <channels.h>
Inheritance diagram for H323_ExternalRTPChannel:
Public Member Functions | |
void | SetExternalAddress (const H323TransportAddress &data, const H323TransportAddress &control) |
const H323TransportAddress & | GetRemoteMediaAddress () const |
const H323TransportAddress & | GetRemoteMediaControlAddress () const |
PBoolean | GetRemoteAddress (PIPSocket::Address &ip, WORD &dataPort) const |
Construction | |
H323_ExternalRTPChannel (H323Connection &connection, const H323Capability &capability, Directions direction, unsigned sessionID) | |
H323_ExternalRTPChannel (H323Connection &connection, const H323Capability &capability, Directions direction, unsigned sessionID, const H323TransportAddress &data, const H323TransportAddress &control) | |
H323_ExternalRTPChannel (H323Connection &connection, const H323Capability &capability, Directions direction, unsigned sessionID, const PIPSocket::Address &ip, WORD dataPort) | |
Overrides from class H323Channel | |
virtual unsigned | GetSessionID () const |
virtual PBoolean | GetMediaTransportAddress (OpalTransportAddress &data, OpalTransportAddress &control) const |
virtual PBoolean | Start () |
virtual void | Receive () |
virtual void | Transmit () |
Overrides from class H323_RealTimeChannel | |
virtual PBoolean | OnSendingPDU (H245_H2250LogicalChannelParameters ¶m) const |
virtual void | OnSendOpenAck (H245_H2250LogicalChannelAckParameters ¶m) const |
virtual PBoolean | OnReceivedPDU (const H245_H2250LogicalChannelParameters ¶m, unsigned &errorCode) |
virtual PBoolean | OnReceivedAckPDU (const H245_H2250LogicalChannelAckParameters ¶m) |
Protected Member Functions | |
void | Construct (H323Connection &conn, unsigned id) |
Protected Attributes | |
unsigned | sessionID |
H323TransportAddress | externalMediaAddress |
H323TransportAddress | externalMediaControlAddress |
H323TransportAddress | remoteMediaAddress |
H323TransportAddress | remoteMediaControlAddress |
H323_ExternalRTPChannel::H323_ExternalRTPChannel | ( | H323Connection & | connection, | |
const H323Capability & | capability, | |||
Directions | direction, | |||
unsigned | sessionID | |||
) |
Create a new channel.
connection | Connection to endpoint for channel |
capability | Capability channel is using |
direction | Direction of channel |
sessionID | Session ID for channel |
H323_ExternalRTPChannel::H323_ExternalRTPChannel | ( | H323Connection & | connection, | |
const H323Capability & | capability, | |||
Directions | direction, | |||
unsigned | sessionID, | |||
const H323TransportAddress & | data, | |||
const H323TransportAddress & | control | |||
) |
Create a new channel.
connection | Connection to endpoint for channel |
capability | Capability channel is using |
direction | Direction of channel |
sessionID | Session ID for channel |
data | Data address |
control | Control address |
H323_ExternalRTPChannel::H323_ExternalRTPChannel | ( | H323Connection & | connection, | |
const H323Capability & | capability, | |||
Directions | direction, | |||
unsigned | sessionID, | |||
const PIPSocket::Address & | ip, | |||
WORD | dataPort | |||
) |
Create a new channel.
connection | Connection to endpoint for channel |
capability | Capability channel is using |
direction | Direction of channel |
sessionID | Session ID for channel |
ip | IP address of media server |
dataPort | Data port (control is dataPort+1) |
void H323_ExternalRTPChannel::Construct | ( | H323Connection & | conn, | |
unsigned | id | |||
) | [protected] |
virtual PBoolean H323_ExternalRTPChannel::GetMediaTransportAddress | ( | OpalTransportAddress & | data, | |
OpalTransportAddress & | control | |||
) | const [virtual] |
Get the media transport address for the connection. This is primarily used to determine if media bypass is possible for the call between two connections.
The default behaviour returns PFalse.
data | Data channel address |
control | Control channel address |
Reimplemented from H323Channel.
PBoolean H323_ExternalRTPChannel::GetRemoteAddress | ( | PIPSocket::Address & | ip, | |
WORD & | dataPort | |||
) | const |
const H323TransportAddress& H323_ExternalRTPChannel::GetRemoteMediaAddress | ( | ) | const [inline] |
const H323TransportAddress& H323_ExternalRTPChannel::GetRemoteMediaControlAddress | ( | ) | const [inline] |
virtual unsigned H323_ExternalRTPChannel::GetSessionID | ( | ) | const [virtual] |
Indicate the session number of the channel. Return session for channel. This returns the session ID of the RTP_Session member variable.
Reimplemented from H323Channel.
virtual PBoolean H323_ExternalRTPChannel::OnReceivedAckPDU | ( | const H245_H2250LogicalChannelAckParameters & | param | ) | [virtual] |
This is called after a request to create a channel occurs from the local machine via the H245LogicalChannelDict::Open() function, and the request has been acknowledged by the remote endpoint.
The default behaviour sets the remote ports to send UDP packets to.
param | Acknowledgement PDU |
Reimplemented from H323_RealTimeChannel.
virtual PBoolean H323_ExternalRTPChannel::OnReceivedPDU | ( | const H245_H2250LogicalChannelParameters & | param, | |
unsigned & | errorCode | |||
) | [virtual] |
This is called after a request to create a channel occurs from the local machine via the H245LogicalChannelDict::Open() function, and the request has been acknowledged by the remote endpoint.
The default behaviour sets the remote ports to send UDP packets to.
param | Acknowledgement PDU |
errorCode | Error on failure |
Reimplemented from H323_RealTimeChannel.
virtual PBoolean H323_ExternalRTPChannel::OnSendingPDU | ( | H245_H2250LogicalChannelParameters & | param | ) | const [virtual] |
Fill out the OpenLogicalChannel PDU for the particular channel type.
param | Open PDU to send. |
Reimplemented from H323_RealTimeChannel.
virtual void H323_ExternalRTPChannel::OnSendOpenAck | ( | H245_H2250LogicalChannelAckParameters & | param | ) | const [virtual] |
This is called when request to create a channel is received from a remote machine and is about to be acknowledged.
param | Acknowledgement PDU |
Reimplemented from H323_RealTimeChannel.
virtual void H323_ExternalRTPChannel::Receive | ( | ) | [virtual] |
Handle channel data reception.
This is called by the thread started by the Start() function and is typically a loop writing to the codec and reading from the transport (eg RTP_session).
void H323_ExternalRTPChannel::SetExternalAddress | ( | const H323TransportAddress & | data, | |
const H323TransportAddress & | control | |||
) |
data | Data address |
control | Control address |
virtual PBoolean H323_ExternalRTPChannel::Start | ( | ) | [virtual] |
Start the channel.
Reimplemented from H323UnidirectionalChannel.
virtual void H323_ExternalRTPChannel::Transmit | ( | ) | [virtual] |
Handle channel data transmission.
This is called by the thread started by the Start() function and is typically a loop reading from the codec and writing to the transport (eg an RTP_session).
unsigned H323_ExternalRTPChannel::sessionID [protected] |