1 /*
2  * Copyright (C) 2015 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License
15  */
16 package com.android.phone.vvm.omtp.sms;
17 
18 import android.telecom.Log;
19 
20 import com.android.phone.vvm.omtp.OmtpConstants;
21 
22 /**
23  * Structured data representation of OMTP STATUS message.
24  *
25  * The getters will return null if the field was not set in the message body or it could not be
26  * parsed.
27  */
28 public class StatusMessage {
29     // NOTE: Following Status SMS fields are not yet parsed, as they do not seem
30     // to be useful for initial omtp source implementation.
31     // lang, g_len, vs_len, pw_len, pm, gm, vtc, vt
32 
33     private final String mProvisioningStatus;
34     private final String mStatusReturnCode;
35     private final String mSubscriptionUrl;
36     private final String mServerAddress;
37     private final String mTuiAccessNumber;
38     private final String mClientSmsDestinationNumber;
39     private final String mImapPort;
40     private final String mImapUserName;
41     private final String mImapPassword;
42     private final String mSmtpPort;
43     private final String mSmtpUserName;
44     private final String mSmtpPassword;
45 
46     @Override
toString()47     public String toString() {
48         return "StatusMessage [mProvisioningStatus=" + mProvisioningStatus
49                 + ", mStatusReturnCode=" + mStatusReturnCode
50                 + ", mSubscriptionUrl=" + mSubscriptionUrl
51                 + ", mServerAddress=" + mServerAddress
52                 + ", mTuiAccessNumber=" + mTuiAccessNumber
53                 + ", mClientSmsDestinationNumber=" + mClientSmsDestinationNumber
54                 + ", mImapPort=" + mImapPort
55                 + ", mImapUserName=" + mImapUserName
56                 + ", mImapPassword=" + Log.pii(mImapPassword)
57                 + ", mSmtpPort=" + mSmtpPort
58                 + ", mSmtpUserName=" + mSmtpUserName
59                 + ", mSmtpPassword=" + Log.pii(mSmtpPassword) + "]";
60     }
61 
StatusMessage(WrappedMessageData wrappedData)62     public StatusMessage(WrappedMessageData wrappedData) {
63         mProvisioningStatus = wrappedData.extractString(OmtpConstants.PROVISIONING_STATUS);
64         mStatusReturnCode = wrappedData.extractString(OmtpConstants.RETURN_CODE);
65         mSubscriptionUrl = wrappedData.extractString(OmtpConstants.SUBSCRIPTION_URL);
66         mServerAddress = wrappedData.extractString(OmtpConstants.SERVER_ADDRESS);
67         mTuiAccessNumber = wrappedData.extractString(OmtpConstants.TUI_ACCESS_NUMBER);
68         mClientSmsDestinationNumber = wrappedData.extractString(
69                 OmtpConstants.CLIENT_SMS_DESTINATION_NUMBER);
70         mImapPort = wrappedData.extractString(OmtpConstants.IMAP_PORT);
71         mImapUserName = wrappedData.extractString(OmtpConstants.IMAP_USER_NAME);
72         mImapPassword = wrappedData.extractString(OmtpConstants.IMAP_PASSWORD);
73         mSmtpPort = wrappedData.extractString(OmtpConstants.SMTP_PORT);
74         mSmtpUserName = wrappedData.extractString(OmtpConstants.SMTP_USER_NAME);
75         mSmtpPassword = wrappedData.extractString(OmtpConstants.SMTP_PASSWORD);
76     }
77 
78     /**
79      * @return the subscriber's VVM provisioning status.
80      */
getProvisioningStatus()81     public String getProvisioningStatus() {
82         return mProvisioningStatus;
83     }
84 
85     /**
86      * @return the return-code of the status SMS.
87      */
getReturnCode()88     public String getReturnCode() {
89         return mStatusReturnCode;
90     }
91 
92     /**
93      * @return the URL of the voicemail server. This is the URL to send the users to for subscribing
94      * to the visual voicemail service.
95      */
getSubscriptionUrl()96     public String getSubscriptionUrl() {
97         return mSubscriptionUrl;
98     }
99 
100     /**
101      * @return the voicemail server address. Either server IP address or fully qualified domain
102      * name.
103      */
getServerAddress()104     public String getServerAddress() {
105         return mServerAddress;
106     }
107 
108     /**
109      * @return the Telephony User Interface number to call to access voicemails directly from the
110      * IVR.
111      */
getTuiAccessNumber()112     public String getTuiAccessNumber() {
113         return mTuiAccessNumber;
114     }
115 
116     /**
117      * @return the number to which client originated SMSes should be sent to.
118      */
getClientSmsDestinationNumber()119     public String getClientSmsDestinationNumber() {
120         return mClientSmsDestinationNumber;
121     }
122 
123     /**
124      * @return the IMAP server port to talk to.
125      */
getImapPort()126     public String getImapPort() {
127         return mImapPort;
128     }
129 
130     /**
131      * @return the IMAP user name to be used for authentication.
132      */
getImapUserName()133     public String getImapUserName() {
134         return mImapUserName;
135     }
136 
137     /**
138      * @return the IMAP password to be used for authentication.
139      */
getImapPassword()140     public String getImapPassword() {
141         return mImapPassword;
142     }
143 
144     /**
145      * @return the SMTP server port to talk to.
146      */
getSmtpPort()147     public String getSmtpPort() {
148         return mSmtpPort;
149     }
150 
151     /**
152      * @return the SMTP user name to be used for SMTP authentication.
153      */
getSmtpUserName()154     public String getSmtpUserName() {
155         return mSmtpUserName;
156     }
157 
158     /**
159      * @return the SMTP password to be used for SMTP authentication.
160      */
getSmtpPassword()161     public String getSmtpPassword() {
162         return mSmtpPassword;
163     }
164 }