Search in sources :

Example 6 with FritzBoxLoginException

use of de.janrufmonitor.fritzbox.firmware.exception.FritzBoxLoginException in project janrufmonitor by tbrandt77.

the class FritzBoxDialogPlugin method run.

public void run() {
    new SWTExecuter(this.getLabel()) {

        protected void execute() {
            ICaller o = m_dialog.getCall().getCaller();
            String dial = ((ICaller) o).getPhoneNumber().getTelephoneNumber();
            if (!((ICaller) o).getPhoneNumber().getIntAreaCode().equalsIgnoreCase(getRuntime().getConfigManagerFactory().getConfigManager().getProperty(IJAMConst.GLOBAL_NAMESPACE, IJAMConst.GLOBAL_INTAREA))) {
                dial = "00" + ((ICaller) o).getPhoneNumber().getIntAreaCode() + dial;
            }
            if (!dial.startsWith("0"))
                dial = "0" + dial;
            String text = getI18nManager().getString(getNamespaceDial(), "dial", "description", getLanguage());
            text = StringUtils.replaceString(text, "{%1}", dial);
            if (MessageDialog.openConfirm(new Shell(DisplayManager.getDefaultDisplay()), getI18nManager().getString(getNamespaceDial(), "success", "label", getLanguage()), text)) {
                Properties config = getRuntime().getConfigManagerFactory().getConfigManager().getProperties(FritzBoxMonitor.NAMESPACE);
                FirmwareManager fwm = FirmwareManager.getInstance();
                try {
                    if (!fwm.isLoggedIn())
                        fwm.login();
                    fwm.doCall(dial, config.getProperty(CFG_CLICKDIAL, "50"));
                    text = getI18nManager().getString(getNamespaceDial(), "success", "description", getLanguage());
                    text = StringUtils.replaceString(text, "{%1}", dial);
                    MessageDialog.openInformation(new Shell(DisplayManager.getDefaultDisplay()), getI18nManager().getString(getNamespaceDial(), "success", "label", getLanguage()), text);
                } catch (IOException e) {
                    m_logger.warning(e.toString());
                    PropagationFactory.getInstance().fire(new Message(Message.ERROR, getNamespaceDial(), "faileddial", e));
                } catch (FritzBoxLoginException e) {
                    m_logger.warning(e.toString());
                    PropagationFactory.getInstance().fire(new Message(Message.ERROR, getNamespaceDial(), "faileddial", e));
                } catch (DoCallException e) {
                    m_logger.warning(e.toString());
                    PropagationFactory.getInstance().fire(new Message(Message.ERROR, getNamespaceDial(), "faileddial", e));
                }
            }
        }
    }.start();
}
Also used : DoCallException(de.janrufmonitor.fritzbox.firmware.exception.DoCallException) ICaller(de.janrufmonitor.framework.ICaller) Shell(org.eclipse.swt.widgets.Shell) FritzBoxLoginException(de.janrufmonitor.fritzbox.firmware.exception.FritzBoxLoginException) Message(de.janrufmonitor.exception.Message) FirmwareManager(de.janrufmonitor.fritzbox.firmware.FirmwareManager) IOException(java.io.IOException) Properties(java.util.Properties) SWTExecuter(de.janrufmonitor.ui.swt.SWTExecuter)

Example 7 with FritzBoxLoginException

use of de.janrufmonitor.fritzbox.firmware.exception.FritzBoxLoginException in project janrufmonitor by tbrandt77.

the class InitFritzBoxVariantPage method performFinish.

