mirror of
https://github.com/vanitasvitae/Smack.git
synced 2025-09-11 01:59:38 +02:00
Join JingleSession and Handler in JingleFT
This commit is contained in:
parent
b91a9c120f
commit
1912ebb8d0
8 changed files with 162 additions and 60 deletions
|
@ -16,9 +16,12 @@
|
|||
*/
|
||||
package org.jivesoftware.smackx.jingle;
|
||||
|
||||
import org.jivesoftware.smack.packet.IQ;
|
||||
import org.jivesoftware.smackx.jingle.element.Jingle;
|
||||
|
||||
import org.jxmpp.jid.FullJid;
|
||||
|
||||
public class JingleSession {
|
||||
public abstract class JingleSession implements JingleSessionHandler {
|
||||
|
||||
protected final FullJid local;
|
||||
|
||||
|
@ -83,4 +86,103 @@ public class JingleSession {
|
|||
&& getResponder().equals(otherJingleSession.getResponder())
|
||||
&& sid.equals(otherJingleSession.sid);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IQ handleJingleSessionRequest(Jingle jingle) {
|
||||
switch (jingle.getAction()) {
|
||||
case content_accept:
|
||||
return handleContentAccept(jingle);
|
||||
case content_add:
|
||||
return handleContentAdd(jingle);
|
||||
case content_modify:
|
||||
return handleContentModify(jingle);
|
||||
case content_reject:
|
||||
return handleContentReject(jingle);
|
||||
case content_remove:
|
||||
return handleContentRemove(jingle);
|
||||
case description_info:
|
||||
return handleDescriptionInfo(jingle);
|
||||
case session_info:
|
||||
return handleSessionInfo(jingle);
|
||||
case security_info:
|
||||
return handleSecurityInfo(jingle);
|
||||
case session_accept:
|
||||
return handleSessionAccept(jingle);
|
||||
case transport_accept:
|
||||
return handleTransportAccept(jingle);
|
||||
case transport_info:
|
||||
return handleTransportInfo(jingle);
|
||||
case session_initiate:
|
||||
return handleSessionInitiate(jingle);
|
||||
case transport_reject:
|
||||
return handleTransportReject(jingle);
|
||||
case session_terminate:
|
||||
return handleSessionTerminate(jingle);
|
||||
case transport_replace:
|
||||
return handleTransportReplace(jingle);
|
||||
default:
|
||||
return IQ.createResultIQ(jingle);
|
||||
}
|
||||
}
|
||||
|
||||
protected IQ handleSessionInitiate(Jingle sessionInitiate) {
|
||||
return IQ.createResultIQ(sessionInitiate);
|
||||
}
|
||||
|
||||
protected IQ handleSessionTerminate(Jingle sessionTerminate) {
|
||||
return IQ.createResultIQ(sessionTerminate);
|
||||
}
|
||||
|
||||
protected IQ handleSessionInfo(Jingle sessionInfo) {
|
||||
return IQ.createResultIQ(sessionInfo);
|
||||
}
|
||||
|
||||
protected IQ handleSessionAccept(Jingle sessionAccept) {
|
||||
return IQ.createResultIQ(sessionAccept);
|
||||
}
|
||||
|
||||
protected IQ handleContentAdd(Jingle contentAdd) {
|
||||
return IQ.createResultIQ(contentAdd);
|
||||
}
|
||||
|
||||
protected IQ handleContentAccept(Jingle contentAccept) {
|
||||
return IQ.createResultIQ(contentAccept);
|
||||
}
|
||||
|
||||
protected IQ handleContentModify(Jingle contentModify) {
|
||||
return IQ.createResultIQ(contentModify);
|
||||
}
|
||||
|
||||
protected IQ handleContentReject(Jingle contentReject) {
|
||||
return IQ.createResultIQ(contentReject);
|
||||
}
|
||||
|
||||
protected IQ handleContentRemove(Jingle contentRemove) {
|
||||
return IQ.createResultIQ(contentRemove);
|
||||
}
|
||||
|
||||
protected IQ handleDescriptionInfo(Jingle descriptionInfo) {
|
||||
return IQ.createResultIQ(descriptionInfo);
|
||||
}
|
||||
|
||||
protected IQ handleSecurityInfo(Jingle securityInfo) {
|
||||
return IQ.createResultIQ(securityInfo);
|
||||
}
|
||||
|
||||
protected IQ handleTransportAccept(Jingle transportAccept) {
|
||||
return IQ.createResultIQ(transportAccept);
|
||||
}
|
||||
|
||||
protected IQ handleTransportInfo(Jingle transportInfo) {
|
||||
return IQ.createResultIQ(transportInfo);
|
||||
}
|
||||
|
||||
protected IQ handleTransportReplace(Jingle transportReplace) {
|
||||
return IQ.createResultIQ(transportReplace);
|
||||
}
|
||||
|
||||
protected IQ handleTransportReject(Jingle transportReject) {
|
||||
return IQ.createResultIQ(transportReject);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -21,6 +21,6 @@ import org.jivesoftware.smackx.jingle.element.Jingle;
|
|||
|
||||
public interface JingleSessionHandler {
|
||||
|
||||
IQ handleJingleSessionRequest(Jingle jingle, String sessionId);
|
||||
IQ handleJingleSessionRequest(Jingle jingle);
|
||||
|
||||
}
|
||||
|
|
|
@ -69,6 +69,29 @@ public class JingleUtil {
|
|||
return jingle;
|
||||
}
|
||||
|
||||
public Jingle createSessionInitiateFileOffer(FullJid recipient,
|
||||
String sessionId,
|
||||
JingleContent.Creator contentCreator,
|
||||
String contentName,
|
||||
JingleContentDescription description,
|
||||
JingleContentTransport transport) {
|
||||
return createSessionInitiate(recipient, sessionId, contentCreator, contentName,
|
||||
JingleContent.Senders.initiator, description, transport);
|
||||
}
|
||||
|
||||
public IQ sendSessionInitiateFileOffer(FullJid recipient,
|
||||
String sessionId,
|
||||
JingleContent.Creator contentCreator,
|
||||
String contentName,
|
||||
JingleContentDescription description,
|
||||
JingleContentTransport transport)
|
||||
throws SmackException.NotConnectedException, InterruptedException,
|
||||
XMPPException.XMPPErrorException, SmackException.NoResponseException {
|
||||
|
||||
Jingle jingle = createSessionInitiateFileOffer(recipient, sessionId, contentCreator, contentName, description, transport);
|
||||
return connection.createStanzaCollectorAndSend(jingle).nextResultOrThrow();
|
||||
}
|
||||
|
||||
public IQ sendSessionInitiate(FullJid recipient,
|
||||
String sessionId,
|
||||
JingleContent.Creator contentCreator,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue