forked from LUG-Saar/fetapi
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
121 lines
3.1 KiB
121 lines
3.1 KiB
10 years ago
|
|
||
|
import csv
|
||
|
import ConfigParser
|
||
|
import tuitest
|
||
|
import phoneinterface
|
||
|
import fetapdtest
|
||
|
|
||
|
class ConfigurationReader(object):
|
||
|
DEFAULTS = {
|
||
|
'gpio_numbering': 'BOARD',
|
||
|
'pin_nsa': '11',
|
||
|
'pin_nsi': '13',
|
||
|
'pin_gabelschalter': '15',
|
||
|
'pin_schauzeichen': '12',
|
||
|
'pin_wecker_enable': '16',
|
||
|
'pin_wecker_a': '18',
|
||
|
'pin_wecker_b': '19',
|
||
|
|
||
|
'default_proxy': ''
|
||
|
}
|
||
|
|
||
|
|
||
|
def __init__(self):
|
||
|
self.__cp = ConfigParser.ConfigParser(defaults=ConfigurationReader.DEFAULTS)
|
||
|
self.__pinconfig = None
|
||
|
self.__dialconfig = None
|
||
|
self.__proxyconfigs = None
|
||
|
self.__phoneconfig = None
|
||
|
|
||
|
|
||
|
def __get_global_val(self, option):
|
||
|
return self.__cp.get('fetapd', option)
|
||
|
|
||
|
|
||
|
def __get_global_val_int(self, option):
|
||
|
return int(self.__cp.get('fetapd', option))
|
||
|
|
||
|
|
||
|
def __get_proxy_val(self, proxyname, option):
|
||
|
return self.__cp.get('proxy_'+proxyname, option)
|
||
|
|
||
|
|
||
|
def __get_proxy_val_int(self, proxyname, option):
|
||
|
return self.__cp.getint('proxy_'+proxyname, option)
|
||
|
|
||
|
|
||
|
def __read_shortcuts(self):
|
||
|
fname = self.__get_global_val('shortcuts_file')
|
||
|
shortcuts = {}
|
||
|
with open(fname, 'r') as csvfile:
|
||
|
for row in csv.DictReader(csvfile):
|
||
|
print 'row', row
|
||
|
shortcuts[row['shortcut']] = row['number']
|
||
|
return shortcuts
|
||
|
|
||
|
|
||
|
def read(self, f):
|
||
|
self.__cp.read(f)
|
||
|
|
||
|
print 'pin_nsa:', self.__get_global_val_int('pin_nsa'),
|
||
|
self.__pinconfig = tuitest.FeApPinConfiguration(
|
||
|
gpio_numbering = self.__get_global_val('gpio_numbering'),
|
||
|
pin_nsa = self.__get_global_val_int('pin_nsa'),
|
||
|
pin_nsi = self.__get_global_val_int('pin_nsi'),
|
||
|
pin_gabelschalter = self.__get_global_val_int('pin_gabelschalter'),
|
||
|
pin_schauzeichen = self.__get_global_val_int('pin_schauzeichen'),
|
||
|
pin_wecker_enable = self.__get_global_val_int('pin_wecker_enable'),
|
||
|
pin_wecker_a = self.__get_global_val_int('pin_wecker_a'),
|
||
|
pin_wecker_b = self.__get_global_val_int('pin_wecker_b')
|
||
|
)
|
||
|
|
||
|
self.__dialconfig = fetapdtest.DialConfiguration(
|
||
|
self.__get_global_val('dial_timeout'),
|
||
|
self.__read_shortcuts(),
|
||
|
)
|
||
|
|
||
|
proxyconfigs = []
|
||
|
for secname in self.__cp.sections():
|
||
|
if secname.startswith('proxy_'):
|
||
|
proxyname = secname[6:]
|
||
|
proxyconfig = phoneinterface.PhoneProxyConfiguration(
|
||
|
name = proxyname,
|
||
|
proxy = self.__get_proxy_val(proxyname, 'proxy'),
|
||
|
identity = self.__get_proxy_val(proxyname, 'identity'),
|
||
|
username = self.__get_proxy_val(proxyname, 'username'),
|
||
|
password = self.__get_proxy_val(proxyname, 'password'),
|
||
|
realm = self.__get_proxy_val(proxyname, 'realm'),
|
||
|
prefix = self.__get_proxy_val(proxyname, 'prefix')
|
||
|
)
|
||
|
proxyconfigs.append(proxyconfig)
|
||
|
|
||
|
self.__phoneconfig = phoneinterface.PhoneConfiguration(
|
||
|
sound_device = self.__get_global_val('sound_device'),
|
||
|
incoming_timeout = self.__get_global_val_int('incoming_timeout'),
|
||
|
linphone_config = self.__get_global_val('linphone_config'),
|
||
|
default_proxy = self.__get_global_val('default_proxy'),
|
||
|
stun_server = self.__get_global_val('stun_server'),
|
||
|
proxies = proxyconfigs
|
||
|
)
|
||
|
|
||
|
|
||
|
@property
|
||
|
def pinconfig(self):
|
||
|
return self.__pinconfig
|
||
|
|
||
|
|
||
|
@property
|
||
|
def dialconfig(self):
|
||
|
return self.__dialconfig
|
||
|
|
||
|
|
||
|
@property
|
||
|
def phoneconfig(self):
|
||
|
return self.__phoneconfig
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|