1 /*
2  * Copyright (C) 2023 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef CELLULAR_CALL_MMICODE_MSG_H
17 #define CELLULAR_CALL_MMICODE_MSG_H
18 
19 #include "cellular_call_data_struct.h"
20 #include "ims_error.h"
21 #include "telephony_types.h"
22 #include <stdlib.h>
23 #include <string>
24 
25 namespace OHOS {
26 namespace Telephony {
27 /**
28  * Calling line identification restriction (CLIR) is set to the default according to the
29  * subscription of the CLIR service.
30  *
31  * See TS 27.007, section 7.7 for more information.
32  */
33 const int32_t CLIR_OUTGOING_DEFAULT = 0;
34 /**
35  * Activate Calling line identification restriction for outgoing calls.
36  *
37  * See TS 27.007, section 7.7 for more information.
38  */
39 const int32_t CLIR_OUTGOING_INVOCATION = 1;
40 /**
41  * Deactivate Calling line identification restriction for outgoing calls.
42  *
43  * See TS 27.007, section 7.7 for more information.
44  */
45 const int32_t CLIR_OUTGOING_SUPPRESSION = 2;
46 
47 /**
48  * Calling line identification restriction is currently not provisioned.
49  *
50  * See TS 27.007, section 7.7 for more information.
51  */
52 const int32_t CLIR_STATUS_NOT_PROVISIONED = 0;
53 /**
54  * Calling line identification restriction is currently provisioned in permanent mode.
55  *
56  * See TS 27.007, section 7.7 for more information.
57  */
58 const int32_t CLIR_STATUS_PROVISIONED_PERMANENT = 1;
59 /**
60  * Calling line identification restriction is currently unknown, e.g. no network, etc.
61  *
62  * See TS 27.007, section 7.7 for more information.
63  */
64 const int32_t CLIR_STATUS_UNKNOWN = 2;
65 /**
66  * Calling line identification restriction temporary mode, temporarily restricted.
67  *
68  * See TS 27.007, section 7.7 for more information.
69  */
70 const int32_t CLIR_STATUS_TEMPORARILY_RESTRICTED = 3;
71 /**
72  * Calling line identification restriction temporary mode, temporarily allowed.
73  *
74  * See TS 27.007, section 7.7 for more information.
75  */
76 const int32_t CLIR_STATUS_TEMPORARILY_ALLOWED = 4;
77 
78 const int32_t SS_DISABLED = 0;
79 const int32_t SS_ENABLED = 1;
80 const int32_t MAX_MESSAGE_NUMBER = 500;
81 const int32_t TRANSFER_REASON_TYPE_NO_REPLY = 2;
82 
83 const std::string TRANSFER_UNCONDITIONAL_SUCCESS = "Transfer unconditional success";
84 const std::string TRANSFER_BUSY_SUCCESS = "Transfer busy success";
85 const std::string TRANSFER_NO_REPLYL_SUCCESS = "Transfer no replay success";
86 const std::string TRANSFER_NOT_REACHABLE_SUCCESS = "Transfer not reachable success";
87 const std::string QUERY_SS_SUCCESS = "Query SS success";
88 const std::string QUERY_SS_FAILED = "Query SS failed";
89 const std::string INVALID_MMI_CODE = "Invalid MMI code";
90 const std::string GET_CALL_WAITING_SUCCESS = "Get call waiting success";
91 const std::string GET_CALL_WAITING_FAILED = "Get call waiting failed";
92 const std::string SET_CALL_WAITING_SUCCESS = "Set call waiting success";
93 const std::string SET_CALL_WAITING_FAILED = "Set call waiting failed";
94 const std::string GET_CALL_TRANSFER_SUCCESS = "Get call transfer success";
95 const std::string GET_CALL_TRANSFER_FAILED = "Get call transfer failed";
96 const std::string SET_CALL_TRANSFER_SUCCESS = "Set call transfer success";
97 const std::string SET_CALL_TRANSFER_FAILED = "Set call transfer failed";
98 const std::string GET_CALL_RESTRICTION_SUCCESS = "Get call restriction success";
99 const std::string GET_CALL_RESTRICTION_FAILED = "Get call restriction failed";
100 const std::string SET_CALL_RESTRICTION_SUCCESS = "Set call restriction success";
101 const std::string SET_SET_BARRING_PASSWORD_SUCCESS = "Set call restriction password success";
102 const std::string SET_CALL_RESTRICTION_FAILED = "Set call restriction failed";
103 const std::string SET_SET_BARRING_PASSWORD_FAILED = "Set call restriction password failed";
104 const std::string GET_CLIP_SUCCESS = "Get clip success";
105 const std::string GET_CLIP_FAILED = "Get clip failed";
106 const std::string SET_CLIP_SUCCESS = "Set clip success";
107 const std::string SET_CLIP_FAILED = "Set clip failed";
108 const std::string GET_CLIR_SUCCESS = "Get clir success";
109 const std::string GET_CLIR_FAILED = "Get clir failed";
110 const std::string SET_CLIR_SUCCESS = "Set clir success";
111 const std::string SET_CLIR_FAILED = "Set clir failed";
112 const std::string GET_COLR_SUCCESS = "Get colr success";
113 const std::string GET_COLR_FAILED = "Get colr failed";
114 const std::string SET_COLR_SUCCESS = "Set colr success";
115 const std::string SET_COLR_FAILED = "Set colr failed";
116 const std::string GET_COLP_SUCCESS = "Get colp success";
117 const std::string GET_COLP_FAILED = "Get colp failed";
118 const std::string SET_COLP_SUCCESS = "Set colp success";
119 const std::string SET_COLP_FAILED = "Set colp failed";
120 const std::string MIS_MATCH_PIN_PUK = "PIN or PUK don\'t match";
121 const std::string INVAILD_PIN_PUK = "Invaild PIN or PUK numbers";
122 const std::string SEND_USSD_SUCCESS = "Send ussd success";
123 const std::string GENERIC_FAILURE = "Generic fail, please retry";
124 const std::string SERVICE_ENABLE = "Service was enabled";
125 const std::string SERVICE_ENABLE_FOR = "Service was enabled for:";
126 const std::string SERVICE_DISABLE = "Service has been disabled";
127 const std::string SERVICE_NOT_PROVISIONED = "Service not provisioned";
128 const std::string CF_NOT_FORWARDED = "%s: Not forwarded";
129 const std::string CF_FORWARDED = "%s: %s";
130 const std::string CF_FORWARDED_TIME = "%s: %s after %d seconds";
131 const std::string CLIR_PERMANENT = "You can not change the caller ID setting";
132 const std::string CLIR_DEFAULT_ON_NEXT_ON = "Caller ID defaults to restricted. Next call: Restricted";
133 const std::string CLIR_DEFAULT_ON_NEXT_OFF = "Caller ID defaults to restricted. Next call: Not restricted";
134 const std::string CLIR_DEFAULT_OFF_NEXT_OFF = "Caller ID defaults to not restricted. Next call: Not restricted";
135 const std::string CLIR_DEFAULT_OFF_NEXT_ON = "Caller ID defaults to not restricted. Next call: Restricted";
136 
137 /**
138  * Create get call waiting result message
139  *
140  * @param resultMessage  the result message
141  * @param callWaitResponse  the result of get callwaiting
142  * @return void.
143  */
144 void CreateGetCallWaitingResultMessage(std::string &resultMessage, CallWaitResponse response);
145 
146 void CreateSuppSvcQueryResultMessage(std::string &resultMessage, int32_t result, int32_t status);
147 
148 void CreateGetCallTransferResultMessage(std::string &resultMessage, CallTransferResponse response);
149 
150 void MakeCallTransferMessageEx(std::string &resultMessage, CallTransferResponse response, int32_t classex);
151 
152 void CreateGetClirResultMessage(std::string &resultMessage, ClirResponse response);
153 
154 std::string GetServiceClassName(int32_t classex);
155 
156 void CreateServiceClassMessage(std::string &resultMessage, int32_t classex);
157 
158 } // namespace Telephony
159 } // namespace OHOS
160 
161 #endif // CELLULAR_CALL_MMICODE_MSG_H
162