def __init__(self): self._app = SIPApplication() self._delegate = None self._selected_account = None self._version = None self.ip_address_monitor = IPAddressMonitor() self.bonjour_disabled_on_sleep = False self.bonjour_conference_services = BonjourConferenceServices() self.notification_center = NotificationCenter() self.notification_center.add_observer(self, sender=self._app) self.notification_center.add_observer(self, sender=self._app.engine) self.notification_center.add_observer( self, name='CFGSettingsObjectDidChange') self.notification_center.add_observer(self, name='SIPAccountDidActivate') self.notification_center.add_observer(self, name='SIPAccountDidDeactivate') self.notification_center.add_observer( self, name='SIPAccountRegistrationDidSucceed') self.notification_center.add_observer( self, name='SIPAccountRegistrationDidEnd') self.notification_center.add_observer( self, name='SIPAccountRegistrationDidFail') self.notification_center.add_observer( self, name='SIPAccountRegistrationGotAnswer') self.notification_center.add_observer( self, name='SIPAccountMWIDidGetSummary') self.notification_center.add_observer( self, name='XCAPManagerDidDiscoverServerCapabilities') self.notification_center.add_observer(self, name='SystemWillSleep') self.notification_center.add_observer(self, name='SystemDidWakeUpFromSleep')
def __init__(self): BlinkLogger().log_info("Using SIP SIMPLE client SDK version %s" % sdk_version) self._app = SIPApplication() self._delegate = None self._selected_account = None self.ip_address_monitor = IPAddressMonitor() self.bonjour_disabled_on_sleep = False self.bonjour_conference_services = BonjourConferenceServices() self.notification_center = NotificationCenter() self.notification_center.add_observer(self, sender=self._app) self.notification_center.add_observer(self, sender=self._app.engine) self.notification_center.add_observer(self, name='CFGSettingsObjectDidChange') self.notification_center.add_observer(self, name='SIPAccountDidActivate') self.notification_center.add_observer(self, name='SIPAccountDidDeactivate') self.notification_center.add_observer(self, name='SIPAccountRegistrationDidSucceed') self.notification_center.add_observer(self, name='SIPAccountRegistrationDidEnd') self.notification_center.add_observer(self, name='SIPAccountGotMessageSummary') self.notification_center.add_observer(self, name='XCAPManagerDidDiscoverServerCapabilities') self.notification_center.add_observer(self, name='XCAPManagerClientError') self.notification_center.add_observer(self, name='SystemWillSleep') self.notification_center.add_observer(self, name='SystemDidWakeUpFromSleep') self.notification_center.add_observer(self, name='SIPEngineGotException') self.registrar_addresses = {} self.contact_addresses = {}
def __init__(self): self.application = SIPApplication() self.xcap_manager = None self.quit_event = Event() notification_center = NotificationCenter() notification_center.add_observer(self, sender=self.application)
def __init__(self): super(Blink, self).__init__(sys.argv) self.setAttribute(Qt.AA_DontShowIconsInMenus, False) self.sip_application = SIPApplication() self.first_run = False self.setOrganizationDomain("ag-projects.com") self.setOrganizationName("AG Projects") self.setApplicationName("Blink") self.setApplicationVersion(__version__) self.main_window = MainWindow() self.chat_window = ChatWindow() self.main_window.__closed__ = True self.chat_window.__closed__ = True self.main_window.installEventFilter(self) self.chat_window.installEventFilter(self) self.main_window.addAction(self.chat_window.control_button.actions.main_window) self.chat_window.addAction(self.main_window.quit_action) self.chat_window.addAction(self.main_window.help_action) self.chat_window.addAction(self.main_window.redial_action) self.chat_window.addAction(self.main_window.join_conference_action) self.chat_window.addAction(self.main_window.mute_action) self.chat_window.addAction(self.main_window.silent_action) self.chat_window.addAction(self.main_window.preferences_action) self.chat_window.addAction(self.main_window.transfers_window_action) self.chat_window.addAction(self.main_window.logs_window_action) self.chat_window.addAction(self.main_window.received_files_window_action) self.chat_window.addAction(self.main_window.screenshots_window_action) self.ip_address_monitor = IPAddressMonitor() self.log_manager = LogManager() self.presence_manager = PresenceManager() self.session_manager = SessionManager() self.update_manager = UpdateManager() # Prevent application from exiting after last window is closed if system tray was initialized if self.main_window.system_tray_icon: self.setQuitOnLastWindowClosed(False) self.main_window.check_for_updates_action.triggered.connect(self.update_manager.check_for_updates) self.main_window.check_for_updates_action.setVisible(self.update_manager != Null) if getattr(sys, 'frozen', False): XMLDocument.schema_path = Resources.get('xml-schemas') Account.register_extension(AccountExtension) BonjourAccount.register_extension(BonjourAccountExtension) Contact.register_extension(ContactExtension) Group.register_extension(GroupExtension) SIPSimpleSettings.register_extension(SIPSimpleSettingsExtension) notification_center = NotificationCenter() notification_center.add_observer(self, sender=self.sip_application) branding.setup(self)
def applicationShouldTerminate_(self, sender): if self.terminating: return True self.terminating = True BlinkLogger().log_info('Application will be terminated') NSThread.detachNewThreadSelector_toTarget_withObject_("killSelfAfterTimeout:", self, None) NotificationCenter().post_notification("BlinkShouldTerminate", None) NotificationCenter().add_observer(self, name="SIPApplicationDidEnd") app = SIPApplication() app.stop() import Profiler Profiler.stop(os.path.join(ApplicationData.directory, 'logs', 'profiler.stats')) return False
def update_ringtones(self, account=None): settings = SIPSimpleSettings() if account is None: account = AccountManager().default_account app = SIPApplication() def change_tone(name, new_tone): current = getattr(self, name) if current and current.is_active: current.stop() if new_tone: new_tone.start() setattr(self, name, new_tone) change_tone( "initial_hold_tone", WavePlayer(app.voice_audio_mixer, Resources.get('hold_tone.wav'), volume=10)) app.voice_audio_bridge.add(self.initial_hold_tone) change_tone( "secondary_hold_tone", WavePlayer(app.voice_audio_mixer, Resources.get('hold_tone.wav'), loop_count=0, pause_time=45, volume=10, initial_delay=45)) app.voice_audio_bridge.add(self.secondary_hold_tone) if account: audio_primary_ringtone = account.sounds.audio_inbound.sound_file if account.sounds.audio_inbound is not None else None else: audio_primary_ringtone = None if audio_primary_ringtone and not settings.audio.silent: # Workaround not to use same device from two bridges. -Saul if settings.audio.alert_device is not None and app.alert_audio_mixer.real_output_device == app.voice_audio_mixer.real_output_device: new_tone = WavePlayer(app.voice_audio_mixer, audio_primary_ringtone.path, loop_count=0, pause_time=6) app.voice_audio_bridge.add(new_tone) else: new_tone = WavePlayer(app.alert_audio_mixer, audio_primary_ringtone.path, loop_count=0, pause_time=6) app.alert_audio_bridge.add(new_tone) else: new_tone = None change_tone("audio_primary_ringtone", new_tone) if audio_primary_ringtone and not settings.audio.silent: new_tone = WavePlayer(app.voice_audio_mixer, Resources.get('ring_tone.wav'), loop_count=0, pause_time=6) app.voice_audio_bridge.add(new_tone) else: new_tone = None change_tone("audio_secondary_ringtone", new_tone) if audio_primary_ringtone and not settings.audio.silent: # Workaround not to use same device from two bridges. -Saul if settings.audio.alert_device is not None and app.alert_audio_mixer.real_output_device == app.voice_audio_mixer.real_output_device: new_tone = WavePlayer(app.voice_audio_mixer, Resources.get('ring_tone.wav'), loop_count=0, pause_time=6) app.voice_audio_bridge.add(new_tone) else: new_tone = WavePlayer(app.alert_audio_mixer, Resources.get('ring_tone.wav'), loop_count=0, pause_time=6) app.alert_audio_bridge.add(new_tone) else: new_tone = None change_tone("chat_primary_ringtone", new_tone) if audio_primary_ringtone and not settings.audio.silent: new_tone = WavePlayer(app.voice_audio_mixer, Resources.get('ring_tone.wav'), loop_count=0, pause_time=6) app.voice_audio_bridge.add(new_tone) else: new_tone = None change_tone("chat_secondary_ringtone", new_tone) chat_message_outgoing_sound = settings.sounds.message_sent if chat_message_outgoing_sound and not settings.audio.silent: new_tone = WavePlayer(app.voice_audio_mixer, chat_message_outgoing_sound.path, volume=chat_message_outgoing_sound.volume) app.voice_audio_bridge.add(new_tone) else: new_tone = None change_tone("chat_message_outgoing_sound", new_tone) chat_message_incoming_sound = settings.sounds.message_received if chat_message_incoming_sound and not settings.audio.silent: new_tone = WavePlayer(app.voice_audio_mixer, chat_message_incoming_sound.path, volume=chat_message_incoming_sound.volume) app.voice_audio_bridge.add(new_tone) else: new_tone = None change_tone("chat_message_incoming_sound", new_tone) file_transfer_outgoing_sound = settings.sounds.file_sent if file_transfer_outgoing_sound and not settings.audio.silent: new_tone = WavePlayer(app.voice_audio_mixer, file_transfer_outgoing_sound.path, volume=file_transfer_outgoing_sound.volume) app.voice_audio_bridge.add(new_tone) else: new_tone = None change_tone("file_transfer_outgoing_sound", new_tone) file_transfer_incoming_sound = settings.sounds.file_received if file_transfer_incoming_sound and not settings.audio.silent: new_tone = WavePlayer(app.voice_audio_mixer, file_transfer_incoming_sound.path, volume=file_transfer_incoming_sound.volume) app.voice_audio_bridge.add(new_tone) else: new_tone = None change_tone("file_transfer_incoming_sound", new_tone)