#file: vdcisetting.py
import config, os
from roxiadebug import *
#Roxia Begin jhbang 06.04.07
#vdci_comment = {}
#Roxia End jhbang
class VdciSetting:
def __init__(self):
self.display_name = ''
self.auth_name = ''
self.auth_pwd = ''
# self.register_port = '5060'
self.audio_port = '50000'
self.video_port = '51000'
self.local_port = '5060'
self.expires = '3600'
self.subscriber_expires = '3600'
self.vms_server = '218.155.234.151'
self.domain = 'ktann.com'
self.mtu = '1450'
self.dtmf_duration = 100
self.debug_level = 0
self.ip_mode = 1
self.ctbw = '448'
self.tel_num = ''
self.nat_timer = 0
#default codec G.711u-law, G.711a-law,G.729,G.723,AMR
self.audio_codec = '12:1:0:3:11:11'
self.video_codec = '10:7:14:11:11:11'
self.proxy_addr = '125.146.0.208'
self.proxy_port = '5080'
self.backup_proxy_addr = '125.146.0.144'
self.backup_proxy_port = '5080'
self.primary_sbc_addr = '125.146.2.6'
self.primary_sbc_port = '5080'
self.secondary_sbc_addr = '125.146.2.7'
self.secondary_sbc_port = '5080'
self.sip_uri = ''
# shchun add : upon vdci.cfg requirement.
self.reg_url_mode = 0
self.premium_ip=1
self.sms_server='ismc.ann.com'
self.sms_port='5050'
#MMW auto provision 2008.12.23
# '0' udp, '1' tcp
self.transport_mode='0'
def set_sip_transport(self, value):
self.transport_mode = value
self.save()
def set_sip_uri(self, value):
self.sip_uri = value
self.save()
def set_ip_mode(self, value):
self.ip_mode = value
self.save()
def set_tel_num(self, value):
self.tel_num = value
self.save()
def set_display_name(self, value):
self.display_name = value
self.save()
def set_auth_name(self, value):
self.auth_name = value
self.save()
def set_auth_pwd(self, value):
self.auth_pwd = value
self.save()
def set_proxy_addr(self, value):
self.proxy_addr = value
self.save()
def set_proxy_port(self, value):
self.proxy_port = value
self.save()
def set_backup_proxy_addr(self, value):
self.backup_proxy_addr = value
self.save()
def set_backup_proxy_port(self, value):
self.backup_proxy_port = value
self.save()
def set_primary_sbc_addr(self, value):
self.primary_sbc_addr = value
self.save()
def set_primary_sbc_port(self, value):
self.primary_sbc_port = value
self.save()
def set_secondary_sbc_addr(self, value):
self.secondary_sbc_addr = value
self.save()
def set_secondary_sbc_port(self, value):
self.secondary_sbc_port = value
self.save()
def set_register_port(self, value):
self.register_port = value
self.save()
def set_audio_port(self, value):
self.audio_port = value
self.save()
def set_video_port(self, value):
self.video_port = value
self.save()
def set_local_port(self, value):
self.local_port = value
self.save()
def set_expires(self, value):
self.expires = value
self.save()
# KA: [20070102] TI IMS subscriber expires
def set_subscriber_expires(self, value):
self.subscriber_expires = value
self.save()
# KA: [20070102] TI IMS subscriber expires
#ka...hidden menu 2006.11.02
def set_pstn_domain(self, value):
self.pstn_domain = value
self.save()
def set_domain(self, value):
self.domain = value
self.save()
# KA: [20071006] TI IMS Codec Priority
def set_audio_codec(self, value):
if self.audio_codec == value:
return False
self.audio_codec = value
self.start_transaction()
self.save()
def set_video_codec(self, value):
if self.video_codec == value:
return False
self.video_codec = value
self.start_transaction()
self.save()
# KA: [20071006] TI IMS Codec Priority ==
def start_transaction(self):
try:
import shutil
if not os.access(config.vdcisetting_file_4rollback, os.R_OK):
shutil.copyfile(config.vdcisetting_file, config.vdcisetting_file_4rollback)
except:
pass
# start shchun : sync
os.system('sync')
os.system('sync')
os.system('sync')
# end shchun
def end_transaction(self):
print '#### END_TRANSACTION ####'
try:
os.remove(config.vdcisetting_file_4rollback)
except:
pass
os.system('sync')
os.system('sync')
os.system('sync')
# KA: [20071013] TI IMS setting ==
def set_mtu(self, value):
self.mtu = value
self.save()
def set_ctbw(self, value):
self.ctbw = value
self.save()
def set_vms_server(self, value):
self.vms_server = value
self.save()
def set_itsp(self, value):
self.itsp_support = value
self.save()
def set_nat_timer(self, value):
self.nat_timer = value
self.save()
def reset(self):
self.__init__()
self.save(True)
def save(self, reset=False):
#Roxia Begin jhbang 06.04.07
#global vdci_comment
#Roxia End jhbang
from profile import profile
name = config.vdcisetting_file
fp = open(name, 'w')
for key, value in self.__dict__.items():
if key[0] != '_' and (type(value) in (type(''), type(0))):
#Roxia Begin jhbang 06.04.07
# ctbw,proxy_addr,tel_num 주석처리하지 않음
fp.write("%s=%s\n" % (key.upper(), value))
## ctbw, proxy_addr, tel_num comment...
#if key == 'ctbw' or key == 'proxy_addr' or key == 'tel_num':
# if profile.get_profile() == 0 or reset == True:
# fp.write("#%s=%s\n" % (key.upper(), value))
# else:
# fp.write("%s=%s\n" % (key.upper(), value))
#else:
# if vdci_comment.get(key, False) == True:
# fp.write("#%s=%s\n" % (key.upper(), value))
# else:
# fp.write("%s=%s\n" % (key.upper(), value))
#Roxia End jhbang
return False
def load(self):
#Roxia Begin jhbang 06.04.07
#global vdci_comment
#Roxia End jhbang
roxia_trace('vdci setting loading..')
name = config.vdcisetting_file
g = self.__dict__
if os.path.exists(name):
for line in file(name):
line = line.strip()
if not line:
continue
#Roxia Begin jhbang 06.04.07
if line[0] == '#':
line = line[1:]
key, value = line.split('=', 1)
#if line[0] == '#':
# comment = True
# linestr = line[1:]
#else:
# comment = False
# linestr = line
#key, value = linestr.split('=', 1)
#vdci_comment[key.lower()] = comment
#Roxia End jhbang
key = key.lower()
g[key] = value
vdci_setting = VdciSetting()
#try:
vdci_setting.load()
#except:
# TODO: 에러처리
# file not found, open error, etc, ...
# roxia_trace('vdci setting load FAILED!!!!')