public boolean performFinish() {
    if (m_boxip == null || m_boxip.trim().length() == 0) {
        try {
            Thread.sleep(550);
        } catch (InterruptedException e) {
            m_logger.log(Level.SEVERE, e.getMessage(), e);
        }
        return true;
    }
    getRuntime().getConfigManagerFactory().getConfigManager().setProperty(FritzBoxMonitor.NAMESPACE, "boxip", m_boxip);
    getRuntime().getConfigManagerFactory().getConfigManager().setProperty(FritzBoxMonitor.NAMESPACE, "boxpassword", m_boxpassword);
    getRuntime().getConfigManagerFactory().getConfigManager().setProperty(FritzBoxMonitor.NAMESPACE, "boxuser", m_boxuser);
    getRuntime().getConfigManagerFactory().getConfigManager().setProperty(FritzBoxMonitor.NAMESPACE, "activemonitor", (m_active ? "true" : "false"));
    getRuntime().getConfigManagerFactory().getConfigManager().saveConfiguration();
    try {
        Thread.sleep(500);
    } catch (InterruptedException e) {
        m_logger.log(Level.SEVERE, e.getMessage(), e);
        return false;
    }
    getRuntime().getConfigurableNotifier().notifyByNamespace(FritzBoxMonitor.NAMESPACE);
    try {
        Thread.sleep(500);
    } catch (InterruptedException e) {
        m_logger.log(Level.SEVERE, e.getMessage(), e);
        return false;
    }
    if (m_active && !getRuntime().getMonitorListener().isRunning()) {
        getRuntime().getMonitorListener().start();
        try {
            Thread.sleep(500);
        } catch (InterruptedException e) {
            m_logger.log(Level.SEVERE, e.getMessage(), e);
            return false;
        }
        ICommand c = PIMRuntime.getInstance().getCommandFactory().getCommand("Activator");
        if (c != null) {
            try {
                Map m = new HashMap();
                IMonitor mon = getRuntime().getMonitorListener().getDefaultMonitor();
                m.put("status", (mon.isStarted() ? "revert" : "invert"));
                // this method executes the command as well !!
                c.setParameters(m);
            } catch (Exception e) {
                m_logger.log(Level.SEVERE, e.toString(), e);
            }
        }
    }
    try {
        Thread.sleep(500);
    } catch (InterruptedException e) {
        m_logger.log(Level.SEVERE, e.getMessage(), e);
        return false;
    }
    // save MSN settings
    if (m_usemsns) {
        FirmwareManager fwm = FirmwareManager.getInstance();
        fwm.startup();
        try {
            if (!fwm.isLoggedIn())
                fwm.login();
            Map msns = fwm.getMSNMap();
            if (msns != null && msns.size() > 0) {
                StringBuffer list = new StringBuffer();
                Iterator i = msns.keySet().iterator();
                String msn = null;
                while (i.hasNext()) {
                    msn = (String) i.next();
                    list.append(msn);
                    list.append(",");
                    getRuntime().getConfigManagerFactory().getConfigManager().setProperty("manager.MsnManager", msn + "_msn", msn);
                    getRuntime().getConfigManagerFactory().getConfigManager().setProperty("manager.MsnManager", msn + "_label", (String) msns.get(msn));
                }
                getRuntime().getConfigManagerFactory().getConfigManager().setProperty("manager.MsnManager", "list", list.toString());
                getRuntime().getConfigManagerFactory().getConfigManager().saveConfiguration();
            }
        } catch (IOException e) {
            m_logger.log(Level.SEVERE, e.toString(), e);
        } catch (FritzBoxLoginException e) {
            m_logger.log(Level.SEVERE, e.toString(), e);
        }
    }
    return true;
}
Also used : FritzBoxLoginException(de.janrufmonitor.fritzbox.firmware.exception.FritzBoxLoginException) HashMap(java.util.HashMap) FirmwareManager(de.janrufmonitor.fritzbox.firmware.FirmwareManager) ICommand(de.janrufmonitor.framework.command.ICommand) Iterator(java.util.Iterator) IOException(java.io.IOException) HashMap(java.util.HashMap) Map(java.util.Map) IMonitor(de.janrufmonitor.framework.monitor.IMonitor) FritzBoxLoginException(de.janrufmonitor.fritzbox.firmware.exception.FritzBoxLoginException) IOException(java.io.IOException)

Example 8 with FritzBoxLoginException

use of de.janrufmonitor.fritzbox.firmware.exception.FritzBoxLoginException in project janrufmonitor by tbrandt77.

the class TamMessagePlay method run.

