Search in sources :

Example 41 with IQ

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);
    }
}
Also used : AgentSession(org.jivesoftware.xmpp.workgroup.AgentSession) Element(org.dom4j.Element) IQ(org.xmpp.packet.IQ)

Example 42 with IQ

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);
}
Also used : UserNotFoundException(org.jivesoftware.openfire.user.UserNotFoundException) User(org.jivesoftware.openfire.user.User) JID(org.xmpp.packet.JID) Attribute(org.dom4j.Attribute) UserManager(org.jivesoftware.openfire.user.UserManager) Element(org.dom4j.Element) IQ(org.xmpp.packet.IQ)

Example 43 with IQ

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);
}
Also used : Element(org.dom4j.Element) IQ(org.xmpp.packet.IQ) PacketError(org.xmpp.packet.PacketError) EmailService(org.jivesoftware.util.EmailService)

Example 44 with IQ

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);
}
Also used : JID(org.xmpp.packet.JID) Element(org.dom4j.Element) IQ(org.xmpp.packet.IQ) PacketError(org.xmpp.packet.PacketError) WorkgroupManager(org.jivesoftware.xmpp.workgroup.WorkgroupManager)

Example 45 with IQ

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);
}
Also used : Element(org.dom4j.Element) IQ(org.xmpp.packet.IQ) AgentNotFoundException(org.jivesoftware.xmpp.workgroup.AgentNotFoundException) PacketError(org.xmpp.packet.PacketError) WorkgroupManager(org.jivesoftware.xmpp.workgroup.WorkgroupManager)

Aggregations

IQ (org.xmpp.packet.IQ)208 Element (org.dom4j.Element)141 JID (org.xmpp.packet.JID)49 PacketError (org.xmpp.packet.PacketError)35 Presence (org.xmpp.packet.Presence)19 UserNotFoundException (org.jivesoftware.openfire.user.UserNotFoundException)18 Message (org.xmpp.packet.Message)17 UnauthorizedException (org.jivesoftware.openfire.auth.UnauthorizedException)16 ClientSession (org.jivesoftware.openfire.session.ClientSession)14 DataForm (org.xmpp.forms.DataForm)13 ArrayList (java.util.ArrayList)11 AgentNotFoundException (org.jivesoftware.xmpp.workgroup.AgentNotFoundException)10 Packet (org.xmpp.packet.Packet)10 PacketException (org.jivesoftware.openfire.PacketException)9 User (org.jivesoftware.openfire.user.User)8 List (java.util.List)7 PrivacyList (org.jivesoftware.openfire.privacy.PrivacyList)7 Iterator (java.util.Iterator)6 Test (org.junit.Test)6 FormField (org.xmpp.forms.FormField)6