diff options
author | xengineering <me@xengineering.eu> | 2023-05-12 15:48:23 +0200 |
---|---|---|
committer | xengineering <me@xengineering.eu> | 2023-05-12 16:24:47 +0200 |
commit | fd63d17c1218b8386baebf34635448f8c2f4f10f (patch) | |
tree | 72f9b037a9e310109963a9ef6608432e84bbfa1e | |
parent | a092e63860c0878e86bb54831e0d58312d41bfcc (diff) | |
download | website-fd63d17c1218b8386baebf34635448f8c2f4f10f.tar website-fd63d17c1218b8386baebf34635448f8c2f4f10f.tar.zst website-fd63d17c1218b8386baebf34635448f8c2f4f10f.zip |
Add article about ModemManager
-rw-r--r-- | content/articles/modemmanager-essentials.md | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/content/articles/modemmanager-essentials.md b/content/articles/modemmanager-essentials.md new file mode 100644 index 0000000..81eae74 --- /dev/null +++ b/content/articles/modemmanager-essentials.md @@ -0,0 +1,112 @@ +{ + "title": "ModemManager essentials", + "subtitle": "Handling modems from the Linux command line" +} + +#### Introduction + +The software [ModemManager][4] handles modems on Linux operating systems. It +has the `mmcli` command line utility included which exposes its functionality. + +It is possible to use `mmcli` to setup mobile internet connections, make phone +calls and send SMS. + +This article summarizes some basic `mmcli` commands. It was written to further +debug the issue described in [this postmarketOS issue][5]. + +#### Get modem summary + +With this command a summary about the modem is printed. It assumes just one +connected modem (`-m any`) which should be given on nearly all devices: + +``` +mmcli -m any +``` + +#### Unlock a SIM card + +To actually do something with the modem it might be necessary to unlock the +inserted SIM card: + +``` +# this command needs appropriate polkit authentication or root permissions +mmcli -i "/org/freedesktop/ModemManager1/SIM/0" --pin "1234" +``` + +Use the SIM path listed in the summary (see section above). + +#### Enable modem + +In addition to unlocking the SIM card it is required to enable the modem: + +``` +# this command needs appropriate polkit authentication or root permissions +mmcli -m any -e +``` + +#### List calls + +This command lists active, ringing, terminated and other calls: + +``` +mmcli -m any --voice-list-calls +``` + +The idea is that calls are tracked with the identifiers printed by this command +which allows to send additional commands like accept or hangup. + +#### Accept a call + +An incoming call can be accepted like this: + +``` +# this command needs appropriate polkit authentication or root permissions +mmcli -m any -o "/org/freedesktop/ModemManager1/Call/0" --accept +``` + +#### Hangup a call + +Any active call can be hung up like this: + +``` +# this command needs appropriate polkit authentication or root permissions +mmcli -m any -o "/org/freedesktop/ModemManager1/Call/0" --hangup +``` + +#### Create a call + +To create a call one can use the following command. Take care to select the +right phone number format. Given is an example phone number with German +international prefix `+49`. + +``` +mmcli -m any --voice-create-call "number=+49123456789" +``` + +This command just registeres a new call. To actually start it one has to get +its identifier with listing all calls and then start it like this: + +``` +# this command needs appropriate polkit authentication or root permissions +mmcli -m any -o "/org/freedesktop/ModemManager1/Call/4" --start +``` + +It can be hung up like incoming calls. + +#### Further documentation + +Running `mmcli --help` and the there listed help commands provide a summary of +all the functionality ModemManager provides. This article is just a brief +subset of it. + +The [SXMO modem scripts][1] from the [SXMO project][2] helped me a lot to write +this summary aswell as the [Chromium mmcli help page][3]. + +Of course the [ModemManager homepage][4] is the most official entry point to +search for further documentation. + +[1]: https://git.sr.ht/~mil/sxmo-utils/tree/master/item/scripts/modem +[2]: https://sxmo.org/ +[3]: https://www.chromium.org/chromium-os/how-tos-and-troubleshooting/debugging-3g/modem-debugging-with-mmcli/ +[4]: https://www.freedesktop.org/wiki/Software/ModemManager/ +[5]: https://gitlab.com/postmarketOS/pmaports/-/issues/2113 |