Commit Graph
338 Commits
Author SHA1 Message Date
Dan Williams ae3d37030a base-call: handle multiple DTMF characters
Send each character through the state machine one at a time. Some
modems (various Quectel ones for example) can process multiple at
the same time, and while that should be easily implemented using
the new changes to send_dtmf() it's not done in any plugin yet.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-30 08:02:48 -05:00
Dan Williams 957a141e57 base-call: interpret DTMF character ',' as two-second pause
Do what other dialers do and interpret ',' as a short pause, which
helps handle automated menus.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-30 07:59:59 -05:00
Dan Williams 5448a85a2b call: allow setting DTMF tone duration at call creation time
Instead of hard-coding a 500ms DTMF tone duration, let applications
use a specific duration at call setup time.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-30 07:59:58 -05:00
Guido Günther 95d65ecd8d base-cbm: Export the lang property on DBus
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-05-23 14:15:14 -05:00
Dominique Martinet dea8f27464 api,bearer: new 'DisconnectRequest' property
To report that the bearer has been killed from the modem side and
the connection should be terminated.

Signed-off-by: Dominique Martinet <dominique.martinet@atmark-techno.com>
2025-05-16 22:06:24 +09:00
Lukas Voegl 436081648b api,modem: new 'IgnoredPorts' property
Expose a new list of 'IgnoredPorts' via D-Bus and therefore remove the use of `MM_MODEM_PORT_TYPE_IGNORED`

Signed-off-by: Lukas Voegl <lvoegl@tdt.de>
2025-04-25 09:37:16 +02:00
Guido Günther 2878833f5c modem: Allow to set current channel list
This adds support for setting the channels to override the boot up modem
defaults:

```
  busctl --system call org.freedesktop.ModemManager1 /org/freedesktop/ModemManager1/Modem/0 org.freedesktop.ModemManager1.Modem.CellBroadcast SetChannels 'a(uu)' 1 0 9999
  busctl --system get-property org.freedesktop.ModemManager1 /org/freedesktop/ModemManager1/Modem/0 org.freedesktop.ModemManager1.Modem.CellBroadcast Channels
  a(uu) 1 0 9999
```

Closes: https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/934

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-03-28 20:53:52 +00:00
Guido Günther 68933455df treewide: Fix typos
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-03-11 23:15:57 +01:00
Guido Günther 54dcc25d8b treewide: Fix some spelling errors
All in debug messages or code comments so not user / client visible.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-03-05 16:53:26 +00:00
Guido Günther 62f7b76e8e cbm: Add CellBroadcast interface
This adds support for the Cell Broadcast interface allowing to
receive, list, read and delete Cell Broadcast messages via the
org.freedesktop.ModemManager1.Modem.CellBroadcast and
org.freedesktop.ModemManager1.Cbm interfaces.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2024-12-01 21:41:10 +00:00
Akula Susmitha f22d099f38 api,core,mmcli: Add new 'API' support to set-default-storage for SMS
API support has been added to set default storage for SMS.
Changes were made to get, set the deafult storage value.
2024-10-07 16:35:09 +05:30
Ujjwal Pande 2904510e76 api: new NetworkRejection property
When a modem is not able to register to the network, MBIM and QMI indications
related to registration reports network rejection cause codes if request is
rejected by the network. This information is currently logged in the ModemManager
but not exposed outside of ModemManager.
These are the changes to define interface to expose network reject cause codes
over d-bus to the above layers which could be used by above layers to present
this information in a user friendly way.
2024-06-12 09:39:12 +00:00
Aleksander Morgado 3cb94cb0ae api,introspection: added notes about ProfileManager.Updated() reliability 2023-12-12 11:31:06 +00:00
Raphaël Jakse 63dd4ad263 iface-location: allow enabling without SIM
When the modem is in a failed state because of a SIM-related error,
like a missing SIM, or if the modem is SIM-locked, allow the
Location interface to initialize and be enabled anyway.

This allows someone without a SIM to use the GPS, which does not
particularly require a phone subscription. It also allows
someone with a SIM to use the GPS even if the SIM is still
locked.

This patch was reworked, while keeping the original idea, by:
Aleksander Morgado <aleksander@aleksander.es>

