Bug 311931

Summary: Integrate the new ModemManager1 interface
Product: [Plasma] plasma-nm Reporter: Aleksander Morgado <aleksander>
Component: appletAssignee: Jan Grulich <jgrulich>
Status: RESOLVED FIXED    
Severity: major CC: lukas, marius
Priority: HI    
Version: 0.9.3.0   
Target Milestone: ---   
Platform: Other   
OS: Linux   
URL: http://www.lanedo.com/~aleksander/modem-manager/api-20121005/api/ref-dbus.html
Latest Commit: Version Fixed In: 0.9.3.1
Sentry Crash Report:

Description Aleksander Morgado 2012-12-19 12:15:57 UTC
ModemManager >= 0.7 will come with an improved DBus interface. Documentation about this interface can be seen at:
http://www.lanedo.com/~aleksander/modem-manager/api-20121005/api/ref-dbus.html

In order to ease the integration of the new ModemManager, headers with enums/error definitions are also available:
http://cgit.freedesktop.org/ModemManager/ModemManager/tree/include

There's also a new 'libmm-glib', which helps to integrate ModemManager in glib-based applications, although not sure if this is really desirable here:
http://www.lanedo.com/~aleksander/modem-manager/api-20121005/libmm-glib/

Some basic hints:
* NetworkManager will expose Modems handled by the new ModemManager with a UDI prefixed with "/org/freedesktop/ModemManager1/Modem/".
* SIMs are exposed as independent DBus objects. You'll need to get the SIM object path, if any, from the 'Modem' interface. PIN unlocking is done directly in the SIM interface of the SIM object.
* Both 3GPP (a.k.a. GSM) and 3GPP2 (a.k.a. CDMA) modems are now handled in the same way. The new ModemManager exposes in 'CurrentCapabilities' in the modem interface which capabilities are supported. It is expected to have modems which are both 3GPP and 3GPP2 (e.g. LTE+CDMA modems).
* For connecting/disconnecting, using the Simple interface is still the simplest way for now. The new ModemManager can handle multiple data bearer configurations if directly playing with creating bearer objects and connecting them independently (the Simple interface can't do that yet).
* DBus interfaces are dynamic. E.g. a modem exposing the Messaging interface will have messaging (SMS) capabilities, otherwise the interface won't be exposed.
* When a modem is non yet PIN-unlocked, only the Modem interface and the SIM object will be available.

Reproducible: Always




Can be tested with latest git master for both NetworkManager and ModemManager.
Comment 1 Marius Kotsbak 2013-02-22 09:54:04 UTC
Hints, see how it is implemented in Gnome shell and NM-applet:

https://bugzilla.gnome.org/show_bug.cgi?id=687359
https://bugzilla.gnome.org/show_bug.cgi?id=690445
Comment 4 Lamarque V. Souza 2013-09-30 20:07:12 UTC
Just to update the status of this bug. ModemManagerQt and NetworkManagerQt's master branch already support ModemManager1 interface. There is a mm1port branch in the new Plasma NM applet that also supports ModemManager1, so this bug is near to be closed as fixed.
Comment 5 Aleksander Morgado 2013-10-01 07:57:50 UTC
Superb!
Comment 6 Lukáš Tinkl 2013-10-15 17:33:42 UTC
Support is available in plasma-nm starting from version 0.9.3.1.

Please note that in order to benefit from the MM 1.0 API features, you have to compile both libmm-qt and libnm-qt from the master branches.