📄 h323.h
字号:
/* * h323.h * * H.323 protocol handler * * Open H323 Library * * Copyright (c) 1998-2000 Equivalence Pty. Ltd. * * 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. * * The Original Code is Open H323 Library. * * The Initial Developer of the Original Code is Equivalence Pty. Ltd. * * Portions of this code were written with the assisance of funding from * Vovida Networks, Inc. http://www.vovida.com. * * Contributor(s): ______________________________________. * * $Log: h323.h,v $ * Revision 1.77 2000/07/13 12:33:38 robertj * Split autoStartVideo so can select receive and transmit independently * * Revision 1.76 2000/07/04 04:14:06 robertj * Fixed capability check of "combinations" for fast start cases. * * Revision 1.75 2000/07/04 01:16:49 robertj * Added check for capability allowed in "combinations" set, still needs more done yet. * * Revision 1.74 2000/06/29 10:59:53 robertj * Added user interface for sound buffer depth adjustment. * * Revision 1.73 2000/06/23 02:48:23 robertj * Added ability to adjust sound channel buffer depth, needed increasing under Win32. * * Revision 1.72 2000/06/21 08:07:38 robertj * Added cause/reason to release complete PDU, where relevent. * * Revision 1.71 2000/06/10 02:03:36 robertj * Fixed typo in comment * * Revision 1.70 2000/06/07 05:47:55 robertj * Added call forwarding. * * Revision 1.69 2000/06/05 06:33:08 robertj * Fixed problem with roud trip time statistic not being calculated if constant traffic. * * Revision 1.68 2000/05/23 12:57:28 robertj * Added ability to change IP Type Of Service code from applications. * * Revision 1.67 2000/05/23 11:32:26 robertj * Rewrite of capability table to combine 2 structures into one and move functionality into that class * allowing some normalisation of usage across several applications. * Changed H323Connection so gets a copy of capabilities instead of using endponts, allows adjustments * to be done depending on the remote client application. * * Revision 1.66 2000/05/18 11:53:33 robertj * Changes to support doc++ documentation generation. * * Revision 1.65 2000/05/16 08:12:37 robertj * Added documentation for FindChannel() function. * Added function to get a logical channel by channel number. * * Revision 1.64 2000/05/16 02:06:00 craigs * Added access functions for particular sessions * * Revision 1.63 2000/05/09 12:19:22 robertj * Added ability to get and set "distinctive ring" Q.931 functionality. * * Revision 1.62 2000/05/08 14:07:26 robertj * Improved the provision and detection of calling and caller numbers, aliases and hostnames. * * Revision 1.61 2000/05/02 04:32:24 robertj * Fixed copyright notice comment. * * Revision 1.60 2000/05/01 13:00:09 robertj * Changed SetCapability() to append capabilities to TCS, helps with assuring no gaps in set. * * Revision 1.59 2000/04/14 21:08:53 robertj * Work around for compatibility problem wth broken Altigen AltaServ-IG PBX. * * Revision 1.58 2000/04/14 20:01:38 robertj * Added function to get remote endpoints application name. * * Revision 1.57 2000/04/11 04:02:47 robertj * Improved call initiation with gatekeeper, no longer require @address as * will default to gk alias if no @ and registered with gk. * Added new call end reasons for gatekeeper denied calls. * * Revision 1.56 2000/04/10 20:02:49 robertj * Added support for more sophisticated DTMF and hook flash user indication. * * Revision 1.55 2000/04/06 17:50:15 robertj * Added auto-start (including fast start) of video channels, selectable via boolean on the endpoint. * * Revision 1.54 2000/04/05 03:17:30 robertj * Added more RTP statistics gathering and H.245 round trip delay calculation. * * Revision 1.53 2000/03/29 04:32:55 robertj * Improved some trace logging messages. * * Revision 1.52 2000/03/29 02:12:38 robertj * Changed TerminationReason to CallEndReason to use correct telephony nomenclature. * Added CallEndReason for capability exchange failure. * * Revision 1.51 2000/03/25 02:03:18 robertj * Added default transport for gatekeeper to be UDP. * * Revision 1.50 2000/03/23 02:44:49 robertj * Changed ClearAllCalls() so will wait for calls to be closed (usefull in endpoint dtors). * * Revision 1.49 2000/03/02 02:18:13 robertj * Further fixes for early H245 establishment confusing the fast start code. * * Revision 1.48 2000/01/07 08:19:14 robertj * Added status functions for connection and tidied up the answer call function * * Revision 1.47 2000/01/04 00:14:26 craigs * Added additional states to AnswerCall callback * * Revision 1.46 1999/12/23 23:02:34 robertj * File reorganision for separating RTP from H.323 and creation of LID for VPB support. * * Revision 1.45 1999/12/11 02:20:53 robertj * Added ability to have multiple aliases on local endpoint. * * Revision 1.44 1999/11/22 10:07:23 robertj * Fixed some errors in correct termination states. * * Revision 1.43 1999/11/19 08:15:41 craigs * Added connectionStartTime * * Revision 1.42 1999/11/17 00:01:11 robertj * Improved determination of caller name, thanks Ian MacDonald * * Revision 1.41 1999/11/10 23:29:37 robertj * Changed OnAnswerCall() call back function to allow for asyncronous response. * * Revision 1.40 1999/11/06 05:37:44 robertj * Complete rewrite of termination of connection to avoid numerous race conditions. * * Revision 1.39 1999/10/30 12:34:13 robertj * Added information callback for closed logical channel on H323EndPoint. * * Revision 1.38 1999/10/29 02:26:13 robertj * Added reason for termination code to H323Connection. * * Revision 1.37 1999/10/19 00:03:20 robertj * Changed OpenAudioChannel and OpenVideoChannel to allow a codec AttachChannel with no autodelete. * Added function to set initial bandwidth limit on a new connection. * * Revision 1.36 1999/10/14 12:05:03 robertj * Fixed deadlock possibilities in clearing calls. * * Revision 1.35 1999/10/09 01:19:07 craigs * Added codecs to OpenAudioChannel and OpenVideoDevice functions * * Revision 1.34 1999/09/23 07:25:12 robertj * Added open audio and video function to connection and started multi-frame codec send functionality. * * Revision 1.33 1999/09/21 14:24:34 robertj * Changed SetCapability() so automatically calls AddCapability(). * * Revision 1.32 1999/09/21 14:05:21 robertj * Fixed incorrect PTRACING test and removed uneeded include of videoio.h * * Revision 1.31 1999/09/21 08:29:13 craigs * Added support for video codecs and H261 * * Revision 1.30 1999/09/15 01:26:27 robertj * Changed capability set call backs to have more specific class as parameter. * * Revision 1.29 1999/09/14 06:52:54 robertj * Added better support for multi-homed client hosts. * * Revision 1.28 1999/09/13 14:23:11 robertj * Changed MakeCall() function return value to be something useful. * * Revision 1.27 1999/09/10 03:36:47 robertj * Added simple Q.931 Status response to Q.931 Status Enquiry * * Revision 1.26 1999/09/08 04:05:48 robertj * Added support for video capabilities & codec, still needs the actual codec itself! * * Revision 1.25 1999/08/31 12:34:18 robertj * Added gatekeeper support. * * Revision 1.24 1999/08/27 09:46:05 robertj * Added sepearte function to initialise vendor information from endpoint. * * Revision 1.23 1999/08/25 05:14:49 robertj * File fission (critical mass reached). * Improved way in which remote capabilities are created, removed case statement! * Changed MakeCall, so immediately spawns thread, no black on TCP connect. * * Revision 1.22 1999/08/08 10:02:49 robertj * Added access functions to remote capability table. * * Revision 1.21 1999/07/23 02:37:53 robertj * Fixed problems with hang ups and crash closes of connections. * * Revision 1.20 1999/07/18 14:29:31 robertj * Fixed bugs in slow start with H245 tunnelling, part 3. * * Revision 1.19 1999/07/16 14:05:10 robertj * Added application level jitter buffer adjustment. * * Revision 1.18 1999/07/16 06:15:59 robertj * Corrected semantics for tunnelled master/slave determination in fast start. * * Revision 1.17 1999/07/15 14:45:35 robertj * Added propagation of codec open error to shut down logical channel. * Fixed control channel start up bug introduced with tunnelling. * * Revision 1.16 1999/07/14 06:06:13 robertj * Fixed termination problems (race conditions) with deleting connection object. * * Revision 1.15 1999/07/13 02:50:58 craigs * Changed semantics of SetPlayDevice/SetRecordDevice, only descendent * endpoint assumes PSoundChannel devices for audio codec. * * Revision 1.14 1999/07/10 02:59:26 robertj * Fixed ability to hang up incoming connection. * * Revision 1.13 1999/07/09 06:09:49 robertj * Major implementation. An ENORMOUS amount of stuff added everywhere. * * Revision 1.12 1999/06/25 10:25:35 robertj * Added maintentance of callIdentifier variable in H.225 channel. * * Revision 1.11 1999/06/22 13:45:05 robertj * Added user question on listener version to accept incoming calls. * * Revision 1.10 1999/06/14 05:15:56 robertj * Changes for using RTP sessions correctly in H323 Logical Channel context * * Revision 1.9 1999/06/13 12:41:14 robertj * Implement logical channel transmitter. * Fixed H245 connect on receiving call. * * Revision 1.8 1999/06/09 06:18:00 robertj * GCC compatibiltiy. * * Revision 1.7 1999/06/09 05:26:19 robertj * Major restructuring of classes. * * Revision 1.6 1999/06/06 06:06:36 robertj * Changes for new ASN compiler and v2 protocol ASN files. * * Revision 1.5 1999/04/26 06:14:46 craigs * Initial implementation for RTP decoding and lots of stuff * As a whole, these changes are called "First Noise" * * Revision 1.4 1999/02/23 11:04:28 robertj * Added capability to make outgoing call. * * Revision 1.3 1999/01/16 01:31:34 robertj * Major implementation. * * Revision 1.2 1999/01/02 04:00:59 robertj * Added higher level protocol negotiations. * * Revision 1.1 1998/12/14 09:13:12 robertj * Initial revision * */#ifndef __H323_H#define __H323_H#include "h323caps.h"#include "transports.h"#include "gkclient.h"#include "channels.h"#include "h323rtp.h"/* The following classes have forward references to avoid including the VERY large header files for H225 and H245. If an application requires access to the protocol classes they can include them, but for simple usage their inclusion can be avoided. */class PPER_Stream;class PASN_OctetString;class H225_EndpointType;class H225_VendorIdentifier;class H225_H221NonStandard;class H225_TransportAddress;class H225_GatekeeperRequest;class H225_GatekeeperConfirm;class H225_ArrayOf_PASN_OctetString;class H245_TerminalCapabilitySet;class H245_TerminalCapabilitySetReject;class H245_OpenLogicalChannel;class H245_OpenLogicalChannelAck;class H245_TransportAddress;class H245_UserInputIndication;class H245_RequestMode;class H245_RequestModeAck;class H245_RequestModeReject;class H245_SendTerminalCapabilitySet;class H245_MultiplexCapability;class H245_FlowControlCommand;class H245_MiscellaneousCommand;class H245_MiscellaneousIndication;class H245_JitterIndication;class H323SignalPDU;class H323ControlPDU;class H323VideoDevice;class H323ConnectionsCleaner;class H245NegMasterSlaveDetermination;class H245NegTerminalCapabilitySet;class H245NegLogicalChannels;class H245NegRequestMode;class H245NegRoundTripDelay;/**Globally unique ID definition. */class H323GloballyUniqueID : public PBYTEArray{ PCLASSINFO(H323GloballyUniqueID, PBYTEArray); public: H323GloballyUniqueID(); H323GloballyUniqueID(const PASN_OctetString &); PString AsString() const; void PrintOn(ostream & strm) const;};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -