use of org.xmpp.packet.IQ in project Openfire by igniterealtime.
the class TrackingProvider method executeSet.
public void executeSet(IQ packet, Workgroup workgroup) {
IQ reply = null;
Element iq = packet.getChildElement();
// Send back reply
reply = IQ.createResultIQ(packet);
workgroup.send(reply);
IQ update = new IQ();
Element elem = update.setChildElement("tracker", "http://jivesoftware.com/protocol/workgroup");
// Check if user is leaving.
Element leaving = iq.element("leaving");
if (leaving != null) {
elem.addElement("leaving").setText("true");
for (AgentSession session : workgroup.getAgentSessions()) {
update.setTo(session.getJID());
update.setType(IQ.Type.set);
workgroup.send(update);
}
return;
}
String url = iq.element("url").getTextTrim();
String title = iq.element("title").getTextTrim();
String referrer = iq.element("referrer").getTextTrim();
String uniqueID = iq.element("uniqueID").getTextTrim();
String ipAddress = iq.element("ipAddress").getTextTrim();
// Otherwise, notify of new user on site.
elem.addElement("url").setText(url);
elem.addElement("title").setText(title);
elem.addElement("referrer").setText(referrer);
elem.addElement("uniqueID").setText(uniqueID);
elem.addElement("ipAddress").setText(ipAddress);
for (AgentSession session : workgroup.getAgentSessions()) {
update.setTo(session.getJID());
update.setType(IQ.Type.set);
workgroup.send(update);
}
}
use of org.xmpp.packet.IQ in project Openfire by igniterealtime.
the class WorkgroupPropertiesProvider method executeGet.
public void executeGet(IQ packet, Workgroup workgroup) {
IQ reply = IQ.createResultIQ(packet);
// Retrieve the sound settings.
String authRequired = workgroup.getProperties().getProperty("authRequired");
Element returnPacket = reply.setChildElement("workgroup-properties", "http://jivesoftware.com/protocol/workgroup");
if (ModelUtil.hasLength(authRequired)) {
returnPacket.addElement("authRequired").setText(authRequired);
} else {
returnPacket.addElement("authRequired").setText("false");
}
Element iq = packet.getChildElement();
Attribute attr = iq.attribute("jid");
if (attr != null && ModelUtil.hasLength(iq.attribute("jid").getText())) {
String jid = iq.attribute("jid").getText();
UserManager userManager = UserManager.getInstance();
try {
User user = userManager.getUser(new JID(jid).getNode());
String email = user.getEmail();
String fullName = user.getName();
returnPacket.addElement("email").setText(email);
returnPacket.addElement("name").setText(fullName);
} catch (UserNotFoundException e) {
Log.error(e.getMessage(), e);
}
}
workgroup.send(reply);
}
use of org.xmpp.packet.IQ in project Openfire by igniterealtime.
the class EmailProvider method executeSet.
public void executeSet(IQ packet, Workgroup workgroup) {
IQ reply = IQ.createResultIQ(packet);
Element iq = packet.getChildElement();
String from = iq.element("fromAddress").getTextTrim();
String to = iq.element("toAddress").getTextTrim();
String subject = iq.element("subject").getTextTrim();
String body = iq.element("message").getTextTrim();
// Need to replace the \\n for \n to allow for text sending.
body = body.replace("\\n", "\n");
String html = iq.element("useHTML").getTextTrim();
boolean useHTML = false;
if ("true".equals(html)) {
useHTML = true;
}
String sessionID = null;
if (iq.element("sessionID") != null) {
sessionID = iq.element("sessionID").getTextTrim();
}
// Handle missing information.
if (!ModelUtil.hasLength(from) || !ModelUtil.hasLength(to) || !ModelUtil.hasLength(subject) || (!ModelUtil.hasLength(body) && !ModelUtil.hasLength(sessionID))) {
reply = IQ.createResultIQ(packet);
reply.setChildElement(packet.getChildElement().createCopy());
reply.setError(new PacketError(PacketError.Condition.not_acceptable));
workgroup.send(reply);
return;
}
if (ModelUtil.hasLength(sessionID)) {
ChatTranscriptManager.sendTranscriptByMail(sessionID, to);
} else {
EmailService emailService = EmailService.getInstance();
if (!useHTML) {
emailService.sendMessage(null, to, null, from, subject, body, null);
} else {
emailService.sendMessage(null, to, null, from, subject, null, body);
}
}
workgroup.send(reply);
}
use of org.xmpp.packet.IQ in project Openfire by igniterealtime.
the class MonitorProvider method executeSet.
public void executeSet(IQ packet, Workgroup workgroup) {
IQ reply = null;
Element iq = packet.getChildElement();
try {
JID from = packet.getFrom();
String bareJID = from.toBareJID();
if (!isOwner(bareJID, workgroup)) {
reply = IQ.createResultIQ(packet);
reply.setChildElement(packet.getChildElement().createCopy());
reply.setError(new PacketError(PacketError.Condition.forbidden));
workgroup.send(reply);
return;
}
// Verify that an agent is requesting this information.
WorkgroupManager workgroupManager = WorkgroupManager.getInstance();
if (iq.element("makeOwner") != null) {
String sessionID = iq.element("makeOwner").attributeValue("sessionID");
final String serviceName = workgroupManager.getMUCServiceName();
final String roomName = sessionID + "@" + serviceName;
// final String roomJID = roomName + "/" + workgroup.getJID().getNode();
IQ iqPacket = new IQ(IQ.Type.set);
iqPacket.setTo(roomName);
iqPacket.setFrom(workgroup.getFullJID());
Element query = iqPacket.setChildElement("query", "http://jabber.org/protocol/muc#admin");
Element item = query.addElement("item");
item.addAttribute("affiliation", "owner");
item.addAttribute("jid", packet.getFrom().toBareJID());
workgroup.send(iqPacket);
}
reply = IQ.createResultIQ(packet);
} catch (Exception e) {
reply = IQ.createResultIQ(packet);
reply.setChildElement(packet.getChildElement().createCopy());
reply.setError(new PacketError(PacketError.Condition.item_not_found));
}
workgroup.send(reply);
}
use of org.xmpp.packet.IQ in project Openfire by igniterealtime.
the class SearchProvider method executeGet.
public void executeGet(IQ packet, Workgroup workgroup) {
IQ reply = IQ.createResultIQ(packet);
// Retrieve the web chat setting.
String kbURL = workgroup.getProperties().getProperty("kb");
String forumURL = workgroup.getProperties().getProperty("forums");
// Check that the sender of this IQ is an agent
WorkgroupManager workgroupManager = WorkgroupManager.getInstance();
try {
workgroupManager.getAgentManager().getAgent(packet.getFrom());
} catch (AgentNotFoundException e) {
reply.setChildElement(packet.getChildElement().createCopy());
reply.setError(new PacketError(PacketError.Condition.item_not_found));
workgroup.send(reply);
return;
}
Element searchSetting = reply.setChildElement("search-settings", "http://jivesoftware.com/protocol/workgroup");
if (forumURL != null) {
searchSetting.addElement("forums").setText(forumURL);
}
if (kbURL != null) {
searchSetting.addElement("kb").setText(kbURL);
}
workgroup.send(reply);
}
Aggregations