Class Jingle
java.lang.Object
org.jivesoftware.smack.packet.Stanza
org.jivesoftware.smack.packet.IQ
org.jivesoftware.smackx.jingle.element.Jingle
- All Implemented Interfaces:
Element,IqView,NamedElement,StanzaView,TopLevelStreamElement,XmlElement,XmlLangElement
The Jingle element.
Jingle Element Structure
jingle
│ action (REQUIRED, XEP-0166 § 7.2)
| content-accept
| content-add
| content-modify
| content-reject
| content-remove
| description-info
| security-info
| session-accept
| session-info
| session-initiate
| transport-accept
| transport-info
| transport-reject
| transport-replace
│ initiator (RECOMMENDED for session initiate, NOT RECOMMENDED otherwise, full JID, XEP-0166 § 7.1)
│ responder (RECOMMENDED for session accept, NOT RECOMMENDED otherwise, full JID. XEP-0166 § 7.1)
│ sid (REQUIRED, SHOULD match XML Nmtoken production)
│
├── <reason/> (optional, XEP-0166 § 7.4)
│ │
│ └──(alternative─session│busy│..)
│
└── <content/> (one or more, XEP-0166 § 7.3)
│ creator (REQUIRED, must be one of)
| initiator
| responder
│ disposition (OPTIONAL)
│ name (REQUIRED)
│ senders (OPTIONAL, except when content-modify then REQUIRED)
| both (default)
| initiator
| none
| responder
│
├──description
│ │ media
│ │ xmlns
│ │
│ ├──payload─type
│ │
│ └──file (XEP─0234)
│
└──transport
│ xmlns
│ pwd (OPTIONAL, XEP-0176 Jingle ICE)
│ ufrag (OPTIONAL, XEP-0176 Jingle ICE)
│ mode (XEP-0234 Jingle File Transfer)
│ sid (XEP-0234 Jingle File Transfer)
│
└──candidate
component
foundation
generation
id
ip
network
port
priority
protocol
type
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class org.jivesoftware.smack.packet.IQ
IQ.IQChildElementXmlStringBuilder, IQ.ResponseType, IQ.Type -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final StringFields inherited from class org.jivesoftware.smack.packet.IQ
IQ_ELEMENT, QUERY_ELEMENTFields inherited from class org.jivesoftware.smack.packet.Stanza
DEFAULT_LANGUAGE, ITEM, language, TEXT -
Method Summary
Modifier and TypeMethodDescriptionstatic Jingle.Builderstatic Jingle.Builderstatic Jingle.Builderbuilder(XMPPConnection connection) Get the action specified in the jingle IQ.static Jingle.BuilderDeprecated.Get a List of the contents.Get the initiator.protected IQ.IQChildElementXmlStringBuilderThis method must be overwritten by IQ subclasses to create their child content.Get the responder.getSid()Returns the session ID related to the session.Get the only jingle content if one exists, ornull.Methods inherited from class org.jivesoftware.smack.packet.IQ
createErrorResponse, createErrorResponse, createResultIQ, getChildElementName, getChildElementNamespace, getChildElementQName, getChildElementXML, getElementName, getType, setType, toString, toXMLMethods inherited from class org.jivesoftware.smack.packet.Stanza
addCommonAttributes, addExtension, addExtensions, appendErrorIfExists, getDefaultLanguage, getError, getExtension, getExtension, getExtensionElement, getExtensions, getExtensions, getExtensions, getExtensions, getExtensionsMap, getFrom, getLanguage, getNamespace, getStanzaId, getTo, hasExtension, hasExtension, hasStanzaIdSet, logCommonAttributes, overrideExtension, removeExtension, setError, setFrom, setNewStanzaId, setStanzaId, setTo, throwIfNoStanzaIdMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.jivesoftware.smack.packet.IqView
isRequestIQ, isResponseIQMethods inherited from interface org.jivesoftware.smack.packet.StanzaView
getError, getExtension, getExtension, getExtensions, getExtensions, getExtensions, getFrom, getStanzaId, getTo, hasExtension, hasExtension, hasExtensionMethods inherited from interface org.jivesoftware.smack.packet.XmlElement
getQName
-
Field Details
-
NAMESPACE
- See Also:
-
ACTION_ATTRIBUTE_NAME
- See Also:
-
INITIATOR_ATTRIBUTE_NAME
- See Also:
-
RESPONDER_ATTRIBUTE_NAME
- See Also:
-
SESSION_ID_ATTRIBUTE_NAME
- See Also:
-
ELEMENT
- See Also:
-
-
Method Details
-
getInitiator
Get the initiator. The initiator will be the full JID of the entity that has initiated the flow (which may be different to the "from" address in the IQ)- Returns:
- the initiator
-
getResponder
Get the responder. The responder is the full JID of the entity that has replied to the initiation (which may be different to the "to" address in the IQ).- Returns:
- the responder
-
getSid
Returns the session ID related to the session. The session ID is a unique identifier generated by the initiator. This should match the XML Nmtoken production so that XML character escaping is not needed for characters such as &.- Returns:
- Returns the session ID related to the session.
-
getAction
Get the action specified in the jingle IQ.- Returns:
- the action.
-
getReason
-
getContents
Get a List of the contents.- Returns:
- the contents.
-
getSoleContentOrThrow
Get the only jingle content if one exists, ornull. This method will throw anIllegalStateExceptionif there is more than one jingle content.- Returns:
- a JingleContent instance or
null. - Throws:
IllegalStateException- if there is more than one jingle content.
-
getIQChildElementBuilder
protected IQ.IQChildElementXmlStringBuilder getIQChildElementBuilder(IQ.IQChildElementXmlStringBuilder xml) Description copied from class:IQThis method must be overwritten by IQ subclasses to create their child content. It is important you don't use the builder to add the final end tag. This will be done automatically byIQ.IQChildElementXmlStringBuilderafter eventual existingExtensionElements have been added.For example to create an IQ with a extra attribute and an additional child element
the body of the<iq to='foo@example.org' id='123'> <bar xmlns='example:bar' extraAttribute='blaz'> <extraElement>elementText</extraElement> </bar> </iq>getIQChildElementBuilderlooks like
If your IQ only contains attributes and no child elements, i.e. it can be represented as empty element, then you can mark it as such.// The builder 'xml' will already have the child element and the 'xmlns' attribute added // So the current builder state is "<bar xmlns='example:bar'" xml.attribute("extraAttribute", "blaz"); xml.rightAngleBracket(); xml.element("extraElement", "elementText"); // Do not close the 'bar' attribute by calling xml.closeElement('bar')xml.attribute("myAttribute", "myAttributeValue"); xml.setEmptyElement();If your IQ does not contain any attributes or child elements (besidesExtensionElements), consider sub-classingSimpleIQinstead.- Specified by:
getIQChildElementBuilderin classIQ- Parameters:
xml- a pre-created builder which already has the child element and the 'xmlns' attribute set.- Returns:
- the build to create the IQ child content.
-
getBuilder
Deprecated.usebuilder(XMPPConnection)instead.Deprecated, do not use.- Returns:
- a builder.
-
builder
-
builder
-
builder
-
builder(XMPPConnection)instead.