aboutsummaryrefslogtreecommitdiff
path: root/cli
AgeCommit message (Collapse)Author
2018-09-21mmcli,location: fix doubled variable declarationUlrich Ölmann
Remove the redundant declaration of which slipped into the code in commit 091bf4dbd811 ("api: support location assistance data"). Signed-off-by: Ulrich Ölmann <u.oelmann@pengutronix.de>
2018-09-21cli,signal: add generic fields in its own groupAleksander Morgado
This is just to consolidate the output w.r.t. similar fields in e.g. the Messaging or Location interfaces.
2018-09-12mmcli,location: print LAC/TAC/CID in hexAleksander Morgado
All these values are usually specified in hex, not in dec.
2018-09-12iface-modem-location: validate SUPL server addressAleksander Morgado
Devices will expect SUPL server given as either IP:PORT or FQDN:PORT, so just avoid saying we require a 'URL' because it's not true. We will use a new helper method to parse and validate user-provided SUPL server address.
2018-08-21api: support location assistance dataAleksander Morgado
Sometimes SUPL-server based A-GPS is not possible, e.g. if the module doesn't have Internet connectivity. In such cases, the modem may support injecting additional "assistance data" that may be downloaded from the Internet using external means (e.g. WiFi), in order to keep having a quick time to first fix. We now support using this location assistance data, with the following new API elements: * A new mask of supported assistance data types is provided in the SupportedAssistanceData property. * A new list of URLs from where the aassistance data may be downloaded is also provided in a new AssistanceDataServers property. * A new InjectAssistanceData() method is provided, to perform the data injection in the module once it's been downloaded to the host system.
2018-08-18cli: print 'Pco' property in Modem3gpp interfaceBen Chan
2018-08-09cli,signal: print unset signal values as n/aAleksander Morgado
2018-08-08api,location: give Tracking Area Code field in 3GPP location infoAleksander Morgado
The "location area code" field is given in GSM/UMTS networks exclusively. LTE networks use the concept of "tracking area code" instead. This patch updates the Location interface to Provide separate fields for LAC and TAC, instead of giving TAC values in the LAC field.
2018-01-20modem-3gpp: allow loading and changing EPS UE mode of operationAleksander Morgado
The UE modes of operation for LTE are defined in 3GPP TS 24.301 (e.g. section 4.3 in v10.3.0): * PS mode 1: EPS only, 'voice centric' * PS mode 2: EPS only, 'data centric' * CS/PS mode 1: EPS and non-EPS, 'voice centric' * CS/PS mode 2: EPS and non-EPS, 'data centric' The mode specifies, among other things, how the UE should behave w.r.t CS fallback depending on the capabilities reported by the network.
2017-11-03cli: port mmcli_get_call to GTaskAleksander Morgado
2017-11-03cli: port mmcli_get_sim to GTaskAleksander Morgado
2017-11-03cli: port mmcli_get_sms to GTaskAleksander Morgado
2017-11-03cli: port mmcli_get_bearer to GTaskAleksander Morgado
2017-11-03cli: port mmcli_get_modem to GTaskAleksander Morgado
2017-11-03cli: port mmcli_get_manager to GTaskAleksander Morgado
2017-10-18mmcli,sim: force sync operation for the info actionAleksander Morgado
2017-09-20cli: show hardware revision property of Modem interfaceBen Chan
2017-06-22build: WITH_UDEV is only defined when enabledAleksander Morgado
Looks like the preprocessor doesn't choke when using #if WITH_UDEV and it isn't defined to any value, but anyway, better explicitly say that we're checking if it's defined or not.
2017-03-29cli: remove explicit GDestroyNotify cast on g_object_unrefBen Chan
g_object_unref is in form of `void (*)(gpointer)`, which matches the GDestroyNotify signature. An explicit GDestroyNotify cast on g_object_unref is thus not needed.
2017-02-08cli: minor indentation fixAleksander Morgado
2017-02-03glib: remove invocations of g_type_init()Ben Chan
g_type_init() has been deprecated (and also marked with the attribute 'deprecated') since glib 2.36 as the type system is automatically initialized. Since the minimum version of glib required by ModemManager is 2.36, calling g_type_init() isn't necessarily in the ModemManager code.
2016-10-12api,signal: new RSCP itemAleksander Morgado
2016-10-123gpp: update registration state enumeration with CSFB related statesAleksander Morgado
Introduce "sms only" and "CSFB not preferred" home/roaming states to be reported for the CS context, while already registered on LTE. Based on 3GPP TS 27.007 v13.5.0.
2016-09-29core: allow building and running without udevAleksander Morgado
Instead of relying on the udev daemon and GUDev to manage the devices reported by the kernel, we can now run ModemManager relying solely on the kernel events reported via the new ReportKernelEvent() API. Therefore, the '--no-auto-scan' option is implicit for the ModemManager daemon when udev is disabled in the build. Additionally, a new custom implementation of the kernel device object is provided, which uses sysfs to load the properties and attributes required in each kernel device, instead of using a GUdevDevice. The udev rule files are kept in place, and a simple custom parser is provided which preloads all rules in memory once and then applies them to the different kernel objects reported via ReportKernelEvent(), e.g. to set port type hints. A simple unit test setup is prepared to validate the udev rules during the `check' Makefile target.
2016-09-29core: allow disabling auto-scan and notifying ports one by one via APIAleksander Morgado
This commit enables a new core ModemManager daemon option, so that automatic detection of available modems is totally disabled: '--no-auto-scan'. Note that this option also replaces the previously used '--test-no-auto-scan' option, which was only used during tests. Along with the new ModemManager option, a new ReportKernelEvent() method in the API is defined, which allows notifying the daemon of which interfaces it should be accessing, as well as the main details of each interface. The only mandatory parameters in the new method are 'action' (add/remove), 'name' (the name of the interface) and 'subsystem' (the subsystem of the interface). The mmcli tool has support for using the new api method via several new options: * The '--report-kernel-event' option allows specifying device ports one by one, and is a direct mapping of the ReportKernelEvent() method: $ sudo mmcli --report-kernel-event="action=add,name=wwan0,subsystem=net" $ sudo mmcli --report-kernel-event="action=add,name=cdc-wdm0,subsystem=usbmisc" * The '--report-kernel-event-auto-scan' option uses udev monitoring to notify events automatically to the daemon. This allows to operate in a way equivalent to the default daemon operation (with implicit auto-scan). Worth noting that the ReportKernelEvent() method is only usable when '--no-auto-scan' is explicitly used in the daemon. An error will be reported if the method is tried while standard udev monitoring is enabled (implicit if auto scan isn't explicitly disabled in the daemon). If mmcli is going to be used only to report 'real time' events, an optional '--initial-kernel-events=[PATH]' may be given in the ModemManager call to automatically process a set of port kernel events one by one on boot. The file may e.g. contain: action=add,name=wwan0,subsystem=net action=add,name=cdc-wdm0,subsystem=usbmisc
2016-09-29core: allow identifying devices by a user-provided 'uid'Aleksander Morgado
All ports of the same modem reported by the kernel will all be associated with a common 'uid' (unique id), which uniquely identifies the physical device. This logic was already in place, what we do now is avoid calling it the 'sysfs path' of the physical device, because we may not want to use that to identify a device. This logic now also enables the possibility of "naming" the modems in a unique way by setting the "ID_MM_PHYSDEV_UID" property in the "usb_device" that owns all the ports. E.g. a custom device has 4 modems in 4 different USB ports. The device path of each USB device will always be the same, so the naming rules could go like this: $ vim /usr/lib/udev/rules.d/78-mm-naming.rules ACTION!="add|change|move", GOTO="mm_naming_rules_end" DEVPATH=="/devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1.5/4-1.5.1", ENV{ID_MM_PHYSDEV_UID}="USB-MODEM-1" DEVPATH=="/devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1.5/4-1.5.2", ENV{ID_MM_PHYSDEV_UID}="USB-MODEM-2" DEVPATH=="/devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1.5/4-1.5.3", ENV{ID_MM_PHYSDEV_UID}="USB-MODEM-3" DEVPATH=="/devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1.5/4-1.5.4", ENV{ID_MM_PHYSDEV_UID}="USB-MODEM-4" LABEL="mm_naming_rules_end" Each of the modems found will have a unique UID retrieved from the previous list of rules. Then, "mmcli" has also been updated to allow using the UID instead of the modem DBus path or index, e.g.: $ sudo mmcli -m USB-MODEM-1 /org/freedesktop/ModemManager1/Modem/0 (device id '988d83252c0598f670c2d69d5f41e077204a92fd') ------------------------- Hardware | manufacturer: 'ZTE CORPORATION' | model: 'MF637' | revision: 'BD_W7P673A3F3V1.0.0B04' | supported: 'gsm-umts' | current: 'gsm-umts' | equipment id: '356516027657837' ------------------------- System | device: 'USB-MODEM-1' | drivers: 'option' | plugin: 'ZTE' | primary port: 'ttyUSB5' | ports: 'ttyUSB5 (at)' ... $ sudo mmcli -m USB-MODEM-1 --enable ...
2016-09-28mmcli,ussd: don't rely on lock status to allow actionsAleksander Morgado
Commit 001f35234e16d7aeb2ed1282ba3b57aea73c5a9e fixed this very same thing in all the other interface actions, but 3GPP USSD actions were not fixed. https://bugs.freedesktop.org/show_bug.cgi?id=97954
2016-07-26build: updated copyright years up to 2016Aleksander Morgado
2016-03-27context: use G_OPTION_ARG_FILENAME when a file path is expectedAleksander Morgado
2016-03-15build: end all multiline list variables with $(NULL)Aleksander Morgado
So that appending a new item in the list only inserts one new line (i.e. the last $(NULL) is the last item always).
2015-12-19cli: validate SUPL server before showing itAleksander Morgado
2015-12-19cli: allow enabling/disabling location signaling via DBusAleksander Morgado
Not making them '--location-enable|disable-signal' because that's the pattern used to enable/disable location sources. Instead, use the '--location-set-*' pattern, as that is what we're already using for the other location setup update.
2015-12-19location: support updating the GPS refresh timeAleksander Morgado
The default setup uses a refresh time of 30s, which means that even if the GPS location updates are received at a higher frequency, the DBus interface will still expose at most one update every 30s. This patch includes a new "SetGpsRefreshTime()" method in the Location interface, which takes a single 'u' parameter, specifying the refresh rate to use, in seconds. This method also allows 0 being passed, which will make the implementation to publish the GPS location updates are soon as ModemManager detects them. Along with the new method, a "GpsRefreshTime" read-only property is exposed to specify the refresh time in effect. The new method and property will only be applicable if the device has GPS capabilities. https://bugs.freedesktop.org/show_bug.cgi?id=89924
2015-12-07cli: print stats if bearer reports themAleksander Morgado
2015-12-07license: mmcli is GPLv2+, not GPLv3+Aleksander Morgado
mmcli is GPLv2+; that's what --version has always said and that's what the README in ModemManager sources specifies: License. The ModemManager and mmcli binaries are both GPLv2+. The libmm-glib library is LGPLv2+.
2015-08-02mmcli,call: minor alignment and message fixesAleksander Morgado
2015-08-02core,libmm-glib,cli,voice: Replaced 'SendTone' method and 'ToneReceived' ↵Marco Bascetta
signal with 'SendDtmf' and 'DtmfReceived'
2015-08-02libmm-glib,cli: Replaced 'list call' with 'list calls'Marco Bascetta
2015-08-02mmcli,voice: align values of printed Call parametersAleksander Morgado
2015-08-02mmcli,voice: fix minor typoAleksander Morgado
2015-08-02cli,voice: minor coding style fixesAleksander Morgado
2015-08-02mmcli: added --send-tone optionMarco Bascetta
2015-08-02mmcli: set call-start timeout to 2 minutesMarco Bascetta
2015-08-02mmcli: added Modem.Voice and Call supportRiccardo Vangelisti
2015-01-25mmcli: add command completionAleksander Morgado
2014-09-05cli,location: allow enabling/disabling A-GPSAleksander Morgado
2014-09-05cli,location: allow getting/setting SUPL server addressAleksander Morgado
2014-07-02location: new 'unmanaged' GPS setupAleksander Morgado
Standard GPS setup (raw/nmea) will both enable the GPS module and take full control of the GPS port. This prevents other processes from reading the NMEA traces from e.g. a tty. In order to handle this, a new 'unmanaged' GPS location source is introduced, which will just enable/disable the GPS module, without reading anything from the GPS port. Of course, both raw/nmea and unmanaged setups cannot be enabled at the same time.
2014-06-13cli: print IP details for all valid bearer typesDan Williams
Even DHCP or PPP may have some IP details, like the link-local address for IPv6 bearers.
2014-05-29cli: show a nicer modem description if manufacturer or model is unknownBen Chan