Gathering Modem Information

If we have a modem in the system, we should be able to see it with mmcli -L, for instance:

$ sudo mmcli -L
Found 1 modems:
    /org/freedesktop/ModemManager1/Modem/0 [BRAND] MODEL

The command shows the DBus path for the modem, with the number at the end of the path being the argument to access it from the cli:

$ sudo mmcli -m 0

/org/freedesktop/ModemManager1/Modem/0 (device id '817f7e2b3c6dfdf1d4ee7f4c4ecc34de61bc5de9')
  -------------------------
  Hardware |   manufacturer: 'BRAND'
           |          model: 'MODEL'
           |       revision: 'FW.REVISION'
           |      supported: 'gsm-umts'
           |        current: 'gsm-umts'
           |   equipment id: '988037034540195'
  -------------------------
  System   |         device: '/sys/devices/pci0000:00/0000:00:01.2/usb1/1-1'
           |        drivers: 'option1'
           |         plugin: 'generic'
           |   primary port: 'ttyUSB3'
           |          ports: 'ttyUSB0 (qcdm), ttyUSB1 (at), ttyUSB3 (at)'
  -------------------------
  Numbers  |           own : 'unknown'
  -------------------------
  Status   |           lock: 'none'
           | unlock retries: 'sim-pin (3), sim-puk (10)'
           |          state: 'disabled'
           |    power state: 'on'
           |    access tech: 'unknown'
           | signal quality: '0' (cached)
  -------------------------
  Modes    |      supported: 'allowed: 2g; preferred: none
           |                  allowed: 3g; preferred: none
           |                  allowed: 2g, 3g; preferred: none
           |                  allowed: 2g, 3g; preferred: 2g
           |                  allowed: 2g, 3g; preferred: 3g'
           |        current: 'allowed: any; preferred: none'
  -------------------------
  Bands    |      supported: 'unknown'
           |        current: 'unknown'
  -------------------------
  IP       |      supported: 'none'
  -------------------------
  3GPP     |           imei: '988037034540195'
           |  enabled locks: 'none'
           |    operator id: 'unknown'
           |  operator name: 'unknown'
           |   subscription: 'unknown'
           |   registration: 'unknown'
  -------------------------
  SIM      |           path: '/org/freedesktop/ModemManager1/SIM/0'

  -------------------------
  Bearers  |          paths: 'none'

This shows quite a bit of information: model, ports, status and so on. There is an unlocked SIM card, but no bearer defined. Again, we use the last number in the SIM path to access the SIM information:

$ sudo mmcli -i 0
SIM '/org/freedesktop/ModemManager1/SIM/0'
  -------------------------
  Properties |          imsi : '123450030477777'
             |            id : '9876075782002298987'
             |   operator id : '21477'
             | operator name : 'my-oper'

As can be seen, status is initially ‘disabled’. To power on the modem we can do:

$ sudo mmcli -m 0 --enable --timeout=120
successfully enabled the modem

After this, the registration status should change:

$ sudo mmcli -m 0
...
  -------------------------
  Status   |           lock: 'none'
           | unlock retries: 'sim-pin (3), sim-puk (10)'
           |          state: 'registered'
           |    power state: 'on'
           |    access tech: 'umts'
           | signal quality: '32' (recent)
  -------------------------
...