public void run() {
    Viewer v = this.m_app.getApplication().getViewer();
    if (v != null) {
        IStructuredSelection selection = (IStructuredSelection) v.getSelection();
        if (!selection.isEmpty()) {
            Object o = selection.getFirstElement();
            if (o instanceof ICall) {
                if (((ICall) o).getAttributes().contains("fritzbox.tamurl")) {
                    File message_file = null;
                    String url = ((ICall) o).getAttributes().get("fritzbox.tamurl").getValue();
                    File tamMessageDir = new File(PathResolver.getInstance(PIMRuntime.getInstance()).getDataDirectory() + File.separator + "fritzbox-messages");
                    tamMessageDir.mkdirs();
                    if (tamMessageDir.exists() && tamMessageDir.isDirectory()) {
                        message_file = new File(tamMessageDir, ((ICall) o).getUUID() + ".wav");
                        if (!message_file.exists()) {
                            FirmwareManager fwm = FirmwareManager.getInstance();
                            try {
                                if (!fwm.isLoggedIn())
                                    fwm.login();
                                String data = fwm.getTamMessage(url);
                                if (data == null)
                                    return;
                                ByteArrayInputStream bin = new ByteArrayInputStream(data.getBytes());
                                Base64Decoder b64 = new Base64Decoder(bin);
                                FileOutputStream fos = new FileOutputStream(message_file);
                                Stream.copy(b64, fos);
                                fos.flush();
                                fos.close();
                            } catch (IOException e) {
                                this.m_logger.warning(e.toString());
                            } catch (FritzBoxLoginException e) {
                                this.m_logger.warning(e.toString());
                            }
                        }
                    }
                    try {
                        AudioInputStream stream = AudioSystem.getAudioInputStream(message_file);
                        AudioFormat format = stream.getFormat();
                        DataLine.Info info = new DataLine.Info(Clip.class, format);
                        Clip clip = (Clip) AudioSystem.getLine(info);
                        clip.open(stream);
                        clip.start();
                    } catch (IOException e) {
                        this.m_logger.severe(e.getMessage());
                    } catch (LineUnavailableException e) {
                        this.m_logger.severe(e.getMessage());
                    } catch (UnsupportedAudioFileException e) {
                        this.m_logger.severe(e.getMessage());
                    }
                } else {
                    new SWTExecuter() {

                        protected void execute() {
                            int style = SWT.APPLICATION_MODAL | SWT.OK;
                            MessageBox messageBox = new MessageBox(new Shell(DisplayManager.getDefaultDisplay()), style);
                            messageBox.setMessage(getI18nManager().getString(getNamespace(), "notam", "label", getLanguage()));
                            messageBox.open();
                        }
                    }.start();
                    return;
                }
            }
        }
    }
}
Also used : FritzBoxLoginException(de.janrufmonitor.fritzbox.firmware.exception.FritzBoxLoginException) ICall(de.janrufmonitor.framework.ICall) DataLine(javax.sound.sampled.DataLine) LineUnavailableException(javax.sound.sampled.LineUnavailableException) Viewer(org.eclipse.jface.viewers.Viewer) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) IOException(java.io.IOException) MessageBox(org.eclipse.swt.widgets.MessageBox) AudioInputStream(javax.sound.sampled.AudioInputStream) Clip(javax.sound.sampled.Clip) UnsupportedAudioFileException(javax.sound.sampled.UnsupportedAudioFileException) Shell(org.eclipse.swt.widgets.Shell) FirmwareManager(de.janrufmonitor.fritzbox.firmware.FirmwareManager) ByteArrayInputStream(java.io.ByteArrayInputStream) Base64Decoder(de.janrufmonitor.util.io.Base64Decoder) FileOutputStream(java.io.FileOutputStream) AudioFormat(javax.sound.sampled.AudioFormat) File(java.io.File) SWTExecuter(de.janrufmonitor.ui.swt.SWTExecuter)

Example 9 with FritzBoxLoginException

use of de.janrufmonitor.fritzbox.firmware.exception.FritzBoxLoginException in project janrufmonitor by tbrandt77.

the class FritzBoxPhonebookManager method createFieldEditors.

