> On 08 May 2017 at 16:49 Dan Williams <[email protected]> wrote: > > On Mon, 2017-05-08 at 10:17 +0100, [email protected] > wrote: > > > I'm hooking together ModemManager and NetworkManager (without > > systemd) and > > would like to grab the Operator determined by MM when it enables the > > modem > > and use it to set the apn setting in the NM connection. Basically - > > the NM > > setting needs to get configured automatically based on the SIM that's > > present. > > Is it possible to get a point in the interractions between the two > > where > > this can be done, or has, e.g. NM already parsed the connection > > settings by > > the time the modem registers? > > (To cater for the case of the registration failing, I guess I could > > pull the > > info from the SIM instead). > > And is there some sort of pre/post 'hook' which could be used to fire > > off a > > script? > > This is easily possible with a little scripting, as long as you don't > use autoconnect by default (since that would start connecting before > you knew the operator). Something like: > > 1) pre-create an NM connection file in /etc/NetworkManager/system- > connections with a well-known connection ID and set it autoconnect=no > so it doesn't get autoconnected before its ready. Say that ID is > "cellular". > > 2) write a small script and run it at bootup or something: > > # turn off autoconnect for this connection profile and make > # sure it's deactivated > nmcli con mod cellular connection.autoconnect=false > nmcli con down cellular > > # enable the modem > MODEM_PATH=mmcli -L | grep "ModemManager1" | cut -d' ' -f1 > mmcli -m ${MODEM_PATH} -e > > # Wait 60 seconds for registration and then pull the MCC/MNC > # and figure out what APN to use > for i in seq 60; do > STATE=mmcli -m ${MODEM_PATH} | grep " state:" | cut > -d"'" -f 2 > if [[ "${STATE}" == "registered" ]]; then > OPERATOR=mmcli -m ${MODEM_PATH} | grep "operator id:" | cut > -d"'" -f 2 > APN= > > # modify the connection and let NM autoconnect it from now on > nmcli con mod cellular gsm.apn=${APN} > nmcli con mod cellular connection.autoconnect=true > exit 0 > fi > done > exit 1 > > or something along those lines using whatever scripting language you > want. This can all be done through D-Bus too, but it would be somewhat > more involved (though more flexible and less error prone). >
Thanks for the confirmation, Dan. I was planning on probably using autoconnect [it's either that or putting together a means to detect Eth failure and bring up the GSM on demand], but it would be equally fine to leave it off and have the script bring up the connection at the end instead. _______________________________________________ ModemManager-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel
