Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

h323pdu.h

Go to the documentation of this file.
00001 /* 00002 * h323pdu.h 00003 * 00004 * H.323 protocol handler 00005 * 00006 * Open H323 Library 00007 * 00008 * Copyright (c) 1998-2000 Equivalence Pty. Ltd. 00009 * 00010 * The contents of this file are subject to the Mozilla Public License 00011 * Version 1.0 (the "License"); you may not use this file except in 00012 * compliance with the License. You may obtain a copy of the License at 00013 * http://www.mozilla.org/MPL/ 00014 * 00015 * Software distributed under the License is distributed on an "AS IS" 00016 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See 00017 * the License for the specific language governing rights and limitations 00018 * under the License. 00019 * 00020 * The Original Code is Open H323 Library. 00021 * 00022 * The Initial Developer of the Original Code is Equivalence Pty. Ltd. 00023 * 00024 * Portions of this code were written with the assisance of funding from 00025 * Vovida Networks, Inc. http://www.vovida.com. 00026 * 00027 * Contributor(s): ______________________________________. 00028 * 00029 * $Log: h323pdu.h,v $ 00030 * Revision 1.65 2003/04/10 09:36:52 robertj 00031 * Added some more functions for converting to alias addresses. 00032 * 00033 * Revision 1.64 2003/04/01 03:11:01 robertj 00034 * Added function to get array of AliasAddress into PStringArray. 00035 * 00036 * Revision 1.63 2003/03/25 04:56:17 robertj 00037 * Fixed issues to do with multiple inheritence in transaction reply cache. 00038 * 00039 * Revision 1.62 2003/03/20 01:51:07 robertj 00040 * More abstraction of H.225 RAS and H.501 protocols transaction handling. 00041 * 00042 * Revision 1.61 2003/03/01 00:23:42 craigs 00043 * New PeerElement implementation 00044 * 00045 * Revision 1.60 2003/02/25 06:48:15 robertj 00046 * More work on PDU transaction abstraction. 00047 * 00048 * Revision 1.59 2003/02/21 05:28:39 craigs 00049 * Factored out code for user with peer elements 00050 * 00051 * Revision 1.58 2003/02/01 13:31:14 robertj 00052 * Changes to support CAT authentication in RAS. 00053 * 00054 * Revision 1.57 2002/11/28 04:41:44 robertj 00055 * Added support for RAS ServiceControlIndication command. 00056 * 00057 * Revision 1.56 2002/09/16 01:14:15 robertj 00058 * Added #define so can select if #pragma interface/implementation is used on 00059 * platform basis (eg MacOS) rather than compiler, thanks Robert Monaghan. 00060 * 00061 * Revision 1.55 2002/09/03 06:19:37 robertj 00062 * Normalised the multi-include header prevention ifdef/define symbol. 00063 * 00064 * Revision 1.54 2002/08/12 05:38:21 robertj 00065 * Changes to the RAS subsystem to support ability to make requests to client 00066 * from gkserver without causing bottlenecks and race conditions. 00067 * 00068 * Revision 1.53 2002/08/05 10:03:47 robertj 00069 * Cosmetic changes to normalise the usage of pragma interface/implementation. 00070 * 00071 * Revision 1.52 2002/08/05 05:17:37 robertj 00072 * Fairly major modifications to support different authentication credentials 00073 * in ARQ to the logged in ones on RRQ. For both client and server. 00074 * Various other H.235 authentication bugs and anomalies fixed on the way. 00075 * 00076 * Revision 1.51 2002/07/25 10:55:40 robertj 00077 * Changes to allow more granularity in PDU dumps, hex output increasing 00078 * with increasing trace level. 00079 * 00080 * Revision 1.50 2002/07/11 07:04:12 robertj 00081 * Added build InfoRequest pdu type to RAS. 00082 * 00083 * Revision 1.49 2002/05/29 03:55:17 robertj 00084 * Added protocol version number checking infrastructure, primarily to improve 00085 * interoperability with stacks that are unforgiving of new features. 00086 * 00087 * Revision 1.48 2002/05/29 00:03:15 robertj 00088 * Fixed unsolicited IRR support in gk client and server, 00089 * including support for IACK and INAK. 00090 * 00091 * Revision 1.47 2002/05/07 03:18:12 robertj 00092 * Added application info (name/version etc) into registered endpoint data. 00093 * 00094 * Revision 1.46 2002/05/03 09:18:45 robertj 00095 * Added automatic retransmission of RAS responses to retried requests. 00096 * 00097 * Revision 1.45 2002/03/14 07:57:02 robertj 00098 * Added ability to specify alias type in H323SetAliasAddress, if not specified 00099 * then defaults to previous behaviour, thanks Nils Bokerman. 00100 * 00101 * Revision 1.44 2001/12/15 07:09:56 robertj 00102 * Added functions to get E.164 address from alias address or addresses. 00103 * 00104 * Revision 1.43 2001/12/14 06:38:47 robertj 00105 * Broke out conversion of Q.850 and H.225 release complete codes to 00106 * OpenH323 call end reasons enum. 00107 * 00108 * Revision 1.42 2001/12/13 10:56:04 robertj 00109 * Added build of request in progress pdu. 00110 * 00111 * Revision 1.41 2001/08/16 07:49:16 robertj 00112 * Changed the H.450 support to be more extensible. Protocol handlers 00113 * are now in separate classes instead of all in H323Connection. 00114 * 00115 * Revision 1.40 2001/08/10 11:03:49 robertj 00116 * Major changes to H.235 support in RAS to support server. 00117 * 00118 * Revision 1.39 2001/08/06 07:44:52 robertj 00119 * Fixed problems with building without SSL 00120 * 00121 * Revision 1.38 2001/08/06 03:08:11 robertj 00122 * Fission of h323.h to h323ep.h & h323con.h, h323.h now just includes files. 00123 * 00124 * Revision 1.37 2001/06/14 06:25:13 robertj 00125 * Added further H.225 PDU build functions. 00126 * Moved some functionality from connection to PDU class. 00127 * 00128 * Revision 1.36 2001/06/14 00:45:19 robertj 00129 * Added extra parameters for Q.931 fields, thanks Rani Assaf 00130 * 00131 * Revision 1.35 2001/05/30 23:34:54 robertj 00132 * Added functions to send TCS=0 for transmitter side pause. 00133 * 00134 * Revision 1.34 2001/04/11 03:01:27 robertj 00135 * Added H.450.2 (call transfer), thanks a LOT to Graeme Reid & Norwood Systems 00136 * 00137 * Revision 1.33 2001/03/24 00:34:35 robertj 00138 * Added read/write hook functions so don't have to duplicate code in 00139 * H323RasH235PDU descendant class of H323RasPDU. 00140 * 00141 * Revision 1.32 2001/03/21 04:52:40 robertj 00142 * Added H.235 security to gatekeepers, thanks Fürbass Franz! 00143 * 00144 * Revision 1.31 2001/02/09 05:16:24 robertj 00145 * Added #pragma interface for GNU C++. 00146 * 00147 * Revision 1.30 2001/01/19 01:20:38 robertj 00148 * Added non-const function to get access to Q.931 PDU in H323SignalPDU. 00149 * 00150 * Revision 1.29 2000/10/04 05:59:09 robertj 00151 * Minor reorganisation of the H.245 secondary channel start up to make it simpler 00152 * to override its behaviour. 00153 * 00154 * Revision 1.28 2000/09/25 06:47:54 robertj 00155 * Removed use of alias if there is no alias present, ie only have transport address. 00156 * 00157 * Revision 1.27 2000/09/22 01:35:02 robertj 00158 * Added support for handling LID's that only do symmetric codecs. 00159 * 00160 * Revision 1.26 2000/07/15 09:50:49 robertj 00161 * Changed adding of Q.931 party numbers to only occur in SETUP. 00162 * 00163 * Revision 1.25 2000/06/21 08:07:39 robertj 00164 * Added cause/reason to release complete PDU, where relevent. 00165 * 00166 * Revision 1.24 2000/05/23 11:32:27 robertj 00167 * Rewrite of capability table to combine 2 structures into one and move functionality into that class 00168 * allowing some normalisation of usage across several applications. 00169 * Changed H323Connection so gets a copy of capabilities instead of using endponts, allows adjustments 00170 * to be done depending on the remote client application. 00171 * 00172 * Revision 1.23 2000/05/08 14:07:26 robertj 00173 * Improved the provision and detection of calling and caller numbers, aliases and hostnames. 00174 * 00175 * Revision 1.22 2000/05/08 05:05:43 robertj 00176 * Fixed bug in H.245 close logical channel timeout, thanks XuPeili. 00177 * 00178 * Revision 1.21 2000/05/02 04:32:24 robertj 00179 * Fixed copyright notice comment. 00180 * 00181 * Revision 1.20 2000/04/10 20:39:30 robertj 00182 * Added support for more sophisticated DTMF and hook flash user indication. 00183 * Added function to extract E164 address from Q.931/H.225 PDU. 00184 * 00185 * Revision 1.19 2000/03/25 02:00:39 robertj 00186 * Added adjustable caller name on connection by connection basis. 00187 * 00188 * Revision 1.18 2000/03/21 01:22:01 robertj 00189 * Fixed incorrect call reference code being used in originated call. 00190 * 00191 * Revision 1.17 1999/12/11 02:20:58 robertj 00192 * Added ability to have multiple aliases on local endpoint. 00193 * 00194 * Revision 1.16 1999/09/10 03:36:48 robertj 00195 * Added simple Q.931 Status response to Q.931 Status Enquiry 00196 * 00197 * Revision 1.15 1999/08/31 12:34:18 robertj 00198 * Added gatekeeper support. 00199 * 00200 * Revision 1.14 1999/08/25 05:07:49 robertj 00201 * File fission (critical mass reached). 00202 * 00203 * Revision 1.13 1999/07/16 06:15:59 robertj 00204 * Corrected semantics for tunnelled master/slave determination in fast start. 00205 * 00206 * Revision 1.12 1999/07/16 02:15:30 robertj 00207 * Fixed more tunneling problems. 00208 * 00209 * Revision 1.11 1999/07/15 14:45:35 robertj 00210 * Added propagation of codec open error to shut down logical channel. 00211 * Fixed control channel start up bug introduced with tunnelling. 00212 * 00213 * Revision 1.10 1999/07/10 02:51:53 robertj 00214 * Added mutexing in H245 procedures. 00215 * 00216 * Revision 1.9 1999/07/09 06:09:49 robertj 00217 * Major implementation. An ENORMOUS amount of stuff added everywhere. 00218 * 00219 * Revision 1.8 1999/06/25 10:25:35 robertj 00220 * Added maintentance of callIdentifier variable in H.225 channel. 00221 * 00222 * Revision 1.7 1999/06/14 05:15:56 robertj 00223 * Changes for using RTP sessions correctly in H323 Logical Channel context 00224 * 00225 * Revision 1.6 1999/06/13 12:41:14 robertj 00226 * Implement logical channel transmitter. 00227 * Fixed H245 connect on receiving call. 00228 * 00229 * Revision 1.5 1999/06/09 05:26:20 robertj 00230 * Major restructuring of classes. 00231 * 00232 * Revision 1.4 1999/06/06 06:06:36 robertj 00233 * Changes for new ASN compiler and v2 protocol ASN files. 00234 * 00235 * Revision 1.3 1999/04/26 06:14:47 craigs 00236 * Initial implementation for RTP decoding and lots of stuff 00237 * As a whole, these changes are called "First Noise" 00238 * 00239 * Revision 1.2 1999/01/16 02:35:04 robertj 00240 * GNi compiler compatibility. 00241 * 00242 * Revision 1.1 1999/01/16 01:30:58 robertj 00243 * Initial revision 00244 * 00245 */ 00246 00247 #ifndef __OPAL_H323PDU_H 00248 #define __OPAL_H323PDU_H 00249 00250 #ifdef P_USE_PRAGMA 00251 #pragma interface 00252 #endif 00253 00254 00255 #include <ptlib/sockets.h> 00256 #include "h323con.h" 00257 #include "transports.h" 00258 #include "q931.h" 00259 #include "h225.h" 00260 #include "h245.h" 00261 #include "h323trans.h" 00262 00263 00264 class H225_RAS; 00265 00266 00267 #define H225_PROTOCOL_VERSION 4 00268 #define H245_PROTOCOL_VERSION 7 00269 00270 00272 00275 class H323SignalPDU : public H225_H323_UserInformation 00276 { 00277 PCLASSINFO(H323SignalPDU, H225_H323_UserInformation); 00278 00279 public: 00284 H323SignalPDU(); 00285 00288 H225_Setup_UUIE & BuildSetup( 00289 const H323Connection & connection, 00290 const H323TransportAddress & destAddr 00291 ); 00292 00295 H225_CallProceeding_UUIE & BuildCallProceeding( 00296 const H323Connection & connection 00297 ); 00298 00301 H225_Connect_UUIE & BuildConnect( 00302 const H323Connection & connection 00303 ); 00304 00307 H225_Connect_UUIE & BuildConnect( 00308 const H323Connection & connection, 00309 const PIPSocket::Address & h245Address, 00310 WORD port 00311 ); 00312 00315 H225_Alerting_UUIE & BuildAlerting( 00316 const H323Connection & connection 00317 ); 00318 00321 H225_Information_UUIE & BuildInformation( 00322 const H323Connection & connection 00323 ); 00324 00327 H225_ReleaseComplete_UUIE & BuildReleaseComplete( 00328 const H323Connection & connection 00329 ); 00330 00333 H225_Facility_UUIE * BuildFacility( 00334 const H323Connection & connection, 00335 BOOL empty 00336 ); 00337 00340 H225_Progress_UUIE & BuildProgress( 00341 const H323Connection & connection 00342 ); 00343 00346 H225_Status_UUIE & BuildStatus( 00347 const H323Connection & connection 00348 ); 00349 00352 H225_StatusInquiry_UUIE & BuildStatusInquiry( 00353 const H323Connection & connection 00354 ); 00355 00358 H225_SetupAcknowledge_UUIE & BuildSetupAcknowledge( 00359 const H323Connection & connection 00360 ); 00361 00364 H225_Notify_UUIE & BuildNotify( 00365 const H323Connection & connection 00366 ); 00368 00369 00374 void PrintOn( 00375 ostream & strm 00376 ) const; 00377 00380 BOOL Read( 00381 H323Transport & transport 00382 ); 00383 00386 BOOL Write( 00387 H323Transport & transport 00388 ); 00389 00392 const Q931 & GetQ931() const { return q931pdu; } 00393 00396 Q931 & GetQ931() { return q931pdu; } 00397 00402 void BuildQ931(); 00403 00408 PString GetSourceAliases( 00409 const H323Transport * transport = NULL 00410 ) const; 00411 00416 PString GetDestinationAlias( 00417 BOOL firstAliasOnly = FALSE 00418 ) const; 00419 00424 BOOL GetSourceE164( 00425 PString & number 00426 ) const; 00427 00432 BOOL GetDestinationE164( 00433 PString & number 00434 ) const; 00435 00439 unsigned GetDistinctiveRing() const; 00440 00445 void SetQ931Fields( 00446 const H323Connection & connection, 00447 BOOL insertPartyNumbers = FALSE, 00448 unsigned plan = 1, 00449 unsigned type = 0, 00450 int presentation = -1, 00451 int screening = -1 00452 ); 00453 00454 protected: 00455 // Even though we generally deal with the H323 protocol (H225) it is 00456 // actually contained within a field of the Q931 protocol. 00457 Q931 q931pdu; 00458 }; 00459 00460 00462 00465 class H323ControlPDU : public H245_MultimediaSystemControlMessage 00466 { 00467 PCLASSINFO(H323ControlPDU, H245_MultimediaSystemControlMessage); 00468 00469 public: 00470 H245_RequestMessage & Build(H245_RequestMessage ::Choices request); 00471 H245_ResponseMessage & Build(H245_ResponseMessage ::Choices response); 00472 H245_CommandMessage & Build(H245_CommandMessage ::Choices command); 00473 H245_IndicationMessage & Build(H245_IndicationMessage::Choices indication); 00474 00475 H245_MasterSlaveDetermination & BuildMasterSlaveDetermination( 00476 unsigned terminalType, 00477 unsigned statusDeterminationNumber 00478 ); 00479 H245_MasterSlaveDeterminationAck & BuildMasterSlaveDeterminationAck( 00480 BOOL isMaster 00481 ); 00482 H245_MasterSlaveDeterminationReject & BuildMasterSlaveDeterminationReject( 00483 unsigned cause 00484 ); 00485 00486 H245_TerminalCapabilitySet & BuildTerminalCapabilitySet( 00487 const H323Connection & connection, 00488 unsigned sequenceNumber, 00489 BOOL empty 00490 ); 00491 H245_TerminalCapabilitySetAck & BuildTerminalCapabilitySetAck( 00492 unsigned sequenceNumber 00493 ); 00494 H245_TerminalCapabilitySetReject & BuildTerminalCapabilitySetReject( 00495 unsigned sequenceNumber, 00496 unsigned cause 00497 ); 00498 00499 H245_OpenLogicalChannel & BuildOpenLogicalChannel( 00500 unsigned forwardLogicalChannelNumber 00501 ); 00502 H245_RequestChannelClose & BuildRequestChannelClose( 00503 unsigned channelNumber, 00504 unsigned reason 00505 ); 00506 H245_CloseLogicalChannel & BuildCloseLogicalChannel( 00507 unsigned channelNumber 00508 ); 00509 H245_OpenLogicalChannelAck & BuildOpenLogicalChannelAck( 00510 unsigned channelNumber 00511 ); 00512 H245_OpenLogicalChannelReject & BuildOpenLogicalChannelReject( 00513 unsigned channelNumber, 00514 unsigned cause 00515 ); 00516 H245_OpenLogicalChannelConfirm & BuildOpenLogicalChannelConfirm( 00517 unsigned channelNumber 00518 ); 00519 H245_CloseLogicalChannelAck & BuildCloseLogicalChannelAck( 00520 unsigned channelNumber 00521 ); 00522 H245_RequestChannelCloseAck & BuildRequestChannelCloseAck( 00523 unsigned channelNumber 00524 ); 00525 H245_RequestChannelCloseReject & BuildRequestChannelCloseReject( 00526 unsigned channelNumber 00527 ); 00528 H245_RequestChannelCloseRelease & BuildRequestChannelCloseRelease( 00529 unsigned channelNumber 00530 ); 00531 00532 H245_RequestMode & BuildRequestMode( 00533 unsigned sequenceNumber 00534 ); 00535 H245_RequestModeAck & BuildRequestModeAck( 00536 unsigned sequenceNumber, 00537 unsigned response 00538 ); 00539 H245_RequestModeReject & BuildRequestModeReject( 00540 unsigned sequenceNumber, 00541 unsigned cause 00542 ); 00543 00544 H245_RoundTripDelayRequest & BuildRoundTripDelayRequest( 00545 unsigned sequenceNumber 00546 ); 00547 H245_RoundTripDelayResponse & BuildRoundTripDelayResponse( 00548 unsigned sequenceNumber 00549 ); 00550 00551 H245_UserInputIndication & BuildUserInputIndication( 00552 const PString & value 00553 ); 00554 H245_UserInputIndication & BuildUserInputIndication( 00555 char tone, 00556 unsigned duration, 00557 unsigned logicalChannel, 00558 unsigned rtpTimestamp 00559 ); 00560 00561 H245_FunctionNotUnderstood & BuildFunctionNotUnderstood( 00562 const H323ControlPDU & pdu 00563 ); 00564 00565 H245_EndSessionCommand & BuildEndSessionCommand( 00566 unsigned reason 00567 ); 00568 }; 00569 00570 00572 00575 class H323RasPDU : public H225_RasMessage, public H323TransactionPDU 00576 { 00577 PCLASSINFO(H323RasPDU, H225_RasMessage); 00578 00579 public: 00580 H323RasPDU(); 00581 H323RasPDU( 00582 const H235Authenticators & authenticators 00583 ); 00584 00585 // overrides from PObject 00586 virtual PObject * Clone() const; 00587 00588 // overrides from H323TransactionPDU 00589 virtual PASN_Object & GetPDU(); 00590 virtual PASN_Choice & GetChoice(); 00591 virtual const PASN_Object & GetPDU() const; 00592 virtual const PASN_Choice & GetChoice() const; 00593 virtual unsigned GetSequenceNumber() const; 00594 virtual unsigned GetRequestInProgressDelay() const; 00595 #if PTRACING 00596 virtual const char * GetProtocolName() const; 00597 #endif 00598 virtual H323TransactionPDU * ClonePDU() const; 00599 virtual void DeletePDU(); 00600 00601 // new functions 00602 H225_GatekeeperRequest & BuildGatekeeperRequest(unsigned seqNum); 00603 H225_GatekeeperConfirm & BuildGatekeeperConfirm(unsigned seqNum); 00604 H225_GatekeeperReject & BuildGatekeeperReject(unsigned seqNum, unsigned reason = H225_GatekeeperRejectReason::e_undefinedReason); 00605 H225_RegistrationRequest & BuildRegistrationRequest(unsigned seqNum); 00606 H225_RegistrationConfirm & BuildRegistrationConfirm(unsigned seqNum); 00607 H225_RegistrationReject & BuildRegistrationReject(unsigned seqNum, unsigned reason = H225_RegistrationRejectReason::e_undefinedReason); 00608 H225_UnregistrationRequest & BuildUnregistrationRequest(unsigned seqNum); 00609 H225_UnregistrationConfirm & BuildUnregistrationConfirm(unsigned seqNum); 00610 H225_UnregistrationReject & BuildUnregistrationReject(unsigned seqNum, unsigned reason = H225_UnregRejectReason::e_undefinedReason); 00611 H225_LocationRequest & BuildLocationRequest(unsigned seqNum); 00612 H225_LocationConfirm & BuildLocationConfirm(unsigned seqNum); 00613 H225_LocationReject & BuildLocationReject(unsigned seqNum, unsigned reason = H225_LocationRejectReason::e_undefinedReason); 00614 H225_AdmissionRequest & BuildAdmissionRequest(unsigned seqNum); 00615 H225_AdmissionConfirm & BuildAdmissionConfirm(unsigned seqNum); 00616 H225_AdmissionReject & BuildAdmissionReject(unsigned seqNum, unsigned reason = H225_AdmissionRejectReason::e_undefinedReason); 00617 H225_DisengageRequest & BuildDisengageRequest(unsigned seqNum); 00618 H225_DisengageConfirm & BuildDisengageConfirm(unsigned seqNum); 00619 H225_DisengageReject & BuildDisengageReject(unsigned seqNum, unsigned reason = H225_DisengageRejectReason::e_securityDenial); 00620 H225_BandwidthRequest & BuildBandwidthRequest(unsigned seqNum); 00621 H225_BandwidthConfirm & BuildBandwidthConfirm(unsigned seqNum, unsigned bandwidth = 0); 00622 H225_BandwidthReject & BuildBandwidthReject(unsigned seqNum, unsigned reason = H225_BandRejectReason::e_undefinedReason); 00623 H225_InfoRequest & BuildInfoRequest(unsigned seqNum, unsigned callRef = 0, const OpalGloballyUniqueID * id = NULL); 00624 H225_InfoRequestResponse & BuildInfoRequestResponse(unsigned seqNum); 00625 H225_InfoRequestAck & BuildInfoRequestAck(unsigned seqNum); 00626 H225_InfoRequestNak & BuildInfoRequestNak(unsigned seqNum, unsigned reason = H225_InfoRequestNakReason::e_undefinedReason); 00627 H225_ServiceControlIndication& BuildServiceControlIndication(unsigned seqNum, const OpalGloballyUniqueID * id = NULL); 00628 H225_ServiceControlResponse & BuildServiceControlResponse(unsigned seqNum); 00629 H225_UnknownMessageResponse & BuildUnknownMessageResponse(unsigned seqNum); 00630 H225_RequestInProgress & BuildRequestInProgress(unsigned seqNum, unsigned delay); 00631 }; 00632 00633 00635 00636 void H323SetAliasAddresses(const H323TransportAddressArray & addresses, H225_ArrayOf_AliasAddress & aliases); 00637 void H323SetAliasAddresses(const PStringArray & names, H225_ArrayOf_AliasAddress & aliases, int tag = -1); 00638 void H323SetAliasAddresses(const PStringList & names, H225_ArrayOf_AliasAddress & aliases, int tag = -1); 00639 void H323SetAliasAddress(const H323TransportAddress & address, H225_AliasAddress & alias); 00640 void H323SetAliasAddress(const PString & name, H225_AliasAddress & alias, int tag = -1); 00641 PStringArray H323GetAliasAddressStrings(const H225_ArrayOf_AliasAddress & aliases); 00642 PString H323GetAliasAddressString(const H225_AliasAddress & alias); 00643 PString H323GetAliasAddressE164(const H225_AliasAddress & alias); 00644 PString H323GetAliasAddressE164(const H225_ArrayOf_AliasAddress & aliases); 00645 00646 H323Connection::CallEndReason H323TranslateToCallEndReason( 00647 Q931::CauseValues cause, 00648 const H225_ReleaseCompleteReason & reason 00649 ); 00650 Q931::CauseValues H323TranslateFromCallEndReason( 00651 const H323Connection & connection, 00652 H225_ReleaseCompleteReason & rcReason 00653 ); 00654 00655 PString H323GetApplicationInfo(const H225_VendorIdentifier & vendor); 00656 00657 00658 #if PTRACING 00659 void H323TraceDumpPDU( 00660 const char * proto, 00661 BOOL writing, 00662 const PBYTEArray & rawData, 00663 const PASN_Object & pdu, 00664 const PASN_Choice & tag1, 00665 unsigned seqNum 00666 ); 00667 #else 00668 #define H323TraceDumpPDU(proto, writing, rawData, pdu, tag1, seqNum) 00669 #endif 00670 00671 00672 #endif // __OPAL_H323PDU_H 00673 00674

Generated on Sat Jul 24 17:03:32 2004 for OpenH323 by doxygen 1.3.7