/usr/include/openh323/h224handler.h is in libh323plus-dev 1.24.0~dfsg2-1.3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 | /*
* h224handler.h
*
* H.224 protocol handler implementation for the OpenH323 Project.
*
* Copyright (c) 2006 Network for Educational Technology, ETH Zurich.
* Written by Hannes Friederich.
*
* The contents of this file are subject to the Mozilla Public License
* Version 1.0 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
*
* Contributor(s): ______________________________________.
*
* $Log: h224handler.h,v $
* Revision 1.3 2011/01/12 12:51:52 shorne
* H.224 bi-directional support added
*
* Revision 1.2 2008/05/23 11:19:21 willamowius
* switch BOOL to PBoolean to be able to compile with Ptlib 2.2.x
*
* Revision 1.1 2007/08/06 20:50:48 shorne
* First commit of h323plus
*
* Revision 1.1 2006/06/22 11:07:22 shorne
* Backport of FECC (H.224) from Opal
*
* Revision 1.2 2006/04/23 18:52:19 dsandras
* Removed warnings when compiling with gcc on Linux.
*
* Revision 1.1 2006/04/20 16:48:17 hfriederich
* Initial version of H.224/H.281 implementation.
*
*/
#ifndef __H323_H224HANDLER_H
#define __H323_H224HANDLER_H
#ifdef P_USE_PRAGMA
#pragma interface
#endif
#include <ptlib.h>
#include <rtp.h>
#include <h281handler.h>
#include <channels.h>
#define H281_CLIENT_ID 0x01
class H224_Frame;
class OpalH224Handler;
class OpalH224ReceiverThread : public PThread
{
PCLASSINFO(OpalH224ReceiverThread, PThread);
public:
OpalH224ReceiverThread(OpalH224Handler *h224Handler, RTP_Session & rtpSession);
~OpalH224ReceiverThread();
virtual void Main();
void Close();
private:
OpalH224Handler *h224Handler;
mutable PMutex inUse;
unsigned timestamp;
RTP_Session & rtpSession;
PBoolean terminate;
};
class OpalH281Handler;
class H323Connection;
class OpalH224Handler : public PObject
{
PCLASSINFO(OpalH224Handler, PObject);
public:
OpalH224Handler(H323Channel::Directions dir, H323Connection & connection, unsigned sessionID);
~OpalH224Handler();
virtual void StartTransmit();
virtual void StopTransmit();
virtual void StartReceive();
virtual void StopReceive();
PBoolean SendClientList();
PBoolean SendExtraCapabilities();
PBoolean SendClientListCommand();
PBoolean SendExtraCapabilitiesCommand(BYTE clientID);
PBoolean SendExtraCapabilitiesMessage(BYTE clientID, BYTE *data, PINDEX length);
PBoolean TransmitClientFrame(BYTE clientID, H224_Frame & frame);
virtual PBoolean OnReceivedFrame(H224_Frame & frame);
virtual PBoolean OnReceivedCMEMessage(H224_Frame & frame);
virtual PBoolean OnReceivedClientList(H224_Frame & frame);
virtual PBoolean OnReceivedClientListCommand();
virtual PBoolean OnReceivedExtraCapabilities(H224_Frame & frame);
virtual PBoolean OnReceivedExtraCapabilitiesCommand();
PMutex & GetTransmitMutex() { return transmitMutex; }
RTP_Session * GetSession() const { return session; }
virtual OpalH224ReceiverThread * CreateH224ReceiverThread();
OpalH281Handler *GetH281Handler() { return h281Handler; }
H323Channel::Directions GetDirection() { return sessionDirection; }
protected:
RTP_Session * session;
PBoolean canTransmit;
PMutex transmitMutex;
RTP_DataFrame *transmitFrame;
BYTE transmitBitIndex;
PTime *transmitStartTime;
OpalH224ReceiverThread *receiverThread;
OpalH281Handler *h281Handler;
H323Channel::Directions sessionDirection;
private:
void TransmitFrame(H224_Frame & frame);
};
#endif // __H323_H224HANDLER_H
|