Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Commit 9d34319f authored by Christian Gustafsson's avatar Christian Gustafsson Committed by Wink Saville
Browse files

CDMA Check for network duplicate sms

In some cases a sms acknowledgement might be lost. The network will then resend
the same sms. These duplicate sms should be acknowledged but not shown to the
user.

C.S0015-B  4.3.1.6 Unique Message Identification.

The fields used to identify a message are:
* Message Identifier,
* Originating Address,
* Originating Subaddress, and
* Message Center Time Stamp.

Since some of the fields are optional, the Teleservice Layer shall use as
many of the fields as are present in the SMS message to determine message
uniqueness. Mobile stations should discard repeated messages.

1. Add a fingerprint function to SmsMessage.java. This returns a byte array
   to be used as a unique identifier. Parts that make up the identifier are
   the originating address, teleservice id and the bearerdata. Using all of
   the bearerdata saves parsing time. There are no random bits allowed in
   the standard. This makes binary comparison possible. Using all of the
   bearerdata accounts for the message id, smsc timestamp and "... shall
   use as many of the fields as are present in the SMS message".
2. Have CdmaSMSDispatcher.dispatchMessage() pull a fingerprint and check if
   it matches the last acknowledged fingerprint. When it matches return and
   signal that message was handled.
3. Have CdmaSMSDispatcher.acknowledgeLastIncomingSms() take the last
   dispatched fingerprint move it to the last acknowledged fingerprint.
   Only do this if processing of the sms was successful.

Change-Id: If79f8fe40896cd290940b7ccd5a17531ab937b60
parent f5a5f045
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment