EndpointDescriptor Class Reference

#include <NatTraversalAgentDataTypes.h>

List of all members.


Detailed Description

The EndpointDescriptor class is used to analyze a URI to look for proprietary location markers ("x-sipX-nonat" and "x-sipX-privcontact") and derive the native and public IP Address:port;transport information relative to a given SIP endpoint. Furthermore, it is responsible for computing the location of that endpoint relative to the sipXecs based on its public and native transport information and the content of the NatTraversalRules. The EndpointDescriptor can classify the location of an enpoint into one of 4 categories: PUBLIC: The endpoint is not located behind any NAT. LOCAL_NATED: The endpoint is located in the same local private entwork as the sipXecs and both are behind the same NAT. REMOTE_NATED: The endpoint is behind a remote NAT UNKNOWN: The location of the endpoint cannot be determined.

Note that in some call scenarios (call pick-up and call park, notably) the URIs that are provided do not contain our proprietary location markers. When a pointer to a RegistrationDB is provided, the EndpointDescriptor will search the Registration DB looking for a Contact entry matching the supplied URI's user hoping to find the location markers that are needed to establish the location of the endpoint.

Public Member Functions

 EndpointDescriptor (const Url &url, const NatTraversalRules &natRules, const RegistrationDB *pRegistrationDB=NULL)
const TransportDatagetNativeTransportAddress (void) const
const TransportDatagetPublicTransportAddress (void) const
LocationCode getLocationCode (void) const
void toString (UtlString &outputString) const

Private Member Functions

LocationCode computeLocation (const Url &url, const NatTraversalRules &natRules, const RegistrationDB *pRegistrationDB)
LocationCode computeLocationFromPublicAndNativeTransports (const NatTraversalRules &natRules)
LocationCode computeLocationFromRegDbData (const Url &url, const NatTraversalRules &natRules, const RegistrationDB *pRegistrationDB)
LocationCode computeLocationFromNetworkTopology (const NatTraversalRules &natRules)

Private Attributes

NativeTransportData mNativeTransport
PublicTransportData mPublicTransport
LocationCode mLocation
Url mCurrentContact


Constructor & Destructor Documentation

EndpointDescriptor ( const Url url,
const NatTraversalRules natRules,
const RegistrationDB pRegistrationDB = NULL 
)


Member Function Documentation

const TransportData & getNativeTransportAddress ( void   )  const

const TransportData & getPublicTransportAddress ( void   )  const

LocationCode getLocationCode ( void   )  const

void toString ( UtlString outputString  )  const

LocationCode computeLocation ( const Url url,
const NatTraversalRules natRules,
const RegistrationDB pRegistrationDB 
) [private]

LocationCode computeLocationFromPublicAndNativeTransports ( const NatTraversalRules natRules  )  [private]

LocationCode computeLocationFromRegDbData ( const Url url,
const NatTraversalRules natRules,
const RegistrationDB pRegistrationDB 
) [private]

LocationCode computeLocationFromNetworkTopology ( const NatTraversalRules natRules  )  [private]


Member Data Documentation

Url mCurrentContact [private]


Online Library Docs

sipXecs home page

Version 4.2.1-018930 2010-07-31T01:50:17 build33 abuild