mmcli command examples

mmcli command examples

mmcli – Control and monitor the ModemManager

Send the PIN to the SIM card

You’ll need first to know which the proper path/index is for the SIM in your modem:

$ mmcli -m 0 | grep SIM
SIM | path: '/org/freedesktop/ModemManager1/SIM/0'

And after that, you can just use the SIM index:

$ mmcli -i 0 --pin=1234
successfully sent PIN code to the SIM

Simple connect and disconnect

You can launch the simple connection process like:

$ mmcli -m 0 --simple-connect="pin=1234,apn=internet"
successfully connected the modem

Then, you can disconnect it like:

$ mmcli -m 0 --simple-disconnect
successfully disconnected all bearers in the modem


3GPP network scan

Scanning for 3GPP networks may really take a long time, so a specific timeout must be given:

$ mmcli -m 0 --3gpp-scan --timeout=300
Found 4 networks:
21404 - Yoigo (umts, available)
21407 - Movistar (umts, current)
21401 - vodafone ES (umts, forbidden)
21403 - Orange (umts, forbidden)

Creating a new SMS message & storing it

Using the “sm” (SIM), you can do this using:

$ mmcli -m 0 --messaging-create-sms="text='Hello world',number='+1234567890'"
Successfully created new SMS:
/org/freedesktop/ModemManager1/SMS/21 (unknown)
$ sudo mmcli -s 21 --store-in-storage="sm"
successfully stored the SMS
$ sudo mmcli -s 21
SMS '/org/freedesktop/ModemManager1/SMS/21'
Content | number: '+1234567890'
| text: 'Hello world'
Properties | PDU type: 'submit'
| state: 'stored'
| smsc: 'unknown'
| validity: '0'
| class: '0'
| storage: 'sm'
| delivery report: 'not requested'
| message reference: '0'
$ sudo mmcli -m 0 --messaging-status
Messaging | supported storages: 'sm, me'
| default storage: 'me'

Sending SMS messages from files

As you can see below, the important part is the –messaging-create-sms-with-data and the PATH provided.

$ sudo mmcli -m 0 \
--messaging-create-sms="number='+1234567890'" \
Successfully created new SMS:
/org/freedesktop/ModemManager1/SMS/22 (unknown)
$ sudo mmcli -s 22 --send
successfully sent the SMS

Listing SMS messages

When the receiver gets all the parts of the message, they can now recover the sent file with another mmcli command in their ModemManager setup:

 $> sudo mmcli -m 0 --messaging-list-sms
Found 1 SMS messages:
/org/freedesktop/ModemManager1/SMS/0 (received)
 $> sudo mmcli -s 0 --create-file-with-data=/path/to/the/output/file


GPS location status

You first need to check whether the modem has GPS-specific location capabilities. Note that we’ll assume the modem is exposed as index 0; if you have more than one modem, just use –list-modems to check the proper modem index:

$ mmcli -m 0 --location-status


Location | capabilities: '3gpp-lac-ci, gps-raw, gps-nmea'

| enabled: 'none'

| signals: 'no'

The output says that the modem supports 3GPP Location area code/Cell ID, GPS raw and GPS-NMEA location sources. None is enabled yet, as we didn’t enable the modem, which we can do issuing:

$ sudo mmcli -m 0 --enable
successfully enabled the modem
$ mmcli -m 0 --location-status

Location | capabilities: '3gpp-lac-ci, gps-raw, gps-nmea'
| enabled: '3gpp-lac-ci'
| signals: 'no'

GPS location technology enabling

We can enable the RAW and NMEA GPS location sources using:

$ sudo mmcli -m 0 \
--location-enable-gps-raw \
successfully setup location gathering

If we do check again the status, we’ll see the GPS-specific locations are enabled:

$ mmcli -m 0 --location-status
Location | capabilities: '3gpp-lac-ci, gps-raw, gps-nmea'
| enabled: '3gpp-lac-ci, gps-raw, gps-nmea'
| signals: 'no'


GPS location retrieval

You can query location source specific information with –location-get-3gpp, –location-get-gps-nmea and –location-get-gps-raw; but also for all at the same time:

$ sudo mmcli -m 0 --location-get
3GPP location | Mobile country code: '214'
| Mobile network code: '3'
| Location area code: '21071'
| Cell ID: '7033737'
GPS NMEA traces | $GPGGA,,,,,,0,,,,,,,,*66
| $GPRMC,,V,,,,,,,,,,N*53
| $GPGSA,A,1,,,,,,,,,,,,,,,*1E
| $GPGSV,4,1,16,24,,,,29,,,,05,,,,18,,,*7A
| $GPGSV,4,2,16,22,,,,14,,,,11,,,,17,,,*7B
| $GPGSV,4,3,16,03,,,,12,,,,30,,,,13,,,*78
| $GPGSV,4,4,16,23,,,,15,,,,27,,,,07,,,*79
| $GPVTG,,T,,M,,N,,K,N*2C
Raw GPS | Not available
CDMA BS | Not available

An example of RAW GPS location information:

$ sudo mmcli -m 0 --location-get-gps-raw

Raw GPS | UTC time: '155142.2'

| Longitude: '-3.513941'

| Latitude: '40.502603'

| Altitude: '18.000000'

Leave a Reply

Your email address will not be published. Required fields are marked *