31 #ifndef OPAL_H323_PECLIENT_H
32 #define OPAL_H323_PECLIENT_H
45 #include <ptlib/safecoll.h>
64 unsigned sequenceNumber,
90 virtual const char * GetName()
const;
96 H501_ServiceRequest &
srq;
97 H501_ServiceConfirmation &
scf;
98 H501_ServiceRejection &
srj;
117 virtual const char * GetName()
const;
123 H501_DescriptorUpdate &
du;
124 H501_DescriptorUpdateAck &
ack;
143 virtual const char * GetName()
const;
150 H501_AccessConfirmation &
acf;
151 H501_AccessRejection &
arj;
168 Comparison
Compare(
const PObject & obj)
const;
190 void CopyTo(H501_Descriptor & descriptor);
192 const H225_EndpointType & ep,
193 const H225_ArrayOf_AliasAddress & aliases,
194 const H225_ArrayOf_AliasAddress & transportAddress,
197 static void SetProtocolList(H501_ArrayOf_SupportedProtocols & h501Protocols,
unsigned protocols);
198 static unsigned GetProtocolList(
const H501_ArrayOf_SupportedProtocols & h501Protocols);
294 PSafetyMode mode = PSafeReference
295 ) {
return PSafePtr<H323PeerElementDescriptor>(
descriptors, mode); }
298 PSafetyMode mode = PSafeReference
302 PSafetyMode mode = PSafeReference
338 const PStringArray & aliases,
346 const H225_ArrayOf_AliasAddress & aliases,
354 const H225_ArrayOf_AliasAddress & aliases,
355 const H225_ArrayOf_AliasAddress & transportAddr,
362 const POrdinalKey & creator,
363 const H225_ArrayOf_AliasAddress & alias,
364 const H225_ArrayOf_AliasAddress & transportAddresses,
371 const POrdinalKey & creator,
372 const H501_ArrayOf_AddressTemplate & addressTemplates,
373 const PTime & updateTime,
380 PBoolean
DeleteDescriptor(
const H225_AliasAddress & alias, PBoolean now =
false);
386 const PString & searchAlias,
387 PStringArray & destAliases,
393 const PString & searchAlias,
394 H225_ArrayOf_AliasAddress & destAliases,
400 const H225_AliasAddress & searchAlias,
401 H225_ArrayOf_AliasAddress & destAliases,
407 const H225_AliasAddress & alias,
408 H225_ArrayOf_AliasAddress & destAliases,
409 H225_AliasAddress & transportAddress,
422 H501_UpdateInformation_updateType::Choices updateType);
426 H501_UpdateInformation_updateType::Choices updateType);
468 : H225_AliasAddress(_alias),
id(_id),
pos(_pos),
wild(_wild)
482 H501_UpdateInformation_updateType::Choices updateType);
519 PDICTIONARY(StringToOrdinalKey, PString, POrdinalKey);
535 #endif // OPAL_H323_PECLIENT_H
Definition: peclient.h:248
H501_ServiceRequest & srq
Definition: peclient.h:96
Definition: peclient.h:178
PString localIdentifier
Definition: peclient.h:499
Error SendUpdateDescriptor(H501PDU &pdu, const H323TransportAddress &peer, H323PeerElementDescriptor *descriptor, H501_UpdateInformation_updateType::Choices updateType)
static unsigned GetPriorityOption(unsigned options)
Definition: peclient.h:188
virtual void OnAddServiceRelationship(const H323TransportAddress &)
Definition: peclient.h:443
H323PeerElementServiceRelationship()
Definition: peclient.h:223
H323TransportAddressArray(const OpalTransportAddress &address)
Definition: transaddr.h:97
Options
Definition: peclient.h:170
enum H323PeerElementDescriptor::States state
PBoolean MakeRequest(H323_AnnexG::Request &request)
PBoolean OnReceiveServiceConfirmation(const H501PDU &pdu, const H501_ServiceConfirmation &pduBody)
Definition: h323annexg.h:52
H323PeerElementServiceRelationship(const OpalGloballyUniqueID &_serviceID)
Definition: peclient.h:227
H501DescriptorUpdate(H323PeerElement &pe, const H501PDU &pdu)
virtual void SetRejectReason(unsigned reasonCode)
H501ServiceRequest(H323PeerElement &pe, const H501PDU &pdu)
PSemaphore requestMutex
Definition: peclient.h:502
PBoolean OnReceiveAccessRejection(const H501PDU &pdu, const H501_AccessRejection &pduBody)
PTime lastUpdateTime
Definition: peclient.h:239
PBoolean AddDescriptor(const OpalGloballyUniqueID &descriptorID, const PStringArray &aliases, const H323TransportAddressArray &transportAddrs, unsigned options=H323PeerElementDescriptor::Protocol_H323, PBoolean now=false)
Error
Definition: peclient.h:270
virtual void OnRemoveServiceRelationship(const H323TransportAddress &)
Definition: peclient.h:444
virtual H323TransactionPDU * CreateRIP(unsigned sequenceNumber, unsigned delay) const
Definition: transports.h:703
PSafeSortedList< H323PeerElementServiceRelationship > localServiceRelationships
Definition: peclient.h:511
PBoolean ContainsNonexistent()
StringToOrdinalKey remotePeerAddrToOrdinalKey
Definition: peclient.h:520
Comparison Compare(const PObject &obj) const
OpalGloballyUniqueID serviceID
Definition: peclient.h:234
Definition: peclient.h:182
PMutex aliasMutex
Definition: peclient.h:526
virtual void OnUpdateDescriptor(const H323PeerElementDescriptor &)
Definition: peclient.h:447
H501_MessageCommonInfo & confirmCommon
Definition: peclient.h:71
Definition: h323trans.h:327
virtual void SetRejectReason(unsigned reasonCode)
PMutex remotePeerListMutex
Definition: peclient.h:516
Definition: peclient.h:183
Definition: peclient.h:207
PString name
Definition: peclient.h:237
H501_AccessRequest & arq
Definition: peclient.h:149
Definition: peclient.h:281
PBoolean RemoveServiceRelationship(const OpalGloballyUniqueID &serviceID, int reason=H501_ServiceReleaseReason::e_terminated)
PBoolean OnReceiveServiceRequest(const H501PDU &pdu, const H501_ServiceRequest &pduBody)
PSORTED_LIST(AliasKeyList, H225_AliasAddress)
Definition: peclient.h:184
Definition: peclient.h:279
virtual void OnRemoveDescriptor(const H323PeerElementDescriptor &)
Definition: peclient.h:448
PTime expireTime
Definition: peclient.h:240
H501_DescriptorUpdateAck & ack
Definition: peclient.h:124
Definition: peclient.h:206
void SetLocalName(const PString &name)
static unsigned SetPriorityOption(unsigned pri)
Definition: peclient.h:187
AliasKeyList specificAliasToDescriptorID
Definition: peclient.h:528
static PBoolean CopyToAddressTemplate(H501_AddressTemplate &addressTemplates, const H225_EndpointType &ep, const H225_ArrayOf_AliasAddress &aliases, const H225_ArrayOf_AliasAddress &transportAddress, unsigned options=H323PeerElementDescriptor::Protocol_H323)
PString gatekeeperID
Definition: peclient.h:211
PBoolean OnReceiveDescriptorUpdate(const H501PDU &pdu, const H501_DescriptorUpdate &pduBody)
AliasKey(const H225_AliasAddress &_alias, const OpalGloballyUniqueID &_id, PINDEX _pos, PBoolean _wild=false)
Definition: peclient.h:467
PSafeSortedList< H323PeerElementDescriptor > descriptors
Definition: peclient.h:522
H323PeerElementDescriptor(const OpalGloballyUniqueID &_descriptorID)
Definition: peclient.h:164
void PrintOn(ostream &strm) const
Definition: peclient.h:464
OpalGloballyUniqueID id
Definition: peclient.h:471
H501_AccessConfirmation & acf
Definition: peclient.h:150
void SetDomainName(const PString &name)
PBoolean RemoveAllServiceRelationships()
AliasKeyList wildcardAliasToDescriptorID
Definition: peclient.h:529
void InternalRemoveServiceRelationship(const H323TransportAddress &peer)
PBoolean OnReceiveAccessRequest(const H501PDU &pdu, const H501_AccessRequest &pduBody)
H501Transaction(H323PeerElement &pe, const H501PDU &pdu, PBoolean hasReject)
Definition: peclient.h:173
H323PeerElement & peerElement
Definition: peclient.h:74
H501_ServiceConfirmation & scf
Definition: peclient.h:97
virtual void OnNewDescriptor(const H323PeerElementDescriptor &)
Definition: peclient.h:446
Definition: peclient.h:80
POrdinalSet localServiceOrdinals
Definition: peclient.h:513
Definition: peclient.h:219
PBoolean OnReceiveAccessConfirmation(const H501PDU &pdu, const H501_AccessConfirmation &pduBody)
PTime lastChanged
Definition: peclient.h:212
AliasKeyList transportAddressToDescriptorID
Definition: peclient.h:527
Definition: peclient.h:280
Comparison Compare(const PObject &obj) const
Definition: peclient.h:231
Definition: peclient.h:275
Error SendAccessRequestByAddr(const H323TransportAddress &peerAddr, H501PDU &request, H501PDU &confirmPDU)
Error SendAccessRequestByID(const OpalGloballyUniqueID &peerID, H501PDU &request, H501PDU &confirmPDU)
virtual H323Transaction::Response OnAccessRequest(H501AccessRequest &info)
Definition: peclient.h:272
virtual Response OnHandlePDU()
Definition: h323trans.h:223
Definition: peclient.h:107
Definition: peclient.h:273
PBoolean OnRemoteServiceRelationshipDisappeared(OpalGloballyUniqueID &serviceID, const H323TransportAddress &peer)
PBoolean DeleteDescriptor(const PString &alias, PBoolean now=false)
static void SetProtocolList(H501_ArrayOf_SupportedProtocols &h501Protocols, unsigned protocols)
H501AccessRequest(H323PeerElement &pe, const H501PDU &pdu)
Error ServiceRequestByID(OpalGloballyUniqueID &serviceID)
Error SendUpdateDescriptorByID(const OpalGloballyUniqueID &serviceID, H323PeerElementDescriptor *descriptor, H501_UpdateInformation_updateType::Choices updateType)
static unsigned GetProtocolList(const H501_ArrayOf_SupportedProtocols &h501Protocols)
H323PeerElement(H323EndPoint &endpoint, H323Transport *transport=NULL)
PBoolean OnReceiveDescriptorUpdateACK(const H501PDU &pdu, const H501_DescriptorUpdateAck &pduBody)
Error SendUpdateDescriptorByAddr(const H323TransportAddress &peer, H323PeerElementDescriptor *descriptor, H501_UpdateInformation_updateType::Choices updateType)
Definition: h323trans.h:51
PThread * monitor
Definition: peclient.h:503
ValidationResult
Definition: h235auth.h:83
PSafePtr< H323PeerElementServiceRelationship > GetFirstLocalServiceRelationship(PSafetyMode mode=PSafeReference)
Definition: peclient.h:297
PSyncPoint monitorTickle
Definition: peclient.h:505
Definition: peclient.h:171
Definition: peclient.h:53
PSafePtr< H323PeerElementDescriptor > GetFirstDescriptor(PSafetyMode mode=PSafeReference)
Definition: peclient.h:293
Definition: peclient.h:172
virtual H323PeerElementServiceRelationship * CreateServiceRelationship()
virtual H235Authenticator::ValidationResult ValidatePDU() const
POrdinalKey ordinal
Definition: peclient.h:235
Definition: peclient.h:271
PMutex localPeerListMutex
Definition: peclient.h:512
PBoolean AccessRequest(const PString &searchAlias, PStringArray &destAliases, H323TransportAddress &transportAddress, unsigned options=H323PeerElementDescriptor::Protocol_H323)
PBoolean SetOnlyServiceRelationship(const PString &peer, PBoolean keepTrying=true)
PMutex localNameMutex
Definition: peclient.h:498
PBoolean UpdateDescriptor(H323PeerElementDescriptor *descriptor)
PBoolean ServiceRelease(const OpalGloballyUniqueID &serviceID, unsigned reason)
PBoolean wild
Definition: peclient.h:473
OpalGloballyUniqueID descriptorID
Definition: peclient.h:200
PINDEX basePeerOrdinal
Definition: peclient.h:508
void RemoveDescriptorInformation(const H501_ArrayOf_AddressTemplate &addressTemplates)
Definition: peclient.h:174
PTime createdTime
Definition: peclient.h:238
PString GetDomainName() const
PMutex basePeerOrdinalMutex
Definition: peclient.h:507
H501_MessageCommonInfo & requestCommon
Definition: peclient.h:70
Definition: peclient.h:205
virtual H323PeerElementDescriptor * CreateDescriptor(const OpalGloballyUniqueID &descriptorID)
virtual H323Transaction::Response OnServiceRequest(H501ServiceRequest &info)
POrdinalKey creator
Definition: peclient.h:213
PStringToString remotePeerAddrToServiceID
Definition: peclient.h:518
H323Transaction::Response HandleServiceRequest(H501ServiceRequest &info)
PString GetLocalName() const
PINDEX pos
Definition: peclient.h:472
PSafeSortedList< H323PeerElementServiceRelationship > remoteServiceRelationships
Definition: peclient.h:517
PBoolean monitorStop
Definition: peclient.h:504
virtual H323Transaction::Response OnDescriptorUpdate(H501DescriptorUpdate &info)
#define OpalGloballyUniqueID
Definition: guid.h:42
Response
Definition: h323trans.h:344
H323TransportAddress peer
Definition: peclient.h:236
virtual AliasKey * CreateAliasKey(const H225_AliasAddress &alias, const OpalGloballyUniqueID &id, PINDEX pos, PBoolean wild=false)
void CopyTo(H501_Descriptor &descriptor)
Error ServiceRequestByAddr(const H323TransportAddress &peer)
PDECLARE_NOTIFIER(PThread, H323PeerElement, MonitorMain)
virtual Response OnHandlePDU()
Definition: peclient.h:175
Definition: peclient.h:160
Definition: peclient.h:133
H323EndPoint & endpoint
Definition: h323trans.h:307
States
Definition: peclient.h:204
Definition: transaddr.h:66
Definition: peclient.h:176
Definition: peclient.h:274
PSafePtr< H323PeerElementServiceRelationship > GetFirstRemoteServiceRelationship(PSafetyMode mode=PSafeReference)
Definition: peclient.h:301
virtual void SetRejectReason(unsigned reasonCode)
H323Transport * transport
Definition: h323trans.h:310
H501_ArrayOf_AddressTemplate addressTemplates
Definition: peclient.h:210
PString domainName
Definition: peclient.h:500
virtual Response OnHandlePDU()
H501_AccessRejection & arj
Definition: peclient.h:151
H501_ServiceRejection & srj
Definition: peclient.h:98
PDICTIONARY(StringToOrdinalKey, PString, POrdinalKey)
PBoolean AddServiceRelationship(const H323TransportAddress &peer, PBoolean keepTrying=true)
H501_DescriptorUpdate & du
Definition: peclient.h:123
Definition: peclient.h:177