Fixes #183
2023-12-11 12:37:42 +00:00
Aleksander Morgado d06a8cee25 api: add comment about "MSG" level being available only since 1.22 2023-09-27 09:07:24 +00:00
Lukas Voegl 8cd1c1bdb9 api,modem: new 'Physdev' property
Signed-off-by: Lukas Voegl <lvoegl@tdt.de>
2023-09-18 10:53:12 +02:00
Ujjwal Pande e3a1206c57 api: new carrier lock support
Adding support for carrier lock for MBIM modems using google simlock
mechanism.
2023-06-08 20:16:12 +00:00
som e8d63c1743 modem-cellinfo: adding bandwidth and serving cell type
adding bandwidth information in mm-dbus interface
for the serving cell. In serving cell, the details
on whether the pcell/scell are from MCS or SCG is
also updated.

Co-author: Shilpa Shivakumar
2023-02-17 10:43:20 +00:00
Aleksander Morgado f419f56628 build: drop autotools 2022-11-07 14:26:02 +00:00
Aleksander Morgado b3f315ad2d core,log: new 'MSG' log level between 'INFO' and 'WARN'
We're bumping the current "INFO" level messages to the new "MSG"
level, also making the new level the default.

The old "INFO" level will be used to setup an intermediate level of
logging which is not as verbose as "DEBUG" but still provides some
capabilities to analyze the behavior of a modem.
2022-11-04 13:12:56 +00:00
Aleksander Morgado b6b21f8fa6 api,introspection: add Gid1 and Gid2 properties in SIM interface 2022-08-19 15:53:43 +00:00
Dylan Van Assche ba96ccc615 build: make tests optional
Add a meson option -Dtests and --without-tests automake option
to disable the compilation of all available testcases.
This is useful for compiling projects with Flatpak such as
GNOME Control Center which disables all possible integrations since they
only need the DBus part of ModemManager.

Contributes to https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/1392
2022-07-25 11:01:51 +02:00
Dylan Van Assche f00cb9f67c introspection: add Modem Simple 2022-04-21 09:23:26 +02:00
Aleksander Morgado 45102fcd60 iface-modem-signal: polling and thresholds only in effect if modem enabled
If the modem is disabled:
 * Polling is completely halted.
 * Thresholds are disabled.
 * The user is allowed to call Setup() or SetupThresholds() to change
   the settings, even if the actual polling or thresholds setup isn't
   in effect.

When the modem is enabled:
 * Polling will be started if there is a existing polling rate.
 * Thresholds will be setup based on the existing threshold settings.

Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/504
2022-02-16 11:28:03 +00:00
Aleksander Morgado 554faa855c api,modem: new 'GetCellInfo()' method
This new method allows querying the modem for information about the
current serving cell(s) as well as any other neighboring cell that may
be found.

The information for the cells is given in an array of dictionaries,
where each element of the dictionary is a new dictionary itself.

