History log of /frameworks/opt/telephony/src/java/com/android/internal/telephony/VisualVoicemailSmsFilter.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
585c46499c06297f19129a024047e2feacd30753 19-Aug-2016 Ta-wei Yen <twyen@google.com> Add carrier regex filtering to VisualVoicemailSmsFilter

This CL adds a extra step in the VisualVoicemailSmsFilter which will
match the message body against the carrier specified regex. Even if
the message have a unknown format if it matches the regex it will
still be considered a VVM SMS.

For example, Verizon requires any SMS that starts with "//VZW" to be
dropped. Other cases are handled by the AppDirectedSms app, but
"//VZWVVM" is left for the system visual voicemail. Previously
"//VZWVVM garbage data" will pass though the filter because it is not
a valid VVM SMS, which is against the specification of dropping
everything. After this CL it will match the regex and dropped.
The VVM client will also receive the message body, but ignore it.

Change-Id: I8d446d69d75914bf5fe63834cfebec92f7917711
Fixes: 30954955
/frameworks/opt/telephony/src/java/com/android/internal/telephony/VisualVoicemailSmsFilter.java
9452da00610c4d8c4378ee112de88214d4ec4383 16-Jul-2016 Ta-wei Yen <twyen@google.com> Handle Verizon iPhone WAP push for VVM

Verizon iPhone WAP push is a pure ASCII message, which is used to be
dropped by the system.

this CL will attempt to parse such SMS as an "alternative" VVM format.
The filter will not drop the SMS.

Change-Id: I7ea68bfa7a0bdc190fdc86c85c0e532cbf301e74
Fixes: 30123702
/frameworks/opt/telephony/src/java/com/android/internal/telephony/VisualVoicemailSmsFilter.java
54543184e3fd345fe0c96d4d96022ad4f058e410 26-May-2016 Amit Mahajan <amitmahajan@google.com> Additional sms segment de-duping for multi-part SMS.

Adding de-duping logic for segments with same parameters that can
cause ambiguity when concatenating them to get the complete
message.

Bug: 28932719
Change-Id: I187942d8384dc18d4311265441d076f085651c67
/frameworks/opt/telephony/src/java/com/android/internal/telephony/VisualVoicemailSmsFilter.java
649d6ef94525802e2911d4063431e3207e452810 07-Jun-2016 Ta-wei Yen <twyen@google.com> Fix VisualVoicemailSmsFilter NPE on invalid SmsMessage

Certain PDU will cause createFromPdu() to return a SmsMessage with null
mWrappedSmsMessage, throwing NPE on any method called. In this case, just
ignore the message.

Bug:29123941
Change-Id: Id649af4b7a7a9f5d7b7a08d007b619a4c98f81cb
/frameworks/opt/telephony/src/java/com/android/internal/telephony/VisualVoicemailSmsFilter.java
5580eae0ac10c1b38aae54b6e9f45b4259f409e2 23-May-2016 Ta-wei Yen <twyen@google.com> Switch VVM SMS filter to Builder pattern

Bug:27816386
Change-Id: Ibc3c6ba4487b4a45472c3fc066895828bb796e22
/frameworks/opt/telephony/src/java/com/android/internal/telephony/VisualVoicemailSmsFilter.java
3081824ff4942b9bd19db7a0d9918e188c7f69d1 14-May-2016 Ta-wei Yen <twyen@google.com> Add VisualVoicemailSmsFilter

Several implementation exists for OMTP-like visual voicemail SMS
interfaces because what type of SMS to use is not specified.
Before this CL we can only handle data SMS using the DATA_SMS_RECEIVED
broadcast. With this CL, we can handle data, text and type-0 SMS.

SMS filters will potentially do actions base on the SMS or drop it, so
proper priority should be established to make them work nicely together.

The android framework already provides the CarrierMessagingService
interface to filter SMS. There are 2 possible packages that implements
the interface, the carrier package and the system package. One of them
if any will be chosen to do the filtering. The carrier package is
installed with user interaction and have complex restraints. The
system package is preloaded by the OEM.

If there's a carrier package, we will filter after the carrier package
as it should have priority. If there's a system app, we will filter
before it as we offered mechanism to enable/disable us.

For type-0 SMS, we will filter it before it is going to be dropped.

We will filter visual voicemail SMS based on the content of the message.
A visual voicemail SMS should start with a certain prefix defined
through TelephonyManager, have a event field, and the rest of the message
is consist of OMTP key-value pairs. Future CL will add further
restrictions like originating number and destination port number to
reduce false positives.

If the parsing succeeded, we will compile it into a intent and send a
broadcast. The broadcast is to be made explicit in a future CL.

Bug:27816386
Bug:27817303
Change-Id: I120418d344a1537ff006583759659fa025cac712
(cherry picked from commit 0aa683b47dfd8590f71d88e0814dade4503f0b5d)
/frameworks/opt/telephony/src/java/com/android/internal/telephony/VisualVoicemailSmsFilter.java