public void interceptPacket(Packet packet, Session session, boolean incoming, boolean processed) throws PacketRejectedException {
    	if (!processed && packet != null && packet instanceof Message) {
    		if (Configuration.switchPostmanMessage) {
    			String target = packet.getTo().getNode();
    			if (!userManager.isRegisteredUser(target) || target.equalsIgnoreCase(Configuration.userPostman)) {
        			Message message = (Message)packet;
    	        	try {
    	        		IMessageHandler handler = MessageHandler.getHandler(MessageType.POSTMAN);
    	        		if (!handler.validate(message)) {
    	        			Utils.debug(String.format("Invalid postman message detected, %1$s", message.toXML()));
    	        			return;
    	        		}
    	        		handler.process(message);
    	            	Utils.debug(String.format("Postman message processed, %1$s", message.toXML()));
    	        	}
    	        	catch (Exception ex) {
                		Utils.error(String.format("Fail to process postman message, %1$s, %2$s", ex.getMessage(), message.toXML()), ex);
    	            }
    	        }
    		}
    	}
    }