Each cell type has a different set of properties that may be given in
the dictionary, and some of those properties in each type are also
applicable under certain conditions (e.g. only applicable to the cell
if it's a 'serving' cell instead of 'neighboring').

The API documentation explains in detail what is expected in each
case.
2022-01-18 09:00:10 +00:00
Aleksander Morgado bae2f3b204 api,modem: fix alignment in SetPrimarySimSlot() 2022-01-06 20:31:29 +01:00
Aleksander Morgado 049ebb7084 api,profile-manager: new 'IndexField' property
For most protocols, the operations to manage profiles require a unique
'profile-id' as index. This applies to AT, QMI and generic MBIM.

But for MBIM using the Microsoft Extensions for profile management,
this is no longer true; the device expects the 'apn-type' to be the
index.

This new property lets the user know which is the expected index field
in the Delete() and Set() operations.
2021-12-24 14:06:13 +01:00
Aleksander Morgado fc6bc84d22 api,bearer: new 'profile-source' setting
Sometimes it's useful to know how a given stored profile was created,
so devices can store and report this kind of information.
2021-12-24 14:02:30 +01:00
Aleksander Morgado 73a29c3e33 api,bearer: new 'roaming-allowance' setting
The 'allow-roaming' setting should be considered deprecated for 3GPP
devices that support the new 'roaming-allowance' setting, which is
much more detailed (as it allows to differentiate between partner and
non-partner networks) and may also be stored as part of a profile.
2021-12-24 14:02:30 +01:00
Aleksander Morgado 52538defe1 api,bearer: specify how 'allow-roaming' works
This is never part of profile settings, it's a volatile configuration
applicable to the connection attempt ongoing with the given bearer
settings.
2021-12-24 14:02:30 +01:00
Aleksander Morgado 1010c3be4e api,bearer: new 'profile-enabled' setting
This setting is stored as part of the profile in the device, and
allows the user to specify that a given profile must not be used in
any way by the modem (if set to 'FALSE').
2021-12-24 14:02:30 +01:00
Aleksander Morgado 339b51652a api,bearer: new 'access-type-preference' setting
In 5G capable devices, which can support multiple types of access
types (either 3GPP or non-3GPP), the UE may request to use a 3GPP
access type exclusively, prefer a 3GPP access type, or just report no
preference.

When supported, this field may also be part of the settings that can
be stored as part of a profile.
2021-12-24 14:02:28 +01:00
Aleksander Morgado 724342deac api,modem3gpp: add DRX cycle in 5G registration settings 2021-12-24 12:41:27 +00:00
Som_SP e951008ae8 api,modem3gpp: new 5G registration settings support and MICO mode
A new set of property+method is added to be able to configure the 5G
specific registration settings, initially defining the support for the
MICO mode.

The property name starts with "Nr5g" instead of "5gNr" because of the
limitations imposed by the GObject type system on how properties with
numbers can be named.
2021-12-24 12:41:27 +00:00
Aleksander Morgado 029ea68ce4 base-bearer: make sure 'ReloadStatsSupported' is set before transitioning to 'Connected'
By the time we report the bearer as 'Connected', the DBus client
should also be able to know right away the value of
'ReloadStatsSupported', instead of needing to wait for it to be
updated asynchronously.

This logic adds one additional step in the generic connection
sequence for this purpose, which is run after the modem is connected
but before we report the state change via DBus.
2021-12-13 09:35:28 +00:00
Frederic Martinsons 9fc3d15d29 api, dbus, bearer: Add ReloadStatsSupported bearer dbus property
This property means that the current bearer can reload stats and read TX
and RX bytes transmitted.

The property is initiliazed as soon as the bearer is connected.

Signed-off-by: Frederic Martinsons <frederic.martinsons@sigfox.com>
2021-12-13 09:35:28 +00:00
som 46016f68fd api,sim: new 'SimType', 'Removability' and 'EsimStatus' properties 2021-12-11 12:53:37 +01:00
Aleksander Morgado eae2e28577 api,bearer: specify that 'profile-name' is part of profile management
The setting does not make much sense in an explicit connection attempt.
2021-11-04 21:21:57 +01:00
Aleksander Morgado 797cc6828a api,bearer: minor indentation fixes 2021-11-04 21:21:57 +01:00
Som_SP 511859ef0a api,bearer: add 'uplink-speed' and 'downlink-speed' stats
These values show the rates that have been negotiated with the network
during the PS domain attach.

These are not the current ongoing data rates associated to the network
usage at some given moment.

Includes updates by Aleksander Morgado to fix coding style issues and
add missing documentation items.
2021-11-03 12:41:51 +01:00
Som_SP d71a0bcf8e api,bearer: add reference to 5G DNN in the "apn" property
It's just a new name for the same thing really.
2021-11-03 10:38:40 +00:00
Aleksander Morgado 3ab765f11c api,3gpp: new 'SetPacketServiceState()' method 2021-11-02 09:50:17 +00:00
Aleksander Morgado f55ea211a9 api,3gpp: new 'PacketServiceState' property
This property allows the user to know whether the device is attached
or detached from the packet domain service.
2021-11-02 09:50:17 +00:00
Frederic Martinsons 0510e9aef8 api,bearer: new 'start-date' field in bearer statistics
It stores the epoch timestamp of the current bearer session start.
If there is no connected bearer, it is set to 0 and not displayed
in mmcli output.

Signed-off-by: Frederic Martinsons <frederic.martinsons@sigfox.com>

Includes updates by Aleksander Morgado to fix coding style issues.
2021-10-22 13:48:13 +02:00
Som_SP 296b5185f5 api,signal: new signal threshold based setup
A new SetupThreshold() method is added to configure and control the
device signal notifications sent to the host. RSSI and error rate
based thresholds are initially assumed, but the interface allows
growing the method with additional threshold types.

Includes updates by Aleksander Morgado to improve documentation of the
new methods and properties.
2021-10-20 21:57:02 +02:00
Som_SP 86740082a2 api,signal: new 'error-rate' reporting per access technology
Includes updates by Aleksander Morgado to improve documentation.
2021-10-20 21:56:51 +02:00
Andrew Lassalle c355210f5d bearer-properties: Add profile-name to the bearer properties 2021-10-17 17:56:44 +02:00
Aleksander Morgado 5f043e47bf introspection,signal: minor doc fix in 5G RSRP 2021-10-16 00:02:26 +02:00
Aleksander Morgado 8fdaee63aa introspection,sar: new interface introduced for 1.20 2021-09-10 09:53:57 +00:00
Aleksander Morgado 7e1e2f44c3 build,meson: add Sar interface 2021-09-10 09:53:57 +00:00