2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 #ifndef TIZENAPIS_PLATFORM_CALLSERVICE_H_
18 #define TIZENAPIS_PLATFORM_CALLSERVICE_H_
22 #include <dpl/shared_ptr.h>
23 #include <dpl/noncopyable.h>
24 #include <TapiCommon.h>
25 #include <API/Call/ICallService.h>
26 #include <API/Call/CallFactory.h>
27 #include <API/Call/EventLaunchDialer.h>
28 #include <API/Call/EventSendUSSD.h>
35 typedef std::vector<unsigned int> handleList;
36 typedef DPL::SharedPtr<handleList> handleListPtr;
38 class CallService : public Api::Call::ICallService
44 void registerCallEvent();
45 void deregisterCallEvent();
48 * Asynchronously launches the native phone application for this call service with a pre-filled remote ID.
49 * The user still needs to press the call button to make the call.
51 void launchDialer(const Api::Call::EventLaunchDialerPtr& event);
54 * Send a USSD string to the network.
56 void sendUSSD(const Api::Call::EventSendUSSDPtr& event);
59 * Get voicemail numbers.
60 * @return A list of voicemail numbers.
62 Api::Call::StringListPtr getVoicemailNumbers();
65 * Get subscriber numbers.
66 * @return A list of subscriber numbers.
68 Api::Call::StringListPtr getSubscriberNumbers();
71 * Get emergency numbers.
72 * @return A list of emergency numbers.
74 Api::Call::StringListPtr getEmergencyNumbers();
76 void changedEvent(void *data);
78 void launchDialerManualAnswer(service_h request, service_h reply, service_result_e result);
81 void OnRequestReceived(const Api::Call::EventLaunchDialerPtr& event);
82 void OnRequestReceived(const Api::Call::EventSendUSSDPtr& event);
85 handleListPtr m_handles;
86 Api::Call::EventSendUSSDPtr m_EventSendUSSDPtr;