Beispiel #1
0
 def get_load(self):
     try:
         with self.bts as b:
             load = b.get_load(self.DEFAULT_BTS_ID)
             # If we weren't able to read any channel load
             # the transceiver is not running
             if sum(load.values()) == 0:
                 raise BSSError("TRX not running")
             return load
     except Exception:
         exc_type, exc_value, exc_trace = sys.exc_info()
         raise BSSError("%s: %s" %
                        (exc_type, exc_value)).with_traceback(exc_trace)
Beispiel #2
0
 def set_short_name(self, short_name):
     """Set beacon short name"""
     try:
         return self.openbts.update_config("GSM.Identity.ShortName", short_name)
     except Exception:
         exc_type, exc_value, exc_trace = sys.exc_info()
         raise BSSError("%s: %s" % (exc_type, exc_value)).with_traceback(exc_trace)
Beispiel #3
0
 def get_camped_subscribers(self, access_period=0, auth=1):
     try:
         return self.openbts.tmsis(access_period, auth)
     except Exception:
         exc_type, exc_value, exc_trace = sys.exc_info()
         raise BSSError("%s: %s" %
                        (exc_type, exc_value)).with_traceback(exc_trace)
Beispiel #4
0
 def get_timer(self, timer):
     try:
         res = self.openbts.read_config("GSM.Timer.T%s" % str(timer))
         return res.data['value']
     except Exception:
         exc_type, exc_value, exc_trace = sys.exc_info()
         raise BSSError("%s: %s" % (exc_type, exc_value)).with_traceback(exc_trace)
 def get_subscribers(self, imsi=None):
     """Get subscribers, filter by IMSI if it's specified."""
     try:
         return self.sip_auth_serve.get_subscribers(imsi=imsi)
     except Exception:
         exc_type, exc_value, exc_trace = sys.exc_info()
         raise BSSError("%s: %s" % (exc_type, exc_value)).with_traceback(exc_trace)
Beispiel #6
0
 def get_timer(self, timer):
     try:
         return self.__get('timer.' + timer)
     except Exception:
         exc_type, exc_value, exc_trace = sys.exc_info()
         raise BSSError("%s: %s" %
                        (exc_type, exc_value)).with_traceback(exc_trace)
 def add_subscriber_to_hlr(self, imsi, number, ip, port):
     """Adds a subscriber to the system."""
     try:
         return self.sip_auth_serve.create_subscriber(imsi, number, ip, port)
     except Exception:
         exc_type, exc_value, exc_trace = sys.exc_info()
         raise BSSError("%s: %s" % (exc_type, exc_value)).with_traceback(exc_trace)
Beispiel #8
0
 def set_mnc(self, mnc):
     """Set MNC"""
     try:
         return self.openbts.update_config("GSM.Identity.MNC", mnc)
     except Exception:
         exc_type, exc_value, exc_trace = sys.exc_info()
         raise BSSError("%s: %s" % (exc_type, exc_value)).with_traceback(exc_trace)
Beispiel #9
0
 def get_arfcn_c0(self):
     try:
         res = self.openbts.read_config("GSM.Radio.C0")
         return res.data['value']
     except Exception:
         exc_type, exc_value, exc_trace = sys.exc_info()
         raise BSSError("%s: %s" % (exc_type, exc_value)).with_traceback(exc_trace)
Beispiel #10
0
 def get_available_arfcns(self):
     try:
         res = self.openbts.read_config("GSM.Radio.C0")
         return res.data['validValues'].split(",")
     except Exception:
         exc_type, exc_value, exc_trace = sys.exc_info()
         raise BSSError("%s: %s" % (exc_type, exc_value)).with_traceback(exc_trace)
Beispiel #11
0
 def get_open_registration(self):
     try:
         res = self.openbts.read_config("Control.LUR.OpenRegistration")
         return res.data['value']
     except Exception:
         exc_type, exc_value, exc_trace = sys.exc_info()
         raise BSSError("%s: %s" % (exc_type, exc_value)).with_traceback(exc_trace)
