#include <channels.h>
Inheritance diagram for H323_RTPChannel:

Public Member Functions | |
| void | AddFilter (const PNotifier &filterFunction) |
| void | RemoveFilter (const PNotifier &filterFunction) |
| PTimeInterval | GetSilenceDuration () const |
Construction | |
| H323_RTPChannel (H323Connection &connection, const H323Capability &capability, Directions direction, RTP_Session &rtp) | |
| ~H323_RTPChannel () | |
| Destroy the channel. | |
Overrides from class H323Channel | |
| virtual void | CleanUpOnTermination () |
| virtual unsigned | GetSessionID () const |
| virtual BOOL | Open () |
| virtual void | Receive () |
| virtual void | Transmit () |
Overrides from class H323_RealTimeChannel | |
| virtual BOOL | OnSendingPDU (H245_H2250LogicalChannelParameters ¶m) const |
| virtual BOOL | OnSendingAltPDU (H245_ArrayOf_GenericInformation &alternate) const |
| virtual void | OnSendOpenAck (H245_H2250LogicalChannelAckParameters ¶m) const |
| virtual void | OnSendOpenAckAlt (H245_ArrayOf_GenericInformation &alternate) const |
| virtual BOOL | OnReceivedPDU (const H245_H2250LogicalChannelParameters ¶m, unsigned &errorCode) |
| virtual BOOL | OnReceivedAltPDU (const H245_ArrayOf_GenericInformation &alternate) |
| virtual BOOL | OnReceivedAckPDU (const H245_H2250LogicalChannelAckParameters ¶m) |
| virtual BOOL | OnReceivedAckAltPDU (const H245_ArrayOf_GenericInformation &alternate) |
Protected Attributes | |
| RTP_Session & | rtpSession |
| H323_RTP_Session & | rtpCallbacks |
| FilterList | filters |
| PMutex | filterMutex |
| PTimeInterval | silenceStartTick |
Definition at line 710 of file channels.h.
| H323_RTPChannel::H323_RTPChannel | ( | H323Connection & | connection, | |
| const H323Capability & | capability, | |||
| Directions | direction, | |||
| RTP_Session & | rtp | |||
| ) |
Create a new channel.
| connection | Connection to endpoint for channel |
| capability | Capability channel is using |
| direction | Direction of channel |
| rtp | RTP session for channel |
Definition at line 1108 of file channels.cxx.
References GetSessionID(), and H323UnidirectionalChannel::receiver.
| void H323_RTPChannel::CleanUpOnTermination | ( | ) | [virtual] |
This is called to clean up any threads on connection termination.
Reimplemented from H323Channel.
Definition at line 1129 of file channels.cxx.
References H323Channel::CleanUpOnTermination(), RTP_Session::Close(), H323Channel::number, H323UnidirectionalChannel::receiver, H323Channel::receiveThread, rtpSession, H323Channel::terminating, and H323Channel::transmitThread.
| unsigned H323_RTPChannel::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.
Definition at line 1145 of file channels.cxx.
References RTP_Session::GetSessionID(), and rtpSession.
Referenced by H323_RTPChannel(), and ~H323_RTPChannel().
| BOOL H323_RTPChannel::Open | ( | ) | [virtual] |
Open the channel.
Reimplemented from H323Channel.
Definition at line 1151 of file channels.cxx.
References H323Codec::AttachLogicalChannel(), H323Channel::capability, H323Channel::codec, H323Channel::connection, H323Channel::GetCodec(), H323UnidirectionalChannel::GetDirection(), H323Codec::GetMediaFormat(), H323Channel::IsReceiver, OpalMediaFormat::IsValid(), H323Connection::OnStartLogicalChannel(), H323Codec::Open(), and H323Channel::opened.
| void H323_RTPChannel::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).
Implements H323Channel.
Definition at line 1438 of file channels.cxx.
References H323Connection::CloseLogicalChannelNumber(), H323Channel::codec, H323Channel::connection, OpalMediaFormat::DefaultAudioSessionID, H323Channel::endpoint, filterMutex, filters, OpalMediaFormat::GetDefaultSessionID(), H323Codec::GetFrameRate(), H323EndPoint::GetJitterThreadStackSize(), H323Connection::GetMaxAudioJitterDelay(), H323Codec::GetMediaFormat(), H323Connection::GetMinAudioJitterDelay(), H323_RealTimeChannel::GetRTPPayloadType(), OpalMediaFormat::GetTimeUnits(), RTP_DataFrame::IllegalPayloadType, OpalMediaFormat::NeedsJitterBuffer(), H323Channel::number, H323Channel::paused, RTP_Session::ReadBufferedData(), H323_RealTimeChannel::rtpPayloadType, rtpSession, RTP_Session::SetJitterBufferSize(), silenceStartTick, H323Channel::terminating, and H323Codec::Write().
| void H323_RTPChannel::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).
Implements H323Channel.
Definition at line 1277 of file channels.cxx.
References H323Channel::capability, H323Connection::CloseLogicalChannelNumber(), H323Channel::codec, H323Channel::connection, filterMutex, filters, RTP_DataFrame::G729, H323Codec::GetFrameRate(), OpalMediaFormat::GetFrameSize(), H323Codec::GetMediaFormat(), RTP_DataFrame::GetPayloadPtr(), H323_RealTimeChannel::GetRTPPayloadType(), OpalMediaFormat::GetTimeUnits(), H323Capability::GetTxFramesInPacket(), RTP_DataFrame::IllegalPayloadType, OpalMediaFormat::NeedsJitterBuffer(), H323Channel::number, H323Channel::paused, H323Codec::Read(), H323_RealTimeChannel::rtpPayloadType, rtpSession, RTP_DataFrame::SetMarker(), RTP_DataFrame::SetPayloadSize(), RTP_DataFrame::SetPayloadType(), RTP_DataFrame::SetTimestamp(), silenceStartTick, H323Channel::terminating, and RTP_Session::WriteData().
| BOOL H323_RTPChannel::OnSendingPDU | ( | H245_H2250LogicalChannelParameters & | param | ) | const [virtual] |
Fill out the OpenLogicalChannel PDU for the particular channel type.
| param | Open PDU to send. |
Implements H323_RealTimeChannel.
Definition at line 1193 of file channels.cxx.
References H323_RTP_Session::OnSendingPDU(), and rtpCallbacks.
| BOOL H323_RTPChannel::OnSendingAltPDU | ( | H245_ArrayOf_GenericInformation & | alternate | ) | const [virtual] |
Alternate RTP port information for Same NAT
| alternate | Alternate RTP ports |
Implements H323_RealTimeChannel.
Definition at line 1198 of file channels.cxx.
References H323_RTP_Session::OnSendingAltPDU(), and rtpCallbacks.
| void H323_RTPChannel::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 |
Implements H323_RealTimeChannel.
Definition at line 1203 of file channels.cxx.
References H323_RTP_Session::OnSendingAckPDU(), and rtpCallbacks.
| void H323_RTPChannel::OnSendOpenAckAlt | ( | H245_ArrayOf_GenericInformation & | alternate | ) | const [virtual] |
Alternate RTP port information for Same NAT
| alternate | Alternate RTP ports |
Implements H323_RealTimeChannel.
Definition at line 1208 of file channels.cxx.
References H323_RTP_Session::OnSendOpenAckAlt(), and rtpCallbacks.
| BOOL H323_RTPChannel::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 |
Implements H323_RealTimeChannel.
Definition at line 1213 of file channels.cxx.
References H323_RTP_Session::OnReceivedPDU(), and rtpCallbacks.
| BOOL H323_RTPChannel::OnReceivedAltPDU | ( | const H245_ArrayOf_GenericInformation & | alternate | ) | [virtual] |
Alternate RTP port information for Same NAT
| alternate | Alternate RTP ports |
Implements H323_RealTimeChannel.
Definition at line 1219 of file channels.cxx.
References H323_RTP_Session::OnReceivedAltPDU(), and rtpCallbacks.
| BOOL H323_RTPChannel::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 |
Implements H323_RealTimeChannel.
Definition at line 1225 of file channels.cxx.
References H323_RTP_Session::OnReceivedAckPDU(), and rtpCallbacks.
| BOOL H323_RTPChannel::OnReceivedAckAltPDU | ( | const H245_ArrayOf_GenericInformation & | alternate | ) | [virtual] |
Alternate RTP port information for Same NAT
| alternate | Alternate RTP ports |
Implements H323_RealTimeChannel.
Definition at line 1230 of file channels.cxx.
References H323_RTP_Session::OnReceivedAckAltPDU(), and rtpCallbacks.
1.5.2