30 #ifndef OPAL_H323_H323PDU_H
31 #define OPAL_H323_H323PDU_H
41 #include <ptlib/sockets.h>
58 #define H225_PROTOCOL_VERSION 6
59 #define H245_PROTOCOL_VERSION 13
119 unsigned reason = H225_FacilityReason::e_undefinedReason
211 PBoolean firstAliasOnly =
false
241 bool insertPartyNumbers =
false
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);
266 unsigned terminalType,
267 unsigned statusDeterminationNumber
278 unsigned sequenceNumber,
282 unsigned sequenceNumber
285 unsigned sequenceNumber,
290 unsigned forwardLogicalChannelNumber
293 unsigned channelNumber,
297 unsigned channelNumber
300 unsigned channelNumber
303 unsigned channelNumber,
307 unsigned channelNumber
310 unsigned channelNumber
313 unsigned channelNumber
316 unsigned channelNumber
319 unsigned channelNumber
323 unsigned sequenceNumber
326 unsigned sequenceNumber,
330 unsigned sequenceNumber,
335 unsigned sequenceNumber
338 unsigned sequenceNumber
342 const PString & value
347 unsigned logicalChannel,
348 unsigned rtpTimestamp
352 unsigned channelNumber,
357 unsigned channelNumber,
362 unsigned channelNumber,
367 const PString & identifier,
371 const PString & identifier,
375 const PString & identifier,
379 const PString & identifier,
408 virtual PObject *
Clone()
const;
411 virtual PASN_Object &
GetPDU();
413 virtual const PASN_Object &
GetPDU()
const;
414 virtual const PASN_Choice &
GetChoice()
const;
418 virtual const char * GetProtocolName()
const;
428 H225_GatekeeperReject &
BuildGatekeeperReject(
unsigned seqNum,
unsigned reason = H225_GatekeeperRejectReason::e_undefinedReason);
431 H225_RegistrationReject &
BuildRegistrationReject(
unsigned seqNum,
unsigned reason = H225_RegistrationRejectReason::e_undefinedReason);
434 H225_UnregistrationReject &
BuildUnregistrationReject(
unsigned seqNum,
unsigned reason = H225_UnregRejectReason::e_undefinedReason);
437 H225_LocationReject &
BuildLocationReject(
unsigned seqNum,
unsigned reason = H225_LocationRejectReason::e_undefinedReason);
440 H225_AdmissionReject &
BuildAdmissionReject(
unsigned seqNum,
unsigned reason = H225_AdmissionRejectReason::e_undefinedReason);
443 H225_DisengageReject &
BuildDisengageReject(
unsigned seqNum,
unsigned reason = H225_DisengageRejectReason::e_securityDenial);
446 H225_BandwidthReject &
BuildBandwidthReject(
unsigned seqNum,
unsigned reason = H225_BandRejectReason::e_undefinedReason);
450 H225_InfoRequestNak &
BuildInfoRequestNak(
unsigned seqNum,
unsigned reason = H225_InfoRequestNakReason::e_undefinedReason);
453 H225_NonStandardMessage &
BuildNonStandardMessage(
unsigned seqNum,
const PString & identifier,
const PBYTEArray & data);
461 bool H323SetNonStandard(H225_NonStandardParameter & param,
const PString & identifier,
const PBYTEArray & data);
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);
479 H225_ReleaseCompleteReason & releaseCompleteReason
485 H245_ArrayOf_RTPPayloadType & rtpPacketizations,
486 const PStringSet & mediaPacketizations
489 H245_RTPPayloadType & rtpPacketization,
494 H245_RTPPayloadType & rtpPacketization,
495 const PString & mediaPacketizationString,
499 const H245_RTPPayloadType & rtpPacketization
503 const H245_CapabilityIdentifier & capId
507 H245_CapabilityIdentifier & capId
511 const H245_ArrayOf_GenericParameter & params,
515 const H245_ArrayOf_GenericParameter & params,
519 const H245_ArrayOf_GenericParameter & params,
521 unsigned defValue = 0,
522 H245_ParameterValue::Choices subType = H245_ParameterValue::e_unsignedMin
525 const H245_ArrayOf_GenericParameter & params,
530 H245_ArrayOf_GenericParameter & params,
532 H245_ParameterValue::Choices tag
535 H245_ArrayOf_GenericParameter & params,
537 H245_ParameterValue::Choices tag
540 H245_ArrayOf_GenericParameter & params,
545 H245_ArrayOf_GenericParameter & params,
548 H245_ParameterValue::Choices subType
551 H245_ArrayOf_GenericParameter & params,
553 const PString & value
556 H245_ArrayOf_GenericParameter & params,
558 const PBYTEArray & value
561 H245_ArrayOf_GenericParameter & params,
563 const PASN_Object &
object
570 const PBYTEArray & rawData,
571 const PASN_Object & pdu,
572 const PASN_Choice & tag1,
576 #define H323TraceDumpPDU(proto, writing, rawData, pdu, tag1, seqNum)
582 #endif // OPAL_H323_H323PDU_H
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)
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 ¶ms, unsigned ordinal, bool value)
H225_Alerting_UUIE & BuildAlerting(const H323Connection &connection)
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 ¶m, const PString &identifier, const PBYTEArray &data)
H245_FlowControlCommand & BuildFlowControlCommand(unsigned channelNumber, unsigned maxBitRate)
bool H323GetGenericParameterBoolean(const H245_ArrayOf_GenericParameter ¶ms, 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 ¶ms, 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)
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)
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 ¶ms, unsigned ordinal)
H225_Notify_UUIE & BuildNotify(const H323Connection &connection)
H245_ParameterValue & H323AddGenericParameter(H245_ArrayOf_GenericParameter ¶ms, 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)
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)
Q931::CauseValues H323TranslateFromCallEndReason(H323Connection::CallEndReason callEndReason, H225_ReleaseCompleteReason &releaseCompleteReason)
virtual unsigned GetSequenceNumber() const
void H323AddGenericParameterObject(H245_ArrayOf_GenericParameter ¶ms, 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 ¶ms, unsigned ordinal, H245_ParameterValue::Choices tag)
Definition: h323pdu.h:534
void H323AddGenericParameterOctets(H245_ArrayOf_GenericParameter ¶ms, unsigned ordinal, const PBYTEArray &value)
PStringArray H323GetAliasAddressStrings(const H225_ArrayOf_AliasAddress &aliases)
void H323AddGenericParameterInteger(H245_ArrayOf_GenericParameter ¶ms, 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 ¶ms, 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 ¶ms, 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)