SNMP for custom values

Hello, I have a particular need to publish custom SNMP values. For example, I have a LTE Cellular module connected and I would need to publish its IMEI to be found by a SNMP tool, for example, Paessler SNMP Tester. By the way, I already have an enterprise number from IANA if it's necessary.

I've had some progress by editing the /etc/config/snmpd file adding a section like this:

config exec
        option name drq-signalinfo
        option prog "/sbin/uqmi -d /dev/cdc-wdm0 --get-signal-info | awk '{print substr($0, 2, length($0) - 2)}'"
        option miboid .1.3.6.1.4.49085.3

When running a snmpwalk I get a response like this:

*2/28/2023 1:10:24 PM (14 ms) : 1.3.6.1.4.49085.1.1.1 = "1" [ASN_INTEGER]*
*2/28/2023 1:10:24 PM (20 ms) : 1.3.6.1.4.49085.1.2.1 = "drq-imei" [ASN_OCTET_STR]*
*2/28/2023 1:10:24 PM (25 ms) : 1.3.6.1.4.49085.1.3.1 = "/sbin/uqmi -d /dev/cdc-wdm0 --get-imei | awk '{print substr($0, 2, length($0) - 2)}'" [ASN_OCTET_STR]*
*2/28/2023 1:10:24 PM (139 ms) : 1.3.6.1.4.49085.1.100.1 = "0" [ASN_INTEGER]*
*2/28/2023 1:10:24 PM (235 ms) : 1.3.6.1.4.49085.1.101.1 = ""864744040333609"" [ASN_OCTET_STR]*
*2/28/2023 1:10:24 PM (332 ms) : 1.3.6.1.4.49085.1.102.1 = "0" [ASN_INTEGER]*
*2/28/2023 1:10:24 PM (336 ms) : 1.3.6.1.4.49085.1.103.1 = "" [ASN_OCTET_STR*

Which is not ideal, because it's bringing a lot of unnecessary values, and that number should be typed as integer, not string, so, I have the idea that I need to write a .mib file, but what I would know beyond the how to write it, I want to know what do I have to tell the /etc/config/snmpd file to read my definitions and return the expected data type and get rid of all those outputs that don't bring value to the snmp scan.

Thank you!!

maybe something like this ... ?

cat s_vlansm

#!/bin/sh
place="1.3.6.1.2.1.17.7.1.4.2.1.4.0"

source /tmp/snmp/s_vlanifmembers

while read CMD
do
  case "$CMD" in
    PING)
      echo PONG
      continue
      ;;
    getnext)
      read REQ
      oid=$(echo $REQ | tr -d .)
      eval ret=\$getnext_${oid}
      if test "x$ret" = "xNONE"
      then
        echo NONE
        continue
      fi
      ;;
    get)
      read REQ
      if test "x$REQ" = "x$place"
      then
        echo NONE
        continue
      else
        ret=$REQ
      fi
      ;;
    *)
      read REQ
      if test "x$REQ" = "x$place"
      then
        echo NONE
        continue
      else
        ret=$REQ
      fi
      ;;
  esac

  oid=$(echo $ret | tr -d .)
  if eval test "x\$type_${oid}" != "x"
  then
    echo $ret
    eval echo "\$type_${oid}"
    eval echo "\$value_${oid}"
  else
    echo NONE
  fi
done

cat /tmp/snmp/s_vlanifmembers

getnext_13612117714214=1.3.6.1.2.1.17.7.1.4.2.1.4.0.1
value_1361211771421401='58 00 00 00 00 00 00 00'
type_1361211771421401='octetstring'
getnext_1361211771421401=1.3.6.1.2.1.17.7.1.4.2.1.4.0.2
value_1361211771421402='41 88 00 00 00 00 00 00'
type_1361211771421402='octetstring'
getnext_1361211771421402=1.3.6.1.2.1.17.7.1.4.2.1.4.0.100
value_136121177142140100='46 04 00 00 00 00 00 00'
type_136121177142140100='octetstring'
getnext_136121177142140100=1.3.6.1.2.1.17.7.1.4.2.1.4.0.200
value_136121177142140200='40 70 00 00 00 00 00 00'
type_136121177142140200='octetstring'
getnext_136121177142140200='NONE'

and lastly ...
cat /etc/snmp/snmpd.conf

pass_persist .1.3.6.1.2.1.17.1.4.1.2 /bin/s_ifindex
pass_persist .1.3.6.1.2.1.17.7.1.1.1 /bin/s_vlansv
pass_persist .1.3.6.1.2.1.17.7.1.2.2.1.2 /bin/s_fdb
pass_persist .1.3.6.1.2.1.17.7.1.4.2.1.4 /bin/s_vlansm
pass_persist .1.3.6.1.2.1.17.7.1.4.2.1.5 /bin/s_vlansu
pass_persist .1.3.6.1.2.1.17.7.1.4.3.1.1 /bin/s_vlansn