1
Modem Manager (MM) specification: http://projects.gnome.org/NetworkManager/developers/mm-spec-04.html
3
OBS: ModemManager-0.3 does not implement all methods/signal from that specification.
7
Backend tested using git versions of NetworkManager and ModemManager as of May 16, 2010. To verify which interfaces ModemManager and your modem supports do:
9
dbus-send --system --print-reply --dest=org.freedesktop.ModemManager /org/freedesktop/ModemManager org.freedesktop.DBus.Introspectable.Introspect
11
dbus-send --system --print-reply --dest=org.freedesktop.ModemManager /org/freedesktop/ModemManager/Modems/<modem number> org.freedesktop.DBus.Introspectable.Introspect
14
<modem number> is returned by dbus-send --system --print-reply --dest=org.freedesktop.ModemManager /org/freedesktop/ModemManager org.freedesktop.ModemManager.EnumerateDevices
16
I had to add the udi() method to NetworkManager backend because most MM methods requires a path that looks like /org/freedesktop/ModemManager/Modems/<modem number>. udi() return such path, so it is the easier way to find a MM object from a NM object.
20
The backend organizes MM interfaces as follow:
23
org.freedesktop.ModemManager
26
org.freedesktop.ModemManager.Modem
27
org.freedesktop.ModemManager.Modem.Simple
28
org.freedesktop.ModemManager.Modem.Gsm (this interface includes only enums and flags)
30
class ModemLocationInterface inherits from ModemInterface
31
org.freedesktop.ModemManager.Modem.Location
33
class ModemCdmaInterface inherits from ModemInterface
34
org.freedesktop.ModemManager.Modem.Cdma
36
class ModemGsmCardInterface inherits from ModemInterface
37
org.freedesktop.ModemManager.Modem.Gsm.Card
39
class ModemGsmContactsInterface inherits from ModemInterface
40
org.freedesktop.ModemManager.Modem.Gsm.Contacts
42
class ModemGsmNetworkInterface inherits from ModemInterface
43
org.freedesktop.ModemManager.Modem.Gsm.Network
45
class ModemGsmSmsInterface inherits from ModemInterface
46
org.freedesktop.ModemManager.Modem.Gsm.SMS
48
class ModemGsmHsoInterface inherits from ModemInterface
49
org.freedesktop.ModemManager.Modem.Gsm.Hso
51
class ModemGsmUssdInterface inherits from ModemInterface
52
org.freedesktop.ModemManager.Modem.Gsm.Ussd
54
Current Implemenation Status
55
============================
56
org.freedesktop.ModemManager
58
- still needs testing: signals DeviceAdded and DeviceRemoved
60
org.freedesktop.DBus.Properties
61
- fully implemented and tested
63
org.freedesktop.ModemManager.Modem
64
- fully implemented, needs more testing
65
- modem MD300 does not supports: method GetIP4Config
67
org.freedesktop.ModemManager.Modem.Simple
68
- fully implemented, needs more testing
70
org.freedesktop.ModemManager.Modem.Location
71
- fully implemented, not tested yet
72
- modem MD300 does not support this interface (it is not listed when calling org.freedesktop.DBus.Introspectable.Introspect)
74
org.freedesktop.ModemManager.Modem.Cdma
75
- fully implemented, not tested yet
76
- modem MD300 does not support this interface
78
org.freedesktop.ModemManager.Modem.Gsm
79
- fully implemented and tested
81
org.freedesktop.ModemManager.Modem.Gsm.Card
82
- fully implemented, needs more testing
84
org.freedesktop.ModemManager.Modem.Gsm.Contacts
85
- fully implemented, not tested yet
86
- modem MD300 does not support this interface
88
org.freedesktop.ModemManager.Modem.Gsm.Network
90
- to be tested: methods Register and SetApn
91
- still not working (returns error): method scan
92
- modem MD300 does not support: method GetBand and probably method SetBand too. SignalQuality method only works in 2G mode for MD300 modem, maybe for other modems it works in 3G mode.
94
org.freedesktop.ModemManager.Modem.Gsm.SMS
95
- fully implemented, not tested yet
96
- modem MD300 does not support method List and probably all other methods in this interface.
97
org.freedesktop.ModemManager.Modem.Gsm.Hso - fully implemented, not tested yet
98
- modem MD300 does not support this interface
100
org.freedesktop.ModemManager.Modem.Gsm.Ussd
101
- fully implemented, not tested yet
102
- modem MD300 does not support this interface
106
1. Needs more testing with other modems/cell phones.
108
2. When I hook up a second 3G modem (my cell phone actually) in my notebook
109
sometimes ModemManager disconnects the first modem from Internet. This is not a
110
KDE problem, just to warn everybody.
112
3. I still need to implement some caching to prevent stress in the DBus bus.
114
4. Missing comments about methods, enum and signal in some classes. Now that everything is implemented I will add the missing comments.
119
The dbus methods can be tested in command line with:
121
dbus-send --system --print-reply --dest=org.freedesktop.ModemManager /org/freedesktop/ModemManager org.freedesktop.ModemManager.EnumerateDevices
123
dbus-send --system --print-reply --dest=org.freedesktop.ModemManager /org/freedesktop/ModemManager/Modems/<modem number> org.freedesktop.ModemManager.Modem.Gsm.Network.GetSignalQuality
125
dbus-send --system --print-reply --dest=org.freedesktop.ModemManager /org/freedesktop/ModemManager/Modems/<modem number> org.freedesktop.ModemManager.Modem.Gsm.Network.GetRegistrationInfo
127
dbus-send --system --print-reply --dest=org.freedesktop.ModemManager /org/freedesktop/ModemManager/Modems/<modem number> org.freedesktop.DBus.Properties.GetAll string:<interface name>
129
<modem number> is returned by the first command (EnumerateDevices).
130
<interface name> is either of
132
org.freedesktop.ModemManager (do not use /Modems/<modem number> with this one)
133
org.freedesktop.DBus.Properties (do not use /Modems/<modem number> with this one)
134
org.freedesktop.ModemManager.Modem
135
org.freedesktop.ModemManager.Modem.Simple
136
org.freedesktop.ModemManager.Modem.Location
137
org.freedesktop.ModemManager.Modem.Cdma
138
org.freedesktop.ModemManager.Modem.Gsm
139
org.freedesktop.ModemManager.Modem.Gsm.Card
140
org.freedesktop.ModemManager.Modem.Gsm.Contacts
141
org.freedesktop.ModemManager.Modem.Gsm.Network
142
org.freedesktop.ModemManager.Modem.Gsm.SMS
143
org.freedesktop.ModemManager.Modem.Gsm.Hso
144
org.freedesktop.ModemManager.Modem.Gsm.Ussd
146
Devices Known to Work
147
=====================
149
. Sony Ericsson MD300 modem
150
- connects to the Internet.
151
- Signal Quality indication only in Edge mode. When in 3G mode the modem only reports the number of bars (zero to five), but Modem Manager does not report that either. We can change Modem Manager to report an approximation of the signal quality based on the number of bars.
153
. Samsung Omnia HD i8910
154
- connects to the Internet.
155
- Select "Any" in Plasma NM -> Manage Connections -> Mobile Broadband -> <connection name> -> Edit -> Type or it will not connect
156
- Access technology not reported by Modem Manager.
159
- connects to the Internet.
160
- Access technology not reported by Modem Manager.
163
- connects to the Internet.