from basemodel import Stage, ListStage, YesNoStage, EntryStage, EntryNumberStage, \
PINInputStage, NotifyStage
from model import StartCallnotPrefixStage
import runtime, config, uiconfig, ui, time
import status
from setting import setting
import os
dspg = runtime.dspg
class InfoProGenPub(StartCallnotPrefixStage):
number = '1004'
service_name = _('Information professionals and general public')
class BreakAtt(StartCallnotPrefixStage):
number = '1002'
service_name = _('Breakdown attention')
class Universal(StartCallnotPrefixStage):
number = '11818'
service_name = _('National information (universal service)')
class AddedVal(StartCallnotPrefixStage):
number = '11822'
service_name = _('National information added value')
class InternationInfo(StartCallnotPrefixStage):
number = '11825'
service_name = _('International information')
class TimeInfo(StartCallnotPrefixStage):
number = '093'
service_name = _('Time information')
class NewsRadio(StartCallnotPrefixStage):
number = '095'
service_name = _('News Radio Nacional de Espana')
class Wakeup(StartCallnotPrefixStage):
number = '096'
service_name = _('Wake-up service')
class SportInfo(StartCallnotPrefixStage):
number = '097'
service_name = _('Sport information')
class GenInfo(StartCallnotPrefixStage):
number = '098'
service_name = _('General information')
class SpeedDial8SettingStage(EntryStage):
name = 'SpeedDial8Setting'
title = _('SPEED DIAL 8 SETTING')
def __init__(self):
EntryStage.__init__(self, _('Speed dial (2~9)'), title=self.title, left=_('OK'), right=_('BACK'))
self.ui.set_max(1)
self.ui.set_fixed_automata('123', False)
def activate_stage(self, focus):
if len(focus) == 0:
runtime.manager.stack_stage(NumberEntryNotifyStage( _('No number inserted') ) )
elif focus == '*' or focus == '#':
runtime.manager.stack_stage(NumberEntryNotifyStage( _('Invalid entry') ) )
elif int(focus) < 2:
runtime.manager.stack_stage(NumberEntryNotifyStage( _('Out of range') ) )
else:
runtime.manager.stack_stage(SpeedDial8SetStage(focus))
def handle_key(self, key):
if not self.ui.get_text():
if key == 'Up':
stage = self.activate_stage(0);
runtime.manager.change_stage(stage)
return True
elif key == 'Down':
stage = self.activate_stage(-1);
runtime.manager.change_stage(stage)
return True
return EntryStage.handle_key(self, key)
def activate_menu1(self):
text = self.ui.get_text()
self.activate_stage(text)
def activate_menu2(self):
runtime.manager.back_stage()
class SpeedDial8SetStage(EntryStage):
name = 'SpeedDial8Set'
title = _('SPEED DIAL 8 SETTING')
def __init__(self, speed_dial):
EntryStage.__init__(self, _('Number'), title=self.title, left=_('OK'), right=_('BACK'))
#ka...3800 2007.06.07
self.ui.set_max(config.max_phone_number-5)
self.ui.set_fixed_automata('123', False)
self.speed_dial = speed_dial
def activate_stage(self, focus):
if len(focus) == 0:
runtime.manager.stack_stage(NumberEntryNotifyStage( _('No number inserted') ) )
else:
#eicho modify 06.04.11
#FAC = config.FAC_SPEED_DIAL_8 + self.speed_dial + '*' + focus + '#'
FAC = config.FAC_SPEED_DIAL_8_SET + self.speed_dial + focus
status.service_name = _('Speed dial 8: set') + ' ' + self.speed_dial
runtime.manager.start_call(FAC)
def handle_key(self, key):
if not self.ui.get_text():
if key == 'Up':
stage = self.activate_stage(0);
runtime.manager.change_stage(stage)
return True
elif key == 'Down':
stage = self.activate_stage(-1);
runtime.manager.change_stage(stage)
return True
return EntryStage.handle_key(self, key)
def activate_menu1(self):
text = self.ui.get_text()
self.activate_stage(text)
def activate_menu2(self):
runtime.manager.back_stage()
class SpeedDial8Stage(EntryStage):
name = 'SpeedDial8'
title = _('SPEED DIAL 8')
def __init__(self):
EntryStage.__init__(self, _('Speed dial (2~9)'), title=self.title, left=_('OK'), right=_('BACK'))
self.ui.set_max(1)
self.ui.set_fixed_automata('123','lower')
def activate_stage(self, focus):
if len(focus) == 0:
runtime.manager.stack_stage(NumberEntryNotifyStage( _('No number inserted') ) )
elif focus == '*' or focus == '#':
runtime.manager.stack_stage(NumberEntryNotifyStage( _('Invalid entry') ) )
elif int(focus) < 2:
runtime.manager.stack_stage(NumberEntryNotifyStage( _('Out of range') ) )
else:
FAC = focus
status.service_name = _('Speed dial 8') + ':' + focus
runtime.manager.start_call(FAC)
def handle_key(self, key):
if not self.ui.get_text():
if key == 'Up':
stage = self.activate_stage(0);
runtime.manager.change_stage(stage)
return True
elif key == 'Down':
stage = self.activate_stage(-1);
runtime.manager.change_stage(stage)
return True
return EntryStage.handle_key(self, key)
def activate_menu1(self):
text = self.ui.get_text()
self.activate_stage(text)
def activate_menu2(self):
runtime.manager.back_stage()
class CallerIDBlockingStage(EntryStage):
name = 'CallerIDBlocking'
title = _('CALLER ID BLOCKING PER CALL')
def __init__(self):
EntryStage.__init__(self, _('Number'), title=self.title, left=_('OK'), right=_('BACK'))
#ka...slim phone number총길이는 50 (067+47) 2007.05.17
self.ui.set_max(config.max_phone_number-5)
self.ui.set_fixed_automata('123', False)
def activate_stage(self, focus):
if len(focus) == 0:
runtime.manager.stack_stage(NumberEntryNotifyStage( _('No number inserted') ) )
else:
FAC = config.FAC_CALLER_ID_BLOCKING_PER_CALL + focus
status.service_name = _('Caller ID blocking:') +focus
runtime.manager.start_call(FAC)
def handle_key(self, key):
if not self.ui.get_text():
if key == 'Up':
stage = self.activate_stage(0);
runtime.manager.change_stage(stage)
return True
elif key == 'Down':
stage = self.activate_stage(-1);
runtime.manager.change_stage(stage)
return True
return EntryStage.handle_key(self, key)
def activate_menu1(self):
text = self.ui.get_text()
self.activate_stage(text)
def activate_menu2(self):
runtime.manager.back_stage()
class CallerIDUnblockingStage(EntryStage):
name = 'CallerIDUnblocking'
title = _('CALLER ID DELIVERY PER CALL')
def __init__(self):
EntryStage.__init__(self, _('Number'), title=self.title, left=_('OK'), right=_('BACK'))
#ka...slim phone number총길이는 50 (067+47) 2007.05.17
self.ui.set_max(config.max_phone_number-5)
self.ui.set_fixed_automata('123', False)
def activate_stage(self, focus):
if len(focus) == 0:
runtime.manager.stack_stage(NumberEntryNotifyStage( _('No number inserted') ) )
else:
FAC = config.FAC_CALLER_ID_UNBLOCKING_PER_CALL + focus
status.service_name = _('Caller ID delivery:') +focus
runtime.manager.start_call(FAC)
def handle_key(self, key):
if not self.ui.get_text():
if key == 'Up':
stage = self.activate_stage(0);
runtime.manager.change_stage(stage)
return True
elif key == 'Down':
stage = self.activate_stage(-1);
runtime.manager.change_stage(stage)
return True
return EntryStage.handle_key(self, key)
def activate_menu1(self):
text = self.ui.get_text()
self.activate_stage(text)
def activate_menu2(self):
runtime.manager.back_stage()
class DoNotDisturbStage(ListStage):
name = 'DoNotDisturb'
icon = uiconfig.voip_icon
def __init__(self):
self.title = _('DO NOT DISTURB')
self.choice = _('Enable'), _('Disable')
ListStage.__init__(self, choice=self.choice, title=self.title)
def activate(self, index):
import profile
if profile.ip_mode == 0: # PSTN
FAC = (config.FAC_DO_NOT_DISTURB_PSTN_ENABLE, config.FAC_DO_NOT_DISTURB_PSTN_DISABLE)[index]
else: # IP mode
FAC = (config.FAC_DO_NOT_DISTURB_ENABLE, config.FAC_DO_NOT_DISTURB_DISABLE)[index]
status.service_name = (_('Do not disturb: Enable'), _('Do not disturb: Disable') )[index]
#runtime.manager.start_call(FAC, notPrefix=True)
# eicho add 06.10.12
runtime.manager.start_call(FAC, notPrefix=True, supplementary=True)
# KA: [20071030] KT DEMO
class PrePayStage(EntryNumberStage):
name = 'Pre-Pay'
title = _('PRE-PAY')
def __init__(self):
EntryNumberStage.__init__(self, _('Card')+ ' ' +_('Number'), title=self.title, left=_('OK'), right=_('BACK'), org_stage=0)
#ka...3800 2007.06.07
self.ui.set_max(config.max_phone_number-5)
self.ui.set_fixed_automata('123', False)
#ka...added 2006.10.12
def set_text(self, text):
self.ui.set_text(text)
#self.update_left()
def handle_key(self, key):
return EntryNumberStage.handle_key(self, key)
def activate_menu1(self):
card_number = self.ui.get_text()
if len(card_number) == 0:
runtime.manager.stack_stage(NumberEntryNotifyStage(_('No number inserted')))
else:
runtime.manager.stack_stage(PrePayStageNumberEditStage(card_number))
def activate_menu2(self):
runtime.manager.back_stage()
class PrePayStageNumberEditStage(EntryNumberStage):
name = 'PrePayStageNumberEdit'
title = _('PRE-PAY')
def __init__(self, card_number):
self.card_number = card_number
EntryNumberStage.__init__(self, _('Number'), title=self.title, left=_('OK'), right=_('PHONEBOOK'), org_stage=0)
#ka...3800 2007.06.07
self.ui.set_max(config.max_phone_number-5)
self.ui.set_fixed_automata('123', False, right_field='PHONEBOOK')
def activate_stage(self, number):
if len(number) == 0:
runtime.manager.stack_stage(NumberEntryNotifyStage(_('No number inserted')))
else:
FAC = config.FAC_PRE_PAY_CARD + self.card_number + '#' + number + '#'
status.service_name = _('Pre-pay service')
runtime.manager.start_call(FAC, notPrefix=True, supplementary=True)
#ka...added 2006.10.12
def set_text(self, text):
self.ui.set_text(text)
#self.update_left()
def handle_key(self, key):
return EntryNumberStage.handle_key(self, key)
def activate_menu1(self):
text = self.ui.get_text()
self.activate_stage(text)
def activate_menu2(self):
runtime.manager.back_stage()
class AutoAnswerStage(ListStage):
name = 'AutoAnswer'
icon = uiconfig.voip_icon
def __init__(self):
self.title = _('AUTO ANSWER')
self.choice = _('Basic'), _('SMS enable'), _('SMS disable')
ListStage.__init__(self, choice=self.choice, title=self.title)
def activate(self, index):
if index == 0:
FAC = config.FAC_AUTO_ANSWER_BASIC
status.service_name = _('Auto answer: Basic')
elif index ==1:
runtime.manager.stack_stage(AutoAnswerNumberEditStage)
else:
FAC = config.FAC_AUTO_ANSWER_SMS_DISABLE
status.service_name = _('Auto answer: Cancel receiving SMS')
runtime.manager.start_call(FAC, notPrefix=True, supplementary=True)
class AutoAnswerNumberEditStage(EntryNumberStage):
name = 'AutoAnswerNumberEdit'
title = _('AUTO ANSWER')
def __init__(self):
EntryNumberStage.__init__(self, _('SMS receiving')+' '+_('Number'), title=self.title, left=_('OK'), right=_('PHONEBOOK'), org_stage=0)
#ka...3800 2007.06.07
self.ui.set_max(config.max_phone_number-5)
self.ui.set_fixed_automata('123', False, right_field='PHONEBOOK')
def activate_stage(self, focus):
if len(focus) == 0:
runtime.manager.stack_stage(NumberEntryNotifyStage(_('No number inserted')))
else:
FAC = config.FAC_AUTO_ANSWER_SMS_ENABLE + focus + '*'
status.service_name = _('Auto answer: Receiving SMS')
runtime.manager.start_call(FAC, notPrefix=True, supplementary=True)
#ka...added 2006.10.12
def set_text(self, text):
self.ui.set_text(text)
#self.update_left()
def handle_key(self, key):
return EntryNumberStage.handle_key(self, key)
def activate_menu1(self):
text = self.ui.get_text()
self.activate_stage(text)
def activate_menu2(self):
runtime.manager.back_stage()
class CallForwardingStage(ListStage):
name = 'CallForwarding'
icon = uiconfig.voip_icon
def __init__(self):
self.title = _('CALL FORWARDING')
self.choice = _('Always'), _('Busy /No answer')
ListStage.__init__(self, choice=self.choice, title=self.title)
def activate(self, index):
runtime.manager.stack_stage(CallForwardingChangeStage(index))
class CallForwardingChangeStage(ListStage):
name = 'CallForwardingChange'
icon = uiconfig.voip_icon
def __init__(self, selected_option):
self.title = _('CALL FORWARDING')
self.choice = _('Enable'), _('Disable'), _('confirm')
self.selected_option = selected_option
ListStage.__init__(self, choice=self.choice, title=self.title)
# hcryoo : [20071107_1] : 영상 기본 부가 서비스를 위한 영상 서비스 설정
status.in_service = True
# hcryoo : [20071107_1] : 영상 기본 부가 서비스를 위한 영상 서비스 설정==
def activate(self, index):
if index == 0: # enable
runtime.manager.stack_stage(CallForwardingNumberEditStage(self.selected_option, index))
elif index ==1:
if self.selected_option == 0:
FAC = config.FAC_CALL_FORWARDING_ALWAYS_DISABLE
status.service_name = _('Call forwarding: Disable (Always)')
elif self.selected_option == 1:
FAC = config.FAC_CALL_FORWARDING_BUSY_DISABLE
status.service_name = _('Call forwarding: Disable (Busy/No answer)')
# else: # self.selected_option == 2
# FAC = config.FAC_CALL_FORWARDING_NO_ANSWER_DISABLE
# status.service_name = _('Call forwarding: Disable (No answer)')
else:
if self.selected_option == 0:
FAC = config.FAC_CALL_FORWARDING_ALWAYS_CONFIRM
status.service_name = _('Call forwarding: Confirm (Always)')
elif self.selected_option == 1:
FAC = config.FAC_CALL_FORWARDING_BUSY_CONFIRM
status.service_name = _('Call forwarding: Confirm (Busy/No answer)')
# eicho add 06.10.12
# hcryoo : [20071107_1] : 영상 기본 부가 서비스를 위한 영상 서비스 모드 지정
runtime.manager.start_call(FAC, video_call=True, notPrefix=True, supplementary=True)
# hcryoo : [20071107_1] : 영상 기본 부가 서비스를 위한 영상 서비스 모드 지정==
class CallForwardingNumberEditStage(EntryNumberStage):
name = 'CallForwardingNumberEdit'
title = _('CALL FORWARDING')
def __init__(self, selected_option, disable):
self.selected_option = selected_option
self.disable = disable
EntryNumberStage.__init__(self, _('Forwaring')+' '+_('Number'), title=self.title, left=_('OK'), right=_('PHONEBOOK'), org_stage=0)
#ka...3800 2007.06.07
self.ui.set_max(config.max_phone_number-5)
self.ui.set_fixed_automata('123', False, right_field='PHONEBOOK')
def activate_stage(self, focus):
if len(focus) == 0:
runtime.manager.stack_stage(NumberEntryNotifyStage(_('No number inserted')))
else:
if self.selected_option == 0:
if self.disable:
FAC = config.FAC_CALL_FORWARDING_ALWAYS_DISABLE
status.service_name = _('Call forwarding: Disable (Always)')
else:
FAC = config.FAC_CALL_FORWARDING_ALWAYS_ENABLE + focus + '*'
status.service_name = _('Call forwarding: Enable (Always)')
elif self.selected_option == 1:
if self.disable:
FAC = config.FAC_CALL_FORWARDING_BUSY_DISABLE
status.service_name = _('Call forwarding: Disable (Busy/No answer)')
else:
FAC = config.FAC_CALL_FORWARDING_BUSY_ENABLE + focus + '*'
status.service_name = _('Call forwarding: Enable (Busy/No answer)')
# else: # self.selected_option == 2
# if self.disable:
# FAC = config.FAC_CALL_FORWARDING_NO_ANSWER_DISABLE
# status.service_name = _('Call forwarding: Disable (No answer)')
# else:
# FAC = config.FAC_CALL_FORWARDING_NO_ANSWER_ENABLE + focus + '#'
# status.service_name = _('Call forwarding: Enable (No answer)')
# eicho add 06.10.12
runtime.manager.start_call(FAC, notPrefix=True, supplementary=True)
#ka...added 2006.10.12
def set_text(self, text):
self.ui.set_text(text)
#self.update_left()
def handle_key(self, key):
return EntryNumberStage.handle_key(self, key)
def activate_menu1(self):
text = self.ui.get_text()
self.activate_stage(text)
def activate_menu2(self):
runtime.manager.back_stage()
class NumberEntryNotifyStage(NotifyStage):
def __init__(self, message,cb=None):
icon = uiconfig.baloon_message_voip_icon
NotifyStage.__init__(self, message, icon, cb)
class MWINotifyStage(Stage):
def __init__(self):
status.mwi_notification_window = 0
self.ui = ui.MWINotificationUI(status.mwi_normal_new, status.mwi_normal_old, status.mwi_urgent_new, status.mwi_urgent_old)
def handle_key(self, key):
if key == config.Menu1:
status.service_name = _('Access to automatic answering device')
runtime.manager.start_call(config.FAC_ACCESS_TO_AUTOMATIC_ANSWERING_DEVICE)
elif key == config.Menu2:
if runtime.manager.stage.get_name() == 'AudioCallTerminated':
runtime.manager.change_stage(IdleStage, True)
else:
runtime.manager.back_stage()
elif key == config.Red:
if runtime.manager.stage.get_name() == 'AudioCallTerminated':
runtime.manager.change_stage(IdleStage, True)
else:
runtime.manager.back_stage()
return
def destroy(self):
Stage.destroy(self)
# all classes related to supervision are moved from menu.py
class VideoSupervisionPINCheckStage(PINInputStage):
def __init__(self):
PINInputStage.__init__(self, _('PIN')+':', _('VIDEO SUPERVISION'), _('Insert PIN'))
def activate(self, pin):
if setting.pin == pin:
stage = VideoSupervisionOptionStage
runtime.manager.change_stage(stage)
else:
self.ui.pin = ''
self.ui.update()
stage = NotifyStage(_('Wrong PIN'), uiconfig.baloon_TdE_video_supervision_icon)
runtime.manager.stack_stage(stage)
class VideoSupervisionOptionStage(ListStage):
name = 'VideoSupervisionOption'
icon = uiconfig.TdE_video_supervision_icon
def __init__(self):
self.title = _('VIDEO SUPERVISION')
self.choice = _('Disable'), _('Number')
ListStage.__init__(self)
def show(self):
if setting.video_supervision_enable:
choice = (_('Disable'), _('Number'))
else:
choice = (_('Enable'), _('Number'))
self.change_choice(choice)
ListStage.show(self)
def activate(self, index):
if index == 0:
if setting.video_supervision_enable:
stage = YesNoStage(_('Video supervision enabled.')+'\n'+_('Disable?'), self.disabled_cb, self.no_cb, '', uiconfig.baloon_TdE_video_supervision_icon)
runtime.manager.stack_stage(stage)
else:
runtime.manager.stack_stage(YesNoStage(_('Video supervision disabled.')+'\n'+_('Enable?'), self.enabled_cb, self.no_cb, '', uiconfig.baloon_TdE_video_supervision_icon))
else:
runtime.manager.stack_stage(VideoSupervisionNumberListStage)
def no_cb(self):
runtime.manager.back_stage()
def disabled_cb(self):
setting.video_supervision_enable = 0
runtime.manager.change_stage(NotifyStage(_('Video supervision disabled.'),uiconfig.baloon_TdE_video_supervision_icon))
def enabled_cb(self):
setting.video_supervision_enable = 1
runtime.manager.change_stage(NotifyStage(_('Video supervision enabled.'), uiconfig.baloon_TdE_video_supervision_icon))
class VideoSupervisionNumberListStage(ListStage):
name = 'VideoSupervisionNumberList'
def __init__(self):
self.title = _('VIDEO SUPERVISION')
self.choice = [_('Number') + ' 1', _('Number') + ' 2', _('Number') + ' 3']
i = 0
for k in setting.supervision_number:
if k != '':
self.choice[i] = setting.supervision_number[i]
i+=1
icon = uiconfig.TdE_video_supervision_icon
ListStage.__init__(self, self.choice)
def activate(self, index):
runtime.manager.stack_stage(VideoSupervisionNumberEditStage(index))
def update(self):
i = 0
for k in setting.supervision_number:
if k == '':
self.choice[i] = _('Number') + ' '+ str(i+1)
else:
self.choice[i] = setting.supervision_number[i]
i+=1
self.change_choice(self.choice)
class VideoSupervisionNumberEditStage(EntryStage):
title = _('VIDEO SUPERVISION')
def __init__(self, index):
self.index = index
EntryStage.__init__(self, _('Number')+' '+str(self.index+1), self.title)
self.ui.insert_text(setting.supervision_number[self.index])
self.ui.set_fixed_automata('123', False)
self.ui.set_max(config.max_phone_number)
def activate_menu1(self):
setting.supervision_number[self.index] = self.ui.get_text()
setting.save()
runtime.manager.back_stage()
runtime.manager.stage.update()
runtime.manager.stage.show()
class SupervisionConnectedStage(Stage):
name = 'SupervisionConnected'
#pid = None
def __init__(self, current_stage_name, current_ui):
if current_stage_name == 'idle':
status.supervision_idle = 1
status.dialed_by_user = False
self.ui = current_ui
runtime.manager.set_videocall_mode(status.VideoCallConnected)
status.set_video_mode(status.VideoConnected)
status.waiting = 0
status.business_option_status = status.NotSelected
status.business_call_status = status.OneCallConnected
status.phone_status = status.VoiceConnected # vpark 09.26
#ka...Slim screen saver 동작중 Supervision와도 No change 2007.05.15
# setting.reset_screen_saver_timer() #(temporarily to turn off screen saver -LCD turns on when TUP loading)
# status.screensaver_activated = False # (temporarily to turn off screen saver -LCD turns on when TUP loading)
status.save_current_call_status()
os.system('fb0top 1')
os.system('fb0top 1')
self.invite_request()
def invite_request(self):
status.set_modem_audio_state(status.SPK)
runtime.dspg.set_state(runtime.dspg.ST_V_SPK_OFFHK)
#ka...3800 2007.06.06 Supervion시 Speaket MUTE
setting.set_volume(0) # set speaker mute
# eicho add 06.11.16 as Nortel's solution.
import time
time.sleep(3)
# end.
runtime.vdci_send_mesg(code1=config.MESG_INCOMING_CALL,
code2=config.MESG_CALL_ACCEPT, mesg1=config.SUPERVISION_CALL)
def invite_sucessed(self):
status.supervision_call_on = 1
# hcryoo : [20070613_1] open remote quickly
import utils
#self.iframe_timer = utils.Timer(1000, self.send_iframe)
#self.iframe_repeat = 3
# hcryoo : [20070613_1] open remote quickly==
# hcryoo : [20070613_1] open remote quickly
def send_iframe(self):
runtime.vdci_send_mesg(code1=config.MESG_SET_PARAMS, \
code2=config.MESG_GET_INFO)
if self.iframe_repeat > 0:
self.iframe_repeat = self.iframe_repeat - 1
return True
self.iframe_timer = None
return False
# hcryoo : [20070613_1] open remote quickly==
def handle_key(self, key):
runtime.vdci_send_mesg(code1=config.MESG_HANGUP)
self.end_supervision()
runtime.manager.handle_key(True, key)
return True
def end_supervision(self):
time.sleep(1) # since tup is not down yet, audio device is open, and if the green key is pressed, no dial tone.
# hcryoo : [20070613_1] open remote quickly
self.iframe_timer = None
# hcryoo : [20070613_1] open remote quickly==
status.supervision_call_on = 0
status.supervision_idle = 0
runtime.manager.set_videocall_mode(status.VideoCallDisconnected)
status.release_channel()
status.clear_current_call_status()
status.reset_call_status()
status.waiting = 0
status.business_option_status = status.NotSelected
status.business_call_status == status.OneCallConnected
status.phone_status = status.Disconnected
runtime.manager.back_stage()
setting.set_volume(setting.speaker_volume)
status.set_modem_audio_state(status.IDLE)
runtime.dspg.set_state(runtime.dspg.ST_IDLE)
#ka...Slim screen saver 동작중 Supervision와도 No change 2007.05.15
# status.not_screen_saver = False
# setting.reset_screen_saver_timer()
status.screensaver_activated = False
def release_supervision(self):
time.sleep(1) # since tup is not down yet, audio device is open, and if the green key is pressed, no dial tone.
# hcryoo : [20070613_1] open remote quickly
self.iframe_timer = None
# hcryoo : [20070613_1] open remote quickly==
status.supervision_call_on = 0
status.supervision_idle = 0
runtime.manager.set_videocall_mode(status.VideoCallDisconnected)
status.release_channel()
status.clear_current_call_status()
status.reset_call_status()
status.waiting = 0
status.business_option_status = status.NotSelected
status.business_call_status == status.OneCallConnected
status.phone_status = status.Disconnected
setting.set_volume(setting.speaker_volume)
status.set_modem_audio_state(status.IDLE)
runtime.dspg.set_state(runtime.dspg.ST_IDLE)
status.not_screen_saver = False
setting.reset_screen_saver_timer()
status.screensaver_activated = False
def handle_mwi_waiting(self):
self.ui.set_mwi_waiting(setting.mwi_waiting)
def handle_msg_waiting(self):
self.ui.set_msg_waiting(setting.msg_waiting)
def hide(self):
#runtime.day.hide()
Stage.hide(self)
def show(self):
'''
if not runtime.timer.hidden:
runtime.day.show()
'''
Stage.show(self)
def destroy(self):
# UI should not be destroyed.
pass
class NetworkVoiceMailStage(ListStage):
name = 'NetworkVoiceMail'
icon = uiconfig.voip_icon
def __init__(self):
self.title = _('NETWORK VOICE MAIL')
self.choice = _('Enable'), _('Disable'), _('Access'), _('Clear icon')
ListStage.__init__(self, choice=self.choice, title=self.title)
def activate(self, index):
if index == 3:
#ka...voice mail icon
stage = YesNoStage(_('Do you want remove voice mail icon?'), self.yes_cb, self.no_cb, '', uiconfig.baloon_message_voip_icon)
runtime.manager.stack_stage(stage)
return True
FAC = (config.FAC_NETWORK_VOICEMAIL_ENABLE, config.FAC_NETWORK_VOICEMAIL_DISABLE, config.FAC_NETWORK_VOICEMAIL_ACCESS)[index]
status.service_name = (_('Network voice mail: Enable'), _('Network voice mail: Disable'), _('Network voice mail: Access') )[index]
# eicho add 06.10.12
runtime.manager.start_call(FAC, notPrefix=True, supplementary=True)
def no_cb(self):
runtime.manager.back_stage()
def yes_cb(self):
setting.msg_waiting = 0
runtime.manager.change_stage(NotifyStage(_('Voice mail icon cleared.'), uiconfig.baloon_message_voip_icon))
class HideIDStage(EntryNumberStage):
name = 'HideID'
title = _('HIDE ID')
def __init__(self):
EntryNumberStage.__init__(self, _('Number'), title=self.title, left=_('OK'), right=_('PHONEBOOK'), org_stage=1)
#ka...3800 2007.06.07
self.ui.set_max(config.max_phone_number-5)
self.ui.set_fixed_automata('123', False, right_field='PHONEBOOK')
def activate_stage(self, focus):
if len(focus) == 0:
runtime.manager.stack_stage(NumberEntryNotifyStage( _('No number inserted') ) )
else:
FAC = config.FAC_HIDE_ID_CODE + focus
status.service_name = _('Hide ID:') +focus
# eicho add 06.10.12
runtime.manager.start_call(FAC, notPrefix=True, supplementary=True)
def set_text(self, text):
self.ui.set_text(text)
def handle_key(self, key):
return EntryNumberStage.handle_key(self, key)
def activate_menu1(self):
text = self.ui.get_text()
self.activate_stage(text)
def activate_menu2(self):
runtime.manager.back_stage()
class RejectionNumberEditStage(EntryNumberStage):
name = 'SelectiveRejectionNumberEdit'
title = _('SELECTIVE REJECTION')
def __init__(self, disable):
self.disable = disable
EntryNumberStage.__init__(self, _('Number'), title=self.title, left=_('OK'), right=_('PHONEBOOK'), org_stage=2)
#ka...3800 2007.06.07
self.ui.set_max(config.max_phone_number-5)
self.ui.set_fixed_automata('123', False, right_field='PHONEBOOK')
def activate_stage(self, focus):
if len(focus) == 0:
runtime.manager.stack_stage(NumberEntryNotifyStage(_('No number inserted')))
else:
FAC = config.FAC_REJECT_SELECTIVE_REGISTER + focus + '#'
status.service_name = _('Selective rejection: Register') + ' (' + focus + ')'
# eicho add 06.10.12
runtime.manager.start_call(FAC, notPrefix=True, supplementary=True)
def set_text(self, text):
self.ui.set_text(text)
def handle_key(self, key):
return EntryNumberStage.handle_key(self, key)
def activate_menu1(self):
text = self.ui.get_text()
self.activate_stage(text)
def activate_menu2(self):
runtime.manager.back_stage()
class DeregisterRejectionNumberEditStage(EntryNumberStage):
name = 'DeregisterSelectiveRejectionNumberEdit'
title = _('SELECTIVE REJECTION')
def __init__(self, disable):
self.disable = disable
EntryNumberStage.__init__(self, _('Number'), title=self.title, left=_('OK'), right=_('PHONEBOOK'), org_stage=3)
#ka...3800 2007.06.07
self.ui.set_max(config.max_phone_number-5)
self.ui.set_fixed_automata('123', False, right_field='PHONEBOOK')
def activate_stage(self, focus):
if len(focus) == 0:
runtime.manager.stack_stage(NumberEntryNotifyStage(_('No number inserted')))
else:
FAC = config.FAC_REJECT_SELECTIVE_DEREGISTER + focus + '#'
status.service_name = _('Selective rejection: Deregister') + ' (' + focus + ')'
# eicho add 06.10.12
runtime.manager.start_call(FAC, notPrefix=True, supplementary=True)
def set_text(self, text):
self.ui.set_text(text)
def handle_key(self, key):
return EntryNumberStage.handle_key(self, key)
def activate_menu1(self):
text = self.ui.get_text()
self.activate_stage(text)
def activate_menu2(self):
runtime.manager.back_stage()
class RejectionCallStage(ListStage):
name = 'RejectionCall'
icon = uiconfig.voip_icon
def __init__(self, _type):
self.choice = _('Enable'), _('Disable')
self.type = _type
if _type == 0:
self.title = _('REJECTION ANONYMOUS')
elif _type == 1:
self.title = _('SELECTIVE REJECTION')
self.choice = _('Enable'), _('Disable'), _('Register number'), _('Deregister number')
ListStage.__init__(self, choice=self.choice, title=self.title)
def activate(self, index):
if self.type == 0:
FAC = (config.FAC_REJECT_ANONYMOUS_ENABLE, config.FAC_REJECT_ANONYMOUS_DISABLE)[index]
status.service_name = (_('Rejection of anonymous calls: Enable'), _('Rejection of anonymous calls: Disable') )[index]
# eicho add 06.10.12
runtime.manager.start_call(FAC, notPrefix=True, supplementary=True)
#runtime.manager.start_call(FAC, notPrefix=True)
elif self.type == 1:
if index == 2: # register number to be rejected
runtime.manager.stack_stage(RejectionNumberEditStage(index))
elif index == 3: # de-register number vpark 11.29
runtime.manager.stack_stage(DeregisterRejectionNumberEditStage(index))
else: # Selective rejection is enabled or disabled.
FAC = (config.FAC_REJECT_SELECTIVE_ENABLE, config.FAC_REJECT_SELECTIVE_DISABLE)[index]
status.service_name = (_('Selective rejection: Enable'), _('Selective rejection: Disable') )[index]
#runtime.manager.start_call(FAC, notPrefix=True)
# eicho add 06.10.12
runtime.manager.start_call(FAC, notPrefix=True, supplementary=True)
_stages = InfoProGenPub, BreakAtt, Universal, AddedVal, InternationInfo, TimeInfo, NewsRadio, Wakeup, SportInfo, GenInfo
def get_stage(index):
return _stages[index]