31 #ifndef OPAL_H323_H323TRANS_H
32 #define OPAL_H323_H323TRANS_H
45 #include <ptclib/asner.h>
61 virtual PASN_Object &
GetPDU() = 0;
63 virtual const PASN_Object &
GetPDU()
const = 0;
64 virtual const PASN_Choice &
GetChoice()
const = 0;
68 virtual const char * GetProtocolName()
const = 0;
76 const H235Authenticators & auth
80 const PASN_Array & clearTokens,
81 unsigned clearOptionalField,
82 const PASN_Array & cryptoTokens,
83 unsigned cryptoOptionalField
84 )
const {
return authenticators.ValidatePDU(*
this, clearTokens, clearOptionalField, cryptoTokens, cryptoOptionalField,
rawPDU); }
87 PASN_Array & clearTokens,
88 unsigned clearOptionalField,
89 PASN_Array & cryptoTokens,
90 unsigned cryptoOptionalField
91 ) {
authenticators.PreparePDU(*
this, clearTokens, clearOptionalField, cryptoTokens, cryptoOptionalField); }
148 bool excludeLocalHost =
true
167 const PASN_Object & rawPDU
187 PBoolean callback =
true
217 H225_ArrayOf_TransportAddress & addresses
238 unsigned numRetries = 0,
239 PTimeInterval timeout = 0);
272 const PASN_Choice * = NULL
280 const PASN_Array & clearTokens,
281 unsigned clearOptionalField,
282 const PASN_Array & cryptoTokens,
283 unsigned cryptoOptionalField
352 unsigned sequenceNumber,
367 virtual const char * GetName()
const = 0;
508 #endif // OPAL_H323_H323TRANS_H
H323TransportAddressArray requestAddresses
Definition: h323trans.h:247
PMutex pduWriteMutex
Definition: h323trans.h:320
virtual PBoolean HandleTransaction(const PASN_Object &rawPDU)=0
Response(const H323TransportAddress &addr, unsigned seqNum)
Definition: h323trans.h:261
virtual PASN_Choice & GetChoice()=0
Definition: h323trans.h:260
PBoolean AddListener(const H323TransportAddress &interfaceName)
const H235Authenticators & GetAuthenticators() const
Definition: h323trans.h:73
PBoolean checkResponseCryptoTokens
Definition: h323trans.h:311
H323TransportAddressArray(const OpalTransportAddress &address)
Definition: transaddr.h:97
PDECLARE_NOTIFIER(PThread, H323Transactor, HandleTransactions)
virtual PBoolean MakeRequest(Request &request)
virtual PBoolean WritePDU(H323TransactionPDU &pdu)
WORD defaultRemotePort
Definition: h323trans.h:309
PBoolean SendCachedResponse(const H323TransactionPDU &pdu)
virtual void OnSendingPDU(PASN_Object &rawPDU)=0
virtual unsigned GetRequestInProgressDelay() const =0
H235Authenticator::ValidationResult GetAuthenticatorResult() const
Definition: h323trans.h:380
void SetAuthenticators(const H235Authenticators &auth)
Definition: h323trans.h:75
Definition: transports.h:703
virtual H235Authenticator::ValidationResult ValidatePDU() const =0
PTimeInterval whenResponseExpected
Definition: h323trans.h:251
H323EndPoint & GetOwnerEndPoint() const
Definition: h323trans.h:426
H323TransactionPDU * confirm
Definition: h323trans.h:391
unsigned sequenceNumber
Definition: h323trans.h:249
Definition: h323trans.h:327
Definition: h323trans.h:101
H323Transactor(H323EndPoint &endpoint, H323Transport *transport, WORD localPort, WORD remotePort)
H323EndPoint & ownerEndPoint
Definition: h323trans.h:495
PBoolean CanSendRIP() const
Definition: h323trans.h:375
PBoolean IsBehindNAT() const
Definition: h323trans.h:378
H323TransactionPDU & requestPDU
Definition: h323trans.h:250
PLIST(ListenerList, H323Transactor)
virtual ~H323TransactionPDU()
Definition: h323trans.h:56
PBoolean AddListeners(const H323TransportAddressArray &ifaces)
Definition: h323trans.h:345
H235Authenticators authenticators
Definition: h323trans.h:94
PPER_Stream rawPDU
Definition: h323trans.h:95
void Prepare(PASN_Array &clearTokens, unsigned clearOptionalField, PASN_Array &cryptoTokens, unsigned cryptoOptionalField)
Definition: h323trans.h:86
PBoolean canSendRIP
Definition: h323trans.h:397
virtual PASN_Object & GetPDU()=0
virtual unsigned GetSequenceNumber() const =0
Definition: h323trans.h:347
void PrintOn(ostream &strm) const
PSortedList< Response > responses
Definition: h323trans.h:321
enum H323Transactor::Request::@18 responseResult
virtual PBoolean WritePDU(H323TransactionPDU &pdu)
virtual PBoolean StartChannel()
Definition: h323trans.h:258
PBoolean isBehindNAT
Definition: h323trans.h:396
virtual H323Transactor * CreateListener(H323Transport *transport)=0
Definition: h323trans.h:291
PDictionary< POrdinalKey, Request > requests
Definition: h323trans.h:316
Definition: h323trans.h:346
H323Transport & GetTransport() const
Definition: h323trans.h:199
H235Authenticators authenticators
Definition: h323trans.h:394
void CheckResponse(unsigned, const PASN_Choice *)
virtual void SetRejectReason(unsigned reasonCode)=0
PTimeInterval retirementAge
Definition: h323trans.h:302
virtual WORD GetDefaultUdpPort()=0
PBoolean CheckForResponse(unsigned, unsigned, const PASN_Choice *=NULL)
PSyncPoint responseHandled
Definition: h323trans.h:252
PTime lastUsedTime
Definition: h323trans.h:301
virtual void DeletePDU()=0
H323TransportAddressArray replyAddresses
Definition: h323trans.h:388
void OnReceiveRIP(unsigned milliseconds)
H323TransportAddressArray GetInterfaceAddresses(bool excludeLocalHost=true)
H323Transactor & GetTransactor() const
Definition: h323trans.h:379
unsigned rejectReason
Definition: h323trans.h:244
virtual H323TransactionPDU * CreateRIP(unsigned sequenceNumber, unsigned delay) const =0
H323TransactionServer(H323EndPoint &endpoint)
PDECLARE_NOTIFIER(PThread, H323Transaction, SlowHandler)
Request * lastRequest
Definition: h323trans.h:318
H323Transaction(H323Transactor &transactor, const H323TransactionPDU &requestToCopy, H323TransactionPDU *confirm, H323TransactionPDU *reject)
PBoolean CheckCryptoTokens(const H235Authenticators &authenticators)
static Response InProgress(unsigned time)
Definition: h323trans.h:349
H323TransactionPDU * reject
Definition: h323trans.h:392
void SetCheckResponseCryptoTokens(PBoolean value)
Definition: h323trans.h:203
H235Authenticators & GetAuthenticators()
Definition: h323trans.h:74
PThread * monitorThread
Definition: h323trans.h:497
Definition: h323trans.h:223
PBoolean HandleRequestInProgress(const H323TransactionPDU &pdu, unsigned delay)
H323TransactionPDU * request
Definition: h323trans.h:390
virtual PBoolean Read(H323Transport &transport)
H323EndPoint & GetEndPoint() const
Definition: h323trans.h:195
virtual H323TransactionPDU * ClonePDU() const =0
unsigned requestSequenceNumber
Definition: h323trans.h:387
PBoolean CheckCryptoTokens(const H323TransactionPDU &pdu, const PASN_Array &clearTokens, unsigned clearOptionalField, const PASN_Array &cryptoTokens, unsigned cryptoOptionalField)
PBoolean SetUpCallSignalAddresses(H225_ArrayOf_TransportAddress &addresses)
virtual PBoolean Write(H323Transport &transport)
PBoolean IsFastResponseRequired() const
Definition: h323trans.h:374
PBoolean SendCachedResponse(H323Transport &transport)
Definition: h323trans.h:51
ValidationResult
Definition: h235auth.h:83
H323TransportAddress GetReplyAddress() const
Definition: h323trans.h:376
Definition: h323trans.h:403
H323Transactor & transactor
Definition: h323trans.h:386
PBoolean RemoveListener(H323Transactor *listener)
H235Authenticator::ValidationResult Validate(const PASN_Array &clearTokens, unsigned clearOptionalField, const PASN_Array &cryptoTokens, unsigned cryptoOptionalField) const
Definition: h323trans.h:79
H323TransactionPDU * replyPDU
Definition: h323trans.h:303
void SetPDU(const H323TransactionPDU &pdu)
PBoolean GetCheckResponseCryptoTokens()
Definition: h323trans.h:209
PMutex nextSequenceNumberMutex
Definition: h323trans.h:314
PSyncPoint monitorExit
Definition: h323trans.h:498
PBoolean Poll(H323Transactor &, unsigned numRetries=0, PTimeInterval timeout=0)
PMutex responseMutex
Definition: h323trans.h:253
virtual H323TransactionPDU * CreateTransactionPDU() const =0
PBoolean SetUpCallSignalAddresses(H225_ArrayOf_TransportAddress &addresses)
unsigned nextSequenceNumber
Definition: h323trans.h:313
const H323TransportAddressArray & GetReplyAddresses() const
Definition: h323trans.h:377
PBoolean SetTransport(const H323TransportAddress &iface)
virtual Response OnHandlePDU()=0
Request(unsigned seqNum, H323TransactionPDU &pdu)
H235Authenticator::ValidationResult authenticatorResult
Definition: h323trans.h:395
Response
Definition: h323trans.h:344
unsigned GetNextSequenceNumber()
ListenerList listeners
Definition: h323trans.h:502
PMutex mutex
Definition: h323trans.h:500
Definition: h323trans.h:262
Definition: h323trans.h:257
virtual void StopChannel()
H323EndPoint & endpoint
Definition: h323trans.h:307
PBoolean fastResponseRequired
Definition: h323trans.h:389
Definition: transaddr.h:66
virtual PBoolean WriteTo(H323TransactionPDU &pdu, const H323TransportAddressArray &addresses, PBoolean callback=true)
H323Transport * transport
Definition: h323trans.h:310
PMutex requestsMutex
Definition: h323trans.h:317
Definition: h323trans.h:259
void * responseInfo
Definition: h323trans.h:245
Definition: h323trans.h:256
WORD defaultLocalPort
Definition: h323trans.h:308