protected void createFieldEditors() {
    FirmwareManager fwm = FirmwareManager.getInstance();
    String label = this.m_i18n.getString(this.getNamespace(), "enabled", "label", this.m_language);
    if (label.length() < 150)
        for (int i = 150; i > label.length(); i--) {
            label += " ";
        }
    BooleanFieldEditor bfe = new BooleanFieldEditor(this.getConfigNamespace() + SEPARATOR + "enabled", label, this.getFieldEditorParent());
    bfe.setEnabled((fwm.isInstance(UnitymediaFirmware.class) || fwm.isInstance(SessionIDFritzBoxFirmware.class) || fwm.isInstance(FritzOSFirmware.class) || fwm.isInstance(FritzOS559Firmware.class) || fwm.isInstance(TR064FritzBoxFirmware.class)), this.getFieldEditorParent());
    addField(bfe);
    if (fwm.isInstance(FritzOSFirmware.class) || fwm.isInstance(FritzOS559Firmware.class) || fwm.isInstance(TR064FritzBoxFirmware.class)) {
        try {
            if (!fwm.isLoggedIn())
                fwm.login();
            Map adb = fwm.getAddressbooks();
            String[][] list = new String[adb.size()][2];
            Iterator i = adb.keySet().iterator();
            int c = 0;
            while (i.hasNext()) {
                list[c][1] = ((Integer) i.next()).toString();
                list[c][0] = (String) adb.get(Integer.parseInt(list[c][1]));
                c++;
            }
            ComboFieldEditor cfe = new ComboFieldEditor(getConfigNamespace() + SEPARATOR + "ab", this.m_i18n.getString(this.getNamespace(), "ab", "label", this.m_language), list, this.getFieldEditorParent());
            addField(cfe);
        } catch (GetAddressbooksException e) {
            this.m_logger.severe(e.getMessage());
        } catch (IOException e) {
            this.m_logger.severe(e.getMessage());
        } catch (FritzBoxLoginException e) {
            this.m_logger.severe(e.getMessage());
        }
    }
}
Also used : FritzBoxLoginException(de.janrufmonitor.fritzbox.firmware.exception.FritzBoxLoginException) TR064FritzBoxFirmware(de.janrufmonitor.fritzbox.firmware.TR064FritzBoxFirmware) BooleanFieldEditor(org.eclipse.jface.preference.BooleanFieldEditor) IOException(java.io.IOException) ComboFieldEditor(org.eclipse.jface.preference.ComboFieldEditor) FirmwareManager(de.janrufmonitor.fritzbox.firmware.FirmwareManager) FritzOSFirmware(de.janrufmonitor.fritzbox.firmware.FritzOSFirmware) Iterator(java.util.Iterator) GetAddressbooksException(de.janrufmonitor.fritzbox.firmware.exception.GetAddressbooksException) Map(java.util.Map)

Example 10 with FritzBoxLoginException

use of de.janrufmonitor.fritzbox.firmware.exception.FritzBoxLoginException in project janrufmonitor by tbrandt77.

the class FritzBoxPhonebookManager method createCallerListFromFritzBoxPhonebook.

