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