How to list missing incoming calls for LTE modem?

Hi, I'm going to use my main SIM card with OpenWRT for data-plan.
The question arises - if incoming call happens I won't be able to answer, right?
Is it possible to list missing calls at least?

if your modem is smart enough to list those ideally via API calls, sure, but I don't know any modem with these specs

you should be able query the sim card directly using AT commands.
your SIM should have a missed call list.

socat - /dev/ttyUSB0 
AT+CPBS="MC"
AT+CPBR=1,10

(replace /dev/ttyUSB0 with the device for your modem, in my case I have 4 ttys of which one will be in use for the data connection, pick one that is free)

2 Likes

Thanks. I've terminal functionality in web interface directly, don't know if it uses correct tty.
Anyway, I got an error for the last command:

KROKS AT Terminal

>> ati
<< Quectel
EP06
Revision: EP06ELAR04A03M4G

>> AT+CPBS="MC"
<< OK

>> AT+CPBR=1,10
<< ERROR: error: command failed: 'GDBus.Error:org.freedesktop.ModemManager1.Error.MobileEquipment.NotFound: Not found'

that's a very odd error - that's a gnome message if i'm not mistaken.
are you on openwrt?

my best guess is that the CPBR command returns some garbage character your (web)terminal doesn't handle. You could try ssh'ing into you box or piping the output to a file and inspect the contents on your main machine,

But TBH I'm just guessing here.
Good luck.

It's OpenWRT fork but some components, including Modem Manager, might be proprietary:

I asked in vendor forum too and someone suggested use of mmcli/qmicli commands, still no luck though (similar error):

root@kndrt31r19:~# mmcli -L
    /org/freedesktop/ModemManager1/Modem/3 [Quectel] EP06-E
root@kndrt31r19:~# mmcli --command=ati -m 3
error: command failed: 'GDBus.Error:org.freedesktop.ModemManager1.Error.Connection.NoCarrier: No carrier'

https://4pda.to/forum/index.php?s=&showtopic=994528&view=findpost&p=107847967

Some info if it helps:

root@kndrt31r19:~# mmcli -m 3
  -----------------------------------
  General  |                    path: /org/freedesktop/ModemManager1/Modem/3
           |               device id: ***
  -----------------------------------
  Hardware |            manufacturer: Quectel
           |                   model: EP06-E
           |       firmware revision: EP06ELAR04A03M4G
           |          carrier config: ROW_Generic_3GPP
           | carrier config revision: 06010821
           |            h/w revision: 20000
           |               supported: gsm-umts, lte
           |                 current: gsm-umts, lte
           |            equipment id: ***
  -----------------------------------
  System   |                  device: /sys/devices/platform/101c0000.ehci/usb1/1-1
           |                 drivers: option1, qmi_wwan
           |                  plugin: quectel
           |            primary port: cdc-wdm0
           |                   ports: cdc-wdm0 (qmi), ttyUSB0 (qcdm), ttyUSB1 (gps), 
           |                          ttyUSB2 (at), ttyUSB3 (at), wwan0 (net)
  -----------------------------------
  Numbers  |                     own: ***
  -----------------------------------
  Status   |                    lock: sim-pin2
           |          unlock retries: sim-pin (3), sim-pin2 (3), sim-puk (10), sim-puk2 (10)
           |                   state: connected
           |             power state: on
           |             access tech: lte
           |            active bands: band: eutran-7; channel: 3048; bandwidth: 20000
           |                          band: eutran-3; channel: 1602; bandwidth: 20000
           |       modem temperature: 43
           |          signal quality: 100% (cached)
  -----------------------------------
  Modes    |               supported: allowed: 3g; preferred: none
           |                          allowed: 4g; preferred: none
           |                          allowed: 3g, 4g; preferred: 4g
           |                          allowed: 3g, 4g; preferred: 3g
           |                 current: allowed: 2g, 3g, 4g; preferred: 4g
  -----------------------------------
  Bands    |               supported: utran-1, utran-3, utran-5, utran-8, eutran-1, eutran-3, 
           |                          eutran-5, eutran-7, eutran-8, eutran-20, eutran-28, eutran-32, 
           |                          eutran-38, eutran-40, eutran-41
           |                 current: utran-1, utran-3, utran-5, utran-8, eutran-1, eutran-3, 
           |                          eutran-5, eutran-7, eutran-8, eutran-20, eutran-28, eutran-32, 
           |                          eutran-38, eutran-40, eutran-41
  -----------------------------------
  IP       |               supported: ipv4, ipv6, ipv4v6
  -----------------------------------
  3GPP     |                    imei: ***
           |           enabled locks: fixed-dialing
           |             operator id: 25002
           |           operator name: MegaFon
           |            registration: home
  -----------------------------------
  3GPP EPS |    ue mode of operation: csps-2
           |     initial bearer path: /org/freedesktop/ModemManager1/Bearer/3
           |      initial bearer apn: internet
           |  initial bearer ip type: ipv4
  -----------------------------------
  SIM      |        primary sim path: /org/freedesktop/ModemManager1/SIM/1
  -----------------------------------
  Bearer   |                   paths: /org/freedesktop/ModemManager1/Bearer/4

