Failed to call emergency numbers with no SIM

Hi,
While testing emergency call support in the Quectel EG25-G, we found the modem is unable to place an emergency call if there’s no SIM.

If I try to place the call via AT (ATDT112) the response from the modem is NO CARRIER
If I try to place the call via QMI, using ModemManager, the modem answers with “NoNetworkFound”

If I make a call with a SIM inserted, whether it is a working SIM or an unregistered one, the call goes through perfectly fine.

Here’s a log of the call attempt using ModemManager in a Pinephone:

May 19 09:11:47 pine64-pinephone daemon.info [20904]: <info>  [1652951507.509993] [modem0/call0] user request to start call
May 19 09:11:47 pine64-pinephone daemon.debug [20904]: <debug> [1652951507.510156] [modem0] voice call to 112 allowed: emergency call number always valid
May 19 09:11:47 pine64-pinephone daemon.info [20904]: <info>  [1652951507.510210] [modem0/call0] call state changed: unknown -> dialing (outgoing-started)
May 19 09:11:47 pine64-pinephone daemon.debug [20904]: <debug> [1652951507.510699] [modem0/call0] starting call
May 19 09:11:47 pine64-pinephone daemon.debug [20904]: [/dev/cdc-wdm0] Sent message... <<<<<< RAW: <<<<<<   length = 19 <<<<<<   data   = 01:12:00:00:09:02:00:01:00:20:00:06:00:01:03:00:31:31:32
May 19 09:11:47 pine64-pinephone daemon.debug [20904]: [/dev/cdc-wdm0] Sent generic request (translated)... <<<<<< QMUX: <<<<<<   length  = 18 <<<<<<   flags   = 0x00 <<<<<<   service = "voice" <<<<<<   client  = 2 <<<<<< QMI: <<<<<<   flags       = "none" <<<<<<   transaction = 1 <<<<<<   tlv_length  = 6 <<<<<<   message     = "Dial Call" (0x0020) <<<<<< TLV: <<<<<<   type       = "Calling Number" (0x01) <<<<<<   length     = 3 <<<<<<   value      = 31:31:32 <<<<<<   translated = 112
May 19 09:11:47 pine64-pinephone daemon.debug [20904]: <debug> [1652951507.511928] [modem0] setting up in-call state...
May 19 09:11:47 pine64-pinephone daemon.debug [20904]: <debug> [1652951507.512216] [modem0] modem is now in-call state
May 19 09:11:47 pine64-pinephone daemon.debug [20904]: [/dev/cdc-wdm0] Received message... <<<<<< RAW: <<<<<<   length = 53 <<<<<<   data   = 01:34:00:80:09:02:04:01:00:2E:00:28:00:01:08:00:01:01:04:00:01:06:00:00:10:07:00:01:01:00:03:31:31:32:27:03:00:01:01:00:2B:0A:00:01:01:00:00:00:01:03:31:31:32
May 19 09:11:47 pine64-pinephone daemon.debug [20904]: [/dev/cdc-wdm0] Received generic indication (translated)... <<<<<< QMUX: <<<<<<   length  = 52 <<<<<<   flags   = 0x80 <<<<<<   service = "voice" <<<<<<   client  = 2 <<<<<< QMI: <<<<<<   flags       = "indication" <<<<<<   transaction = 1 <<<<<<   tlv_length  = 40 <<<<<<   message     = "All Call Status" (0x002E) <<<<<< TLV: <<<<<<   type       = "Call Information" (0x01) <<<<<<   length     = 8 <<<<<<   value      = 01:01:04:00:01:06:00:00 <<<<<<   translated = { [0] = '[ id = '1' state = 'cc-in-progress' type = 'voice' direction = 'mo' mode = '(null)' multipart_indicator = 'no' als = '1' ] '} <<<<<< TLV: <<<<<<   type       = "Remote Party Number" (0x10) <<<<<<   length     = 7 <<<<<<   value      = 01:01:00:03:31:31:32 <<<<<<   translated = { [0] = '[ id = '1' presentation_indicator = 'allowed' type = '112' ] '} <<<<<< TLV: <<<<<<   type   = 0x27 <<<<<<   length = 3 <<<<<<   value  = 01:01:00 <<<<<< TLV: <<<<<<   type   = 0x2b <<<<<<   length = 10 <<<<<<   value  = 01:01:00:0
May 19 09:11:47 pine64-pinephone daemon.debug [20904]: [/dev/cdc-wdm0] Received message... <<<<<< RAW: <<<<<<   length = 20 <<<<<<   data   = 01:13:00:80:09:02:02:01:00:20:00:07:00:02:04:00:01:00:0D:00
May 19 09:11:47 pine64-pinephone daemon.debug [20904]: [/dev/cdc-wdm0] Received generic response (translated)... <<<<<< QMUX: <<<<<<   length  = 19 <<<<<<   flags   = 0x80 <<<<<<   service = "voice" <<<<<<   client  = 2 <<<<<< QMI: <<<<<<   flags       = "response" <<<<<<   transaction = 1 <<<<<<   tlv_length  = 7 <<<<<<   message     = "Dial Call" (0x0020) <<<<<< TLV: <<<<<<   type       = "Result" (0x02) <<<<<<   length     = 4 <<<<<<   value      = 01:00:0D:00 <<<<<<   translated = FAILURE: NoNetworkFound
May 19 09:11:47 pine64-pinephone daemon.warn [20904]: <warn>  [1652951507.569242] [modem0/call0] couldn't start call: Couldn't create call: QMI protocol error (13): 'NoNetworkFound'
May 19 09:11:47 pine64-pinephone daemon.info [20904]: <info>  [1652951507.569336] [modem0/call0] call state changed: dialing -> terminated (unknown)
May 19 09:11:47 pine64-pinephone daemon.debug [20904]: <debug> [1652951507.570639] [modem0] cleaning up in-call state...
May 19 09:11:47 pine64-pinephone daemon.debug [20904]: <debug> [1652951507.570893] [modem0] modem is no longer in-call state

Of course, having no SIM inserted the modem is unable to scan for networks and will return an empty URC when trying to retrieve them via AT commands.
The modem should be able to place emergency calls no matter the state of the SIM slot, but maybe we’re missing something and there’s some other command/procedure that needs to be run so the modem can attach to the first network it finds when there’s no SIM to be able to place the call

Are we missing some step? If so, can you tell the procedure to place an emergency call with no SIM?

HI
Please use ATI to check your current version.I will email you the latest version, please test it, thanks

Hi FelixCheng-Q, this is the output of ATI:

ATI
Quectel
EG25
Revision: EG25GGBR07A08M2G

OK

Thanks!

Hello everyone,
I have exactly the same problem with the EC21-EU.
Is there a solution ?

ATD112;
OK

NO CARRIER
AT+CLCC
OK
ATD112;
OK

NO CARRIER
ATI
Quectel
EC21
Revision: EC21EUGAR06A03M4G