#!/usr/bin/python
import dbus
import dbus.glib
import gobject
import time
import sys

def dbg(s):
    print("%s %s" % (time.strftime("%H:%M:%S"), s))

class UI:
    def __init__(self, loop):
        self.loop = loop

        bus = dbus.SystemBus()
        self.gsm_device_obj = bus.get_object("org.freesmartphone.ogsmd", "/org/freesmartphone/GSM/Device")
        self.gsm_call_iface = dbus.Interface(self.gsm_device_obj, 'org.freesmartphone.GSM.Call')

        if len(sys.argv) != 2:
            print("usage: send-dtmf <dtmf string>")
            sys.exit(1)
        dtmf = sys.argv[1]
        dbg("trying to send \"%s\"" % dtmf)
        self.gsm_call_iface.SendDtmf(dtmf,
                                     reply_handler = self.cbSendDtmfReply,
                                     error_handler = lambda e: (dbg("cbSendDtmfError %s" % e), self.loop.quit()))

    def cbSendDtmfReply(self):
        dbg("cbSendDtmfReply")
        self.loop.quit()

if __name__ == "__main__":
    loop = gobject.MainLoop()
    UI(loop)
    loop.run()