Beispiel #12
0
 def get_load(self):
     try:
         tower_load = self.openbts.get_load()
         return {
             'sdcch_load':
             tower_load['sdcch_load'],
             'sdcch_available':
             tower_load['sdcch_available'],
             'tchf_load':
             tower_load['tchf_load'],
             'tchf_available':
             tower_load['tchf_available'],
             'pch_active':
             tower_load['pch_active'],
             'pch_total':
             tower_load['pch_total'],
             'agch_active':
             tower_load['agch_active'],
             'agch_pending':
             tower_load['agch_pending'],
             'gprs_current_pdchs':
             tower_load['gprs_current_pdchs'],
             'gprs_utilization_percentage':
             (tower_load['gprs_utilization_percentage']),
         }
     except Exception:
         exc_type, exc_value, exc_trace = sys.exc_info()
         raise BSSError("%s: %s" %
                        (exc_type, exc_value)).with_traceback(exc_trace)
Beispiel #13
0
 def get_short_name(self):
     try:
         res = self.openbts.read_config("GSM.Identity.ShortName")
         return res.data['value']
     except Exception:
         exc_type, exc_value, exc_trace = sys.exc_info()
         raise BSSError("%s: %s" % (exc_type, exc_value)).with_traceback(exc_trace)
Beispiel #14
0
 def set_arfcn_c0(self, arfcn):
     """Set the ARFCN of the first carrier."""
     try:
         return self.openbts.update_config("GSM.Radio.C0", arfcn)
     except Exception:
         exc_type, exc_value, exc_trace = sys.exc_info()
         raise BSSError("%s: %s" % (exc_type, exc_value)).with_traceback(exc_trace)
Beispiel #15
0
 def set_band(self, band):
     """Set the GSM band"""
     try:
         return self.openbts.update_config("GSM.Radio.Band", band)
     except Exception:
         exc_type, exc_value, exc_trace = sys.exc_info()
         raise BSSError("%s: %s" % (exc_type, exc_value)).with_traceback(exc_trace)
Beispiel #16
0
 def get_band(self):
     try:
         with self.bts as b:
             return b.show(self.DEFAULT_BTS_ID)['band']
     except Exception:
         exc_type, exc_value, exc_trace = sys.exc_info()
         raise BSSError("%s: %s" %
                        (exc_type, exc_value)).with_traceback(exc_trace)
Beispiel #17
0
 def get_short_name(self):
     try:
         with self.network as n:
             return n.show()['short_name']
     except Exception:
         exc_type, exc_value, exc_trace = sys.exc_info()
         raise BSSError("%s: %s" %
                        (exc_type, exc_value)).with_traceback(exc_trace)
Beispiel #18
0
 def set_timer(self, timer, value):
     """Set a particular BTS timer.
     The only timer in use currently is T3212"""
     try:
         return self.openbts.update_config("GSM.Timer.T%s" % str(timer), value)
     except Exception:
         exc_type, exc_value, exc_trace = sys.exc_info()
         raise BSSError("%s: %s" % (exc_type, exc_value)).with_traceback(exc_trace)
Beispiel #19
0
 def set_open_registration(self, expression):
     """Set a regular expression matching IMSIs
     that can camp to the network"""
     try:
         return self.openbts.update_config("Control.LUR.OpenRegistration", expression)
     except Exception:
         exc_type, exc_value, exc_trace = sys.exc_info()
         raise BSSError("%s: %s" % (exc_type, exc_value)).with_traceback(exc_trace)
Beispiel #20
0
 def get_available_bands(self):
     try:
         with self.bts as b:
             return b.get_available_bands()
     except Exception:
         exc_type, exc_value, exc_trace = sys.exc_info()
         raise BSSError("%s: %s" %
                        (exc_type, exc_value)).with_traceback(exc_trace)
