/** * Removes a user from the workgroup queue. This is an administrative action that the * * The agent is not guaranteed of having privileges to perform this action; an exception * denying the request may be thrown. * * @param userID the ID of the user to remove. * @throws XMPPException if an exception occurs. * @throws NotConnectedException * @throws InterruptedException */ public void dequeueUser(EntityJid userID) throws XMPPException, NotConnectedException, InterruptedException { // todo: this method simply won't work right now. DepartQueuePacket departPacket = new DepartQueuePacket(workgroupJID, userID); // PENDING this.connection.sendStanza(departPacket); }
/** * Creates a depart queue request to the specified workgroup and for the * specified user. * * @param workgroup the workgroup to depart. * @param user the user to make depart from the queue. */ public DepartQueuePacket(EntityBareJid workgroup, EntityJid user) { super("depart-queue", "http://jabber.org/protocol/workgroup"); this.user = user; setTo(workgroup); setType(IQ.Type.set); setFrom(user); }
/** * Departs the workgroup queue. If the user is not currently in the queue, this * method will do nothing.<p> * <p/> * Normally, the user would not manually leave the queue. However, they may wish to * under certain circumstances -- for example, if they no longer wish to be routed * to an agent because they've been waiting too long. * * @throws XMPPException if an error occured trying to send the depart queue * request to the server. */ public void departQueue() throws XMPPException { // If not in the queue ignore the depart request. if (!inQueue) { return; } DepartQueuePacket departPacket = new DepartQueuePacket(this.workgroupJID); PacketCollector collector = this.connection.createPacketCollector(new PacketIDFilter(departPacket.getPacketID())); connection.sendPacket(departPacket); IQ response = (IQ)collector.nextResult(5000); collector.cancel(); if (response == null) { throw new XMPPException("No response from the server."); } if (response.getError() != null) { throw new XMPPException(response.getError()); } // Notify listeners that we're no longer in the queue. fireQueueDepartedEvent(); }
/** * Departs the workgroup queue. If the user is not currently in the queue, this * method will do nothing.<p> * <p/> * Normally, the user would not manually leave the queue. However, they may wish to * under certain circumstances -- for example, if they no longer wish to be routed * to an agent because they've been waiting too long. * * @throws XMPPException if an error occured trying to send the depart queue * request to the server. */ public void departQueue() throws XMPPException { // If not in the queue ignore the depart request. if (!inQueue) { return; } DepartQueuePacket departPacket = new DepartQueuePacket(this.workgroupJID); PacketCollector collector = this.connection.createPacketCollector(new PacketIDFilter(departPacket.getPacketID())); connection.sendPacket(departPacket); IQ response = (IQ)collector.nextResult(5000); collector.cancel(); if (response == null) { throw new XMPPException("No response from the server."); } if (response.getError() != null) { throw new XMPPException(response.getError()); } // Notify listeners that we're no longer in the queue. fireQueueDepartedEvent(); }
/** * Creates a depart queue request to the specified workgroup and for the * specified user. * * @param workgroup the workgroup to depart. * @param user the user to make depart from the queue. */ public DepartQueuePacket(String workgroup, String user) { this.user = user; setTo(workgroup); setType(IQ.Type.SET); setFrom(user); }
/** * Departs the workgroup queue. If the user is not currently in the queue, this * method will do nothing.<p> * <p/> * Normally, the user would not manually leave the queue. However, they may wish to * under certain circumstances -- for example, if they no longer wish to be routed * to an agent because they've been waiting too long. * * @throws XMPPException if an error occured trying to send the depart queue * request to the server. */ public void departQueue() throws XMPPException { // If not in the queue ignore the depart request. if (!inQueue) { return; } DepartQueuePacket departPacket = new DepartQueuePacket(this.workgroupJID); PacketCollector collector = this.connection.createPacketCollector(new PacketIDFilter(departPacket.getPacketID())); connection.sendPacket(departPacket); IQ response = (IQ)collector.nextResult(5000); collector.cancel(); if (response == null) { throw new XMPPException("No response from the server."); } if (response.getError() != null) { throw new XMPPException(response.getError()); } // Notify listeners that we're no longer in the queue. fireQueueDepartedEvent(); }
/** * Departs the workgroup queue. If the user is not currently in the queue, this * method will do nothing.<p> * * Normally, the user would not manually leave the queue. However, they may wish to * under certain circumstances -- for example, if they no longer wish to be routed * to an agent because they've been waiting too long. * * @throws XMPPErrorException if an error occurred trying to send the depart queue * request to the server. * @throws NoResponseException * @throws NotConnectedException * @throws InterruptedException */ public void departQueue() throws NoResponseException, XMPPErrorException, NotConnectedException, InterruptedException { // If not in the queue ignore the depart request. if (!inQueue) { return; } DepartQueuePacket departPacket = new DepartQueuePacket(this.workgroupJID); connection.createStanzaCollectorAndSend(departPacket).nextResultOrThrow(); // Notify listeners that we're no longer in the queue. fireQueueDepartedEvent(); }
/** * Creates a depart queue request to the specified workgroup and for the * specified user. * * @param workgroup the workgroup to depart. * @param user the user to make depart from the queue. */ public DepartQueuePacket(String workgroup, String user) { this.user = user; setTo(workgroup); setType(IQ.Type.SET); setFrom(user); }
/** * Removes a user from the workgroup queue. This is an administrative action that the * <p/> * The agent is not guaranteed of having privileges to perform this action; an exception * denying the request may be thrown. * * @param userID the ID of the user to remove. * @throws XMPPException if an exception occurs. */ public void dequeueUser(String userID) throws XMPPException { // todo: this method simply won't work right now. DepartQueuePacket departPacket = new DepartQueuePacket(this.workgroupJID); // PENDING this.connection.sendPacket(departPacket); }
/** * Creates a depart queue request to the specified workgroup and for the * specified user. * * @param workgroup the workgroup to depart. * @param user the user to make depart from the queue. */ public DepartQueuePacket(String workgroup, String user) { this.user = user; setTo(workgroup); setType(Type.SET); setFrom(user); }
/** * Removes a user from the workgroup queue. This is an administrative action that the * <p/> * The agent is not guaranteed of having privileges to perform this action; an exception * denying the request may be thrown. * * @param userID the ID of the user to remove. * @throws XMPPException if an exception occurs. */ public void dequeueUser(String userID) throws XMPPException { // todo: this method simply won't work right now. DepartQueuePacket departPacket = new DepartQueuePacket(this.workgroupJID); // PENDING this.connection.sendPacket(departPacket); }
/** * Removes a user from the workgroup queue. This is an administrative action that the * <p/> * The agent is not guaranteed of having privileges to perform this action; an exception * denying the request may be thrown. * * @param userID the ID of the user to remove. * @throws XMPPException if an exception occurs. */ public void dequeueUser(String userID) throws XMPPException { // todo: this method simply won't work right now. DepartQueuePacket departPacket = new DepartQueuePacket(this.workgroupJID); // PENDING this.connection.sendPacket(departPacket); }