ModemManager D-Bus Interface Specification
Version 0.1
Copyright (C) 2008 Novell, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Interfaces
org.freedesktop.ModemManager
Methods:
Get the list of modem devices.
Returns
devices
-
ao
-
List of object paths of modem devices known to the system.
Signals:
A device was added to the system.
Parameters
device
-
o
-
The object path of the newly added device.
A device was removed from the system, and is no longer available.
Parameters
device
-
o
-
The object path of the device that was just removed.
Interface has no properties.
org.freedesktop.DBus.Properties
Interface has no methods.
Signals:
One or more properties' values changed.
Parameters
interface
-
s
-
The D-Bus interface of the changed properties.
properties
-
a{sv}
-
The changed property names and their new values.
Interface has no properties.
org.freedesktop.ModemManager.Modem
Methods:
Enable (
b: enable
) →
nothing
Enable the device. Initializes the modem.
Parameters
enable
-
b
-
True to enable the device, False to disable.
Connect (
s: number
) →
nothing
Dial in.
Parameters
number
-
s
-
The number to use for dialing.
Request the IP4 configuration from the device.
Note that it'll only be supported for IPMethod MM_MODEM_IP_METHOD_STATIC.
Get the card information (manufacturer, modem, version).
Returns
info
-
(sss)
-
Structure containing manufacturer, model, and version (revision) of the card.
Interface has no signals.
Properties:
Device
-
s
-
(read)
-
The modem port to use for IP configuration and traffic.
MasterDevice
-
s
-
(read)
-
The physical modem device reference (ie, USB, PCI, PCMCIA device), which
may be dependent upon the operating system. In Linux for example, this
points to a sysfs path of the usb_device object.
Driver
-
s
-
(read)
-
The driver handling the device.
Type
-
u
-
(read)
(MM_MODEM_TYPE)
-
The modem type.
Enabled
-
b
-
(read)
-
TRUE if the modem is enabled (ie, powered and usable), FALSE if it is disabled.
IpMethod
-
u
-
(read)
(MM_MODEM_IP_METHOD)
-
The IP configuration method.
Enumerated types:
MM_MODEM_TYPE_GSM = 1
-
A GSM device.
MM_MODEM_TYPE_CDMA = 2
-
A CDMA device.
MM_MODEM_IP_METHOD_PPP = 0
-
Use PPP to get the address.
MM_MODEM_IP_METHOD_STATIC = 1
-
Static configuration, the modem will provide IP information.
MM_MODEM_IP_METHOD_DHCP = 2
-
Use DHCP
org.freedesktop.ModemManager.Modem.Simple
Methods:
Connect (
a{sv}: properties
) →
nothing
Do everything needed to connect the modem.
Parameters
properties
-
a{sv}
-
Dictionary of properties needed to get the modem connected.
Each implementation is free to add it's own specific key-value pairs. The predefined
common ones are:
'pin' : string
'network_id' : string
'band' : uint
'network_mode' : uint
'apn' : string
'number' : string
Get the modem status.
Returns
properties
-
a{sv}
-
Dictionary of properties.
Each implementation is free to add it's own specific key-value pairs. The predefined
common ones are:
'state' : uint (always)
'signal_quality' : uint (state >= registered)
'operator_code' : string (state >= registered)
'operator_name' : string (state >= registered)
'band' : uint (state >= registered)
'network_mode' : uint (state >= registered)
Interface has no signals.
Interface has no properties.
org.freedesktop.ModemManager.Modem.Cdma
Methods:
Get the current signal quality.
Returns
quality
-
u
-
Signal quality (percent).
Get the Electronic Serial Number of the card.
Get the Service System details of the current network, if registered.
Returns
info
-
(usu)
-
A structure containing the Band Class (0 = unknown, 1 = 800 MHz, 2 = 1900 MHz), the Band ("A" - "F" as defined by IS707-A), and the System ID of the serving network.
Get device registration state.
Signals:
The signal quality changed.
Parameters
quality
-
u
-
The new quality in percent, 0..100.
The device registration state changed.
Interface has no properties.
Enumerated types:
MM_MODEM_CDMA_REGISTRATION_STATE_UNKNOWN = 0
- Registration status is unknown or the device is not registered.
MM_MODEM_CDMA_REGISTRATION_STATE_REGISTERED = 1
- Registered, but roaming status is unknown or cannot be provided by the device. The device may or may not be roaming.
MM_MODEM_CDMA_REGISTRATION_STATE_HOME = 2
- Currently registered on the home network.
MM_MODEM_CDMA_REGISTRATION_STATE_ROAMING = 3
- Currently registered on a roaming network.
org.freedesktop.ModemManager.Modem.Gsm
Interface has no methods.
Interface has no signals.
Interface has no properties.
Sets of flags:
MM_MODEM_GSM_MODE_UNKNOWN = 0x0
- Unknown or invalid mode.
MM_MODEM_GSM_MODE_ANY = 0x1
- For certain operations, allow the modem to pick any available mode.
MM_MODEM_GSM_MODE_GPRS = 0x2
- GPRS
MM_MODEM_GSM_MODE_EDGE = 0x4
- EDGE
MM_MODEM_GSM_MODE_UMTS = 0x8
- UMTS (3G)
MM_MODEM_GSM_MODE_HSDPA = 0x10
- HSDPA
MM_MODEM_GSM_MODE_2G_PREFERRED = 0x20
- Prefer 2G (GPRS or EDGE)
MM_MODEM_GSM_MODE_3G_PREFERRED = 0x40
- Prefer 3G (UMTS or HSDPA)
MM_MODEM_GSM_MODE_2G_ONLY = 0x80
- Use only 2G (GPRS or EDGE)
MM_MODEM_GSM_MODE_3G_ONLY = 0x100
- Use only 3G (UMTS or HSDPA)
MM_MODEM_GSM_MODE_HSUPA = 0x200
- HSUPA
GSM network and device bands.
MM_MODEM_GSM_BAND_UNKNOWN = 0x0
- Unknown or invalid band
MM_MODEM_GSM_BAND_ANY = 0x1
- For certain operations, allow the modem to select a band automatically.
MM_MODEM_GSM_BAND_EGSM = 0x2
- GSM/GPRS/EDGE 900 MHz
MM_MODEM_GSM_BAND_DCS = 0x4
- GSM/GPRS/EDGE 1800 MHz
MM_MODEM_GSM_BAND_PCS = 0x8
- GSM/GPRS/EDGE 1900 MHz
MM_MODEM_GSM_BAND_G850 = 0x10
- GSM/GPRS/EDGE 850 MHz
MM_MODEM_GSM_BAND_U2100 = 0x20
- WCDMA 2100 MHz (Class I)
MM_MODEM_GSM_BAND_U1800 = 0x40
- WCDMA 3GPP 1800 MHz (Class III)
MM_MODEM_GSM_BAND_U17IV = 0x80
- WCDMA 3GPP AWS 1700/2100 MHz (Class IV)
MM_MODEM_GSM_BAND_U800 = 0x100
- WCDMA 3GPP UMTS 800 MHz (Class VI)
MM_MODEM_GSM_BAND_U850 = 0x200
- WCDMA 3GPP UMTS 850 MHz (Class V)
MM_MODEM_GSM_BAND_U900 = 0x400
- WCDMA 3GPP UMTS 900 MHz (Class VIII)
MM_MODEM_GSM_BAND_U17IX = 0x800
- WCDMA 3GPP UMTS 1700 MHz (Class IX)
org.freedesktop.ModemManager.Modem.Gsm.Card
Methods:
Get the IMEI of the card.
Returns
imei
-
s
-
The IMEI.
Get the IMSI of the SIM card.
Returns
imsi
-
s
-
The IMSI.
SendPuk (
s: puk, s: pin
) →
nothing
Send the PUK and a new PIN to unlock the SIM card.
Parameters
puk
-
s
-
The PUK code.
pin
-
s
-
The PIN code.
SendPin (
s: pin
) →
nothing
Send the PIN (or PUK) to unlock the SIM card.
Parameters
pin
-
s
-
The PIN code.
EnablePin (
s: pin, b: enabled
) →
nothing
Enable or disable the PIN checking.
Parameters
pin
-
s
-
The PIN code.
enabled
-
b
-
True to enable PIN checking.
ChangePin (
s: old_pin, s: new_pin
) →
nothing
Change the PIN code.
Parameters
old_pin
-
s
-
The current PIN code.
new_pin
-
s
-
The new PIN code.
Interface has no signals.
Properties:
SupportedBands
-
u
-
(read)
(MM_MODEM_GSM_BAND)
- Bands supported by the card. (Note for plugin writers: returned value must not contain ANY)
SupportedModes
-
u
-
(read)
(MM_MODEM_GSM_MODE)
- Network selection modes supported by the card. (Note for plugin writers: returned value must not contain ANY)
org.freedesktop.ModemManager.Modem.Gsm.Contacts
Methods:
Add (
s: name, s: number
) →
u
Add a new contact to the SIM card.
Parameters
name
-
s
-
The name of the contact.
number
-
s
-
The phone number of the contact.
Returns
index
-
u
-
The index of the new contact.
Delete (
u: index
) →
nothing
Delete a contact from the SIM card.
Parameters
index
-
u
-
The index of the contact.
Get (
u: index
) →
(uss)
Retrieve a contact from the SIM card.
Parameters
index
-
u
-
The index of the contact.
Returns
contact
-
(uss)
-
The contact structure containing index, name, and number.
List (
) →
a(uss)
List all contacts on the SIM card.
Returns
results
-
a(uss)
-
The list of contacts where each contact has an index, name, and number.
Find (
s: pattern
) →
a(uss)
Find a contact from the SIM card.
Parameters
pattern
-
s
-
The pattern to search for.
Returns
results
-
a(uss)
-
The list of matching contacts where a contact has an index, name, and number.
Get the number of contacts stored on the SIM card.
Returns
count
-
u
-
The number of contacts.
Interface has no signals.
Interface has no properties.
org.freedesktop.ModemManager.Modem.Gsm.Network
Methods:
Register (
s: network_id
) →
nothing
Register the device to network.
Parameters
network_id
-
s
-
The network ID to register. An empty string can be used to register to the home network.
Scan (
) →
aa{ss}
Scan for available networks.
Returns
results
-
aa{ss}
-
Found networks. It's an array of dictionaries (strings for keys and values), the list of known keys is the following: status, operator-long, operator-short, operator-num, access-tech.
SetApn (
s: apn
) →
nothing
Set the APN.
Parameters
apn
-
s
-
The APN.
Get the current signal quality.
Returns
quality
-
u
-
Signal quality (percent).
SetBand (
u: band
) →
nothing
Sets the band the device is allowed to use when connecting to a mobile network.
Parameters
band
-
u
(MM_MODEM_GSM_BAND)
-
The desired band. Only one band may be specified, and may not be UNKNOWN.
Returns the current band the device is using. (Note for plugin writers: returned value must not be ANY)
Set the desired mode the device may use when connecting to a mobile network.
Parameters
mode
-
u
(MM_MODEM_GSM_MODE)
-
The desired network mode. Only one mode may be specified, and may not be UNKNOWN.
Returns the current network mode of the device. (Note for plugin writers: returned value *may* be ANY)
Returns
mode
-
u
(MM_MODEM_GSM_MODE)
-
Returns the general network mode (ex. 2G/3G preference) of the device.
Get the registration status and the current operator (if registered).
Returns
info
-
(uss)
-
The returned information contains:
* Network status.
* Current operator code.
* Current operator name,
Signals:
The signal quality changed.
Parameters
quality
-
u
-
The new quality in percent, 0..100.
RegistrationInfo (
u: status, s: operator_code, s: operator_name
)
The registration status changed.
Parameters
status
-
u
(MM_MODEM_GSM_NETWORK_REG_STATUS)
-
The network status.
operator_code
-
s
-
The current operator code.
operator_name
-
s
-
The current operator name.
The network mode changed.
Interface has no properties.
Enumerated types:
MM_MODEM_GSM_NETWORK_REG_STATUS_IDLE = 0
-
Not registered, not searching for new operator to register.
MM_MODEM_GSM_NETWORK_REG_STATUS_HOME = 1
-
Registered on home network.
MM_MODEM_GSM_NETWORK_REG_STATUS_SEARCHING = 2
-
Not registered, searching for new operator to register with.
MM_MODEM_GSM_NETWORK_REG_STATUS_DENIED = 3
-
Registration denied.
MM_MODEM_GSM_NETWORK_REG_STATUS_UNKNOWN = 4
-
Unknown registration status.
MM_MODEM_GSM_NETWORK_REG_STATUS_ROAMING = 5
-
Registered on a roaming network.
org.freedesktop.ModemManager.Modem.Gsm.SMS
Methods:
Delete (
u: index
) →
nothing
Delete an SMS message.
Parameters
index
-
u
-
The index of the SMS.
Get (
u: index
) →
a{sv}
Retrieve an SMS from the SIM card.
Parameters
index
-
u
-
The index of the SMS.
Returns
sms
-
a{sv}
-
A dictionary containing SMS properties of the SMS specified by the given index. This dictionary may contain the following key/value pairs:
number : string - Phone number (mandatory)
text : string - SMS text (mandatory)
smsc : string - SMS service center number (optional)
validity : uint (0..255) - Specifies when the SMS expires in SMSC (optional)
class : uint (0..3) - Message importance and location (optional)
completed: boolean - Whether all message parts have been received or not (optional)
Save (
a{sv}: properties
) →
au
Parameters
properties
-
a{sv}
-
SMS properties to save with the following key values:
number : string - Phone number (mandatory)
text : string - SMS text (mandatory)
smsc : string - SMS service center number (optional)
validity : uint (0..255) - Specifies when the SMS expires in SMSC (optional)
class : uint (0..3) - Message importance and location (optional)
Send (
a{sv}: properties
) →
au
Parameters
properties
-
a{sv}
-
SMS properties to save with the following key values:
number : string - Phone number (mandatory)
text : string - SMS text (mandatory)
smsc : string - SMS service center number (optional)
validity : uint (0..255) - Specifies when the SMS expires in SMSC (optional)
class : uint (0..3) - Message importance and location (optional)
SetIndication (
u: mode, u: mt, u: bm, u: ds, u: bfr
) →
nothing
Parameters
mode
-
u
mt
-
u
bm
-
u
ds
-
u
bfr
-
u
Signals:
SmsReceived (
u: index, b: complete
)
Emitted when any part of a new SMS has been received (but not for subsequent parts, if any). Not all parts may have been received and the message may not be complete; if it is, the 'complete' argument will be TRUE.
Parameters
index
-
u
-
Index of the new SMS.
complete
-
b
-
TRUE if all message parts have been received, otherwise FALSE.
Completed (
u: index, b: completed
)
Emitted when the complete-ness status of an SMS message changes. An SMS may not necessarily be complete when the first part is received; this signal will be emitted when all parts have been received, even for single-part messages.
Parameters
index
-
u
-
The index of the SMS.
completed
-
b
-
TRUE if all message parts have been received, otherwise FALSE.
Interface has no properties.
org.freedesktop.ModemManager.Modem.Gsm.Hso
Methods:
Authenticate (
s: username, s: password
) →
nothing
Authenticate using the passed user name and password.
Parameters
username
-
s
password
-
s
Interface has no signals.
Interface has no properties.
Errors:
org.freedesktop.ModemManager.Modem.SerialOpenFailed
Could not open serial device.
org.freedesktop.ModemManager.Modem.SerialSendFailed
Could not write to the serial device.
org.freedesktop.ModemManager.Modem.SerialResponseTimeout
A response was not received in time.
Errors:
org.freedesktop.ModemManager.Modem.General
A generic error. An example of a generic error is ModemManager not being able to parse the response from modem.
org.freedesktop.ModemManager.Modem.OperationNotSupported
Operation not implemented by modem.
org.freedesktop.ModemManager.Modem.Connected
Operation could not be performed while the modem is connected.
org.freedesktop.ModemManager.Modem.Disconnected
Operation could not be performed while the modem is disconnected.
org.freedesktop.ModemManager.Modem.OperationInProgress
Operation could not be performed because it is already in progress.
Errors:
org.freedesktop.ModemManager.Modem.NoCarrier
No carrier.
org.freedesktop.ModemManager.Modem.NoDialtone
No dialtone.
org.freedesktop.ModemManager.Modem.Busy
Busy.
org.freedesktop.ModemManager.Modem.NoAnswer
No answer.
Errors:
org.freedesktop.ModemManager.Modem.Gsm.PhoneFailure
A phone failure.
org.freedesktop.ModemManager.Modem.Gsm.NoConnection
No connection to phone.
org.freedesktop.ModemManager.Modem.Gsm.LinkReserved
Phone-adaptor link reserved.
org.freedesktop.ModemManager.Modem.Gsm.OperationNotAllowed
Operation not allowed.
org.freedesktop.ModemManager.Modem.Gsm.OperationNotSupported
Operation not supported.
org.freedesktop.ModemManager.Modem.Gsm.PhSimPinRequired
PH-SIM PIN required.
org.freedesktop.ModemManager.Modem.Gsm.PhFSimPinRequired
PH-FSIM PIN required.
org.freedesktop.ModemManager.Modem.Gsm.PhFSimPukRequired
PH-FSIM PUK required.
org.freedesktop.ModemManager.Modem.Gsm.SimNotInserted
SIM not inserted.
org.freedesktop.ModemManager.Modem.Gsm.SimPinRequired
SIM PIN required.
org.freedesktop.ModemManager.Modem.Gsm.SimPukRequired
SIM PUK required.
org.freedesktop.ModemManager.Modem.Gsm.SimFailure
SIM failure.
org.freedesktop.ModemManager.Modem.Gsm.SimBusy
SIM busy.
org.freedesktop.ModemManager.Modem.Gsm.SimWrong
SIM wrong.
org.freedesktop.ModemManager.Modem.Gsm.IncorrectPassword
Incorrect password.
org.freedesktop.ModemManager.Modem.Gsm.SimPin2Required
SIM PIN2 required.
org.freedesktop.ModemManager.Modem.Gsm.SimPuk2Required
SIM PUK2 required.
org.freedesktop.ModemManager.Modem.Gsm.MemoryFull
Memory full.
org.freedesktop.ModemManager.Modem.Gsm.InvalidIndex
Invalid index.
org.freedesktop.ModemManager.Modem.Gsm.NotFound
Not found.
org.freedesktop.ModemManager.Modem.Gsm.MemoryFailure
Memory failure.
org.freedesktop.ModemManager.Modem.Gsm.TextTooLong
Text string too long.
org.freedesktop.ModemManager.Modem.Gsm.InvalidChars
Invalid characters in text string.
org.freedesktop.ModemManager.Modem.Gsm.DialStringTooLong
Dial string too long.
org.freedesktop.ModemManager.Modem.Gsm.InvalidDialString
Invalid characters in dial string.
org.freedesktop.ModemManager.Modem.Gsm.NoNetwork
No network service.
org.freedesktop.ModemManager.Modem.Gsm.NetworkTimeout
Network timeout.
org.freedesktop.ModemManager.Modem.Gsm.NetworkNotAllowed
Network not allowed - emergency calls only.
org.freedesktop.ModemManager.Modem.Gsm.NetworkPinRequired
Network personalization PIN required.
org.freedesktop.ModemManager.Modem.Gsm.NetworkPukRequired
Network personalization PUK required.
org.freedesktop.ModemManager.Modem.Gsm.NetworkSubsetPinRequired
Network subset personalization PIN required.
org.freedesktop.ModemManager.Modem.Gsm.NetworkSubsetPukRequired
Network subset personalization PUK required.
org.freedesktop.ModemManager.Modem.Gsm.ServicePinRequired
Service provider personalization PIN required.
org.freedesktop.ModemManager.Modem.Gsm.ServicePukRequired
Service provider personalization PUK required.
org.freedesktop.ModemManager.Modem.Gsm.CorporatePinRequired
Corporate personalization PIN required.
org.freedesktop.ModemManager.Modem.Gsm.CorporatePukRequired
Corporate personalization PUK required.
org.freedesktop.ModemManager.Modem.Gsm.HiddenKeyRequired
Hidden key required. This key is required when accessing hidden phonebook entries.
org.freedesktop.ModemManager.Modem.Gsm.EapMethodNotSupported
EAP method not supported.
org.freedesktop.ModemManager.Modem.Gsm.IncorrectParams
Incorrect parameters.
org.freedesktop.ModemManager.Modem.Gsm.Unknown
An unknown error.
org.freedesktop.ModemManager.Modem.Gsm.GprsIllegalMs
Illegal MS.
org.freedesktop.ModemManager.Modem.Gsm.GprsIllegalMe
Illegal ME.
org.freedesktop.ModemManager.Modem.Gsm.GprsServiceNotAllowed
GPRS services not allowed.
org.freedesktop.ModemManager.Modem.Gsm.GprsPlmnNotAllowed
PLMN not allowed.
org.freedesktop.ModemManager.Modem.Gsm.GprsLocationNotAllowed
Location area not allowed.
org.freedesktop.ModemManager.Modem.Gsm.GprsRoamingNotAllowed
Roaming not allowed in this location area.
org.freedesktop.ModemManager.Modem.Gsm.GprsOptionNotSupported
Service option not supported.
org.freedesktop.ModemManager.Modem.Gsm.GprsNotSubscribed
Requested service option not subscribed.
org.freedesktop.ModemManager.Modem.Gsm.GprsOutOfOrder
Service option temporarily out of order.
org.freedesktop.ModemManager.Modem.Gsm.GprsPdpAuthFailure
PDP authentication failure.
org.freedesktop.ModemManager.Modem.Gsm.GprsUnspecified
Unspecified GPRS error
org.freedesktop.ModemManager.Modem.Gsm.GprsInvalidClass
Invalid mobile class.
Index
Index of interfaces
Index of types