On Mon, 2011-04-18 at 11:18 +0200, Vincenzo Romano wrote: > 2011/4/18 Vincenzo Romano <vincenzo.rom...@notorand.it>: > > 2011/4/18 Vincenzo Romano <vincenzo.rom...@notorand.it>: > >> 2011/4/15 Dan Williams <d...@redhat.com>: > >>> On Fri, 2011-04-15 at 12:37 +0200, Vincenzo Romano wrote: > >>>> 2011/4/14 Dan Williams <d...@redhat.com>: > >>>> > On Thu, 2011-04-14 at 16:20 +0200, Vincenzo Romano wrote: > >>>> >> 2011/4/14 Aleksander Morgado <aleksan...@lanedo.com>: > >>>> >> > > >>>> >> >> >> > Where on earth happens the modem initialization in > >>>> >> >> >> > NetWorkmanager? > >>>> >> >> >> > My interest is for GSM/3G modems as well as for POTS/ISDN > >>>> >> >> >> > modems. > >>>> >> >> >> > I've tried to browse the source code but it's quite difficult. > >>>> >> >> >> > > >>>> >> >> >> > >>>> >> >> >> What I've found so far is that the initialization is done in > >>>> >> >> >> the modemmanager. > >>>> >> >> >> It looks like it's hardcoded, which looks quite weird to me. > >>>> >> >> >> I do need to make some extra optional initialization: is there > >>>> >> >> >> any > >>>> >> >> >> hook for such a > >>>> >> >> >> need? > >>>> >> >> > > >>>> >> >> > ModemManager has some generic setup steps, plus 'plugins' for > >>>> >> >> > each > >>>> >> >> > modem/vendor known to make things differently. If your modem > >>>> >> >> > needs > >>>> >> >> > specific AT commands during initialization, you'll probably need > >>>> >> >> > to > >>>> >> >> > develop a new plugin for it. > >>>> >> >> > > >>>> >> >> > Cheers, > >>>> >> >> > >>>> >> >> Among other things, I'd need to harvest the localization > >>>> >> >> information (AT+CREG) > >>>> >> >> from GSM/3G modems. 99.999% of such modems implement it but I > >>>> >> >> don't see > >>>> >> >> how to do it. > >>>> >> >> > >>>> >> >> Any idea? > >>>> >> > > >>>> >> > I believe the generic plugin already harvests location area code and > >>>> >> > cell ID whenever available in the AT+CREG? reply. Although I never > >>>> >> > tried > >>>> >> > it myself, you can possibly use the GetLocation() method in the > >>>> >> > org.freedesktop.ModemManager.Modem.Location interface (once enabled > >>>> >> > with > >>>> >> > the Enable() method). > >>>> >> > > >>>> >> > Cheers! > >>>> >> > >>>> >> That sounds great. But also needs that I have to write my own D-Bus > >>>> >> code in order > >>>> >> to enable and retrieve the localization data (lac/ci). > >>>> > > >>>> > Ok, what exactly are you trying to do here? If you can explain that, > >>>> > then maybe we can say what the best course of action here is. What > >>>> > specific initialization commands do you need to send? > >>>> > > >>>> > Yes, MM exposes location information via the D-Bus interface, because > >>>> > that's how *all* of MM's interaction with the system works, via D-Bus. > >>>> > > >>>> >> And, finally, for the other things I need to do there's no way at all. > >>>> > > >>>> > Such as? What kinds of things do you need to do? > >>>> > > >>>> > Dan > >>>> > > >>>> >> I've given a look at the modemmanager code and there seems to be no > >>>> >> hook available > >>>> >> to send AT commands before the connection or after it ended. > >>>> > >>>> For mobile boradband I need to get some network related infos, > >>>> localization (LAC+CI) among them. > >>>> What I understand is that I need to write a D-BUS client to ask > >>>> the modem manager to gather the infos on my behalf. > >>> > >>> That's correct. There's a python example of this in ModemManager's > >>> test/location.py script that enables location services on the modem and > >>> reports the LAC/CI for you. That should give you an idea of the D-Bus > >>> interfaces required to get the LAC/CI out. Note that the SIM PIN must > >>> have been entered, and the modem enabled, before location services can > >>> work, because no modem will register with the network until it's (a) PIN > >>> unlocked and (b) powered up. Regardless of whether MM is used or not. > >>> > >>>> But for POTS and ISDN modem I just need to make some specific > >>>> initialization which apperas to be not possible at all. > >>> > >>> ModemManager does not (yet) handle POTS modems and will ignore them. > >>> Nor does MM handle ISDN since ISDN doesn't really look like a modem and > >>> doesn't get configured like one either. ISDN would probably be handled > >>> by NetworkManager instead. > >>> > >> > >> Hi. > >> Neither in ModemManager-0.4 nor in NetworkManager-0.8.3.999 there's > >> any location.py. > >> Could you please tell me where can I read such a piece software? > >> That looks promising, though. > > > > Found! > > It's not in the official distribution :-( > > It's here: http://cgit.freedesktop.org/ModemManager/ModemManager/tree/test > > The only thing I've got so far is: > > ~ ./location.py > Traceback (most recent call last): > File "./location.py", line 32, in <module> > proxy = bus.get_object(MM_DBUS_SERVICE, sys.argv[1]) > IndexError: list index out of range > > > I'm not a Python programmer but it looks like there's a missing > argument (the 1st one?) in the command line. > Could you please direct me to where I can get more details about this program? > I need also to understand whether this service can be requested with > the modem being online or needs to > be required *before* going online.
You need to do the following first: list-modems.py (get the object path of your modem) enable.py <object path> location.py <object path> and that should work. You need to pass the object path since if you have two modems, the test tool has no idea which one you want to use. Dan _______________________________________________ networkmanager-list mailing list networkmanager-list@gnome.org http://mail.gnome.org/mailman/listinfo/networkmanager-list