1002-CM04 plug-in Modem does not report cellular location details

Minimum firmware: 18.4.54

Problem

The 1002-CM04 plug-in LTE modem does not report its cellular location details, which in turn prevents the cellular location for an ACL device from being displayed in Accelerated View.

This issue only affects ACL devices utilizing the 1002-CM04 plug-in modem variant.  The 1002-CM03 and 1002-CM06 modules do not experience this issue, and can automatically collect and report their cellular location details.  To check if your ACL device is using a 1002-CM04 modem, navigate to the Cellular Details tab for the device in Accelerated View, or to the System tab of the ACL device's local web UI.  Look for the modem model.  The 1002-CM04 modem is listed with the following model name:

Telit MBIM_1BC7_0032

Manual Soution setup

Create a new custom script under System -> Scheduled tasks -> custom scripts, and enter in the following adjusting the Interval to the desired interval you would like this script to run; ideally, this should run at the same interval as the heartbeat interval, which is 30-minutes by default

# AT#MONI reports the CID/LAC of the modem in hex, but geolocation
# services expect it to be in decimal, so convert hex to dec before
# storing the values and sending the to aView
idx=$(modem idx)
moni_output=$(modem at '#moni')
cid=$(echo $moni_output | grep -m 1 -o "Id:[0-9A-F]\{7\}" | cut -f2 -d':')
[ "$cid" ] && cid=$(printf "%d\n" 0x$cid)
lac=$(echo $moni_output | grep -m 1 -o "LAC:[0-9A-F]\{4\}" | cut -f2 -d':')
[ "$lac" ] || lac=$(echo $moni_output | grep -m 1 -o "TAC:[0-9A-F]\{4\}" | cut -f2 -d':')
[ "$lac" ] && lac=$(printf "%d\n" 0x$lac)  
imsi=$(runt get mm.modem.$idx.modem.imsi)
mcc="${imsi:0:3}"
mnc="${imsi:3:3}"


if [ "$cid" ] && [ "$lac" ] && [ "$mcc" ] && [ "$mnc" ]; then
  accns_log w location "mcc=$mcc~mnc=$mnc~cid=$cid~lac=$lac"
  runt set mm.modem.$idx.location.mcc $mcc
  runt set mm.modem.$idx.location.mnc $mnc
  runt set mm.modem.$idx.location.cid $cid
  runt set mm.modem.$idx.location.lac $lac
fi