27 #ifndef OPAL_H323_PECLIENT_H
28 #define OPAL_H323_PECLIENT_H
41 #include <ptlib/safecoll.h>
60 unsigned sequenceNumber,
86 virtual const char *
GetName()
const;
92 H501_ServiceRequest &
srq;
93 H501_ServiceConfirmation &
scf;
94 H501_ServiceRejection &
srj;
113 virtual const char *
GetName()
const;
119 H501_DescriptorUpdate &
du;
120 H501_DescriptorUpdateAck &
ack;
139 virtual const char *
GetName()
const;
146 H501_AccessConfirmation &
acf;
147 H501_AccessRejection &
arj;
164 Comparison
Compare(
const PObject & obj)
const;
186 void CopyTo(H501_Descriptor & descriptor);
188 const H225_EndpointType & ep,
189 const H225_ArrayOf_AliasAddress & aliases,
190 const H225_ArrayOf_AliasAddress & transportAddress,
193 static void SetProtocolList(H501_ArrayOf_SupportedProtocols & h501Protocols,
unsigned protocols);
194 static unsigned GetProtocolList(
const H501_ArrayOf_SupportedProtocols & h501Protocols);
290 PSafetyMode mode = PSafeReference
291 ) {
return PSafePtr<H323PeerElementDescriptor>(
descriptors, mode); }
294 PSafetyMode mode = PSafeReference
298 PSafetyMode mode = PSafeReference
334 const PStringArray & aliases,
342 const H225_ArrayOf_AliasAddress & aliases,
350 const H225_ArrayOf_AliasAddress & aliases,
351 const H225_ArrayOf_AliasAddress & transportAddr,
358 const POrdinalKey & creator,
359 const H225_ArrayOf_AliasAddress & alias,
360 const H225_ArrayOf_AliasAddress & transportAddresses,
367 const POrdinalKey & creator,
368 const H501_ArrayOf_AddressTemplate & addressTemplates,
369 const PTime & updateTime,
376 PBoolean
DeleteDescriptor(
const H225_AliasAddress & alias, PBoolean now =
false);
382 const PString & searchAlias,
383 PStringArray & destAliases,
389 const PString & searchAlias,
390 H225_ArrayOf_AliasAddress & destAliases,
396 const H225_AliasAddress & searchAlias,
397 H225_ArrayOf_AliasAddress & destAliases,
403 const H225_AliasAddress & alias,
404 H225_ArrayOf_AliasAddress & destAliases,
405 H225_AliasAddress & transportAddress,
418 H501_UpdateInformation_updateType::Choices updateType);
422 H501_UpdateInformation_updateType::Choices updateType);
464 : H225_AliasAddress(_alias),
id(_id),
pos(_pos),
wild(_wild)
478 H501_UpdateInformation_updateType::Choices updateType);
515 PDICTIONARY(StringToOrdinalKey, PString, POrdinalKey);
531 #endif // OPAL_H323_PECLIENT_H
Definition: peclient.h:244
H501_ServiceRequest & srq
Definition: peclient.h:92
Definition: peclient.h:174
PString localIdentifier
Definition: peclient.h:495
Error SendUpdateDescriptor(H501PDU &pdu, const H323TransportAddress &peer, H323PeerElementDescriptor *descriptor, H501_UpdateInformation_updateType::Choices updateType)
static unsigned GetPriorityOption(unsigned options)
Definition: peclient.h:184
virtual void OnAddServiceRelationship(const H323TransportAddress &)
Definition: peclient.h:439
PString GetName(const OpalMediaType &mediaType)
PTime m_lastUpdateTime
Definition: peclient.h:235
H323PeerElementServiceRelationship()
Definition: peclient.h:219
POrdinalKey m_ordinal
Definition: peclient.h:231
Options
Definition: peclient.h:166
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:223
H501DescriptorUpdate(H323PeerElement &pe, const H501PDU &pdu)
virtual void SetRejectReason(unsigned reasonCode)
H501ServiceRequest(H323PeerElement &pe, const H501PDU &pdu)
PBoolean OnReceiveAccessRejection(const H501PDU &pdu, const H501_AccessRejection &pduBody)
PTime m_createdTime
Definition: peclient.h:234
PBoolean AddDescriptor(const OpalGloballyUniqueID &descriptorID, const PStringArray &aliases, const H323TransportAddressArray &transportAddrs, unsigned options=H323PeerElementDescriptor::Protocol_H323, PBoolean now=false)
Error
Definition: peclient.h:266
virtual void OnRemoveServiceRelationship(const H323TransportAddress &)
Definition: peclient.h:440
virtual H323TransactionPDU * CreateRIP(unsigned sequenceNumber, unsigned delay) const
Definition: transports.h:788
PSafeSortedList< H323PeerElementServiceRelationship > localServiceRelationships
Definition: peclient.h:507
PBoolean ContainsNonexistent()
StringToOrdinalKey remotePeerAddrToOrdinalKey
Definition: peclient.h:516
Comparison Compare(const PObject &obj) const
Definition: peclient.h:277
PTime m_expireTime
Definition: peclient.h:236
virtual void OnUpdateDescriptor(const H323PeerElementDescriptor &)
Definition: peclient.h:443
H501_MessageCommonInfo & confirmCommon
Definition: peclient.h:67
Definition: h323trans.h:309
virtual void SetRejectReason(unsigned reasonCode)
Definition: peclient.h:203
H501_AccessRequest & arq
Definition: peclient.h:145
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)
virtual void OnRemoveDescriptor(const H323PeerElementDescriptor &)
Definition: peclient.h:444
H501_DescriptorUpdateAck & ack
Definition: peclient.h:120
Definition: peclient.h:202
void SetLocalName(const PString &name)
static unsigned SetPriorityOption(unsigned pri)
Definition: peclient.h:183
AliasKeyList specificAliasToDescriptorID
Definition: peclient.h:524
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:207
PBoolean OnReceiveDescriptorUpdate(const H501PDU &pdu, const H501_DescriptorUpdate &pduBody)
Definition: transaddr.h:91
AliasKey(const H225_AliasAddress &_alias, const OpalGloballyUniqueID &_id, PINDEX _pos, PBoolean _wild=false)
Definition: peclient.h:463
PSafeSortedList< H323PeerElementDescriptor > descriptors
Definition: peclient.h:518
H323PeerElementDescriptor(const OpalGloballyUniqueID &_descriptorID)
Definition: peclient.h:160
void PrintOn(ostream &strm) const
Definition: peclient.h:460
OpalGloballyUniqueID id
Definition: peclient.h:467
H501_AccessConfirmation & acf
Definition: peclient.h:146
void SetDomainName(const PString &name)
PBoolean RemoveAllServiceRelationships()
AliasKeyList wildcardAliasToDescriptorID
Definition: peclient.h:525
void InternalRemoveServiceRelationship(const H323TransportAddress &peer)
PBoolean OnReceiveAccessRequest(const H501PDU &pdu, const H501_AccessRequest &pduBody)
OpalGloballyUniqueID m_serviceID
Definition: peclient.h:230
H501Transaction(H323PeerElement &pe, const H501PDU &pdu, PBoolean hasReject)
Definition: peclient.h:276
Definition: peclient.h:275
Definition: peclient.h:169
H323PeerElement & peerElement
Definition: peclient.h:70
H501_ServiceConfirmation & scf
Definition: peclient.h:93
virtual void OnNewDescriptor(const H323PeerElementDescriptor &)
Definition: peclient.h:442
Definition: peclient.h:76
POrdinalSet localServiceOrdinals
Definition: peclient.h:509
Definition: peclient.h:215
PBoolean OnReceiveAccessConfirmation(const H501PDU &pdu, const H501_AccessConfirmation &pduBody)
PTime lastChanged
Definition: peclient.h:208
AliasKeyList transportAddressToDescriptorID
Definition: peclient.h:523
Comparison Compare(const PObject &obj) const
Definition: peclient.h:227
Definition: peclient.h:271
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:268
bool monitorStop
Definition: peclient.h:500
virtual Response OnHandlePDU()
Definition: h323trans.h:211
PDECLARE_MUTEX(localNameMutex)
Definition: peclient.h:103
Definition: peclient.h:269
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:47
Definition: peclient.h:179
PThread * monitor
Definition: peclient.h:499
ValidationResult
Definition: h235auth.h:82
PSafePtr< H323PeerElementServiceRelationship > GetFirstLocalServiceRelationship(PSafetyMode mode=PSafeReference)
Definition: peclient.h:293
PSyncPoint monitorTickle
Definition: peclient.h:501
Definition: peclient.h:167
Definition: peclient.h:49
PSafePtr< H323PeerElementDescriptor > GetFirstDescriptor(PSafetyMode mode=PSafeReference)
Definition: peclient.h:289
Definition: peclient.h:168
virtual H323PeerElementServiceRelationship * CreateServiceRelationship()
virtual H235Authenticator::ValidationResult ValidatePDU() const
Definition: peclient.h:267
PBoolean AccessRequest(const PString &searchAlias, PStringArray &destAliases, H323TransportAddress &transportAddress, unsigned options=H323PeerElementDescriptor::Protocol_H323)
PBoolean SetOnlyServiceRelationship(const PString &peer, PBoolean keepTrying=true)
PBoolean UpdateDescriptor(H323PeerElementDescriptor *descriptor)
PBoolean ServiceRelease(const OpalGloballyUniqueID &serviceID, unsigned reason)
PBoolean wild
Definition: peclient.h:469
OpalGloballyUniqueID descriptorID
Definition: peclient.h:196
PINDEX basePeerOrdinal
Definition: peclient.h:504
void RemoveDescriptorInformation(const H501_ArrayOf_AddressTemplate &addressTemplates)
Definition: peclient.h:170
PString GetDomainName() const
H501_MessageCommonInfo & requestCommon
Definition: peclient.h:66
Definition: peclient.h:201
virtual H323PeerElementDescriptor * CreateDescriptor(const OpalGloballyUniqueID &descriptorID)
virtual H323Transaction::Response OnServiceRequest(H501ServiceRequest &info)
POrdinalKey creator
Definition: peclient.h:209
PStringToString remotePeerAddrToServiceID
Definition: peclient.h:514
H323Transaction::Response HandleServiceRequest(H501ServiceRequest &info)
PString GetLocalName() const
PINDEX pos
Definition: peclient.h:468
PString m_name
Definition: peclient.h:233
PSafeSortedList< H323PeerElementServiceRelationship > remoteServiceRelationships
Definition: peclient.h:513
Definition: peclient.h:178
virtual H323Transaction::Response OnDescriptorUpdate(H501DescriptorUpdate &info)
#define OpalGloballyUniqueID
Definition: guid.h:38
Response
Definition: h323trans.h:326
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:171
Definition: peclient.h:156
H323TransportAddress m_peer
Definition: peclient.h:232
Definition: peclient.h:129
States
Definition: peclient.h:200
Definition: transaddr.h:62
Definition: peclient.h:172
Definition: peclient.h:270
PSafePtr< H323PeerElementServiceRelationship > GetFirstRemoteServiceRelationship(PSafetyMode mode=PSafeReference)
Definition: peclient.h:297
virtual void SetRejectReason(unsigned reasonCode)
H501_ArrayOf_AddressTemplate addressTemplates
Definition: peclient.h:206
PString domainName
Definition: peclient.h:496
Definition: peclient.h:180
virtual Response OnHandlePDU()
H501_AccessRejection & arj
Definition: peclient.h:147
H501_ServiceRejection & srj
Definition: peclient.h:94
PDICTIONARY(StringToOrdinalKey, PString, POrdinalKey)
PBoolean AddServiceRelationship(const H323TransportAddress &peer, PBoolean keepTrying=true)
H501_DescriptorUpdate & du
Definition: peclient.h:119
Definition: peclient.h:173