Beispiel #21
0
 def set_band(self, band):
     """Set the GSM band of default BTS"""
     try:
         with self.bts as b:
             return b.set_band(self.DEFAULT_BTS_ID, band)
     except Exception:
         exc_type, exc_value, exc_trace = sys.exc_info()
         raise BSSError("%s: %s" %
                        (exc_type, exc_value)).with_traceback(exc_trace)
 def delete_subscriber_from_hlr(self, imsi):
     """Removes a subscriber from the system."""
     try:
         return self.sip_auth_serve.delete_subscriber(imsi)
     except InvalidRequestError:
         raise SubscriberNotFound(imsi)
     except Exception:
         exc_type, exc_value, exc_trace = sys.exc_info()
         raise BSSError("%s: %s" % (exc_type, exc_value)).with_traceback(exc_trace)
Beispiel #23
0
 def set_short_name(self, short_name):
     """Set beacon short name"""
     try:
         with self.network as n:
             return n.set_short_name(short_name)
     except Exception:
         exc_type, exc_value, exc_trace = sys.exc_info()
         raise BSSError("%s: %s" %
                        (exc_type, exc_value)).with_traceback(exc_trace)
Beispiel #24
0
 def set_mcc(self, mcc):
     """Set MCC"""
     try:
         with self.network as n:
             return n.set_mcc(mcc)
     except Exception:
         exc_type, exc_value, exc_trace = sys.exc_info()
         raise BSSError("%s: %s" %
                        (exc_type, exc_value)).with_traceback(exc_trace)
Beispiel #25
0
 def get_arfcn_c0(self):
     try:
         with self.trx as t:
             return t.show(self.DEFAULT_BTS_ID,
                           self.DEFAULT_TRX_ID)['arfcn']
     except Exception:
         exc_type, exc_value, exc_trace = sys.exc_info()
         raise BSSError("%s: %s" %
                        (exc_type, exc_value)).with_traceback(exc_trace)
Beispiel #26
0
 def get_available_arfcns(self):
     """Returns a list of available ARFCNs for the default BTS"""
     try:
         with self.bts as b:
             return b.get_available_arfcns(self.DEFAULT_BTS_ID)
     except Exception:
         exc_type, exc_value, exc_trace = sys.exc_info()
         raise BSSError("%s: %s" %
                        (exc_type, exc_value)).with_traceback(exc_trace)
Beispiel #27
0
 def set_arfcn_c0(self, arfcn):
     """Set the ARFCN of the first carrier."""
     try:
         with self.trx as t:
             return t.set_arfcn(self.DEFAULT_BTS_ID, self.DEFAULT_TRX_ID,
                                arfcn)
     except Exception:
         exc_type, exc_value, exc_trace = sys.exc_info()
         raise BSSError("%s: %s" %
                        (exc_type, exc_value)).with_traceback(exc_trace)
Beispiel #28
0
 def get_noise(self):
     try:
         tower_noise = self.openbts.get_noise()
         return {
                 'noise_rssi_db': tower_noise['noise_rssi_db'],
                 'noise_ms_rssi_target_db': (
                     tower_noise['noise_ms_rssi_target_db']),
                 }
     except Exception:
         exc_type, exc_value, exc_trace = sys.exc_info()
         raise BSSError("%s: %s" % (exc_type, exc_value)).with_traceback(exc_trace)
Beispiel #29
0
 def get_band(self):
     # as per github.com/endaga/openbts/GSM/GSMConfig.cpp:gsmInit()
     # valid keys are: 850,900,1800,1900
     # let's convert those to CCM standard names (e.g., GSM900)
     try:
         res = self.openbts.read_config("GSM.Radio.Band")
         #convert to CCM standard
         return "GSM" + str(res.data['value'])
     except Exception:
         exc_type, exc_value, exc_trace = sys.exc_info()
         raise BSSError("%s: %s" % (exc_type, exc_value)).with_traceback(exc_trace)
    def is_authed(self, imsi):
        """Returns True if the subscriber is provisioned

        In openbts, a user is provisioned once an extension is assigned
        """
        try:
            return len(self.get_numbers_from_imsi(imsi)) > 0
        except InvalidRequestError:
            return False
        except Exception:
            exc_type, exc_value, exc_trace = sys.exc_info()
            raise BSSError("%s: %s" % (exc_type, exc_value)).with_traceback(exc_trace)