Wildfire 3.2.4 Javadoc

org.jivesoftware.wildfire.stun
Class STUNService

java.lang.Object
  extended by org.jivesoftware.wildfire.container.BasicModule
      extended by org.jivesoftware.wildfire.stun.STUNService
All Implemented Interfaces:
ChannelHandler, Module, DiscoInfoProvider, DiscoItemsProvider, ServerItemsProvider, RoutableChannelHandler

public class STUNService
extends BasicModule
implements ServerItemsProvider, RoutableChannelHandler, DiscoInfoProvider, DiscoItemsProvider

STUN Server and Service Module Provides especial Address discovery for p2p sessions to be used for media transmission and receiving of UDP packets. Especialy used for behind NAT users to ensure connectivity between parties.

Author:
Thiago Camargo

Field Summary
static String NAMESPACE
           
 
Constructor Summary
STUNService()
          Constructs a new STUN Service
 
Method Summary
 void destroy()
          Destroys the module.
 JID getAddress()
          Returns the XMPP address.
 List<InetAddress> getAddresses()
           
 XDataFormImpl getExtendedInfo(String name, String node, JID senderJID)
          Returns an XDataForm with the extended information about the entity or null if none.
 Iterator<String> getFeatures(String name, String node, JID senderJID)
          Returns an Iterator (of String) with the supported features.
 Iterator<org.dom4j.Element> getIdentities(String name, String node, JID senderJID)
          Returns an Iterator (of Element) with the target entity's identities.
 Iterator<DiscoServerItem> getItems()
          Returns an Iterator (of DiscoServerItem) with the items associated with the server or null if none.
 Iterator<org.dom4j.Element> getItems(String name, String node, JID senderJID)
          Returns an Iterator (of Element) with the target entity's items or null if none.
 String getName()
          Obtain the name of the module.
 String getPrimaryAddress()
          Get the primary Address used by the STUN server
 int getPrimaryPort()
          Get the primary Port used by the STUN server
 String getSecondaryAddress()
          Get the secondary Address used by the STUN server
 int getSecondaryPort()
          Get the secondary Port used by the STUN server
 String getServiceDomain()
          Returns the fully-qualifed domain name of this chat service.
 boolean hasInfo(String name, String node, JID senderJID)
          Returns true if we can provide information related to the requested name and node.
 void initialize(XMPPServer server)
          Initializes the basic module.
 boolean isEnabled()
          Get if the service is enabled.
 void process(Packet packet)
          Process an XMPP packet.
 void setEnabled(boolean enabled)
          Set the service enable status.
 void start()
          Starts the basic module.
 void startServer()
           
 void stop()
          Stops the basic module.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NAMESPACE

public static final String NAMESPACE
See Also:
Constant Field Values
Constructor Detail

STUNService

public STUNService()
Constructs a new STUN Service

Method Detail

destroy

public void destroy()
Description copied from class: BasicModule

Destroys the module.

Does nothing in the basic module.

Specified by:
destroy in interface Module
Overrides:
destroy in class BasicModule

initialize

public void initialize(XMPPServer server)
Description copied from class: BasicModule

Initializes the basic module.

Inheriting classes that choose to override this method MUST call this initialize() method before accessing BasicModule resources.

Specified by:
initialize in interface Module
Overrides:
initialize in class BasicModule
Parameters:
server - the server hosting this module.

start

public void start()
Description copied from class: BasicModule

Starts the basic module.

Inheriting classes that choose to override this method MUST call this start() method before accessing BasicModule resources.

Specified by:
start in interface Module
Overrides:
start in class BasicModule

startServer

public void startServer()

stop

public void stop()
Description copied from class: BasicModule

Stops the basic module.

Inheriting classes that choose to override this method MUST call this stop() method before accessing BasicModule resources.

Specified by:
stop in interface Module
Overrides:
stop in class BasicModule

getName

public String getName()
Description copied from class: BasicModule

Obtain the name of the module.

Specified by:
getName in interface Module
Overrides:
getName in class BasicModule
Returns:
The name of the module

getItems

public Iterator<org.dom4j.Element> getItems(String name,
                                            String node,
                                            JID senderJID)
Description copied from interface: DiscoItemsProvider
Returns an Iterator (of Element) with the target entity's items or null if none. Each Element must include a JID attribute and may include the name and node attributes of the entity. In case that the sender of the disco request is not authorized to discover items an UnauthorizedException will be thrown.

Specified by:
getItems in interface DiscoItemsProvider
Parameters:
name - the recipient JID's name.
node - the requested disco node.
senderJID - the XMPPAddress of user that sent the disco items request.
Returns:
an Iterator (of Element) with the target entity's items or null if none.

