Exemplo n.º 1
0
    def get_smsc(self, cb, eb):
        """Get SMSC from preferences, networks DB or device, then callback"""

        # try to get from preferences
        if self.model.conf.get('preferences', 'use_alternate_smsc', False):
            alternate_smsc = self.model.conf.get('preferences', 'smsc_number',
                                                 None)
        else:
            alternate_smsc = None

        # try to get from networks DB
        if self.model.imsi:
            provider = NetworkProvider()
            attrs = provider.get_network_by_id(self.model.imsi)
            if attrs:
                provider_smsc = attrs[0].smsc
            else:
                provider_smsc = None
            provider.close()
        else:
            provider_smsc = None

        # use the one from the best source
        if alternate_smsc is not None:
            logger.info("SMSC used from preferences")
            cb(alternate_smsc)
        elif provider_smsc is not None:
            logger.info("SMSC used from networks DB")
            cb(provider_smsc)
        else:
            logger.info("SMSC used from SIM")
            self.model.device.GetSmsc(dbus_interface=SMS_INTFACE,
                                      reply_handler=cb,
                                      error_handler=eb)
Exemplo n.º 2
0
    def __init__(self, model, imsi, callback):
        super(APNSelectionController, self).__init__(model)

        self.callback = callback

        netdb = NetworkProvider()
        self.apns = netdb.get_network_by_id(imsi)
        netdb.close()
 def set_network_country_info(self, imsi):
     try:
         provider = NetworkProvider()
         nets = provider.get_network_by_id(imsi)
         if not len(nets):
             raise ValueError
         self.view.set_network_info(nets[0].name)
         self.view.set_country_info(nets[0].country)
     except (TypeError, ValueError):
         self.view.set_network_info(None)
         self.view.set_country_info(None)
     finally:
         provider.close()
 def get_default_smsc(self, imsi):
     try:
         # create a NetworkProvider object to query our Network DB
         provider = NetworkProvider()
         # ask for our network attributes based on what our SIM is
         nets = provider.get_network_by_id(imsi)
         if not len(nets):
             raise ValueError
         return nets[0].smsc
     except (TypeError, ValueError):
         return None
     finally:
         provider.close()
 def load_smsc(self, sim_data):
     print "preferences: smsc value in model", self.model.smsc_number
     if (self.model.smsc_number.capitalize() == _('Unknown')
             or not self.model.smsc_number):
         logger.warning("self.smsc_number is Unknown or None")
         #create a NetworProvider object to querry our NetworkProvider db
         sim_network = NetworkProvider()
         # ask for our network attributes based on what our sim value is
         networks_attributes = sim_network.get_network_by_id(sim_data)
         if networks_attributes:
             net_attrib = networks_attributes[0]
             print "model: preferences sms value:", net_attrib.smsc
             # tell the view to setup the smsc number. when the user clicks
             # save or changes him self it will be saved.
             self.view.setup_smsc_number(net_attrib.smsc)
        def sim_imsi(imsi):
            logger.info("diagnostics sim_imsi - IMSI number is: " + str(imsi))
            self.view.set_imsi_info(imsi)

            # let's look up what we think this SIM's network is.
            # so we want to display the country and network operator
            provider = NetworkProvider()
            networks_attributes = provider.get_network_by_id(imsi)
            if networks_attributes:
                net_attrib = networks_attributes[0]
                logger.info("diagnostics sim_imsi - country: "
                            + str(net_attrib.country))
                logger.info("diagnostics sim_imsi - network operator: "
                            + str(net_attrib.name))
                self.view.set_network_info(network=net_attrib.name,
                                           country=net_attrib.country)
            provider.close()