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()