Exemplo n.º 1
0
    def send_pin(self, pin):
        """
        Sends ``pin`` to authenticate

        We need to encode the PIN in the correct way, but also wait a little,
        as Ericsson devices return straight away on unlock but an immediate
        call to +CPIN? will still show the device as locked.
        """
        from core.startup import attach_to_serial_port
        d = attach_to_serial_port(self.device)

        def _get_charset(_):
            if hasattr(self.device, 'sim') and \
                    hasattr(self.device.sim, 'charset'):
                return defer.succeed(self.device.sim.charset)
            else:
                return self.get_charset()

        d.addCallback(_get_charset)

        def _send_pin(charset, pin):
            if 'UCS2' in charset:
                pin = pack_ucs2_bytes(pin)
            return super(EricssonWrapper, self).send_pin(pin)

        d.addCallback(_send_pin, pin)
        d.addCallback(lambda x: deferLater(reactor, 1, lambda y: y, x))
        return d
Exemplo n.º 2
0
        def do_next(self):
            log.msg("%s: transition to get_pin_status mode...." % self)

            from core.startup import attach_to_serial_port
            d = attach_to_serial_port(self.device)
            d.addCallback(lambda _: self.device.sconn.set_error_level(1))
            d.addCallback(lambda _: self.device.sconn.check_pin())
            d.addCallback(self.check_pin_cb)
            d.addErrback(self.pin_required_eb)
            d.addErrback(self.puk_required_eb)
            d.addErrback(self.sim_failure_eb)
            d.addErrback(self.sim_busy_eb)
            d.addErrback(self.sim_no_present_eb)