34 #ifndef OPAL_H323_H323PDU_H
35 #define OPAL_H323_H323PDU_H
45 #include <ptlib/sockets.h>
62 #define H225_PROTOCOL_VERSION 6
63 #define H245_PROTOCOL_VERSION 13
104 const PIPSocket::Address & h245Address,
131 unsigned reason = H225_FacilityReason::e_undefinedReason
217 PBoolean firstAliasOnly =
false
247 bool insertPartyNumbers =
false
257 H225_Setup_UUIE & setup
277 H245_RequestMessage &
Build(H245_RequestMessage ::Choices request);
278 H245_ResponseMessage &
Build(H245_ResponseMessage ::Choices response);
279 H245_CommandMessage &
Build(H245_CommandMessage ::Choices command);
280 H245_IndicationMessage &
Build(H245_IndicationMessage::Choices indication);
283 unsigned terminalType,
284 unsigned statusDeterminationNumber
295 unsigned sequenceNumber,
299 unsigned sequenceNumber
302 unsigned sequenceNumber,
307 unsigned forwardLogicalChannelNumber
310 unsigned channelNumber,
314 unsigned channelNumber
317 unsigned channelNumber
320 unsigned channelNumber,
324 unsigned channelNumber
327 unsigned channelNumber
330 unsigned channelNumber
333 unsigned channelNumber
336 unsigned channelNumber
340 unsigned sequenceNumber
343 unsigned sequenceNumber,
347 unsigned sequenceNumber,
352 unsigned sequenceNumber
355 unsigned sequenceNumber
359 const PString & value
364 unsigned logicalChannel,
365 unsigned rtpTimestamp
369 unsigned channelNumber,
374 unsigned channelNumber,
379 unsigned channelNumber,
384 const PString & identifier,
388 const PString & identifier,
392 const PString & identifier,
396 const PString & identifier,
425 virtual PObject *
Clone()
const;
428 virtual PASN_Object &
GetPDU();
430 virtual const PASN_Object &
GetPDU()
const;
431 virtual const PASN_Choice &
GetChoice()
const;
435 virtual const char * GetProtocolName()
const;
443 H225_GatekeeperReject &
BuildGatekeeperReject(
unsigned seqNum,
unsigned reason = H225_GatekeeperRejectReason::e_undefinedReason);
446 H225_RegistrationReject &
BuildRegistrationReject(
unsigned seqNum,
unsigned reason = H225_RegistrationRejectReason::e_undefinedReason);
449 H225_UnregistrationReject &
BuildUnregistrationReject(
unsigned seqNum,
unsigned reason = H225_UnregRejectReason::e_undefinedReason);
452 H225_LocationReject &
BuildLocationReject(
unsigned seqNum,
unsigned reason = H225_LocationRejectReason::e_undefinedReason);
455 H225_AdmissionReject &
BuildAdmissionReject(
unsigned seqNum,
unsigned reason = H225_AdmissionRejectReason::e_undefinedReason);
458 H225_DisengageReject &
BuildDisengageReject(
unsigned seqNum,
unsigned reason = H225_DisengageRejectReason::e_securityDenial);
461 H225_BandwidthReject &
BuildBandwidthReject(
unsigned seqNum,
unsigned reason = H225_BandRejectReason::e_undefinedReason);
465 H225_InfoRequestNak &
BuildInfoRequestNak(
unsigned seqNum,
unsigned reason = H225_InfoRequestNakReason::e_undefinedReason);
476 void H323SetAliasAddresses(
const PStringArray & names, H225_ArrayOf_AliasAddress & aliases,
int tag = -1);
477 void H323SetAliasAddresses(
const PStringList & names, H225_ArrayOf_AliasAddress & aliases,
int tag = -1);
491 H225_ReleaseCompleteReason & releaseCompleteReason
497 H245_ArrayOf_RTPPayloadType & rtpPacketizations,
498 PINDEX & packetizationsCount,
503 H245_RTPPayloadType & rtpPacketization,
508 H245_RTPPayloadType & rtpPacketization,
509 const PString & mediaPacketizationString,
514 const H245_RTPPayloadType & rtpPacketization
518 const H245_CapabilityIdentifier & capId
522 H245_CapabilityIdentifier & capId
526 const H245_ArrayOf_GenericParameter & params,
530 const H245_ArrayOf_GenericParameter & params,
534 const H245_ArrayOf_GenericParameter & params,
536 unsigned defValue = 0,
537 H245_ParameterValue::Choices subType = H245_ParameterValue::e_unsignedMin
540 H245_ArrayOf_GenericParameter & params,
544 H245_ArrayOf_GenericParameter & params,
549 H245_ArrayOf_GenericParameter & params,
552 H245_ParameterValue::Choices subType
555 H245_ArrayOf_GenericParameter & params,
557 const PString & value
560 H245_ArrayOf_GenericParameter & params,
562 const PBYTEArray & value
569 const PBYTEArray & rawData,
570 const PASN_Object & pdu,
571 const PASN_Choice & tag1,
575 #define H323TraceDumpPDU(proto, writing, rawData, pdu, tag1, seqNum)
581 #endif // OPAL_H323_H323PDU_H
CauseValues
Definition: q931.h:168
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)
void H323SetRTPPacketization(H245_ArrayOf_RTPPayloadType &rtpPacketizations, PINDEX &packetizationsCount, const OpalMediaFormat &mediaFormat, RTP_DataFrame::PayloadTypes payloadType)
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)
H323TransportAddressArray(const OpalTransportAddress &address)
Definition: transaddr.h:97
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)
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:703
PBoolean Read(H323Transport &transport)
H225_DisengageConfirm & BuildDisengageConfirm(unsigned seqNum)
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:94
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)
H225_InfoRequestNak & BuildInfoRequestNak(unsigned seqNum, unsigned reason=H225_InfoRequestNakReason::e_undefinedReason)
H245_CloseLogicalChannel & BuildCloseLogicalChannel(unsigned channelNumber)
virtual H323TransactionPDU * ClonePDU() const
PayloadTypes
Definition: rtp.h:86
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)
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)
H225_ReleaseComplete_UUIE & BuildReleaseComplete(const H323Connection &connection)
H245_TerminalCapabilitySet & BuildTerminalCapabilitySet(const H323Connection &connection, unsigned sequenceNumber, PBoolean empty)
H245_OpenLogicalChannel & BuildOpenLogicalChannel(unsigned forwardLogicalChannelNumber)
void InsertH460Setup(const H323Connection &connection, H225_Setup_UUIE &setup)
PString GetDestinationAlias(PBoolean firstAliasOnly=false) const
H225_UnregistrationConfirm & BuildUnregistrationConfirm(unsigned seqNum)
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:414
unsigned GetDistinctiveRing() const
H225_LocationRequest & BuildLocationRequest(unsigned seqNum)
#define H323TraceDumpPDU(proto, writing, rawData, pdu, tag1, seqNum)
Definition: h323pdu.h:575
bool H323SetCapabilityIdentifier(const PString &str, H245_CapabilityIdentifier &capId)
Definition: h323con.h:130
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
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:51
PString GetSourceAliases(const H323Transport *transport=NULL) const
Q931 & GetQ931()
Definition: h323pdu.h:192
void SetQ931Fields(const H323Connection &connection, bool insertPartyNumbers=false)
const Q931 & GetQ931() const
Definition: h323pdu.h:188
Definition: connection.h:396
H245_RequestChannelCloseReject & BuildRequestChannelCloseReject(unsigned channelNumber)
Definition: h323pdu.h:272
Q931 q931pdu
Definition: h323pdu.h:264
H245_FunctionNotUnderstood & BuildFunctionNotUnderstood(const H323ControlPDU &pdu)
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:196
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)
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:42
H245_GenericMessage & BuildGenericIndication(const PString &identifier, unsigned subMsgId)
PString H323GetRTPPacketization(const H245_RTPPayloadType &rtpPacketization)
H245_ParameterValue * H323AddGenericParameter(H245_ArrayOf_GenericParameter ¶ms, unsigned ordinal)
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:66
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:312
H225_RegistrationConfirm & BuildRegistrationConfirm(unsigned seqNum)
H225_CallProceeding_UUIE & BuildCallProceeding(const H323Connection &connection)