1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter-feeds.git synced 2025-02-13 02:51:50 +00:00

Fix and force PIN for modemmanager in omr-tracker post-tracking script

This commit is contained in:
Ycarus (Yannick Chabanois) 2024-05-13 18:18:53 +02:00
parent 868706760e
commit 5eb157e2a0

View file

@ -743,20 +743,21 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || ([ "$OMR_TRACKER_INTERFACE" != "omrvpn
# ifup $OMR_TRACKER_INTERFACE
# sleep 30
#if [ -n "$OMR_TRACKER_INTERFACE" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.proto)" = "modemmanager" ] && [ "$interface_up" = "false" ] && [ "$interface_available" = "false" ] && [ "$interface_pending" = "false" ] && [ "$interface_autostart" = "true" ]; then
if [ -n "$OMR_TRACKER_INTERFACE" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.proto)" = "modemmanager" ] && [ "$interface_autostart" = "true" ]; then
if [ -n "$OMR_TRACKER_INTERFACE" ] && [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.proto)" = "modemmanager" ]; then
modemfind="0"
for modem in $(timeout 3 mmcli -L | awk -F/ '{ print $6}' | awk '{print $1}'); do
modeminfo="$(timeout 2 mmcli -m $modem -K)"
device="$(uci -q get network.$OMR_TRACKER_INTERFACE.device)"
if [ -n "$(echo $modeminfo | grep $device)" ]; then
modemfind="1"
if [ -n "$(echo $modeminfo | grep 'modem.generic.state ' | grep failed)" ]; then
mm_state="$(timeout 2 mmcli -m $modem -K | awk '/modem.generic.state / {print $3}' | tr -d '\n')"
if [ "$mm_state" = "failed" ]; then
if [ -n "$(echo $modeminfo | grep 'modem.generic.state-failed-reason' | grep 'unknown-capabilities')" ]; then
_log "Interface $OMR_TRACKER_INTERFACE in failed state in ModemManager, reset modem..."
/usr/bin/mmcli -m ${modem} -r 2>&1 >/dev/null
sleep 30
fi
elif [ -n "$(echo $modeminfo | grep 'modem.generic.state ' | grep connected)" ] || [ -n "$(echo $modeminfo | grep 'modem.generic.state ' | grep enabled)" ]; then
elif [ "$mm_state" = "connected" ] || [ "$mm_state" = "enabled" ]; then
# [ -n "$(echo $modeminfo | grep 'modem.3gpp.registration-state ' | grep home)" ]; then
_log "No answer from $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE), restart interface"
_log "Set $OMR_TRACKER_INTERFACE down"
@ -765,6 +766,19 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || ([ "$OMR_TRACKER_INTERFACE" != "omrvpn
_log "Set $OMR_TRACKER_INTERFACE up"
ifup $OMR_TRACKER_INTERFACE
sleep 30
elif [ "$mm_state" = "disabled" ]; then
# [ -n "$(echo $modeminfo | grep 'modem.3gpp.registration-state ' | grep home)" ]; then
_log "Interface $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE) disabled, set it up"
ifup $OMR_TRACKER_INTERFACE
sleep 30
elif [ "$mm_state" = "locked" ]; then
# Sometimes PIN is not correctly sent to modem
if [ -z "$(uci -q get network.$OMR_TRACKER_INTERFACE.pin_retry)" ]; then
_log "Interface $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE) locked, set PIN"
mmcli -i $(timeout 2 mmcli -m $modem -K | awk '/modem.generic.sim / {print $3}') --pin=$(uci -q get network.$OMR_TRACKER_INTERFACE.pincode)
sleep 30
uci -q set network.$OMR_TRACKER_INTERFACE.pin_retry=1
fi
fi
fi
done
@ -1043,6 +1057,7 @@ fi
if [ "$OMR_TRACKER_PREV_STATUS" != "" ] && [ "$OMR_TRACKER_PREV_STATUS" != "$OMR_TRACKER_STATUS" ] && [ -n "$OMR_TRACKER_INTERFACE" ]; then
_log "$OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE) switched up"
uci -q delete network.$OMR_TRACKER_INTERFACE.pin_retry
mail_alert="$(uci -q get omr-tracker.$OMR_TRACKER_INTERFACE.mail_alert)"
[ -z "$mail_alert" ] && mail_alert="$(uci -q get omr-tracker.defaults.mail_alert)"
[ "$mail_alert" = "1" ] && [ -n "$(uci -q get mail.default.to)" ] && {