added configuration file support
parent
4558c0f1b2
commit
37e5042808
@ -0,0 +1,120 @@
|
||||
|
||||
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
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,34 @@
|
||||
|
||||
[fetapd]
|
||||
|
||||
sound_device = default:CARD=Set
|
||||
|
||||
gpio_mode = 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
|
||||
|
||||
incoming_timeout = 60
|
||||
dial_timeout = 3
|
||||
|
||||
shortcuts_file = shortcuts.csv
|
||||
linphone_config = linphone.conf
|
||||
|
||||
default_proxy = eventphone
|
||||
|
||||
stun_server = sipgate.de
|
||||
|
||||
[proxy_eventphone]
|
||||
proxy = sip:hg.eventphone.de
|
||||
realm = hg.eventphone.de
|
||||
identity = sip:XXXX@hg.eventphone.de
|
||||
username = XXXX
|
||||
password = ***
|
||||
prefix = 1
|
||||
|
||||
|
||||
|
@ -0,0 +1,19 @@
|
||||
[sip]
|
||||
register_only_when_network_is_up=1
|
||||
root_ca=/etc/ssl/certs
|
||||
verify_server_certs=1
|
||||
verify_server_cn=1
|
||||
|
||||
[sound]
|
||||
playback_dev_id=ALSA: USB PnP Sound Device
|
||||
ringer_dev_id=ALSA: USB PnP Sound Device
|
||||
capture_dev_id=ALSA: USB PnP Sound Device
|
||||
playback_gain_db=0.000000
|
||||
mic_gain_db=0.000000
|
||||
|
||||
[net]
|
||||
adaptive_rate_control=1
|
||||
firewall_policy=2
|
||||
mtu=0
|
||||
download_bw=0
|
||||
upload_bw=0
|
@ -0,0 +1,2 @@
|
||||
shortcut,number
|
||||
0,3474
|
Loading…
Reference in New Issue