Jens Rehsack


Net::Radio::oFono::NetworkRegistration - provide NetworkRegistration interface for Modem objects


  my $oFono = Net::Location::oFono->new();
  my @modems = Net::Location::oFono->get_modems();
  # show default network information
  foreach my $modem_path (@modems) {
    my $netreg = Net::Location::oFono->get_modem_interface($modem_path, "NetworkRegistration");
    say "Status: ", $netreg->GetProperty("Status"),
        "Name: ", $netreg->GetProperty("Name"),
        "LocationAreaCode: ", $netreg->GetProperty("LocationAreaCode"),
        "CellId: ", $netreg->GetProperty("CellId"),
        "Technology: ", $netreg->GetProperty("Technology"),
        "MobileCountryCode: ", $netreg->GetProperty("MobileCountryCode"),
        "MobileNetworkCode: ", $netreg->GetProperty("MobileNetworkCode");

  # show each available network
  foreach my $modem_path (@modems) {
    my $netreg = Net::Location::oFono->get_modem_interface($modem_path, "NetworkRegistration");
    my %operators = $netreg->GetOperators();
    foreach my $oper_path (keys %operators) {
      my $oper = $netreg->GetOperator($oper_path);
      say "Status: ", $oper->GetProperty("Status"),
          "Name: ", $oper->GetProperty("Name"),
          "MobileCountryCode: ", $oper->GetProperty("MobileCountryCode"),
          "MobileNetworkCode: ", $oper->GetProperty("MobileNetworkCode"),
          "Technologies: ", join("/", $oper->GetProperty("Technologies"));


  ISA Net::Radio::oFono::Modem
    ISA Net::Radio::oFono::Helpers::EventMgr
    DOES Net::Radio::oFono::Roles::RemoteObj
    DOES Net::Radio::oFono::Roles::Manager


See ofono/doc/network-api.txt for valid properties and detailed action description and possible errors.



Retrieve array of operator object and properties.

This method can be used to retrieve the current operator list. This is either an empty list (when not registered to any network) or a list with one or more operators (when registered).

This list will also return (by oFono) cached values of previously seen networks. Manual updates to list can only be done via the Scan() method call.

Set the $force parameter to a true value when no D-Bus main loop is running and signal handling might be incomplete.

Returns a hash with object paths of the operators as key and their current properties as hash reference as value.

This method is injected by Net::Radio::oFono::Roles::Manager as an alias for Net::Radio::oFono::Roles::Manager/GetObjects(;$force).


Returns an instance of the specified Net::Radio::oFono::NetworkOperator.

Set the $force parameter to a true value when no D-Bus main loop is running and signal handling might be incomplete.

This method is injected by Net::Radio::oFono::Roles::Manager as an alias for Net::Radio::oFono::Roles::Manager/GetObject($object_path;$force).


Attempts to register to the default network. The default network is normally selected by the settings from the SIM card.

To register into another network, invoke Register() on a Net::Radio::oFono::NetworkOperator instance returned via GetOperators().


Runs a network operator scan to discover the currently available operators. This operation can take several seconds, and up to several minutes on some modems. This can be used to help the user determine what is the best operator to use if forced to roam on a foreign network.


Please report any bugs or feature requests to bug-net-radio-ofono at, or through the web interface at I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

If you think you've found a bug then please read "How to Report Bugs Effectively" by Simon Tatham:


You can find documentation for this module with the perldoc command.

    perldoc Net::Radio::oFono

You can also look for information at:

Where can I go for help with a concrete version?

Bugs and feature requests are accepted against the latest version only. To get patches for earlier versions, you need to get an agreement with a developer of your choice - who may or not report the issue and a suggested fix upstream (depends on the license you have chosen).

Business support and maintenance

For business support you can contact Jens via his CPAN email address Please keep in mind that business support is neither available for free nor are you eligible to receive any support based on the license distributed with this package.


At first the guys from the oFono-Team shall be named: Marcel Holtmann and Denis Kenzior, the maintainers and all the people named in ofono/AUTHORS. Without their effort, there would no need for a Net::Radio::oFono module.

Further, Peter "ribasushi" Rabbitson helped a lot by providing hints and support how to make this API accessor a valuable CPAN module.


Jens Rehsack, <rehsack at>


Copyright 2012 Jens Rehsack.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See for more information.

2 POD Errors

The following errors were encountered while parsing the POD:

Around line 113:

alternative text 'Net::Radio::oFono::Roles::Manager/GetObjects(;$force)' contains non-escaped | or /

Around line 123:

alternative text 'Net::Radio::oFono::Roles::Manager/GetObject($object_path;$force)' contains non-escaped | or /