if lac != self.lac:
self.lac = lac
# check we still have correct carrier
- at_queue('_OSIMOP', self.got_carrier)
+ # at_queue('_OSIMOP', self.got_carrier)
+ at_queue('+COPS=3,2', None)
+ at_queue('+COPS?', self.got_cops)
# Make sure we are getting async cell notifications
at_queue('+CSCB=1', None)
def got_carrier(self, line):
record('sid', m.group(2))
record('carrier', m.group(1))
return False
+ def got_cops(self, line):
+ if line:
+ m = re.match('\+COPS: (\d),(\d),"([^"]*)",(\d)', line)
+ oldsid = recall('sid')
+ if m and m.group(2) == '2':
+ record('sid', m.group(3))
+ if m.group(3) == 'Limited Service':
+ record('carrier', m.group(3))
+ if oldsid != m.group(3):
+ at_queue('+COPS=3,1', None)
+ at_queue('+COPS?', self.got_cops)
+ elif m and m.group(2) == '1':
+ record('carrier', m.group(3))
+ elif not m:
+ record('sid', '')
+ return False
add_engine(Cellid())