Class RTPBridge
- java.lang.Object
-
- org.jivesoftware.smack.packet.Stanza
-
- org.jivesoftware.smack.packet.IQ
-
- org.jivesoftware.smackx.jingleold.nat.RTPBridge
-
- All Implemented Interfaces:
Element
,FullyQualifiedElement
,IqView
,NamedElement
,StanzaView
,TopLevelStreamElement
,XmlLangElement
public class RTPBridge extends IQ
RTPBridge IQ Stanza used to request and retrieve a RTPBridge Candidates that can be used for a Jingle Media Transmission between two parties that are behind NAT. This Jingle Bridge has all the needed information to establish a full UDP Channel (Send and Receive) between two parties. This transport method should be used only if other transport methods are not allowed. Or if you want a more reliable transport. High Level Usage Example: RTPBridge rtpBridge = RTPBridge.getRTPBridge(connection, sessionID);
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
RTPBridge.Provider
IQProvider for RTP Bridge packets.-
Nested classes/interfaces inherited from class org.jivesoftware.smack.packet.IQ
IQ.IQChildElementXmlStringBuilder, IQ.ResponseType, IQ.Type
-
-
Field Summary
Fields Modifier and Type Field Description static String
ELEMENT_NAME
Element name of the stanza extension.static String
NAME
Element name of the stanza extension.static String
NAMESPACE
Namespace of the stanza extension.-
Fields inherited from class org.jivesoftware.smack.packet.IQ
IQ_ELEMENT, QUERY_ELEMENT
-
Fields inherited from class org.jivesoftware.smack.packet.Stanza
DEFAULT_LANGUAGE, ITEM, language, TEXT
-
-
Constructor Summary
Constructors Constructor Description RTPBridge()
Creates a RTPBridge Stanza without Session ID.RTPBridge(String sid)
Creates a RTPBridge Instance with defined Session ID.RTPBridge(String sid, org.jivesoftware.smackx.jingleold.nat.RTPBridge.BridgeAction bridgeAction)
Creates a RTPBridge Instance with defined Session ID.RTPBridge(org.jivesoftware.smackx.jingleold.nat.RTPBridge.BridgeAction action)
Creates a RTPBridge Instance with defined Session ID.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description String
getAttributes()
Get the attributes string.String
getHostA()
Get the Host A IP Address.String
getHostB()
Get the Host B IP Address.String
getIp()
Get the RTP Bridge IP.protected IQ.IQChildElementXmlStringBuilder
getIQChildElementBuilder(IQ.IQChildElementXmlStringBuilder str)
Get the Child Element XML of the PacketString
getName()
Get the name of the Candidate.String
getPass()
Get the RTP Agent Pass.int
getPortA()
Get Side A receive port.int
getPortB()
Get Side B receive port.static String
getPublicIP(XMPPConnection xmppConnection)
Get Public Address from the Server.static RTPBridge
getRTPBridge(XMPPConnection connection, String sessionID)
Get a new RTPBridge Candidate from the server.String
getSid()
Get the Session ID of the Stanza (usually same as Jingle Session ID).static RTPBridge
relaySession(XMPPConnection connection, String sessionID, String pass, TransportCandidate proxyCandidate, TransportCandidate localCandidate)
Check if the server support RTPBridge Service.static boolean
serviceAvailable(XMPPConnection connection)
Check if the server support RTPBridge Service.void
setHostA(String hostA)
Set the Host A IP Address.void
setHostB(String hostB)
Set the Host B IP Address.void
setIp(String ip)
Set the RTP Bridge IP.void
setName(String name)
Set the name of the Candidate.void
setPass(String pass)
Set the RTP Agent Pass.void
setPortA(int portA)
Set Side A receive port.void
setPortB(int portB)
Set Side B receive port.void
setSid(String sid)
Set the Session ID of the Stanza (usually same as Jingle Session ID).-
Methods inherited from class org.jivesoftware.smack.packet.IQ
createErrorResponse, createErrorResponse, createErrorResponse, createResultIQ, getChildElementName, getChildElementNamespace, getChildElementQName, getChildElementXML, getElementName, getType, isRequestIQ, isResponseIQ, setType, toString, toXML
-
Methods inherited from class org.jivesoftware.smack.packet.Stanza
addCommonAttributes, addExtension, addExtensions, appendErrorIfExists, getDefaultLanguage, getError, getExtension, getExtension, getExtension, getExtensionElement, getExtensions, getExtensions, getExtensions, getExtensions, getExtensionsMap, getFrom, getLanguage, getNamespace, getStanzaId, getTo, hasExtension, hasExtension, hasStanzaIdSet, logCommonAttributes, overrideExtension, removeExtension, removeExtension, setError, setError, setFrom, setLanguage, setNewStanzaId, setStanzaId, setStanzaId, setTo, throwIfNoStanzaId
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.jivesoftware.smack.packet.FullyQualifiedElement
getQName
-
Methods inherited from interface org.jivesoftware.smack.packet.StanzaView
getError, getExtension, getExtension, getExtensions, getExtensions, getExtensions, getFrom, getStanzaId, getTo, hasExtension, hasExtension, hasExtension
-
-
-
-
Field Detail
-
NAME
public static final String NAME
Element name of the stanza extension.- See Also:
- Constant Field Values
-
ELEMENT_NAME
public static final String ELEMENT_NAME
Element name of the stanza extension.- See Also:
- Constant Field Values
-
NAMESPACE
public static final String NAMESPACE
Namespace of the stanza extension.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
RTPBridge
public RTPBridge(String sid)
Creates a RTPBridge Instance with defined Session ID.- Parameters:
sid
- TODO javadoc me please
-
RTPBridge
public RTPBridge(org.jivesoftware.smackx.jingleold.nat.RTPBridge.BridgeAction action)
Creates a RTPBridge Instance with defined Session ID.- Parameters:
action
- TODO javadoc me please
-
RTPBridge
public RTPBridge(String sid, org.jivesoftware.smackx.jingleold.nat.RTPBridge.BridgeAction bridgeAction)
Creates a RTPBridge Instance with defined Session ID.- Parameters:
sid
- TODO javadoc me pleasebridgeAction
- TODO javadoc me please
-
RTPBridge
public RTPBridge()
Creates a RTPBridge Stanza without Session ID.
-
-
Method Detail
-
getAttributes
public String getAttributes()
Get the attributes string.- Returns:
- the attributes.
-
getSid
public String getSid()
Get the Session ID of the Stanza (usually same as Jingle Session ID).- Returns:
- the session ID
-
setSid
public void setSid(String sid)
Set the Session ID of the Stanza (usually same as Jingle Session ID).- Parameters:
sid
- TODO javadoc me please
-
setHostA
public void setHostA(String hostA)
Set the Host A IP Address.- Parameters:
hostA
- TODO javadoc me please
-
setHostB
public void setHostB(String hostB)
Set the Host B IP Address.- Parameters:
hostB
- TODO javadoc me please
-
getPortA
public int getPortA()
Get Side A receive port.- Returns:
- the side A receive port
-
setPortA
public void setPortA(int portA)
Set Side A receive port.- Parameters:
portA
- TODO javadoc me please
-
getPortB
public int getPortB()
Get Side B receive port.- Returns:
- the side B receive port
-
setPortB
public void setPortB(int portB)
Set Side B receive port.- Parameters:
portB
- TODO javadoc me please
-
setPass
public void setPass(String pass)
Set the RTP Agent Pass.- Parameters:
pass
- TODO javadoc me please
-
setName
public void setName(String name)
Set the name of the Candidate.- Parameters:
name
- TODO javadoc me please
-
getIQChildElementBuilder
protected IQ.IQChildElementXmlStringBuilder getIQChildElementBuilder(IQ.IQChildElementXmlStringBuilder str)
Get the Child Element XML of the Packet- Specified by:
getIQChildElementBuilder
in classIQ
- Parameters:
str
- a pre-created builder which already has the child element and the 'xmlns' attribute set.- Returns:
- the Child Element XML of the Packet
-
getRTPBridge
public static RTPBridge getRTPBridge(XMPPConnection connection, String sessionID) throws SmackException.NotConnectedException, InterruptedException
Get a new RTPBridge Candidate from the server. If a error occurs or the server don't support RTPBridge Service, null is returned.- Parameters:
connection
- TODO javadoc me pleasesessionID
- TODO javadoc me please- Returns:
- the new RTPBridge
- Throws:
SmackException.NotConnectedException
- if the XMPP connection is not connected.InterruptedException
- if the calling thread was interrupted.
-
serviceAvailable
public static boolean serviceAvailable(XMPPConnection connection) throws SmackException.NoResponseException, XMPPException.XMPPErrorException, SmackException.NotConnectedException, InterruptedException
Check if the server support RTPBridge Service.- Parameters:
connection
- TODO javadoc me please- Returns:
- true if the server supports the RTPBridge service
- Throws:
XMPPException.XMPPErrorException
- if there was an XMPP error returned.SmackException.NoResponseException
- if there was no response from the remote entity.SmackException.NotConnectedException
- if the XMPP connection is not connected.InterruptedException
- if the calling thread was interrupted.
-
relaySession
public static RTPBridge relaySession(XMPPConnection connection, String sessionID, String pass, TransportCandidate proxyCandidate, TransportCandidate localCandidate) throws SmackException.NotConnectedException, InterruptedException
Check if the server support RTPBridge Service.- Parameters:
connection
- TODO javadoc me pleasesessionID
- the session id.pass
- the password.proxyCandidate
- the proxy candidate.localCandidate
- the local candidate.- Returns:
- the RTPBridge
- Throws:
SmackException.NotConnectedException
- if the XMPP connection is not connected.InterruptedException
- if the calling thread was interrupted.
-
getPublicIP
public static String getPublicIP(XMPPConnection xmppConnection) throws SmackException.NotConnectedException, InterruptedException
Get Public Address from the Server.- Parameters:
xmppConnection
- TODO javadoc me please- Returns:
- public IP String or null if not found
- Throws:
SmackException.NotConnectedException
- if the XMPP connection is not connected.InterruptedException
- if the calling thread was interrupted.
-
-