Fr3deric
10 years ago
7 changed files with 223 additions and 27 deletions
@ -0,0 +1,120 @@
@@ -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 @@
@@ -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 @@
@@ -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 |
Loading…
Reference in new issue