32 Commits
Author SHA1 Message Date
Dylan Van Assche 57637132c9 ci: build without testcases
Verify if ModemManager builds with everything disabled
2022-07-25 11:01:57 +02: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 efb497e2e6 mm-call-qmi: implement DTMF support
Overwrite the base class with a QMI implementation
to send DTMF characters during a call. Uses the continuous DTMF
QMI messages to support both CDMA and 3GPP networks.
2022-07-16 13:33:29 +00:00
Dylan Van Assche ea3f5ccad8 mm-call-qmi: drop unnecessary white space 2022-07-16 13:33:29 +00:00
Dylan Van Assche 3e61d07419 mm-call-qmi: fix comment consistency
Do not use caps for 'call'
2022-07-16 13:33:29 +00:00
Dylan Van Assche 3239fc22ff mm-iface-modem: mark signal strength as recent on init
When initializing the Modem interface, we set the signal strength
to the default value (0%) and we are certain this is the recent value
until the modem reports the actual signal strength if available.
Therefore, mark the signal strength as recent instead of cached.
2022-05-03 13:50:13 +02:00
Dylan Van Assche a1b52c14bf mm-iface-modem: set signal quality to 0% on shutdown
If a modem is disabled, the signal quality is still set to the cached
value, even though the modem is not connected to any network anymore.
Set the signal quality to 0% when the interface is removed from DBus.

Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/558
2022-04-29 17:43:10 +02:00
Dylan Van Assche f00cb9f67c introspection: add Modem Simple 2022-04-21 09:23:26 +02:00
Dylan Van Assche b70fd64417 quectel: add name to device IDs
fwupd expects device IDs which are unique for each device and its
variants. However, Quectel re-uses the same USB VID & PID among
different variants such as EG25, EC25, EC20, etc. Moreover, each
variant may have subvariants such as EG25GGB, EG25GGC, EG25AFF,
EG25AFX, etc.

Add the name of the modem to the device IDs to build more unique device
IDs such as USB\VID_2C7C&PID_0125&REV_0001&NAME_EC25GGB.
2022-02-09 11:07:49 +01:00
Dylan Van Assche 90397fa1bb iface-modem-firmware: expose device id builder
Expose the generic device id method as a public API for plugins.
Plugins can call this method first and then add their own device ids on
top in case the generic ones aren't specific enough like in the case of
Quectel modems.
2022-02-08 19:33:56 +01:00
Dylan Van Assche bdf4d898f6 libmm-glib,firmware-update-settings: setter for method
Allow to set the firmware update method even after
initialization of the MMFirmwareUpdateSettings object.
2022-02-08 19:33:51 +01:00
Dylan Van Assche 07d7f596d3 plugins/quectel/mm-shared-quectel: use QGMR to set version
Quectel modems report only their major firmware version through
AT+GMR, use AT+QGMR instead to report the full firmware version.
2022-01-11 08:42:53 +00:00
Dylan Van Assche 3f76b3b7d1 plugins/quectel/mm-broadband-modem-qmi-quectel: ignore carrier revision
Quectel EG25-G QMI modem firmware revisions are not matched with carrier configs.
Different VoLTE profiles might be selected by the user causing
the carrier config revision to change.

Since fwupd uses this string for firmware updates, it gets confused and
thinks the user has an update available.
2022-01-11 08:41:37 +00:00
Dylan Van Assche 15d66197b3 mm-broadband-modem-qmi: add AT URCs fall back for calls
Enable AT URCs for calls on top of QMI Voice indications
for AT+QMI devices only. Some AT+QMI devices send unreliable
QMI indications when the host is resuming. In such cases,
AT URCs can be used as a fall back to make calls reliable.

