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); }
141 PBoolean SetTransport(
148 bool excludeLocalHost =
true 153 virtual PBoolean StartChannel();
158 virtual void StopChannel();
166 virtual PBoolean HandleTransaction(
167 const PASN_Object &
rawPDU 172 virtual void OnSendingPDU(
178 virtual PBoolean WritePDU(
184 virtual PBoolean WriteTo(
187 PBoolean callback =
true 205 ) { checkResponseCryptoTokens = value; }
215 unsigned GetNextSequenceNumber();
216 PBoolean SetUpCallSignalAddresses(
217 H225_ArrayOf_TransportAddress & addresses
238 unsigned numRetries = 0,
239 PTimeInterval timeout = 0);
240 void CheckResponse(
unsigned,
const PASN_Choice *);
241 void OnReceiveRIP(
unsigned milliseconds);
266 virtual PBoolean MakeRequest(
269 PBoolean CheckForResponse(
272 const PASN_Choice * = NULL
274 PBoolean HandleRequestInProgress(
278 PBoolean CheckCryptoTokens(
280 const PASN_Array & clearTokens,
281 unsigned clearOptionalField,
282 const PASN_Array & cryptoTokens,
283 unsigned cryptoOptionalField
287 PBoolean SendCachedResponse(
352 unsigned sequenceNumber,
356 PBoolean HandlePDU();
358 virtual PBoolean WritePDU(
362 PBoolean CheckCryptoTokens(
367 virtual const char * GetName()
const = 0;
370 virtual void SetRejectReason(
420 virtual WORD GetDefaultUdpPort() = 0;
441 PBoolean AddListeners(
448 PBoolean AddListener(
458 PBoolean AddListener(
468 PBoolean AddListener(
487 PBoolean RemoveListener(
491 PBoolean SetUpCallSignalAddresses(H225_ArrayOf_TransportAddress & addresses);
508 #endif // OPAL_H323_H323TRANS_H H323TransportAddressArray requestAddresses
Definition: h323trans.h:247
PMutex pduWriteMutex
Definition: h323trans.h:320
Definition: h323trans.h:261
virtual PASN_Choice & GetChoice()=0
Definition: h323trans.h:260
const H235Authenticators & GetAuthenticators() const
Definition: h323trans.h:73
PBoolean checkResponseCryptoTokens
Definition: h323trans.h:311
H323TransportAddressArray(const OpalTransportAddress &address)
Definition: transaddr.h:97
WORD defaultRemotePort
Definition: h323trans.h:309
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
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
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
virtual ~H323TransactionPDU()
Definition: h323trans.h:56
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
PSortedList< Response > responses
Definition: h323trans.h:321
Definition: h323trans.h:258
PBoolean isBehindNAT
Definition: h323trans.h:396
Definition: h323trans.h:291
PDictionary< POrdinalKey, Request > requests
Definition: h323trans.h:316
H323Transport & GetTransport() const
Definition: h323trans.h:199
H235Authenticators authenticators
Definition: h323trans.h:394
PTimeInterval retirementAge
Definition: h323trans.h:302
PSyncPoint responseHandled
Definition: h323trans.h:252
PTime lastUsedTime
Definition: h323trans.h:301
virtual void DeletePDU()=0
H323TransportAddressArray replyAddresses
Definition: h323trans.h:388
H323Transactor & GetTransactor() const
Definition: h323trans.h:379
unsigned rejectReason
Definition: h323trans.h:244
Request * lastRequest
Definition: h323trans.h:318
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
PLIST(H323LogicalChannelList, H323Channel)
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
virtual PBoolean Write(H323Transport &transport)
PBoolean IsFastResponseRequired() const
Definition: h323trans.h:374
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
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
PBoolean GetCheckResponseCryptoTokens()
Definition: h323trans.h:209
PMutex nextSequenceNumberMutex
Definition: h323trans.h:314
PSyncPoint monitorExit
Definition: h323trans.h:498
PMutex responseMutex
Definition: h323trans.h:253
H235Authenticator::ValidationResult ValidatePDU(const H323TransactionPDU &pdu, const PASN_Array &clearTokens, unsigned clearOptionalField, const PASN_Array &cryptoTokens, unsigned cryptoOptionalField, const PBYTEArray &rawPDU)
unsigned nextSequenceNumber
Definition: h323trans.h:313
const H323TransportAddressArray & GetReplyAddresses() const
Definition: h323trans.h:377
H235Authenticator::ValidationResult authenticatorResult
Definition: h323trans.h:395
Response
Definition: h323trans.h:344
ListenerList listeners
Definition: h323trans.h:502
PMutex mutex
Definition: h323trans.h:500
Definition: h323trans.h:257
H323EndPoint & endpoint
Definition: h323trans.h:307
PBoolean fastResponseRequired
Definition: h323trans.h:389
Definition: transaddr.h:66
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