## org.freedesktop.ModemManager1.Modem.Modem3gpp

org.freedesktop.ModemManager1.Modem.Modem3gpp — The ModemManager 3GPP interface.

## Methods

    Register                    (IN  s      operator_id);
    Scan                        (OUT aa{sv} results);
    SetEpsUeModeOperation       (IN  u      mode);
    SetInitialEpsBearerSettings (IN  a{sv}  settings);
    SetNr5gRegistrationSettings (IN  a{sv}  properties);
    DisableFacilityLock         (IN  (us)   properties);
    SetCarrierLock              (IN  ay     data);
    SetPacketServiceState       (IN  u      state);

## Properties

    Imei                      readable   s
    RegistrationState         readable   u
    NetworkRejection          readable   a{sv}
    OperatorCode              readable   s
    OperatorName              readable   s
    EnabledFacilityLocks      readable   u
    SubscriptionState         readable   u
    EpsUeModeOperation        readable   u
    Pco                       readable   a(ubay)
    InitialEpsBearer          readable   o
    InitialEpsBearerSettings  readable   a{sv}
    PacketServiceState        readable   u
    Nr5gRegistrationSettings  readable   a{sv}

## Description

This interface provides access to specific actions that may be performed in modems with 3GPP capabilities.

This interface will only be available once the modem is ready to be registered in the cellular network. 3GPP devices will require a valid unlocked SIM card before any of the features in the interface can be used.

## Method Details

### The `Register()` method

    Register (IN  s operator_id);

Request registration with a given mobile network.

Since: 1.0

`IN s `operator_id``: | The operator ID (ie, `"MCCMNC"`, like `"310260"`) to register. An empty string can be used to register to the home network.

### The `Scan()` method

    Scan (OUT aa{sv} results);

Scan for available networks.

`results` is an array of dictionaries with each array element describing a mobile network found in the scan. Each dictionary may include one or more of the following keys:

`"status"` | A MMModem3gppNetworkAvailability value representing network availability status, given as an unsigned integer (signature `"u"`). This key will always be present.
`"operator-long"` | Long-format name of operator, given as a string value (signature `"s"`). If the name is unknown, this field should not be present.
`"operator-short"` | Short-format name of operator, given as a string value (signature `"s"`). If the name is unknown, this field should not be present.
`"operator-code"` | Mobile code of the operator, given as a string value (signature `"s"`). Returned in the format `"MCCMNC"`, where `MCC` is the three-digit ITU E.212 Mobile Country Code and `MNC` is the two- or three-digit GSM Mobile Network Code. e.g. `"31026"` or `"310260"`.
`"access-technology"` | A MMModemAccessTechnology value representing the generic access technology used by this mobile network, given as an unsigned integer (signature `"u"`).

Since: 1.0

`OUT aa{sv} `results``: | Array of dictionaries with the found networks.

### The `SetEpsUeModeOperation()` method

    SetEpsUeModeOperation (IN  u mode);

Sets the UE mode of operation for EPS.

Since: 1.10

`IN u `mode``: | a MMModem3gppEpsUeModeOperation.

### The `SetInitialEpsBearerSettings()` method

    SetInitialEpsBearerSettings (IN  a{sv} settings);

Updates the default settings to be used in the initial default EPS bearer when registering to the LTE network.

The allowed properties in this method are all the 3GPP-specific ones specified in the bearer properties; i.e.: `"apn"`, `"ip-type"`, `"allowed-auth"`, `"user"`, and `"password"`.

Since: 1.10

`IN a{sv} `settings``: | List of properties to use when requesting the LTE attach procedure.

### The `SetNr5gRegistrationSettings()` method

    SetNr5gRegistrationSettings (IN  a{sv} properties);

Updates the 5G specific registration settings configured in the device.

The allowed properties in this method are all the ones specified in the Nr5gRegistrationSettings; i.e.: `"mico-mode"` and `"drx-cycle"`.

Since: 1.20

`IN a{sv} `properties``: | List of 5G specific registration settings.

### The `DisableFacilityLock()` method

    DisableFacilityLock (IN  (us) properties);

Sends control key to modem to disable selected facility lock

"facility" | A MMModem3gppFacility value representing the type of the facility lock to disable.
"control key" | Alphanumeric key required to unlock facility.

`IN (us) `properties``: | A tuple of facility type and control key.

### The `SetCarrierLock()` method

    SetCarrierLock (IN  ay data);

Command to send the list of carrier network information to the modem.

Since: 1.22

`IN ay `data``: | The list of carrier network information to be sent to be configured.

### The `SetPacketServiceState()` method

    SetPacketServiceState (IN  u state);

Explicitly attach or detach packet service on the current registered network.

Since: 1.20