process

public void process(Packet packet)
             throws UnauthorizedException,
                    PacketException
Description copied from interface: ChannelHandler
Process an XMPP packet.

Specified by:
process in interface ChannelHandler
Parameters:
packet - a packet to process.
Throws:
UnauthorizedException - if not allowed to process the packet.
PacketException - thrown if the packet is malformed (results in the sender's session being shutdown).

getServiceDomain

public String getServiceDomain()
Returns the fully-qualifed domain name of this chat service. The domain is composed by the service name and the name of the XMPP server where the service is running.

Returns:
the file transfer server domain (service name + host name).

getAddress

public JID getAddress()
Description copied from interface: RoutableChannelHandler
Returns the XMPP address. The address is used by services like the core server packet router to determine if a packet should be sent to the handler. Handlers that are working on behalf of the server should use the generic server hostname address (e.g. server.com).

Specified by:
getAddress in interface RoutableChannelHandler
Returns:
the XMPP address.

getItems

public Iterator<DiscoServerItem> getItems()
Description copied from interface: ServerItemsProvider
Returns an Iterator (of DiscoServerItem) with the items associated with the server or null if none.

Specified by:
getItems in interface ServerItemsProvider
Returns:
an Iterator (of DiscoServerItem) with the items associated with the server or null if none.

getIdentities

public Iterator<org.dom4j.Element> getIdentities(String name,
                                                 String node,
                                                 JID senderJID)
Description copied from interface: DiscoInfoProvider
Returns an Iterator (of Element) with the target entity's identities. Each Element must include the categoty, type and name attributes of the entity.

Specified by:
getIdentities in interface DiscoInfoProvider
Parameters:
name - the recipient JID's name.
node - the requested disco node.
senderJID - the XMPPAddress of user that sent the disco info request.
Returns:
an Iterator (of Element) with the target entity's identities.

getFeatures

public Iterator<String> getFeatures(String name,
                                    String node,
                                    JID senderJID)
Description copied from interface: DiscoInfoProvider
Returns an Iterator (of String) with the supported features. The features to include are the features offered and supported protocols by the target entity identified by the requested name and node.

Specified by:
getFeatures in interface DiscoInfoProvider
Parameters:
name - the recipient JID's name.
node - the requested disco node.
senderJID - the XMPPAddress of user that sent the disco info request.
Returns:
an Iterator (of String) with the supported features.

getExtendedInfo

public XDataFormImpl getExtendedInfo(String name,
                                     String node,
                                     JID senderJID)
Description copied from interface: DiscoInfoProvider
Returns an XDataForm with the extended information about the entity or null if none. Each bit of information about the entity must be included as a value of a field of the form.

Specified by:
getExtendedInfo in interface DiscoInfoProvider
Parameters:
name - the recipient JID's name.
node - the requested disco node.
senderJID - the XMPPAddress of user that sent the disco info request.
Returns:
an XDataForm with the extended information about the entity or null if none.

hasInfo

public boolean hasInfo(String name,
                       String node,
                       JID senderJID)
Description copied from interface: DiscoInfoProvider
Returns true if we can provide information related to the requested name and node. For example, if the requested name refers to a non-existant MUC room then the answer will be false. In case that the sender of the disco request is not authorized to discover this information an UnauthorizedException will be thrown.

Specified by:
hasInfo in interface DiscoInfoProvider
Parameters:
name - the recipient JID's name.
node - the requested disco node.
senderJID - the XMPPAddress of user that sent the disco info request.
Returns:
true if we can provide information related to the requested name and node.

isEnabled

public boolean isEnabled()
Get if the service is enabled.

Returns:
enabled

setEnabled

public void setEnabled(boolean enabled)
Set the service enable status.

Parameters:
enabled - boolean to enable or disable

getSecondaryPort

public int getSecondaryPort()
Get the secondary Port used by the STUN server

Returns:
secondary Port used by the STUN server

getPrimaryPort

public int getPrimaryPort()
Get the primary Port used by the STUN server

Returns:
primary Port used by the STUN server

getSecondaryAddress

public String getSecondaryAddress()
Get the secondary Address used by the STUN server

Returns:
secondary Address used by the STUN server

getPrimaryAddress

public String getPrimaryAddress()
Get the primary Address used by the STUN server

Returns:
primary Address used by the STUN server

getAddresses

public List<InetAddress> getAddresses()

Wildfire 3.2.4 Javadoc

Copyright © 2003-2007 Jive Software.