aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
6 daysFix SIM7600 audio channel set up issues ...sim7600David Timber
Increase timing magic values
6 daysSIM7600: return call audio formatDavid Timber
6 daysMerge request !1336 from 'dtmf-serialize'Dan Williams
Serialize DTMF requests and allow setting DTMF duration at call creation time https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1336 Closes #970
7 daystests: test call DTMF functionalityDan Williams
Signed-off-by: Dan Williams <dan@ioncontrol.co>
7 daysbase-call: handle multiple DTMF charactersDan Williams
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>
7 daysmodem-helpers: add utility function to split DTMF runsDan Williams
Split into groups of non-pause characters and single pause characters by themselves and return as an array of strings. Signed-off-by: Dan Williams <dan@ioncontrol.co>
7 daysbase-call: interpret DTMF character ',' as two-second pauseDan Williams
Do what other dialers do and interpret ',' as a short pause, which helps handle automated menus. Signed-off-by: Dan Williams <dan@ioncontrol.co>
7 daysbase-call: convert DTMF tone handling to a state machineDan Williams
Generalize the timeout/stop logic that QMI requires into the base call. We'll use this to implement the pause character (,) generically. Signed-off-by: Dan Williams <dan@ioncontrol.co>
7 dayscall: allow setting DTMF tone duration at call creation timeDan Williams
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>
7 dayscall-list: remove unused modem propertyDan Williams
Signed-off-by: Dan Williams <dan@ioncontrol.co>
7 daysbase-call: remove usage of MMBaseModemDan Williams
Split out the things we actually use from MMBaseModem into separate properties that can be independently implemented (or just left NULL) for unit tests. Signed-off-by: Dan Williams <dan@ioncontrol.co>
7 daysbase-call: split AT-specific call code into MMCallAtDan Williams
Signed-off-by: Dan Williams <dan@ioncontrol.co>
13 daysMerge request !1290 from 'port-scheduler'Dan Williams
port-serial: add command scheduler infrastructure and use it https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1290
13 daysport-scheduler: implement LOG_OBJECT interface and add scheduler loggingMaciej S. Szmigiero
Otherwise log functions crash. Signed-off-by: Maciej S. Szmigiero <mail@maciej.szmigiero.name>
13 daysport-serial: add serial port command schedulerDan Williams
Add an interface and implementation for a port scheduler that round- robins between ports the scheduler is attached to, serializing command execution among one or more MMPortSerial instances. Theory of operation: Sources (e.g. MMPort subclasses) register themselves with the scheduler. Each source notifies the scheduler whenever its command queue depth changes, for example when new commands are submitted, when commands are completed, or when commands are canceled. The scheduler will round-robin between all sources with pending commands, sleeping when there are no pending commands from any source. For each source with a pending command the scheduler will emit the 'send-command' signal with that source's ID. The given source should send the next command in its queue to the modem. When that command is finished (either successfully or with an error/timeout) the source must call mm_port_scheduler_notify_command_done() to notify the scheduler that it may advance to the next source with a pending command, if any. If the 'send-command' signal and the notify_command_done() call are not balanced the scheduler may stall. Signed-off-by: Dan Williams <dan@ioncontrol.co>
13 dayslog-object: don't construct log ID with NULL self_idDan Williams
If the object has an owner ID already but doesn't yet have enough information to build its log ID, don't cache a less-than-useful log ID string for it. Signed-off-by: Dan Williams <dan@ioncontrol.co>
13 dayslog-object: Add possibility to reset logger idMaciej S. Szmigiero
Logger id (the one generated from build_id interface method and owner_id property) is generated and cached the first time it is required, further uses just return the cached value. Add a cache reset method so if the interface implementer knows that its logger id could have changed it could force its re-generation. Signed-off-by: Maciej S. Szmigiero <mail@maciej.szmigiero.name>
14 daysMerge request !1361 from 'cbm-lang'Dan Williams
Parse CBM's language when available and export it on DBus https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1361
14 dayscli/cbm: Show CBMs language when availableGuido Günther
Signed-off-by: Guido Günther <agx@sigxcpu.org>
14 daysmmcbmmonitor: Print language when availableGuido Günther
Signed-off-by: Guido Günther <agx@sigxcpu.org>
14 daysmm-glib/cbm: Allow to get languageGuido Günther
Signed-off-by: Guido Günther <agx@sigxcpu.org>
14 daysbase-cbm: Export the lang property on DBusGuido Günther
Signed-off-by: Guido Günther <agx@sigxcpu.org>
14 dayscbm-part: Handle additional coding schemes and parse languagesGuido Günther
We store the language as iso639 as this is what the what TS 23.038 references. Signed-off-by: Guido Günther <agx@sigxcpu.org>
14 dayscbm-part: Fix parsing of language encodingsGuido Günther
According to TS 23.038 the language is stored at the beginning of the information page not in the "header". Signed-off-by: Guido Günther <agx@sigxcpu.org>
14 dayscbm-part: Use automatic cleanupGuido Günther
Safer than freeing the the struct in multiple places Signed-off-by: Guido Günther <agx@sigxcpu.org>
14 dayspolkit,conf: Add missing Cell Broadcast SetChannel methodGuido Günther
Signed-off-by: Guido Günther <agx@sigxcpu.org>
14 dayspolkit,conf: Add missing Cell Broadcast methodsGuido Günther
Fixes 62f7b76e8 ("cbm: Add CellBroadcast interface") Signed-off-by: Guido Günther <agx@sigxcpu.org>
14 daysMerge request !1355 from 'mtk-unlock-required'Dan Williams
mtk-legacy: read IMSI if CPIN response is an error https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1355 Closes #980
14 daysmtk-legacy: read IMSI if CPIN response is an errorDan Williams
Some older MTK-based phones (Tecno T528 NEW) reply to +CPIN with an error but are (obviously) unlocked, otherwise they wouldn't be able to boot up to the point of talking to a computer. Since they are actually unlocked they will happily give out the IMSI even if +CPIN errors. To work around the +CPIN issue treat the device as unlocked if we can successfully read the IMSI. Fixes: https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/980 Signed-off-by: Dan Williams <dan@ioncontrol.co>
14 daysbroadband-modem,modem-helpers: move +CPIN response parsing to modem helpersDan Williams
Unit test it better, plus remove code duplication in various plugins. Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-22Merge request !1364 from 'cbs-policy'Dan Williams
pollkit,cell-broadcast: Use more specific error message https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1364
2025-05-22pollkit,cell-broadcast: Use more specific error messageGuido Günther
Text messages could also be SMS Fixes 1fb74f266 ("data: Add a policy rule to access the cellbroadcast API") Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-05-22Merge request !1363 from 'pr/20250521-mbim-qdu'Dan Williams
broadband-modem-mbim: add qdu firmware update check https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1363
2025-05-22broadband-modem-mbim: add qdu firmware update checkFlorian Eckert
The manufacturers can offer a firmware update file 'ota.bin' with which the firmware can be updated in the modem via a manufacturer tool using windows. The tool is only available for Windows and can therefore not be used for embedded devices. A investigation has shown that this tool updates the firmware via 'mbim-qdu'. The update service 'fwupd' which has a 'modemmanager' plugin can install the firmware via 'mbim-qdu'. For this to work, the ModemManager must export this update method via the firmware interface. As the 'mbim-qdu' is a generic update method, the check is integrated into the 'mm-broadband-modem-mbim' class. If 'mbim-qdu' update method is supported by the mbim interface and the udev env variable 'ID_MM_MBIM_QDU' is set for this modem, then the 'mbim-qdu' update is exported via dbus. The following line must be added to the '77-mm-cinterion-port-types.rules' udev rules file, for example, so that the mbim-qdu update for the 'MV31' can be used. ATTRS{vendor}=="0x1e2d", ATTRS{device}=="0x00b3", ENV{ID_MM_MBIM_QDU}="1" This is the corresponding output of the 'mmcli' command to show the supported update method for the 'MV31'. root@G3-10940 ~ # mmcli -m Modem1 --firmware-status Firmware | method: mbim-qdu | device ids: USB\VID_1E2D&PID_00B3&REV_0414&CARRIER_GCF | USB\VID_1E2D&PID_00B3&REV_0414 | USB\VID_1E2D&PID_00B3 | USB\VID_1E2D | version: T99W175.F0.1.0.0.9.GC.004.063 - 0A000804 Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2025-05-22Merge request !1044 from 'submodule'Dan Williams
Allow to use libqmi and libmbim as meson subprojects https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1044
2025-05-22build: Allow to use libqmi as subprojectGuido Günther
This makes it simpler to build ModemManager git Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-05-22build: Allow to use libmbim as subprojectGuido Günther
This makes it simpler to build ModemManager git Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-05-22Merge request !1360 from 'bind-to-vs-cbm-crash'Dan Williams
base-cbm: Install properties one by one https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1360
2025-05-22base-cbm: Install properties one by oneGuido Günther
`g_object_class_install_property` picks up `PROP_BIND_TO` resulting in a crash on the first CBM received. Fixes: ec5104c9a ("Move log parent and connection property binding to helper") Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-05-22Merge request !1356 from 'sierra-call-urc-fix'Dan Williams
serial-parsers: don't echo-remove strange call start/end URCs https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1356
2025-05-22serial-parsers: don't echo-remove strange call start/end URCsDan Williams
Some Sierra devices omit the leading <CR> from call start/end URCs like NO CARRIER and CONNECT, which caused the echo-removal code to remove from the response buffer because the leading <CR><LF> did not exist. That can break call control and hangup handling on those devices. Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-22serial-parsers,port-serial-at: move echo removal into serial parserDan Williams
Mainly because we need somewhere to stash the call end regex, and it's silly to have a 3rd instance of that in MMPortSerialAt when we already have one in the serial parsers that MMPortSerialAt relies on pretty heavily. Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-22broadband-modem,modem-helpers: generalize call end regex creationDan Williams
Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-22Merge request !1359 from 'cpms-spaces'Dan Williams
modem-helpers: handle spaces in +CPMS query response https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1359 Closes #990
2025-05-20modem-helpers: handle spaces in +CPMS query responseDan Williams
Fixes: https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/990 Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-20Merge request !1358 from 'qmi-cbm-fixes'Dan Williams
broadband-modem-qmi: Cellbroadcast channel reading fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1358
2025-05-20broadband-modem-qmi/cellbroadcast: Allow for G_MAXUINT16Guido Günther
It's a valid channel value. Since start and end are guint16 we can drop the check altogether. Fixes: e25dd7db9 ("broadband-modem-qmi: Add support for loading channels") Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-05-20broadband-modem-qmi/cellbroadcast: Return on failureGuido Günther
Return after setting the error Fixes: e25dd7db9 ("broadband-modem-qmi: Add support for loading channels") Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-05-19Merge request !1354 from 'dp/le910q-ecm-upstream'Dan Williams
Add ECM support for Telit LE910Q1 https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1354
2025-05-19telit: add ECM bearer for LE910Q1/ELS63-IDaniele Palmas
Signed-off-by: Daniele Palmas <dnlplm@gmail.com>