summaryrefslogtreecommitdiffstats
path: root/doc/voicecallmanager-api.txt
blob: eaef6adf5b97a2c81ddb411fdd07f7355437b5cf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
VoiceCallManager hierarchy
==========================

Service		org.ofono
Interface	org.ofono.VoiceCallManager
Object path	[variable prefix]/{modem0,modem1,...}

Methods		dict GetProperties()

			Returns all global system properties. See the
			properties section for available properties.

			Possible Errors: [service].Error.InvalidArguments

		object Dial(string number, string hide_callerid)

			Initiates a new outgoing call. Returns the object path
			to the newly created call. The clir variable holds
			the CLIR override for this call.
			The defines values are:
				"" or "default" - Default (Netowrk) CLIR mode
							is used
				"enabled" - Hides callerid, CLIR Invocation
						is used
				"disabled" - Shows callerid, CLIR Suppression
						is used

			This is usually implemented using the ATD AT command.

		void Transfer()

			Joins the currently Active (or Outgoing, depending
			on network support) and Held calls together and
			disconnects both calls. In effect transfering
			one party to the other. This procedure requires
			an Active and Held call and the Explicit Call Transfer
			(ECT) supplementary service to be active.

			This functionality is generally implemented by using
			the +CHLD=4 AT command.

		void SwapCalls()

			Swaps Active and Held calls.  The effect of this
			is that all calls (0 or more including calls in a
			multi-party conversation) that were Active are now Held,
			and all calls (0 or more) that were Held are now Active.

			GSM specification does not allow calls to be swapped
			in the case where Held, Active and Waiting calls exist.
			Some modems implement this anyway, thus it is
			manufacturer specific whether this method will succeed
			in the case of Held, Active and Waiting calls.

			This functionality is generally implemented by using
			the +CHLD=2 AT command.

		void ReleaseAndAnswer()

			Releases currently active call and answers the currently
			waiting call. Please note that if the current call is
			a multiparty call, then all parties in the multi-party
			call will be released.

		void HoldAndAnswer()

			Puts the current call (including multi-party calls) on
			hold and answers the currently waiting call. Calling
			this function when a user already has a both Active and
			Held calls is invalid, since in GSM a user can have
			only a single Held call at a time.

		void HangupAll()

			Releases all calls.

		array{object} PrivateChat(object call)

			Places the multi-party call on hold and makes desired
			call active. This is used to accomplish private chat
			functionality.  Note that if there are only two calls
			(three parties) in the multi-party call the result will
			be two regular calls, one held and one active. The
			Multiparty call will need to be setup again by using the
			CreateMultiparty method.  Returns the new list of calls
			participating in the multiparty call.

			This is usually implemented using the +CHLD=2X command.

		array{object} CreateMultiparty()

			Joins active and held calls together into a multi-party
			call. If one of the calls is already a multi-party
			call, then the other call is added to the multiparty
			conversation. Returns the new list of calls
			participating in the multiparty call.

			There can only be one subscriber controlled multi-party
			call according to the GSM specification.

			This is usually implemented using the +CHLD=3 AT
			command.

		void HangupMultiparty()

			Hangs up the multi-party call.  All participating
			calls are released.

		void SendTones(string tones)

			Sends the DTMF tones to the network.  The tones have
			a fixed duration.  Tones can be one of: '0' - '9',
			'*', '#', 'A', 'B', 'C', 'D'.  The last four are
			typically not used in normal circumstances.

Signals		PropertyChanged(string property, variant value)

			Signal is emitted whenever a property has changed. The
			new value is passed as the signal argument.

Properties	array{object} Calls [readonly]

			Returns the list of calls currently present in the
			system. If there are no calls, the list will be empty.

		array{object} MultipartyCalls [readonly]

			Returns the list of calls that are currently
			participating in the multi-party (MPTY) call.  The list
			will be empty if no multi-party call is active, or a
			list with at least two elements otherwise.