#!/usr/bin/python

import sys
import dbus

bus = dbus.SessionBus()
client = dbus.Interface(bus.get_object("org.bluez.obex.client", "/"),
					"org.bluez.obex.Client")

if (len(sys.argv) < 3):
	print "Usage: %s <device> <target>" % (sys.argv[0])
	sys.exit(1)

print "Creating Session"
session_path = client.CreateSession(sys.argv[1], { "Target": sys.argv[2] })
session = dbus.Interface(bus.get_object("org.bluez.obex.client", session_path),
					"org.bluez.obex.Session")

print session.GetCapabilities()
