OPAL  Version 3.18.8
h323pdu.h
Go to the documentation of this file.
1 /*
2  * h323pdu.h
3  *
4  * H.323 protocol handler
5  *
6  * Open H323 Library
7  *
8  * Copyright (c) 1998-2001 Equivalence Pty. Ltd.
9  *
10  * The contents of this file are subject to the Mozilla Public License
11  * Version 1.0 (the "License"); you may not use this file except in
12  * compliance with the License. You may obtain a copy of the License at
13  * http://www.mozilla.org/MPL/
14  *
15  * Software distributed under the License is distributed on an "AS IS"
16  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
17  * the License for the specific language governing rights and limitations
18  * under the License.
19  *
20  * The Original Code is Open H323 Library.
21  *
22  * The Initial Developer of the Original Code is Equivalence Pty. Ltd.
23  *
24  * Portions of this code were written with the assisance of funding from
25  * Vovida Networks, Inc. http://www.vovida.com.
26  *
27  * Contributor(s): ______________________________________.
28  */
29 
30 #ifndef OPAL_H323_H323PDU_H
31 #define OPAL_H323_H323PDU_H
32 
33 #ifdef P_USE_PRAGMA
34 #pragma interface
35 #endif
36 
37 #include <opal_config.h>
38 
39 #if OPAL_H323
40 
41 #include <ptlib/sockets.h>
42 #include <h323/h323con.h>
43 #include <h323/transaddr.h>
44 #include <h323/q931.h>
45 #include <h323/h235auth.h>
46 #include <h323/h323trans.h>
47 #include <rtp/rtp.h>
48 #include <asn/h225.h>
49 #include <asn/h245.h>
50 
51 
52 class H323Connection;
54 class H225_RAS;
56 
57 
58 #define H225_PROTOCOL_VERSION 6
59 #define H245_PROTOCOL_VERSION 13
60 
61 
63 
66 class H323SignalPDU : public H225_H323_UserInformation
67 {
68  PCLASSINFO(H323SignalPDU, H225_H323_UserInformation);
69 
70  public:
75  H323SignalPDU();
76 
79  H225_Setup_UUIE & BuildSetup(
80  const H323Connection & connection,
81  const H323TransportAddress & destAddr
82  );
83 
86  H225_CallProceeding_UUIE & BuildCallProceeding(
87  const H323Connection & connection
88  );
89 
92  H225_Connect_UUIE & BuildConnect(
93  const H323Connection & connection
94  );
95 
98  H225_Alerting_UUIE & BuildAlerting(
99  const H323Connection & connection
100  );
101 
104  H225_Information_UUIE & BuildInformation(
105  const H323Connection & connection
106  );
107 
110  H225_ReleaseComplete_UUIE & BuildReleaseComplete(
111  const H323Connection & connection
112  );
113 
116  H225_Facility_UUIE * BuildFacility(
117  const H323Connection & connection,
118  bool empty,
119  unsigned reason = H225_FacilityReason::e_undefinedReason
120  );
121 
124  H225_Facility_UUIE & BuildFacility(
125  const OpalGloballyUniqueID & callId
126  );
127 
130  H225_Progress_UUIE & BuildProgress(
131  const H323Connection & connection
132  );
133 
136  H225_Status_UUIE & BuildStatus(
137  const H323Connection & connection
138  );
139 
142  H225_StatusInquiry_UUIE & BuildStatusInquiry(
143  const H323Connection & connection
144  );
145 
148  H225_SetupAcknowledge_UUIE & BuildSetupAcknowledge(
149  const H323Connection & connection
150  );
151 
154  H225_Notify_UUIE & BuildNotify(
155  const H323Connection & connection
156  );
158 
159 
164  void PrintOn(
165  ostream & strm
166  ) const;
167 
170  PBoolean Read(
171  H323Transport & transport
172  );
173 
176  PBoolean Write(
177  H323Transport & transport
178  );
179 
182  const Q931 & GetQ931() const { return q931pdu; }
183 
186  Q931 & GetQ931() { return q931pdu; }
187 
190  void SetQ931(const Q931 & _q931pdu) { q931pdu = _q931pdu; }
191 
196  void BuildQ931();
197 
202  PString GetSourceAliases(
203  const H323Transport * transport = NULL
204  ) const;
205 
210  PString GetDestinationAlias(
211  PBoolean firstAliasOnly = false
212  ) const;
213 
218  PBoolean GetSourceE164(
219  PString & number
220  ) const;
221 
226  PBoolean GetDestinationE164(
227  PString & number
228  ) const;
229 
233  unsigned GetDistinctiveRing() const;
234 
239  void SetQ931Fields(
240  const H323Connection & connection,
241  bool insertPartyNumbers = false
242  );
243 
244  protected:
245  // Even though we generally deal with the H323 protocol (H225) it is
246  // actually contained within a field of the Q931 protocol.
248 };
249 
250 
252 
255 class H323ControlPDU : public H245_MultimediaSystemControlMessage
256 {
257  PCLASSINFO(H323ControlPDU, H245_MultimediaSystemControlMessage);
258 
259  public:
260  H245_RequestMessage & Build(H245_RequestMessage ::Choices request);
261  H245_ResponseMessage & Build(H245_ResponseMessage ::Choices response);
262  H245_CommandMessage & Build(H245_CommandMessage ::Choices command);
263  H245_IndicationMessage & Build(H245_IndicationMessage::Choices indication);
264 
265  H245_MasterSlaveDetermination & BuildMasterSlaveDetermination(
266  unsigned terminalType,
267  unsigned statusDeterminationNumber
268  );
269  H245_MasterSlaveDeterminationAck & BuildMasterSlaveDeterminationAck(
270  PBoolean isMaster
271  );
272  H245_MasterSlaveDeterminationReject & BuildMasterSlaveDeterminationReject(
273  unsigned cause
274  );
275 
276  H245_TerminalCapabilitySet & BuildTerminalCapabilitySet(
277  const H323Connection & connection,
278  unsigned sequenceNumber,
279  PBoolean empty
280  );
281  H245_TerminalCapabilitySetAck & BuildTerminalCapabilitySetAck(
282  unsigned sequenceNumber
283  );
284  H245_TerminalCapabilitySetReject & BuildTerminalCapabilitySetReject(
285  unsigned sequenceNumber,
286  unsigned cause
287  );
288 
289  H245_OpenLogicalChannel & BuildOpenLogicalChannel(
290  unsigned forwardLogicalChannelNumber
291  );
292  H245_RequestChannelClose & BuildRequestChannelClose(
293  unsigned channelNumber,
294  unsigned reason
295  );
296  H245_CloseLogicalChannel & BuildCloseLogicalChannel(
297  unsigned channelNumber
298  );
299  H245_OpenLogicalChannelAck & BuildOpenLogicalChannelAck(
300  unsigned channelNumber
301  );
302  H245_OpenLogicalChannelReject & BuildOpenLogicalChannelReject(
303  unsigned channelNumber,
304  unsigned cause
305  );
306  H245_OpenLogicalChannelConfirm & BuildOpenLogicalChannelConfirm(
307  unsigned channelNumber
308  );
309  H245_CloseLogicalChannelAck & BuildCloseLogicalChannelAck(
310  unsigned channelNumber
311  );
312  H245_RequestChannelCloseAck & BuildRequestChannelCloseAck(
313  unsigned channelNumber
314  );
315  H245_RequestChannelCloseReject & BuildRequestChannelCloseReject(
316  unsigned channelNumber
317  );
318  H245_RequestChannelCloseRelease & BuildRequestChannelCloseRelease(
319  unsigned channelNumber
320  );
321 
322  H245_RequestMode & BuildRequestMode(
323  unsigned sequenceNumber
324  );
325  H245_RequestModeAck & BuildRequestModeAck(
326  unsigned sequenceNumber,
327  unsigned response
328  );
329  H245_RequestModeReject & BuildRequestModeReject(
330  unsigned sequenceNumber,
331  unsigned cause
332  );
333 
334  H245_RoundTripDelayRequest & BuildRoundTripDelayRequest(
335  unsigned sequenceNumber
336  );
337  H245_RoundTripDelayResponse & BuildRoundTripDelayResponse(
338  unsigned sequenceNumber
339  );
340 
341  H245_UserInputIndication & BuildUserInputIndication(
342  const PString & value
343  );
344  H245_UserInputIndication & BuildUserInputIndication(
345  char tone,
346  unsigned duration,
347  unsigned logicalChannel,
348  unsigned rtpTimestamp
349  );
350 
351  H245_MiscellaneousCommand & BuildMiscellaneousCommand(
352  unsigned channelNumber,
353  unsigned type
354  );
355 
356  H245_FlowControlCommand & BuildFlowControlCommand(
357  unsigned channelNumber,
358  unsigned maxBitRate
359  );
360 
361  H245_MiscellaneousIndication & BuildMiscellaneousIndication(
362  unsigned channelNumber,
363  unsigned type
364  );
365 
366  H245_GenericMessage & BuildGenericRequest(
367  const PString & identifier,
368  unsigned subMsgId
369  );
370  H245_GenericMessage & BuildGenericResponse(
371  const PString & identifier,
372  unsigned subMsgId
373  );
374  H245_GenericMessage & BuildGenericCommand(
375  const PString & identifier,
376  unsigned subMsgId
377  );
378  H245_GenericMessage & BuildGenericIndication(
379  const PString & identifier,
380  unsigned subMsgId
381  );
382 
383  H245_FunctionNotUnderstood & BuildFunctionNotUnderstood(
384  const H323ControlPDU & pdu
385  );
386 
387  H245_EndSessionCommand & BuildEndSessionCommand(
388  unsigned reason
389  );
390 };
391 
392 
394 
397 class H323RasPDU : public H225_RasMessage, public H323TransactionPDU
398 {
399  PCLASSINFO(H323RasPDU, H225_RasMessage);
400 
401  public:
402  H323RasPDU();
403  H323RasPDU(
404  const H235Authenticators & authenticators
405  );
406 
407  // overrides from PObject
408  virtual PObject * Clone() const;
409 
410  // overrides from H323TransactionPDU
411  virtual PASN_Object & GetPDU();
412  virtual PASN_Choice & GetChoice();
413  virtual const PASN_Object & GetPDU() const;
414  virtual const PASN_Choice & GetChoice() const;
415  virtual unsigned GetSequenceNumber() const;
416  virtual unsigned GetRequestInProgressDelay() const;
417 #if PTRACING
418  virtual const char * GetProtocolName() const;
419 #endif
420  virtual H323TransactionPDU * ClonePDU() const;
421  virtual void DeletePDU();
422 
424 
425  // new functions
426  H225_GatekeeperRequest & BuildGatekeeperRequest(unsigned seqNum);
427  H225_GatekeeperConfirm & BuildGatekeeperConfirm(unsigned seqNum);
428  H225_GatekeeperReject & BuildGatekeeperReject(unsigned seqNum, unsigned reason = H225_GatekeeperRejectReason::e_undefinedReason);
429  H225_RegistrationRequest & BuildRegistrationRequest(unsigned seqNum);
430  H225_RegistrationConfirm & BuildRegistrationConfirm(unsigned seqNum);
431  H225_RegistrationReject & BuildRegistrationReject(unsigned seqNum, unsigned reason = H225_RegistrationRejectReason::e_undefinedReason);
432  H225_UnregistrationRequest & BuildUnregistrationRequest(unsigned seqNum);
433  H225_UnregistrationConfirm & BuildUnregistrationConfirm(unsigned seqNum);
434  H225_UnregistrationReject & BuildUnregistrationReject(unsigned seqNum, unsigned reason = H225_UnregRejectReason::e_undefinedReason);
435  H225_LocationRequest & BuildLocationRequest(unsigned seqNum);
436  H225_LocationConfirm & BuildLocationConfirm(unsigned seqNum);
437  H225_LocationReject & BuildLocationReject(unsigned seqNum, unsigned reason = H225_LocationRejectReason::e_undefinedReason);
438  H225_AdmissionRequest & BuildAdmissionRequest(unsigned seqNum);
439  H225_AdmissionConfirm & BuildAdmissionConfirm(unsigned seqNum);
440  H225_AdmissionReject & BuildAdmissionReject(unsigned seqNum, unsigned reason = H225_AdmissionRejectReason::e_undefinedReason);
441  H225_DisengageRequest & BuildDisengageRequest(unsigned seqNum);
442  H225_DisengageConfirm & BuildDisengageConfirm(unsigned seqNum);
443  H225_DisengageReject & BuildDisengageReject(unsigned seqNum, unsigned reason = H225_DisengageRejectReason::e_securityDenial);
444  H225_BandwidthRequest & BuildBandwidthRequest(unsigned seqNum);
445  H225_BandwidthConfirm & BuildBandwidthConfirm(unsigned seqNum, unsigned bandwidth = 0);
446  H225_BandwidthReject & BuildBandwidthReject(unsigned seqNum, unsigned reason = H225_BandRejectReason::e_undefinedReason);
447  H225_InfoRequest & BuildInfoRequest(unsigned seqNum, unsigned callRef = 0, const OpalGloballyUniqueID * id = NULL);
448  H225_InfoRequestResponse & BuildInfoRequestResponse(unsigned seqNum);
449  H225_InfoRequestAck & BuildInfoRequestAck(unsigned seqNum);
450  H225_InfoRequestNak & BuildInfoRequestNak(unsigned seqNum, unsigned reason = H225_InfoRequestNakReason::e_undefinedReason);
451  H225_ServiceControlIndication& BuildServiceControlIndication(unsigned seqNum, const OpalGloballyUniqueID * id = NULL);
452  H225_ServiceControlResponse & BuildServiceControlResponse(unsigned seqNum);
453  H225_NonStandardMessage & BuildNonStandardMessage(unsigned seqNum, const PString & identifier, const PBYTEArray & data);
454  H225_UnknownMessageResponse & BuildUnknownMessageResponse(unsigned seqNum);
455  H225_RequestInProgress & BuildRequestInProgress(unsigned seqNum, unsigned delay);
456 };
457 
458 
460 
461 bool H323SetNonStandard(H225_NonStandardParameter & param, const PString & identifier, const PBYTEArray & data);
462 
463 void H323SetAliasAddresses(const H323TransportAddressArray & addresses, H225_ArrayOf_AliasAddress & aliases);
464 void H323SetAliasAddresses(const PStringArray & names, H225_ArrayOf_AliasAddress & aliases, int tag = -1);
465 void H323SetAliasAddresses(const PStringList & names, H225_ArrayOf_AliasAddress & aliases, int tag = -1);
466 void H323SetAliasAddress(const H323TransportAddress & address, H225_AliasAddress & alias);
467 void H323SetAliasAddress(const PString & name, H225_AliasAddress & alias, int tag = -1);
468 PStringArray H323GetAliasAddressStrings(const H225_ArrayOf_AliasAddress & aliases);
469 PString H323GetAliasAddressString(const H225_AliasAddress & alias);
470 PString H323GetAliasAddressE164(const H225_AliasAddress & alias);
471 PString H323GetAliasAddressE164(const H225_ArrayOf_AliasAddress & aliases);
472 
474  Q931::CauseValues cause,
475  unsigned reason
476 );
478  H323Connection::CallEndReason callEndReason,
479  H225_ReleaseCompleteReason & releaseCompleteReason
480 );
481 
482 void H323GetApplicationInfo(OpalProductInfo & info, const H225_VendorIdentifier & vendor);
483 
485  H245_ArrayOf_RTPPayloadType & rtpPacketizations,
486  const PStringSet & mediaPacketizations
487 );
489  H245_RTPPayloadType & rtpPacketization,
490  const OpalMediaFormat & mediaFormat,
491  RTP_DataFrame::PayloadTypes payloadType
492 );
494  H245_RTPPayloadType & rtpPacketization,
495  const PString & mediaPacketizationString,
496  RTP_DataFrame::PayloadTypes payloadType
497 );
499  const H245_RTPPayloadType & rtpPacketization
500 );
501 
503  const H245_CapabilityIdentifier & capId
504 );
506  const PString & str,
507  H245_CapabilityIdentifier & capId
508 );
509 
510 const H245_ParameterValue * H323GetGenericParameter(
511  const H245_ArrayOf_GenericParameter & params,
512  unsigned ordinal
513 );
515  const H245_ArrayOf_GenericParameter & params,
516  unsigned ordinal
517 );
519  const H245_ArrayOf_GenericParameter & params,
520  unsigned ordinal,
521  unsigned defValue = 0,
522  H245_ParameterValue::Choices subType = H245_ParameterValue::e_unsignedMin
523 );
525  const H245_ArrayOf_GenericParameter & params,
526  unsigned ordinal,
527  PASN_Object & object
528 );
529 H245_ParameterValue & H323AddGenericParameter(
530  H245_ArrayOf_GenericParameter & params,
531  unsigned ordinal,
532  H245_ParameterValue::Choices tag
533 );
534 template <class CLS> CLS & H323AddGenericParameterAs(
535  H245_ArrayOf_GenericParameter & params,
536  unsigned ordinal,
537  H245_ParameterValue::Choices tag
538 ) { return (CLS &)H323AddGenericParameter(params, ordinal, tag); }
540  H245_ArrayOf_GenericParameter & params,
541  unsigned ordinal,
542  bool value
543 );
545  H245_ArrayOf_GenericParameter & params,
546  unsigned ordinal,
547  unsigned value,
548  H245_ParameterValue::Choices subType
549 );
551  H245_ArrayOf_GenericParameter & params,
552  unsigned ordinal,
553  const PString & value
554 );
556  H245_ArrayOf_GenericParameter & params,
557  unsigned ordinal,
558  const PBYTEArray & value
559 );
561  H245_ArrayOf_GenericParameter & params,
562  unsigned ordinal,
563  const PASN_Object & object
564 );
565 
566 #if PTRACING
567 void H323TraceDumpPDU(
568  const char * proto,
569  PBoolean writing,
570  const PBYTEArray & rawData,
571  const PASN_Object & pdu,
572  const PASN_Choice & tag1,
573  unsigned seqNum
574 );
575 #else
576 #define H323TraceDumpPDU(proto, writing, rawData, pdu, tag1, seqNum)
577 #endif
578 
579 
580 #endif // OPAL_H323
581 
582 #endif // OPAL_H323_H323PDU_H
583 
584 
CauseValues
Definition: q931.h:164
virtual PASN_Choice & GetChoice()
H245_RequestModeReject & BuildRequestModeReject(unsigned sequenceNumber, unsigned cause)
H225_ServiceControlIndication & BuildServiceControlIndication(unsigned seqNum, const OpalGloballyUniqueID *id=NULL)
H225_UnknownMessageResponse & BuildUnknownMessageResponse(unsigned seqNum)
virtual unsigned GetRequestInProgressDelay() const
H225_BandwidthReject & BuildBandwidthReject(unsigned seqNum, unsigned reason=H225_BandRejectReason::e_undefinedReason)
H225_RegistrationReject & BuildRegistrationReject(unsigned seqNum, unsigned reason=H225_RegistrationRejectReason::e_undefinedReason)
Definition: h225ras.h:93
void H323SetAliasAddress(const H323TransportAddress &address, H225_AliasAddress &alias)
H245_RequestChannelCloseAck & BuildRequestChannelCloseAck(unsigned channelNumber)
H225_LocationConfirm & BuildLocationConfirm(unsigned seqNum)
H245_EndSessionCommand & BuildEndSessionCommand(unsigned reason)
H225_LocationReject & BuildLocationReject(unsigned seqNum, unsigned reason=H225_LocationRejectReason::e_undefinedReason)
H225_SetupAcknowledge_UUIE & BuildSetupAcknowledge(const H323Connection &connection)
void H323AddGenericParameterBoolean(H245_ArrayOf_GenericParameter &params, unsigned ordinal, bool value)
H225_Alerting_UUIE & BuildAlerting(const H323Connection &connection)
Definition: h323pdu.h:66
H225_StatusInquiry_UUIE & BuildStatusInquiry(const H323Connection &connection)
H245_RequestMode & BuildRequestMode(unsigned sequenceNumber)
H245_OpenLogicalChannelConfirm & BuildOpenLogicalChannelConfirm(unsigned channelNumber)
H225_BandwidthConfirm & BuildBandwidthConfirm(unsigned seqNum, unsigned bandwidth=0)
bool H323SetNonStandard(H225_NonStandardParameter &param, const PString &identifier, const PBYTEArray &data)
H245_FlowControlCommand & BuildFlowControlCommand(unsigned channelNumber, unsigned maxBitRate)
bool H323GetGenericParameterBoolean(const H245_ArrayOf_GenericParameter &params, unsigned ordinal)
H245_CloseLogicalChannelAck & BuildCloseLogicalChannelAck(unsigned channelNumber)
H225_AdmissionReject & BuildAdmissionReject(unsigned seqNum, unsigned reason=H225_AdmissionRejectReason::e_undefinedReason)
Definition: transports.h:788
PBoolean Read(H323Transport &transport)
H225_DisengageConfirm & BuildDisengageConfirm(unsigned seqNum)
bool H323GetGenericParameterObject(const H245_ArrayOf_GenericParameter &params, unsigned ordinal, PASN_Object &object)
H245_MasterSlaveDeterminationReject & BuildMasterSlaveDeterminationReject(unsigned cause)
H225_InfoRequestAck & BuildInfoRequestAck(unsigned seqNum)
PString H323GetAliasAddressE164(const H225_AliasAddress &alias)
H225_GatekeeperConfirm & BuildGatekeeperConfirm(unsigned seqNum)
H225_AdmissionRequest & BuildAdmissionRequest(unsigned seqNum)
H245_MasterSlaveDeterminationAck & BuildMasterSlaveDeterminationAck(PBoolean isMaster)
H245_MiscellaneousIndication & BuildMiscellaneousIndication(unsigned channelNumber, unsigned type)
Definition: q931.h:40
H245_UserInputIndication & BuildUserInputIndication(const PString &value)
H235Authenticators authenticators
Definition: h323trans.h:88
H225_Progress_UUIE & BuildProgress(const H323Connection &connection)
PBoolean GetSourceE164(PString &number) const
void PrintOn(ostream &strm) const
H245_TerminalCapabilitySetAck & BuildTerminalCapabilitySetAck(unsigned sequenceNumber)
void BuildQ931()
H225_RegistrationRequest & BuildRegistrationRequest(unsigned seqNum)
PDECLARE_WriteConnectCallback(H323RasPDU, WriteGRQ)
H225_InfoRequestNak & BuildInfoRequestNak(unsigned seqNum, unsigned reason=H225_InfoRequestNakReason::e_undefinedReason)
H245_CloseLogicalChannel & BuildCloseLogicalChannel(unsigned channelNumber)
virtual H323TransactionPDU * ClonePDU() const
PayloadTypes
Definition: rtp.h:556
H225_Information_UUIE & BuildInformation(const H323Connection &connection)
H225_BandwidthRequest & BuildBandwidthRequest(unsigned seqNum)
virtual PASN_Object & GetPDU()
H225_InfoRequest & BuildInfoRequest(unsigned seqNum, unsigned callRef=0, const OpalGloballyUniqueID *id=NULL)
Definition: transaddr.h:91
H245_RoundTripDelayRequest & BuildRoundTripDelayRequest(unsigned sequenceNumber)
H245_GenericMessage & BuildGenericRequest(const PString &identifier, unsigned subMsgId)
const H245_ParameterValue * H323GetGenericParameter(const H245_ArrayOf_GenericParameter &params, unsigned ordinal)
H225_Notify_UUIE & BuildNotify(const H323Connection &connection)
H245_ParameterValue & H323AddGenericParameter(H245_ArrayOf_GenericParameter &params, unsigned ordinal, H245_ParameterValue::Choices tag)
H225_ReleaseComplete_UUIE & BuildReleaseComplete(const H323Connection &connection)
H245_TerminalCapabilitySet & BuildTerminalCapabilitySet(const H323Connection &connection, unsigned sequenceNumber, PBoolean empty)
H245_OpenLogicalChannel & BuildOpenLogicalChannel(unsigned forwardLogicalChannelNumber)
PString GetDestinationAlias(PBoolean firstAliasOnly=false) const
H225_UnregistrationConfirm & BuildUnregistrationConfirm(unsigned seqNum)
Definition: mediafmt.h:806
bool H323SetRTPPacketization(H245_ArrayOf_RTPPayloadType &rtpPacketizations, const PStringSet &mediaPacketizations)
PBoolean GetDestinationE164(PString &number) const
H245_RequestModeAck & BuildRequestModeAck(unsigned sequenceNumber, unsigned response)
H225_UnregistrationReject & BuildUnregistrationReject(unsigned seqNum, unsigned reason=H225_UnregRejectReason::e_undefinedReason)
H245_RequestMessage & Build(H245_RequestMessage::Choices request)
Definition: h323pdu.h:397
unsigned GetDistinctiveRing() const
H225_LocationRequest & BuildLocationRequest(unsigned seqNum)
#define H323TraceDumpPDU(proto, writing, rawData, pdu, tag1, seqNum)
Definition: h323pdu.h:576
bool H323SetCapabilityIdentifier(const PString &str, H245_CapabilityIdentifier &capId)
Definition: h323con.h:137
H245_OpenLogicalChannelReject & BuildOpenLogicalChannelReject(unsigned channelNumber, unsigned cause)
H225_GatekeeperRequest & BuildGatekeeperRequest(unsigned seqNum)
virtual void DeletePDU()
Q931::CauseValues H323TranslateFromCallEndReason(H323Connection::CallEndReason callEndReason, H225_ReleaseCompleteReason &releaseCompleteReason)
virtual unsigned GetSequenceNumber() const
void H323AddGenericParameterObject(H245_ArrayOf_GenericParameter &params, unsigned ordinal, const PASN_Object &object)
H225_UnregistrationRequest & BuildUnregistrationRequest(unsigned seqNum)
H245_TerminalCapabilitySetReject & BuildTerminalCapabilitySetReject(unsigned sequenceNumber, unsigned cause)
H245_RequestChannelCloseRelease & BuildRequestChannelCloseRelease(unsigned channelNumber)
H245_RequestChannelClose & BuildRequestChannelClose(unsigned channelNumber, unsigned reason)
H245_MasterSlaveDetermination & BuildMasterSlaveDetermination(unsigned terminalType, unsigned statusDeterminationNumber)
H225_Facility_UUIE * BuildFacility(const H323Connection &connection, bool empty, unsigned reason=H225_FacilityReason::e_undefinedReason)
void H323SetAliasAddresses(const H323TransportAddressArray &addresses, H225_ArrayOf_AliasAddress &aliases)
Definition: h323trans.h:47
PString GetSourceAliases(const H323Transport *transport=NULL) const
Q931 & GetQ931()
Definition: h323pdu.h:186
void SetQ931Fields(const H323Connection &connection, bool insertPartyNumbers=false)
const Q931 & GetQ931() const
Definition: h323pdu.h:182
Definition: connection.h:462
H245_RequestChannelCloseReject & BuildRequestChannelCloseReject(unsigned channelNumber)
Definition: h323pdu.h:255
Q931 q931pdu
Definition: h323pdu.h:247
H245_FunctionNotUnderstood & BuildFunctionNotUnderstood(const H323ControlPDU &pdu)
CLS & H323AddGenericParameterAs(H245_ArrayOf_GenericParameter &params, unsigned ordinal, H245_ParameterValue::Choices tag)
Definition: h323pdu.h:534
void H323AddGenericParameterOctets(H245_ArrayOf_GenericParameter &params, unsigned ordinal, const PBYTEArray &value)
PStringArray H323GetAliasAddressStrings(const H225_ArrayOf_AliasAddress &aliases)
void H323AddGenericParameterInteger(H245_ArrayOf_GenericParameter &params, unsigned ordinal, unsigned value, H245_ParameterValue::Choices subType)
H225_DisengageRequest & BuildDisengageRequest(unsigned seqNum)
PString H323GetCapabilityIdentifier(const H245_CapabilityIdentifier &capId)
H245_GenericMessage & BuildGenericCommand(const PString &identifier, unsigned subMsgId)
unsigned H323GetGenericParameterInteger(const H245_ArrayOf_GenericParameter &params, unsigned ordinal, unsigned defValue=0, H245_ParameterValue::Choices subType=H245_ParameterValue::e_unsignedMin)
H225_Setup_UUIE & BuildSetup(const H323Connection &connection, const H323TransportAddress &destAddr)
void SetQ931(const Q931 &_q931pdu)
Definition: h323pdu.h:190
H225_Status_UUIE & BuildStatus(const H323Connection &connection)
H323Connection::CallEndReason H323TranslateToCallEndReason(Q931::CauseValues cause, unsigned reason)
H225_ServiceControlResponse & BuildServiceControlResponse(unsigned seqNum)
H225_RequestInProgress & BuildRequestInProgress(unsigned seqNum, unsigned delay)
H245_RoundTripDelayResponse & BuildRoundTripDelayResponse(unsigned sequenceNumber)
H225_NonStandardMessage & BuildNonStandardMessage(unsigned seqNum, const PString &identifier, const PBYTEArray &data)
void H323AddGenericParameterString(H245_ArrayOf_GenericParameter &params, unsigned ordinal, const PString &value)
H225_DisengageReject & BuildDisengageReject(unsigned seqNum, unsigned reason=H225_DisengageRejectReason::e_securityDenial)
#define OpalGloballyUniqueID
Definition: guid.h:38
H245_GenericMessage & BuildGenericIndication(const PString &identifier, unsigned subMsgId)
PString H323GetRTPPacketization(const H245_RTPPayloadType &rtpPacketization)
void H323GetApplicationInfo(OpalProductInfo &info, const H225_VendorIdentifier &vendor)
virtual PObject * Clone() const
H225_AdmissionConfirm & BuildAdmissionConfirm(unsigned seqNum)
PBoolean Write(H323Transport &transport)
H225_Connect_UUIE & BuildConnect(const H323Connection &connection)
H245_OpenLogicalChannelAck & BuildOpenLogicalChannelAck(unsigned channelNumber)
Definition: transaddr.h:62
H245_GenericMessage & BuildGenericResponse(const PString &identifier, unsigned subMsgId)
H225_InfoRequestResponse & BuildInfoRequestResponse(unsigned seqNum)
H245_MiscellaneousCommand & BuildMiscellaneousCommand(unsigned channelNumber, unsigned type)
H225_GatekeeperReject & BuildGatekeeperReject(unsigned seqNum, unsigned reason=H225_GatekeeperRejectReason::e_undefinedReason)
PString H323GetAliasAddressString(const H225_AliasAddress &alias)
Definition: connection.h:358
H225_RegistrationConfirm & BuildRegistrationConfirm(unsigned seqNum)
H225_CallProceeding_UUIE & BuildCallProceeding(const H323Connection &connection)