diff --git a/services/manager/include/cellular_call_handler.h b/services/manager/include/cellular_call_handler.h index c3b3dbc41c468f8efb0db564f304335672142fe4..f8b7dbf650dfea8eb427da3fd5900f1e48bb69a0 100755 --- a/services/manager/include/cellular_call_handler.h +++ b/services/manager/include/cellular_call_handler.h @@ -195,7 +195,8 @@ public: public: const uint32_t REGISTER_HANDLER_ID = 10003; - const std::string PHONE_CONTEXT_UNEXPECTED = "0086"; + const std::string PHONE_CONTEXT_UNEXPECTED_SCENARIO_1 = "0086"; + const std::string PHONE_CONTEXT_UNEXPECTED_SCENARIO_2 = "086"; const std::string PHONE_CONTEXT_EXPECTED = "+86"; const std::string DOUBLE_PHONE_CONTEXT_STRING = "^\\+8686(13[0-9]|14[5-9]|15[0-9]|166|17[0-9]" "|18[0-9]|19[0-9])\\d{8}$"; diff --git a/services/manager/src/cellular_call_handler.cpp b/services/manager/src/cellular_call_handler.cpp index 2f3a6f4ab9df63b51af6f8e2bd0d67284b8499ea..1c8a25f22ee72e48d021cc88d33355fc73371f5b 100755 --- a/services/manager/src/cellular_call_handler.cpp +++ b/services/manager/src/cellular_call_handler.cpp @@ -1396,11 +1396,15 @@ void CellularCallHandler::ProcessCsPhoneNumber(CallInfoList &list) } for (uint64_t i = 0; i < list.calls.size(); i++) { CallInfo callInfo = list.calls[i]; - if (callInfo.number.length() <= PHONE_CONTEXT_UNEXPECTED.length()) { + if (callInfo.number.length() <= PHONE_CONTEXT_UNEXPECTED_SCENARIO_2.length()) { continue; } - if (callInfo.number.compare(0, PHONE_CONTEXT_UNEXPECTED.length(), PHONE_CONTEXT_UNEXPECTED) == 0) { - list.calls[i].number = callInfo.number.replace(0, PHONE_CONTEXT_UNEXPECTED.length(), + if (callInfo.number.compare(0, PHONE_CONTEXT_UNEXPECTED_SCENARIO_1.length(), PHONE_CONTEXT_UNEXPECTED_SCENARIO_1) == 0) { + list.calls[i].number = callInfo.number.replace(0, PHONE_CONTEXT_UNEXPECTED_SCENARIO_1.length(), + PHONE_CONTEXT_EXPECTED); + } + if (callInfo.number.compare(0, PHONE_CONTEXT_UNEXPECTED_SCENARIO_2.length(), PHONE_CONTEXT_UNEXPECTED_SCENARIO_2) == 0) { + list.calls[i].number = callInfo.number.replace(0, PHONE_CONTEXT_UNEXPECTED_SCENARIO_2.length(), PHONE_CONTEXT_EXPECTED); } } @@ -1413,11 +1417,15 @@ void CellularCallHandler::ProcessImsPhoneNumber(ImsCurrentCallList &list) } for (uint64_t i = 0; i < list.calls.size(); i++) { ImsCurrentCall currentCall = list.calls[i]; - if (currentCall.number.length() <= PHONE_CONTEXT_UNEXPECTED.length()) { + if (currentCall.number.length() <= PHONE_CONTEXT_UNEXPECTED_SCENARIO_2.length()) { continue; } - if (currentCall.number.compare(0, PHONE_CONTEXT_UNEXPECTED.length(), PHONE_CONTEXT_UNEXPECTED) == 0) { - list.calls[i].number = currentCall.number.replace(0, PHONE_CONTEXT_UNEXPECTED.length(), + if (currentCall.number.compare(0, PHONE_CONTEXT_UNEXPECTED_SCENARIO_1.length(), PHONE_CONTEXT_UNEXPECTED_SCENARIO_1) == 0) { + list.calls[i].number = currentCall.number.replace(0, PHONE_CONTEXT_UNEXPECTED_SCENARIO_1.length(), + PHONE_CONTEXT_EXPECTED); + } + if (currentCall.number.compare(0, PHONE_CONTEXT_UNEXPECTED_SCENARIO_2.length(), PHONE_CONTEXT_UNEXPECTED_SCENARIO_2) == 0) { + list.calls[i].number = currentCall.number.replace(0, PHONE_CONTEXT_UNEXPECTED_SCENARIO_2.length(), PHONE_CONTEXT_EXPECTED); } } diff --git a/test/unittest/cstest/cs2_test.cpp b/test/unittest/cstest/cs2_test.cpp index 11c1ee5f57d5c44490b86a6555a78b981daa05fd..0abb35df893b06adce4d956a4b9b7cba43b9bb28 100644 --- a/test/unittest/cstest/cs2_test.cpp +++ b/test/unittest/cstest/cs2_test.cpp @@ -1222,7 +1222,7 @@ HWTEST_F(Cs2Test, cellular_call_CellularCallHandler_0004, Function | MediumTest callInfoLists.push_back(callInfo); callInfoListThird->calls = callInfoLists; fourthHandler.ProcessCsPhoneNumber(*callInfoListThird); - EXPECT_EQ(callInfoListThird->calls[0].number, unexpectedPhoneNumber); + EXPECT_EQ(callInfoListThird->calls[0].number, expectedPhoneNumber); } /** diff --git a/test/unittest/imstest/ims2_test.cpp b/test/unittest/imstest/ims2_test.cpp index bb105fff921edc98a0587a99c7011a33bcacc135..8a4d9507261531d1b53f3f2c7a6d6c618b6addc3 100644 --- a/test/unittest/imstest/ims2_test.cpp +++ b/test/unittest/imstest/ims2_test.cpp @@ -951,6 +951,12 @@ HWTEST_F(Ims2Test, cellular_call_CellularCallHandler_0005, Function | MediumTest imsCurrent.number = unexpected; imsCurrentCallList->calls.push_back(imsCurrent); handler.ProcessImsPhoneNumber(*imsCurrentCallList); + EXPECT_EQ(imsCurrentCallList->calls[0].number, expected); + imsCurrentCallList->calls.clear(); + unexpected = "08761565910xxxx"; + imsCurrent.number = unexpected; + imsCurrentCallList->calls.push_back(imsCurrent); + handler.ProcessImsPhoneNumber(*imsCurrentCallList); EXPECT_EQ(imsCurrentCallList->calls[0].number, unexpected); }