While AT+QMI devices relied before on AT commands to load
call list information and handle AT URCs for async updates,
this is now handled through QMI by forcefully reloading the
call list instead of processing the AT URCs.
This approach is disabled by default through the
MM_IFACE_MODEM_VOICE_INDICATION_CALL_LIST_RELOAD_ENABLED property.
This property is set to true in case of QMI modems.
2021-09-08 10:02:51 +02:00
Dylan Van Assche 92ad38432c mm-modem-helpers: only parse calls in voice mode
Calls in a CLCC response in data-only or fax-only mode
do not count as actuall calls.
2021-09-08 07:59:16 +00:00
Dylan Van Assche 0faf969e30 introspection: signal quality signature is (ub)
Signal quality property signature of the Modem Simple interface
is not an unsigned integer, but a struct containing
an unsigned integer indicating the strength and
a boolean to indicate if the value was recently taken.
2021-07-25 16:18:06 +02:00
Dylan Van Assche c00eff43ac quectel: ignore QLWURC
QLWURCs are not ignored and causes calls to be rejected in some cases
2021-06-01 12:52:05 +02:00
Dylan Van Assche 8913bab1c5 base-bearer: synchronize state when resuming
Refresh connection status on resume to confirm
that the connection bearers are still valid.
2021-05-26 13:14:52 +00:00
Dylan Van Assche 0e47ba4041 iface-modem: synchronize state when resuming
Refresh signal strength and access technologies,
check for SIM swaps, and check if the SIM is locked.
The modem may have switched to a different
access technologies or have a different signal strength
when resuming. Moreover, the user may swap or remove
the SIM when suspended.
2021-05-26 13:14:52 +00:00
Dylan Van Assche 84aa134ad9 iface-modem-3gpp: synchronize state when resuming
On resume, refresh the EPS bearers and 3GPP registration
as the registration and bearers may expired during suspend.
2021-05-26 13:14:52 +00:00
Dylan Van Assche 41db2e5e82 iface-modem-time: synchronize state when resuming
On resume, fetch the current network time as
the network time may be changed when suspended.
2021-05-26 13:14:52 +00:00
Dylan Van Assche 38740e9d11 base-manager: add quick suspend/resume base
Quick suspend/resume infrastructure for
synchronizing the interfaces when resuming.
2021-05-26 13:14:52 +00:00
Dylan Van Assche 4d095ae05b mm-iface-modem: fix typo in step function 2021-05-23 10:00:11 +00:00
Dylan Van Assche 1beea40270 quectel: set QGPSXTRA to enable assistance support
Quectel modems require to enable XTRA GNSS assistance first with QGPSXTRA=1, before it can be used.
2021-04-20 15:29:29 +00:00
Dylan Van Assche 192e067f97 quectel: ignore QGPSURC
QGPSURCs are not ignored and causes calls to be rejected in some cases
2021-03-21 10:01:52 +00:00
Dylan Van Assche 8bc90b7131 broadband-modem-qmi: Enable AT URCs and QMI indications
Enable both AT URCs and QMI indications for messaging events.
This allows to receive text messages during suspend
on the PinePhone with a Quectel EG25 modem.
2021-03-01 16:18:33 +00:00
Dylan Van Assche 7159b8e27a context: add test-no-suspend-resume cli parameter
Disables suspend/resume support at runtime.
This is useful for modems which are never turned off
or suspended when the host suspends.
2021-02-14 12:27:42 +00:00
Dylan Van Assche d531992897 tests: added parse ERROR response test 2020-12-01 20:42:55 +00:00
Dylan Van Assche c15d103ca6 serial-parsers: also match ERROR responses that are not at end of line
Do not fail to detect an error response with a call or text incoming. This happens during port probing when there's no URC parsers installed in the serial port. This probably will not happen when the serial port was managed by the modem object.w
2020-12-01 20:42:55 +00:00
Dylan Van Assche c05580ca9a tests: added parse OK response test 2020-12-01 20:42:55 +00:00
Dylan Van Assche 750fb2bc4a serial-parsers: also match OK responses that are not at end of line
Do not fail to detect a valid response with a call or text incoming.
This happens also during port probing when there's no URC parsers
installed in the serial port. This probably will not happen when the
serial port was managed by the modem object.
2020-12-01 20:42:55 +00:00
Dylan Van Assche 756894bc76 build: Allow elogind for suspend/resume support 2020-11-27 18:07:02 +01:00