`IN u `state``: | a MMModem3gppPacketServiceState.

## Property Details

### The "Imei" property

    Imei  readable   s

The IMEI of the device.

Since: 1.0

### The "RegistrationState" property

    RegistrationState  readable   u

A MMModem3gppRegistrationState value specifying the mobile registration status as defined in 3GPP TS 27.007 section 10.1.19.

Since: 1.0

### The "NetworkRejection" property

    NetworkRejection  readable   a{sv}

This property holds the latest network rejection information received from the network during registration failure, and it will be cleared whenever the modem successfully registers. Network errors are defined in 3GPP TS 24.008 in sections 10.5.3.6 and 10.5.5.14 (detailed in annex G) and in 3GPP TS 24.301 in section 9.9.3.9.

Mandatory items include:

`"error"` | A MMNetworkError, specifying the reason why a request from the mobile station is rejected by the network, given as an unsigned integer value (signature `"u"`).

Optionally following items could be included if reported by modem along with network error.

`"operator-id"` | Operator id reported along with network error, given as a string value (signature `"s"`).
`"operator-name"` | Operator name reported along with network error, given as a string value (signature `"s"`).
`"access-technology"` | A MMModemAccessTechnology, specifying the available data class reported along with network error, given as an unsigned integer value (signature `"u"`).

Since: 1.24

### The "OperatorCode" property

    OperatorCode  readable   s

Code of the operator to which the mobile is currently registered.

Returned in the format `"MCCMNC"`, where `MCC` is the three-digit ITU E.212 Mobile Country Code and `MNC` is the two- or three-digit GSM Mobile Network Code. e.g. e`"31026"` or `"310260"`.

If the `MCC` and `MNC` are not known or the mobile is not registered to a mobile network, this property will be a zero-length (blank) string.

Since: 1.0

### The "OperatorName" property

    OperatorName  readable   s

Name of the operator to which the mobile is currently registered.

If the operator name is not known or the mobile is not registered to a mobile network, this property will be a zero-length (blank) string.

Since: 1.0

### The "EnabledFacilityLocks" property

    EnabledFacilityLocks  readable   u

Bitmask of MMModem3gppFacility values for which PIN locking is enabled.

Since: 1.0

### The "SubscriptionState" property

    SubscriptionState  readable   u

A MMModem3gppSubscriptionState value representing the subscription status of the account and whether there is any data remaining, given as an unsigned integer (signature `"u"`).

Since: 1.2

Deprecated: 1.10.0. The value of this property can only be obtained with operator specific logic (e.g. processing specific PCO info), and therefore it doesn't make sense to expose it in the ModemManager interface.

### The "EpsUeModeOperation" property

    EpsUeModeOperation  readable   u

A MMModem3gppEpsUeModeOperation value representing the UE mode of operation for EPS, given as an unsigned integer (signature `"u"`).

Since: 1.10

### The "Pco" property

    Pco  readable   a(ubay)

The raw PCOs received from the network, given as array of PCO elements (signature `"a(ubay)"`).

Each PCO is defined as a sequence of 3 fields:

1. The session ID associated with the PCO, given as an unsigned integer value (signature `"u"`).
2. The flag that indicates whether the PCO data contains the complete PCO structure received from the network, given as a boolean value (signature `"b"`).
3. The raw PCO data, given as an array of bytes (signature `"ay"`).

Since: 1.10

### The "InitialEpsBearer" property

    InitialEpsBearer  readable   o

The object path for the initial default EPS bearer.

Since: 1.10

### The "InitialEpsBearerSettings" property

    InitialEpsBearerSettings  readable   a{sv}

List of properties requested by the device for the initial EPS bearer during LTE network attach procedure.

The network may decide to use different settings during the actual device attach procedure, e.g. if the device is roaming or no explicit settings were requested, so the values shown in the "InitialEpsBearer" bearer object may be totally different.

This is a read-only property, updating these settings should be done using the `SetInitialEpsBearerSettings()` method.

Since: 1.10

### The "PacketServiceState" property

    PacketServiceState  readable   u

A MMModem3gppPacketServiceState value specifying the packet domain service state.

Since: 1.20

### The "Nr5gRegistrationSettings" property

    Nr5gRegistrationSettings  readable   a{sv}

5G specific registration settings.

This is a read-only property, updating these settings should be done using the `Set5gNrRegistrationSettings()` method.

"mico-mode" | A MMModem3gppMicoMode value representing the Mobile Initiated Connection (MICO) mode requested by the host, given as an unsigned integer (signature `"u"`).
"drx-cycle" | A MMModem3gppDrxCycle value, representing the DRX settings requested by the host, given as an unsigned integer (signature `"u"`).

Since: 1.20