--- call.py 2008-05-18 17:03:37.000000000 +0100 +++ call_term.py 2008-05-19 15:06:15.000000000 +0100 @@ -2,6 +2,7 @@ import dbus.glib import gobject import sys +import signal from account import connection_from_file @@ -35,6 +36,8 @@ self.conn[CONN_INTERFACE].connect_to_signal('NewChannel', self.new_channel_cb) + signal.signal (signal.SIGTERM, self.sigterm_handler) + def run(self): print "connecting" self.conn[CONN_INTERFACE].Connect() @@ -56,6 +59,17 @@ except dbus.DBusException: pass + def sigterm_handler(self, sigterm, frame): + print "sigterm received" + if self.channel: + print "closing channel" + self.channel[CHANNEL_INTERFACE].Close() + try: + print "disconnecting" + self.conn[CONN_INTERFACE].Disconnect() + except dbus.DBusException: + pass + def quit(self): if self.loop: self.loop.quit()