This is really a "KROKS" issue I'm afraid.
from what I gather they already have a modem manager running, which might interfere with the AT commands, causing the crash. (still confused about the GDBus error on openwrt-based system though)

from openwrt I can only suggest not to use the 'KROKS AT Terminal', but use socat directly on an available tty for you modem. (kill all KROKS processes related to the modem: modemmgr, qmi mmi... I really can't know what you have running - and see if that helps.) Otherwise you really should ask the KROKS guys for help.

OK I accomplished the AT issue thing but still get an error:

root@kndrt31r19:~# socat - /dev/ttyUSB2,crnl
ati

Quectel
EP06
Revision: EP06ELAR04A03M4G

OK
AT+CPBS="MC"

OK
AT+CPBR=1,10

+CME ERROR: 22

So modem can "see" incoming calls but still I can't get the list:

root@kndrt31r19:~# socat - /dev/ttyUSB2,crnl
ati

Quectel
EP06
Revision: EP06ELAR04A03M4G

OK

RING

RING

RING

RING

RING

RING

RING

RING

RING

RING

RING

RING

NO CARRIER
AT+CPBS="MC"

OK
AT+CPBR=1,10

+CME ERROR: 22
 AT+CPBR=1

+CME ERROR: 22
AT+CPBS=?

+CPBS: ("SM","DC","MC","ME","RC","EN","ON")

OK

AT+CPBR=?

+CPBR: (1-100),40,255

OK

Great!
maybe there's some variation on the CPBR command required.
what does AT+CPBR=? do?

anyway, can't test this on my end so you'll have to take it from here.

That was in the listing above:

AT+CPBR=?

+CPBR: (1-100),40,255

OK

Can it be something related with my SIM/data-plan?
Anyway, thanks for helping!

this is straight from the AT command spec:

+CPBR - Read Phonebook Entries
AT+CPBR=<index1>[,<index2>]

Execution command returns phonebook entries in location number range
<index1>..<index2> from the current phonebook memory storage selected
with +CPBS. If <index2> is omitted, only location <index1> is returned.
Parameters:
<index1> - integer type value in the range of location numbers of
phonebook memory
<index2> - integer type value in the range of location numbers of
phonebook memory

The response format is:
+CPBR: <index>,<number>,<type>,<text>
where:
<index> - the current position number of the PB index (to see the range of
values use +CPBR=?)
<number> - the phone number stored in the format <type>
<type> - type of phone number byte in integer format
 129 - national numbering scheme
 145 - international numbering scheme (contains the character "+")
<text> - the alphanumeric text associated to the number; used character set
should be the one selected with either command +CSCS or
@CSCS.
Note: If all queried locations are empty (but available), no information text
lines will be returned, while if listing fails in an ME error, +CME ERROR:
<err> is returned.


AT+CPBR=? Test command returns the supported range of values of the parameters in
the form:
+CPBR: (<minIndex> - <maxIndex>),<nlength>,<tlength>
where:
<minIndex> - the minimum <index> number, integer type
<maxIndex> - the maximum <index> number, integer type
<nlength> - maximum <number> field length, integer type 

AT Commands Reference Guide
 80000ST10025a Rev. 0 - 04/08/06
Reproduction forbidden without Telit Communications S.p.A. written authorization - All Right reserved page 92 of 614
<tlength> - maximum <name> field length, integer type
Note Remember to select the PB storage with +CPBS command before issuing
PB commands.
Reference GSM 07.07 

i got this from sparkfun , maybe easier to read than this copy/paste.

1 Like