# openwrt - uqmi

Customized uqmi with APN profiles.
More information and source code: https://github.com/mrhaav/openwrt-packages/blob/main/README.md

Latest version: 2022-11-29-0.10

From version 2022-09-13-0.9, an SMS receive/send function and a connectivity daemon are included.\
The SMS is stored in /var/sms/received and the file name is sent to script /usr/bin/uqmi_sms.sh (uqmi_sms.sh is not included in the ipk file).
The daemon will run every 30sec and check the network connectivity and send the RSSI value to script /usr/bin/uqmi_led.sh to trigger signal strenght LEDs (uqmi_led.sh is not included in the ipk file).\
Don´t run other uqmi scripts in parallell. The modems are not able to handle multiple uqmi request at the same time.\
If you need some special uqmi command to be exequted every 30s, add them to the daemon, `/usr/bin/uqmi_d.sh`.\
\
Switches:\
`uci set network.<your interface>.ipv6profile=<ipv6 profile number>`\
If you need an other APN for IPv6. Configure you IPv4 APN with LuCI and add the IPv6 APN with uqmi command `--create-profile` or `--modify-profile`\
\
`uci set network.<your interface>.abort_search=false`\
If you have you modem in poor radio coverage, you can let the modem search for network for ever (default, it will search for 35 sec).\
\
`uci set network.<your interface>.daemon=false`\
If you would like to turn off the daemon.\
\
Don´t foget to run `uci commit network`.
\
\
Downloading file to your router:\
Choose OpenWrt version and target.\
Go to the file, right click on Download button and select Copy link addess.\
Then paste the link in your router after wget.
```
wget https://github.com/mrhaav/openwrt/raw/master/22.03.2/uqmi_2022-11-29-0.10_mipsel_24kc.ipk
opkg install uqmi_2022-11-29-0.10_mipsel_24kc.ipk
```


\
\
uqmi_led.sh example for MR200v4
```
#!/bin/sh

rssi=$1

LED1=$(readlink -f /sys/class/leds/mr200v4:white:signal1)
LED2=$(readlink -f /sys/class/leds/mr200v4:white:signal2)
LED3=$(readlink -f /sys/class/leds/mr200v4:white:signal3)

if [ "${rssi}" -eq -200 ]
then
	echo none > $LED1/trigger
	echo none > $LED2/trigger
	echo none > $LED3/trigger
elif [ "${rssi}" -le -90 ]
then
	echo default-on > $LED1/trigger
	echo none > $LED2/trigger
	echo none > $LED3/trigger
elif [ "${rssi}" -le -70 ]
then
	echo default-on > $LED1/trigger
	echo default-on > $LED2/trigger
	echo none > $LED3/trigger
else
	echo default-on > $LED1/trigger
	echo default-on > $LED2/trigger
	echo default-on > $LED3/trigger
fi
```
\
\
uqmi_sms.sh example
```
#!/bin/sh

receivedSMS=$1
Bnumber=$(sed -n '1p' $receivedSMS)
if [ $Bnumber = '+46123456' ]
then
	first_row=$(sed -n '2p' $receivedSMS)
	second_row=$(sed -n '3p' $receivedSMS)
#	Execute your commands
	rm $receivedSMS
else
	logger -t SMS Unauthorized Anumber
	rm $receivedSMS
fi
```