private void createCallerListFromFritzBoxPhonebook() {
    Thread t = new Thread(new Runnable() {

        Logger m_logger;

        public void run() {
            isSyncing = true;
            this.m_logger = LogManager.getLogManager().getLogger(IJAMConst.DEFAULT_LOGGER);
            if (this.m_logger.isLoggable(Level.FINE))
                this.m_logger.fine("Starting JAM-FritzBoxPhonebookSync-Thread");
            File mso_cache = new File(FBP_CACHE_PATH);
            if (!mso_cache.exists())
                mso_cache.mkdirs();
            ICallerList cl = getRuntime().getCallerFactory().createCallerList();
            FirmwareManager fwm = FirmwareManager.getInstance();
            fwm.startup();
            try {
                if (!fwm.isLoggedIn())
                    fwm.login();
                if (this.m_logger.isLoggable(Level.INFO))
                    this.m_logger.info("FritzBox Firmware created.");
                if (this.m_logger.isLoggable(Level.INFO))
                    this.m_logger.info("Login to FritzBox successfull.");
                // check if phonebook is configured
                String abId = getConfiguration().getProperty(CFG_ADDRESSBOOK, "0");
                if (this.m_logger.isLoggable(Level.INFO))
                    this.m_logger.info("Getting FritzBox phonebook ID: #" + abId);
                int id = Integer.parseInt(abId);
                String name = null;
                try {
                    Map abs = fwm.getAddressbooks();
                    if (abs.containsKey(Integer.parseInt(abId))) {
                        name = (String) abs.get(Integer.parseInt(abId));
                        if (this.m_logger.isLoggable(Level.INFO))
                            this.m_logger.info("Getting FritzBox phonebook name: " + name);
                    }
                } catch (GetAddressbooksException e) {
                    this.m_logger.log(Level.WARNING, e.getMessage(), e);
                }
                List callers = null;
                if (name != null) {
                    callers = fwm.getCallerList(id, name);
                    if (this.m_logger.isLoggable(Level.INFO))
                        this.m_logger.info("Getting FritzBox phonebook callers: " + callers.size());
                } else {
                    callers = fwm.getCallerList();
                    if (this.m_logger.isLoggable(Level.INFO))
                        this.m_logger.info("Getting FritzBox default phonebook callers: " + callers.size());
                }
                if (callers.size() == 0) {
                    try {
                        getDatabaseHandler().deleteCallerList(getRuntime().getCallerFactory().createCallerList());
                        getDatabaseHandler().commit();
                    } catch (SQLException e) {
                        this.m_logger.log(Level.SEVERE, e.getMessage(), e);
                        try {
                            getDatabaseHandler().rollback();
                        } catch (SQLException e1) {
                            this.m_logger.log(Level.SEVERE, e1.getMessage(), e1);
                        }
                    }
                    isSyncing = false;
                    return;
                }
                cl.add(FritzBoxMappingManager.getInstance().toCallerList(callers));
            } catch (FritzBoxLoginException e2) {
                this.m_logger.log(Level.SEVERE, e2.getMessage(), e2);
            } catch (GetCallerListException e) {
                this.m_logger.log(Level.SEVERE, e.getMessage(), e);
            } catch (IOException e) {
                this.m_logger.log(Level.SEVERE, e.getMessage(), e);
            } catch (Throwable e) {
                this.m_logger.log(Level.SEVERE, e.getMessage(), e);
            }
            try {
                getDatabaseHandler().deleteCallerList(getRuntime().getCallerFactory().createCallerList());
                getDatabaseHandler().insertOrUpdateCallerList(cl);
                getDatabaseHandler().commit();
            } catch (SQLException e) {
                this.m_logger.log(Level.SEVERE, e.getMessage(), e);
                try {
                    getDatabaseHandler().rollback();
                } catch (SQLException e1) {
                    this.m_logger.log(Level.SEVERE, e1.getMessage(), e1);
                }
            }
            isSyncing = false;
            if (this.m_logger.isLoggable(Level.FINE))
                this.m_logger.fine("Stopping JAM-FritzBoxPhonebookSync-Thread");
        }
    });
    t.setName("JAM-FritzBoxPhonebookSync-Thread-(non-deamon)");
    t.start();
}
Also used : FritzBoxLoginException(de.janrufmonitor.fritzbox.firmware.exception.FritzBoxLoginException) GetCallerListException(de.janrufmonitor.fritzbox.firmware.exception.GetCallerListException) SQLException(java.sql.SQLException) IOException(java.io.IOException) Logger(java.util.logging.Logger) ICallerList(de.janrufmonitor.framework.ICallerList) FirmwareManager(de.janrufmonitor.fritzbox.firmware.FirmwareManager) GetAddressbooksException(de.janrufmonitor.fritzbox.firmware.exception.GetAddressbooksException) ICallerList(de.janrufmonitor.framework.ICallerList) List(java.util.List) File(java.io.File) Map(java.util.Map)

Aggregations

FritzBoxLoginException (de.janrufmonitor.fritzbox.firmware.exception.FritzBoxLoginException)19 IOException (java.io.IOException)16 FirmwareManager (de.janrufmonitor.fritzbox.firmware.FirmwareManager)14 Message (de.janrufmonitor.exception.Message)9 DoCallException (de.janrufmonitor.fritzbox.firmware.exception.DoCallException)6 Shell (org.eclipse.swt.widgets.Shell)5 ICall (de.janrufmonitor.framework.ICall)4 DeleteCallListException (de.janrufmonitor.fritzbox.firmware.exception.DeleteCallListException)4 GetAddressbooksException (de.janrufmonitor.fritzbox.firmware.exception.GetAddressbooksException)4 Map (java.util.Map)4 Properties (java.util.Properties)4 ICallerList (de.janrufmonitor.framework.ICallerList)3 ICommand (de.janrufmonitor.framework.command.ICommand)3 DeleteCallerException (de.janrufmonitor.fritzbox.firmware.exception.DeleteCallerException)3 DoBlockException (de.janrufmonitor.fritzbox.firmware.exception.DoBlockException)3 FritzBoxInitializationException (de.janrufmonitor.fritzbox.firmware.exception.FritzBoxInitializationException)3 GetCallListException (de.janrufmonitor.fritzbox.firmware.exception.GetCallListException)3 GetCallerListException (de.janrufmonitor.fritzbox.firmware.exception.GetCallerListException)3 SetCallerException (de.janrufmonitor.fritzbox.firmware.exception.SetCallerException)3 SWTExecuter (de.janrufmonitor.ui.swt.SWTExecuter)3