Verizon device cannot acquire SMS sender

Hi,

I have a WP7610 device running the R16.1 Verizon firmware, with legato 19.11. The device can receive SMS messages from another Verizon device successfully.

However, it cannot receive SMS messages from an AT&T device. When the AT&T device sends an SMS to the Verizon WP7610, the legato application framework produces the following error message:

“Internal buffer of originating address is too small 60”.

This log seems to be generated from this line of code:

Any ideas on how to resolve this issue?

how long is the SMS you have sent?

How about shut down the legato framework and see if you can receive the SMS in AT command port?
This can make sure the modem part can receive the SMS

The SMS is only 6 characters long.

I’ll try shutting down the legato framework

The original title of this post wasn’t quite accurate. My WP7610 running R16.1 Verizon firmware can receive SMS messages from non-verizon devices but fails to acquire the originator phone number using le_sms_getSenderTel.

The output of le_sms_getSenderTel is an empty string, but the SMS content can be successfully acquired using le_sms_GetText.

The legato application framework logs show the error described above.

This issue does not occur when the WP7610 on Verizon receives an SMS from another Verizon phone.

Can you get it by AT command AT+cmgr?
You might also need to see the buffer size of “sizeof(addrPtr->chari)”

I could not get the SMS message using AT+CMGR or AT+CMGL but I successfully viewed the message, and sender number, using AT$QCMGL.

I ran “cm sms list” and got the following:

--[ 0]---------------------------------------------------------------
 Type:                         LE_SMS_TYPE_RX
 Sender:                       6245
 Timestamp:                    23/11/6,10:5:5
 Format:                       LE_SMS_FORMAT_TEXT
 Text (5):                    test
--[ 3]---------------------------------------------------------------
 Type:                         LE_SMS_TYPE_RX
 Sender:
 Timestamp:
 Format:                       LE_SMS_FORMAT_PDU
 PDU (39):
       00 00 02 10 02 02 07 02   95 C4 CA A9 68 C0 08 17
       00 03 13 2A 40 01 08 40   33 1B 2B 63 61 89 18 03
       06 23 11 06 10 38 08

The first message was sent from a Verizon device, the second message was sent from an AT&T device.

It seems the legato application framework is not correctly parsing the messages from a non verizon device.

“sizeof(addPtr->chari)” is “50”, which is defined here:

I tried increasing that to 62 and then I legato did not provide an SMS messages to my application at all.

not sure if this is really a valid PDU format, i have pasted it in some online SMS decode, it cannot be parsed.

https://www.smsdeliverer.com/online-sms-pdu-decoder.aspx
https://www.diafaan.com/sms-tutorials/gsm-modem-tutorial/online-sms-pdu-decoder/

Very odd. Is there some subtlety with messages sent to Verizon modems from non-Verizon modems that results in a non-standard PDU format? As mentioned in my previous message, “AT+CMGL” returned nothing, I had to use “AT$QCMGL”, is there some special Qualcomm PDU format?

Does +cmgl or +cmgr show the first sms sent from verizon device?

e.g.
AT+CMGL=4 will show all the SMS message.

AT+CMGL=4 merely responds with “OK” and does not provide any SMS messages

“AT$QCMGL” however does show all SMS messages successfully.

At this point I think I will just rework my application to not use the legato SMS API and instead use the AT commands API and send the “AT$QCMGL” command to get the SMS messages from the modem, which isn’t ideal but so be it.