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