60 lines
1.8 KiB
Python
60 lines
1.8 KiB
Python
import time
|
|
from phoneinterface import PhoneInterface, PhoneEvent
|
|
from apparatinterface import FeApPinConfiguration, FeApUserInterface
|
|
import configreader
|
|
import statemachine
|
|
|
|
|
|
controller = None
|
|
|
|
def gabelschalter_cb(state):
|
|
if state == 1:
|
|
controller.queue_event('gabelschalter_up')
|
|
else:
|
|
controller.queue_event('gabelschalter_down')
|
|
|
|
def nummernschalter_active_cb():
|
|
controller.queue_event('nummernschalter_active')
|
|
|
|
def nummernschalter_done_cb(digit):
|
|
controller.queue_event('nummernschalter_input', digit)
|
|
|
|
def phone_cb(event):
|
|
if event == PhoneEvent.RegInProgress:
|
|
controller.queue_event('registration_in_progress')
|
|
elif event == PhoneEvent.RegSuccessfull:
|
|
controller.queue_event('registration_successful')
|
|
elif event == PhoneEvent.RegLost:
|
|
controller.queue_event('registration_lost')
|
|
elif event == PhoneEvent.CallIncoming:
|
|
controller.queue_event('incoming_call')
|
|
elif event == PhoneEvent.CallAccepted:
|
|
controller.queue_event('call_accepted')
|
|
elif event == PhoneEvent.CallEnded:
|
|
controller.queue_event('call_ended')
|
|
elif event == PhoneEvent.CallRinging:
|
|
controller.queue_event('call_ringing')
|
|
elif event == PhoneEvent.CallBusy:
|
|
controller.queue_event('call_ended')
|
|
elif event == PhoneEvent.CallInvalidNumber:
|
|
controller.queue_event('invalid_number')
|
|
|
|
if __name__ == '__main__':
|
|
cfg = configreader.ConfigurationReader()
|
|
cfg.read('fetap.ini')
|
|
|
|
phone = PhoneInterface(cfg.phoneconfig)
|
|
feap = FeApUserInterface(cfg.pinconfig)
|
|
controller = statemachine.StateMachineController(phone, feap, cfg.dialconfig)
|
|
|
|
phone.start()
|
|
try:
|
|
while True:
|
|
time.sleep(1)
|
|
|
|
except KeyboardInterrupt:
|
|
phone.stop()
|
|
feap.set_wecker(False)
|
|
c.stop()
|
|
|