2 * Copyright (c) 2016 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.
18 using static Interop.Telephony;
20 namespace Tizen.Telephony
23 /// This Class provides API's to get the information about calls.
25 public class CallHandle
27 private IntPtr _callHandle;
30 /// Enumeration for the call status.
32 public enum CallStatus
65 /// Enumeration for the call type.
88 /// Enumeration for the call direction.
90 public enum CallDirection
93 /// MO(Mobile Originated) call
97 /// MT(Mobile Terminated) call
107 /// Gets the call handle ID.
109 /// <since_tizen> 3 </since_tizen>
111 /// The id of the call handle
112 /// 0 if unable to complete the operation
119 TelephonyError error = Interop.Call.GetHandleId(_callHandle, out handleId);
120 if (error != TelephonyError.None)
122 Tizen.Log.Error(Interop.Telephony.LogTag, "GetHandleId Failed with Error " + error);
131 /// Gets the call number.
133 /// <since_tizen> 3 </since_tizen>
135 /// The number of the call
136 /// empty string if unable to complete the operation
143 TelephonyError error = Interop.Call.GetNumber(_callHandle, out number);
144 if (error != TelephonyError.None)
146 Tizen.Log.Error(Interop.Telephony.LogTag, "GetNumber Failed with Error " + error);
155 /// Gets the call type.
157 /// <since_tizen> 3 </since_tizen>
159 /// The type of the call
166 TelephonyError error = Interop.Call.GetType(_callHandle, out callType);
167 if (error != TelephonyError.None)
169 Tizen.Log.Error(Interop.Telephony.LogTag, "GetType Failed with Error " + error);
170 return CallType.Unavailable;
178 /// Gets the call status.
180 /// <since_tizen> 3 </since_tizen>
182 /// The status of the call
184 public CallStatus Status
188 CallStatus callStatus;
189 TelephonyError error = Interop.Call.GetStatus(_callHandle, out callStatus);
190 if (error != TelephonyError.None)
192 Tizen.Log.Error(Interop.Telephony.LogTag, "GetStatus Failed with Error " + error);
193 return CallStatus.Unavailable;
201 /// Gets whether the call is MO(Mobile Originated) call or MT(Mobile Terminated).
203 /// <since_tizen> 3 </since_tizen>
205 /// The direction of the call
207 /// <exception cref="InvalidOperationException">
208 /// This Exception can occur due to:
209 /// 1. Operation Not Supported
211 public CallDirection Direction
215 CallDirection callDirection;
216 TelephonyError error = Interop.Call.GetDirection(_callHandle, out callDirection);
217 if (error != TelephonyError.None)
219 Tizen.Log.Error(Interop.Telephony.LogTag, "GetDirection Failed with Error " + error);
220 return CallDirection.Unavailable;
223 return callDirection;
229 /// Gets whether the call is conference call or not.
231 /// <since_tizen> 3 </since_tizen>
233 /// The value whether the call is conference call or not. (true: Conference call, false: Single call)
235 public bool ConferenceStatus
240 TelephonyError error = Interop.Call.GetConferenceStatus(_callHandle, out callConfStatus);
241 if (error != TelephonyError.None)
243 Tizen.Log.Error(Interop.Telephony.LogTag, "GetConferenceStatus Failed with Error " + error);
247 return callConfStatus;
252 internal CallHandle(IntPtr handle)
254 _callHandle = handle;