27 #ifndef OPAL_H323_H323TRANS_H
28 #define OPAL_H323_H323TRANS_H
41 #include <ptclib/asner.h>
57 virtual PASN_Object &
GetPDU() = 0;
59 virtual const PASN_Object &
GetPDU()
const = 0;
60 virtual const PASN_Choice &
GetChoice()
const = 0;
64 virtual const char * GetProtocolName()
const = 0;
72 const H235Authenticators & auth
80 template <
class PDU>
void Prepare(PDU & pdu)
155 const PASN_Object & rawPDU
175 PBoolean callback =
true
205 H225_ArrayOf_TransportAddress & addresses
222 unsigned numRetries = 0,
223 const PTimeInterval & timeout = 0);
256 const PASN_Choice * = NULL
334 unsigned sequenceNumber,
349 virtual const char *
GetName()
const = 0;
493 #endif // OPAL_H323_H323TRANS_H
virtual PBoolean HandleTransaction(const PASN_Object &rawPDU)=0
Response(const H323TransportAddress &addr, unsigned seqNum)
Definition: h323trans.h:237
bool m_fastResponseRequired
Definition: h323trans.h:373
virtual PASN_Choice & GetChoice()=0
PString GetName(const OpalMediaType &mediaType)
PBoolean AddListener(const H323TransportAddress &interfaceName)
const H235Authenticators & GetAuthenticators() const
Definition: h323trans.h:69
H323EndPoint & m_endpoint
Definition: h323trans.h:290
PDECLARE_NOTIFIER(PThread, H323Transactor, HandleTransactions)
virtual PBoolean MakeRequest(Request &request)
H323TransactionPDU & m_requestPDU
Definition: h323trans.h:228
virtual PBoolean WritePDU(H323TransactionPDU &pdu)
PBoolean SendCachedResponse(const H323TransactionPDU &pdu)
PTimeInterval m_whenResponseExpected
Definition: h323trans.h:245
PObject * m_responseInfo
Definition: h323trans.h:233
virtual void OnSendingPDU(PASN_Object &rawPDU)=0
virtual bool CheckCryptoTokens()
PSortedList< Response > m_responses
Definition: h323trans.h:303
H323TransportAddressArray m_requestAddresses
Definition: h323trans.h:229
virtual unsigned GetRequestInProgressDelay() const =0
H235Authenticator::ValidationResult GetAuthenticatorResult() const
Definition: h323trans.h:363
void SetAuthenticators(const H235Authenticators &auth)
Definition: h323trans.h:71
WORD m_defaultLocalPort
Definition: h323trans.h:291
H323Transport * m_transport
Definition: h323trans.h:293
H323TransactionPDU * m_request
Definition: h323trans.h:374
Definition: transports.h:788
virtual H235Authenticator::ValidationResult ValidatePDU() const =0
H323TransactionPDU * m_replyPDU
Definition: h323trans.h:286
unsigned m_rejectReason
Definition: h323trans.h:232
H323EndPoint & GetOwnerEndPoint() const
Definition: h323trans.h:410
bool m_isBehindNAT
Definition: h323trans.h:380
ListenerList m_listeners
Definition: h323trans.h:487
virtual void PrepareConfirm()
Definition: h323trans.h:344
Definition: h323trans.h:309
Definition: h323trans.h:95
H323Transactor(H323EndPoint &endpoint, H323Transport *transport, WORD localPort, WORD remotePort)
PBoolean CanSendRIP() const
Definition: h323trans.h:358
PBoolean IsBehindNAT() const
Definition: h323trans.h:361
PLIST(ListenerList, H323Transactor)
unsigned m_requestSequenceNumber
Definition: h323trans.h:371
virtual ~H323TransactionPDU()
Definition: h323trans.h:52
PBoolean AddListeners(const H323TransportAddressArray &ifaces)
Definition: h323trans.h:238
Definition: h323trans.h:327
H235Authenticators authenticators
Definition: h323trans.h:88
PPER_Stream rawPDU
Definition: h323trans.h:89
PSyncPoint m_monitorExit
Definition: h323trans.h:482
virtual PASN_Object & GetPDU()=0
virtual unsigned GetSequenceNumber() const =0
Definition: h323trans.h:329
Request * m_lastRequest
Definition: h323trans.h:300
void PrintOn(ostream &strm) const
virtual unsigned GetSecurityRejectTag() const
Definition: h323trans.h:352
virtual PBoolean WritePDU(H323TransactionPDU &pdu)
virtual PBoolean StartChannel()
virtual H323Transactor * CreateListener(H323Transport *transport)=0
Definition: h323trans.h:274
Definition: transaddr.h:91
Definition: h323trans.h:328
PBoolean Poll(H323Transactor &, unsigned numRetries=0, const PTimeInterval &timeout=0)
enum H323Transactor::Request::@22 m_responseResult
H323Transport & GetTransport() const
Definition: h323trans.h:187
void CheckResponse(unsigned, const PASN_Choice *)
virtual void SetRejectReason(unsigned reasonCode)=0
Definition: h323trans.h:242
virtual WORD GetDefaultUdpPort()=0
PBoolean CheckForResponse(unsigned, unsigned, const PASN_Choice *=NULL)
Definition: h323trans.h:240
H235Authenticators m_authenticators
Definition: h323trans.h:378
virtual void DeletePDU()=0
bool CheckCryptoTokens(const H323TransactionPDU &pdu, const RAS &ras)
Definition: h323trans.h:264
void OnReceiveRIP(unsigned milliseconds)
H235Authenticator::ValidationResult m_authenticatorResult
Definition: h323trans.h:379
H323Transactor & GetTransactor() const
Definition: h323trans.h:362
virtual H323TransactionPDU * CreateRIP(unsigned sequenceNumber, unsigned delay) const =0
H323TransactionServer(H323EndPoint &endpoint)
PDECLARE_NOTIFIER(PThread, H323Transaction, SlowHandler)
H323Transaction(H323Transactor &transactor, const H323TransactionPDU &requestToCopy, H323TransactionPDU *confirm, H323TransactionPDU *reject)
static Response InProgress(unsigned time)
Definition: h323trans.h:331
unsigned m_sequenceNumber
Definition: h323trans.h:227
void SetCheckResponseCryptoTokens(PBoolean value)
Definition: h323trans.h:191
H235Authenticators & GetAuthenticators()
Definition: h323trans.h:70
Definition: h323trans.h:211
Definition: h235auth.h:83
PBoolean HandleRequestInProgress(const H323TransactionPDU &pdu, unsigned delay)
PDictionary< POrdinalKey, Request > m_requests
Definition: h323trans.h:298
virtual PBoolean Read(H323Transport &transport)
H323EndPoint & GetEndPoint() const
Definition: h323trans.h:183
virtual H323TransactionPDU * ClonePDU() const =0
H323TransactionPDU * m_confirm
Definition: h323trans.h:375
PBoolean SetUpCallSignalAddresses(H225_ArrayOf_TransportAddress &addresses)
virtual PBoolean Write(H323Transport &transport)
PBoolean IsFastResponseRequired() const
Definition: h323trans.h:357
bool m_canSendRIP
Definition: h323trans.h:381
PBoolean SendCachedResponse(H323Transport &transport)
Definition: h323trans.h:47
ValidationResult
Definition: h235auth.h:82
PTimeInterval m_retirementAge
Definition: h323trans.h:285
H323TransportAddress GetReplyAddress() const
Definition: h323trans.h:359
H235Authenticator::ValidationResult Validate(const RAS &ras) const
Definition: h323trans.h:75
Definition: h323trans.h:387
Definition: h323trans.h:241
PSyncPoint m_responseHandled
Definition: h323trans.h:246
Request(unsigned seqNum, H323TransactionPDU &pdu, const H323TransportAddressArray &addresses=H323TransportAddressArray())
bool m_checkResponseCryptoTokens
Definition: h323trans.h:294
PBoolean RemoveListener(H323Transactor *listener)
H323TransactionPDU * m_reject
Definition: h323trans.h:376
Definition: h323trans.h:236
void SetPDU(const H323TransactionPDU &pdu)
H323TransportAddressArray m_replyAddresses
Definition: h323trans.h:372
PBoolean GetCheckResponseCryptoTokens()
Definition: h323trans.h:197
bool CheckCryptoTokens2()
virtual H323TransactionPDU * CreateTransactionPDU() const =0
bool CheckCryptoTokens1(const H323TransactionPDU &pdu)
PBoolean SetUpCallSignalAddresses(H225_ArrayOf_TransportAddress &addresses)
PDECLARE_MUTEX(m_requestsMutex)
const H323TransportAddressArray & GetReplyAddresses() const
Definition: h323trans.h:360
PBoolean SetTransport(const H323TransportAddress &iface)
virtual Response OnHandlePDU()=0
Response
Definition: h323trans.h:326
unsigned GetNextSequenceNumber()
void SetAuthenticators(const H235Authenticators &auth)
Definition: h323trans.h:364
virtual void StopChannel()
PDECLARE_MUTEX(m_responseMutex)
WORD m_defaultRemotePort
Definition: h323trans.h:292
H323Transactor & m_transactor
Definition: h323trans.h:370
Definition: transaddr.h:62
void Prepare(PDU &pdu)
Definition: h323trans.h:80
Definition: h323trans.h:239
const PBYTEArray & GetRawPDU() const
Definition: h323trans.h:85
PThread * m_monitorThread
Definition: h323trans.h:481
virtual PBoolean WriteTo(H323TransactionPDU &pdu, const H323TransportAddressArray &addresses, PBoolean callback=true)
H323EndPoint & m_ownerEndPoint
Definition: h323trans.h:479
atomic< uint16_t > m_nextSequenceNumber
Definition: h323trans.h:296
PTime m_lastUsedTime
Definition: h323trans.h:284