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.
17 using System.Collections.Generic;
22 /// A class containing information about call idle status notification data.
24 public class CallIdleStatusNotificationData
27 internal CallEndCause Cause;
29 internal CallIdleStatusNotificationData()
36 /// <value>Notificatio id in unsigned integer format.</value>
46 /// End cause for the call indicates whether the call is released normally or due to some other cause.
48 /// <value>En cause enum value.</value>
49 public CallEndCause EndCause
59 /// A class which contains calling name information.
61 public class CallerNameInfo
63 internal CallNameMode Mode;
64 internal string NameData;
66 internal CallerNameInfo()
71 /// Display mode of the name.
73 /// <value>Enum value for call name mode</value>
74 public CallNameMode NameMode
83 /// Calling party name string.
85 /// <value>String value representing calling party name.</value>
96 /// A class which contains details about call information.
98 public class CallIncomingInfo
100 internal uint Handle;
101 internal CallType Type;
102 internal string Number;
103 internal CallerNameInfo Name;
104 internal CallCliMode Cli;
105 internal CallNoCliCause Cause;
106 internal bool IsFwded;
107 internal CallActiveLine Line;
109 internal CallIncomingInfo()
114 /// Call handle indicates the handle of the call for the application.
116 /// <value>Call handle represented in unsigned integer format.</value>
117 public uint CallHandle
128 /// <value>Call type indicating whether the requested call is a voice or video call.</value>
129 public CallType CallType
138 /// Caller number, null terminated ASCII.
140 /// <value>A string representing calling party number.</value>
141 public string CallerNumber
150 /// Call name info. If there is no information from the network, this information will be null.
152 /// <value>A CallerNameInfo which contains information about the calling party name.</value>
153 public CallerNameInfo NameInfo
164 /// <value>Enum value representing CLI mode.</value>
165 public CallCliMode CliMode
176 /// <value>Enum value representing the cause for no CLI.</value>
177 public CallNoCliCause CliCause
186 /// Checks whether the incoming call is a forwarded call or not.
188 /// <value>True or false. If the incoming call is a forwarded call, then true else false.</value>
189 public bool IsForwarded
198 /// Current Active Line.
200 /// <value>Enum value representing call active line.</value>
201 public CallActiveLine ActiveLine
211 /// A class which contains information about call line control.
213 public class CallRecordLineControl
215 internal byte PolarityInc;
216 internal byte Toggle;
217 internal byte ReversePol;
218 internal byte PowerTime;
220 internal CallRecordLineControl()
225 /// Polarity included.
227 /// <value>Polarity value represented in byte format.</value>
228 public byte PolarityIncluded
239 /// <value>Toggle mode represented in byte format.</value>
240 public byte ToggleMode
249 /// Reverse polarity.
251 /// <value>Reverse polarity value represented in byte format.</value>
252 public byte ReversePolarity
261 /// Power denial time.
263 /// <value>Time value in byte which represents power denial time.</value>
264 public byte PowerDenialTime
274 /// A class which contains information about call record.
276 public class CallRecord
279 internal CallRecordType Type;
280 internal string Name;
281 internal string Number;
282 internal CallRecordLineControl LineCtrl;
284 internal CallRecord()
291 /// <value>Call id which is represented in unsigned integer format.</value>
301 /// Call record type.
303 /// <value>An enum value representing the call record type.</value>
304 public CallRecordType CallRecordType
316 /// This value will be filled only if CallRecordType is Name, otherwise it is null.
318 /// <value>Name record represented in string.</value>
319 public string NameRecord
331 /// This value will be filled only if CallRecordType is Record, otherwise it is null.
333 /// <value>Number record reprensented in string.</value>
334 public string NumberRecord
343 /// Gets the line control info.
346 /// This value will be filled only if CallRecordType is LineControl, otherwise it is null.
348 /// <value>An instance of CallRecordLineControl class.</value>
349 public CallRecordLineControl LineControlInfo
359 /// A class which contains information about call signal notification.
361 public class CallSignalNotification
363 internal CallAlertSignal Signal;
364 internal CallAlertPitch Pitch;
365 internal CallToneSignal Tone;
366 internal CallIsdnAlertSignal Isdn;
367 internal CallIs54bAlertSignal Is54b;
369 internal CallSignalNotification()
374 /// Gets the call signal type.
376 /// <value>Signal type of the call represented as CallAlertSignal enum.</value>
377 public CallAlertSignal SignalType
386 /// Gets the call pitch type.
388 /// <value>Pitch type of the call represented as CallAlertPitch enum.</value>
389 public CallAlertPitch PitchType
398 /// Gets the call signal tone type.
401 /// This value will be filled only if SignalType is Tone.
403 /// <value>Signal tone type of the call represented in CallToneSignal enum.</value>
404 public CallToneSignal ToneType
413 /// Gets the signal ISDN Alert type.
416 /// This value will be filled only if SignalType is IsdnAlert.
418 /// <value>Signal ISDN alert type of the call represented in CallIsdnAlertSignal enum.</value>
419 public CallIsdnAlertSignal IsdnAlertType
428 /// Gets the signal IS54B alert type.
431 /// This value will be filled only if SignalType is Is54bAlert.
433 /// <value>Signal IS54B alerty type of the call represented in CallIs54bAlertSignal enum.</value>
434 public CallIs54bAlertSignal Is54bAlertType
444 /// A class which contains information about call upgrade/downgrade request of VoLTE call.
446 public class CallUpgradeDowngradeRequestNoti
449 internal CallConfigType Type;
451 internal CallUpgradeDowngradeRequestNoti()
456 /// Gets the call handle.
458 /// <value>Call handle value represented in integer format.</value>
459 public int CallHandle
468 /// Gets the call upgrade/downgrade config type.
470 /// <value>Call upgrade/downgrade type represented in CallConfigType enum.</value>
471 public CallConfigType UpgradeType
481 /// A class which contains information about an outgoing call.
483 public class CallInformation
485 private CallType _type;
486 private EmergencyType _etype;
487 private string _number;
488 private CallInformation()
493 /// A parameterized constructor of CallInformation.
495 /// <param name="type">Type of call(voice, data, video, emergency).</param>
496 /// <param name="etype">Emergency category.</param>
497 /// <param name="phoneNumber">Destination phone number.</param>
498 public CallInformation(CallType type, EmergencyType etype, string phoneNumber)
502 _number = phoneNumber;
505 internal CallType Type
513 internal EmergencyType EType
521 internal string PhoneNumber
531 /// A class which contains information about call end response data.
533 public class CallEndData
535 private CallEndType _type;
538 private CallEndData()
542 internal CallEndData(CallEndType type, uint id)
551 public CallEndType Type
572 /// A class which contains information about burst DTMF in CDMA.
574 public class CallBurstDtmfData
576 private string _dtmf;
577 private CallDtmfPulseWidth _width;
578 private CallDtmfDigitInterval _interval;
580 private CallBurstDtmfData()
585 /// A parameterized constructor of CallBurstDtmfData.
587 /// <param name="dtmf">Burst DTMF string.</param>
588 /// <param name="width">DTMF Pulse Width.</param>
589 /// <param name="interval">DTMF Inter Digit Interval.</param>
590 public CallBurstDtmfData(string dtmf, CallDtmfPulseWidth width, CallDtmfDigitInterval interval)
594 _interval = interval;
605 internal CallDtmfPulseWidth Width
613 internal CallDtmfDigitInterval Interval
623 /// A class which contains information about call status.
625 public class CallStatus
628 private bool _isMoCall;
629 private string _number;
630 private CallType _type;
631 private CallState _state;
632 private bool _isConferenceState;
633 private bool _isVolteCall;
634 internal CallStatus()
641 public int CallHandle
655 /// Status will be true for MO calls. If MT call, then its false.
673 public string PhoneNumber
687 /// Type of call(voice, data, emergency).
703 /// Current call state.
705 public CallState State
719 /// Whether call is in conference state.
721 public bool IsConferenceState
725 return _isConferenceState;
730 _isConferenceState = value;
735 /// Whether call is volte call.
737 public bool IsVolteCall
746 _isVolteCall = value;
752 /// A class that contains call volume info.
754 public class CallVolumeRecord
756 private SoundDevice _device;
757 private SoundType _type;
758 private SoundVolume _volume;
759 private CallVolumeRecord()
764 /// A parameterized constructor of CallVolumeRecord.
766 /// <param name="device">Call sound device.</param>
767 /// <param name="type">Call sound type.</param>
768 /// <param name="volume">Call sound volume.</param>
769 public CallVolumeRecord(SoundDevice device, SoundType type, SoundVolume volume)
777 /// Call sound device info.
779 public SoundDevice Device
788 /// Call sound type info.
790 public SoundType Type
799 /// Call sound volume info.
801 public SoundVolume Volume
811 /// A class which contains call volume info reponse data.
813 public class CallVolumeInfo
816 private IEnumerable<CallVolumeRecord> _recordList;
818 private CallVolumeInfo()
822 internal CallVolumeInfo(uint id, IEnumerable<CallVolumeRecord> list)
840 /// Volume info record.
842 public IEnumerable<CallVolumeRecord> Records
852 /// A class which contains call sound path and volume information.
854 public class CallSoundPathInfo
856 private SoundPath _path;
857 private ExtraVolume _exVolume;
858 private CallSoundPathInfo()
863 /// A parameterized constructor of CallSoundPathInfo.
865 /// <param name="path">Sound path.</param>
866 /// <param name="exVolume">Extra volume status.</param>
867 public CallSoundPathInfo(SoundPath path, ExtraVolume exVolume)
870 _exVolume = exVolume;
873 internal SoundPath Path
881 internal ExtraVolume ExVolume
891 /// A class which contains call mute status reponse data.
893 public class CallMuteStatusRecord
895 private SoundMutePath _path;
896 private SoundMuteStatus _status;
897 private CallMuteStatusRecord()
902 /// A parameterized constructor of CallMuteStatusRecord.
904 /// <param name="path">Mute path.</param>
905 /// <param name="status">Mute status.</param>
906 public CallMuteStatusRecord(SoundMutePath path, SoundMuteStatus status)
913 /// Gets the sound mute path.
915 public SoundMutePath Path
924 /// Gets the sound mute status.
926 public SoundMuteStatus Status