+static DBusConnection *connection;
+static char *ofono_handsfree_path;
+static int timeout;
These globals seem to belong in per-modem user data unless you only want 1 HFP
device per system?
the DBusConnection is fine as a global since it is shared for the whole
For the other two, I agree, they have to be per modem.