Both are possible.
#!/usr/bin/python import dbus import gtk import sys from dbus.mainloop.glib import DBusGMainLoop DBusGMainLoop(set_as_default=True) def callback(state, emergency_state): print 'new state is', state print '-'*30 sys.stdout.flush() bus = dbus.SystemBus() bus.add_signal_receiver(callback, 'sig_call_state_ind', \ 'com.nokia.mce.signal', None, \ '/com/nokia/mce/signal') gtk.main()