Age | Commit message (Collapse) | Author |
|
Increase timing magic values
|
|
|
|
Serialize DTMF requests and allow setting DTMF duration at call creation time
https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1336
Closes #970
|
|
Signed-off-by: Dan Williams <dan@ioncontrol.co>
|
|
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>
|
|
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>
|
|
Do what other dialers do and interpret ',' as a short pause, which
helps handle automated menus.
Signed-off-by: Dan Williams <dan@ioncontrol.co>
|
|
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>
|
|
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>
|
|
Signed-off-by: Dan Williams <dan@ioncontrol.co>
|
|
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>
|
|
Signed-off-by: Dan Williams <dan@ioncontrol.co>
|
|
port-serial: add command scheduler infrastructure and use it
https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1290
|
|
Otherwise log functions crash.
Signed-off-by: Maciej S. Szmigiero <mail@maciej.szmigiero.name>
|
|
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>
|
|
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>
|
|
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>
|
|
Parse CBM's language when available and export it on DBus
https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1361
|
|
Signed-off-by: Guido Günther <agx@sigxcpu.org>
|
|
Signed-off-by: Guido Günther <agx@sigxcpu.org>
|
|
Signed-off-by: Guido Günther <agx@sigxcpu.org>
|
|
Signed-off-by: Guido Günther <agx@sigxcpu.org>
|
|
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>
|
|
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>
|
|
Safer than freeing the the struct in multiple places
Signed-off-by: Guido Günther <agx@sigxcpu.org>
|
|
Signed-off-by: Guido Günther <agx@sigxcpu.org>
|
|
Fixes 62f7b76e8 ("cbm: Add CellBroadcast interface")
Signed-off-by: Guido Günther <agx@sigxcpu.org>
|
|
mtk-legacy: read IMSI if CPIN response is an error
https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1355
Closes #980
|
|
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>
|
|
Unit test it better, plus remove code duplication in various plugins.
Signed-off-by: Dan Williams <dan@ioncontrol.co>
|
|
pollkit,cell-broadcast: Use more specific error message
https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1364
|
|
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>
|
|
broadband-modem-mbim: add qdu firmware update check
https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1363
|
|
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>
|
|
Allow to use libqmi and libmbim as meson subprojects
https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1044
|
|
This makes it simpler to build ModemManager git
Signed-off-by: Guido Günther <agx@sigxcpu.org>
|
|
This makes it simpler to build ModemManager git
Signed-off-by: Guido Günther <agx@sigxcpu.org>
|
|
base-cbm: Install properties one by one
https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1360
|
|
`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>
|
|
serial-parsers: don't echo-remove strange call start/end URCs
https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1356
|
|
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>
|
|
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>
|
|
Signed-off-by: Dan Williams <dan@ioncontrol.co>
|
|
modem-helpers: handle spaces in +CPMS query response
https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1359
Closes #990
|
|
Fixes: https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/990
Signed-off-by: Dan Williams <dan@ioncontrol.co>
|
|
broadband-modem-qmi: Cellbroadcast channel reading fixes
https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1358
|
|
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>
|
|
Return after setting the error
Fixes: e25dd7db9 ("broadband-modem-qmi: Add support for loading channels")
Signed-off-by: Guido Günther <agx@sigxcpu.org>
|
|
Add ECM support for Telit LE910Q1
https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1354
|
|
Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
|