summaryrefslogtreecommitdiffstats
path: root/doc/supplementaryservices-api.txt
blob: 5924f25bdf8de4ed139b8771b3a490ccdf890a24 (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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
SupplementaryServices hierarchy
==========================

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

Methods		string, variant Initiate(string command)

			If the command is a recognized supplementary service
			control string, the corresponding SS request is made
			and the result is returned.

			Otherwise the command is sent to the network
			initiating a USSD session. When the request is handled
			by the appropriate node of the network, the
			method returns the response or an appropriate
			error. The network may be awaiting further response
			from the ME after returning from this method and no
			new command can be initiated until this one is
			cancelled or ended.

			The output arguments are described in section
			"Initiate method outptut arguments" below.

			Possible Errors: [service].Error.InProgress
					 [service].Error.NotImplemented
					 [service].Error.InvalidArguments
					 [service].Error.InvalidFormat
					 [service].Error.NotSupported
					 [service].Error.NotAllowed
					 [service].Error.IncorrectPassword
					 [service].Error.NotRegistered
					 [service].Error.Timedout
					 [service].Error.AccessDenied
					 [service].Error.Failed
					 [service].Error.NotRecognized
					 [service].Error.Terminated

		string Respond(string reply)

			Send a response to the network either when
			it is awaiting further input after Initiate()
			was called or after a network-initiated request.

			Possible Errors: [service].Error.InProgress
					 [service].Error.NotActive
					 [service].Error.NotImplemented
					 [service].Error.InvalidArguments
					 [service].Error.InvalidFormat
					 [service].Error.Failed
					 [service].Error.Terminated

		void Cancel()

			Cancel an ongoing USSD session, mobile- or
			network-initiated.

			Possible Errors: [service].Error.NotActive
					 [service].Error.InProgress
					 [service].Error.NotImplemented
					 [service].Error.Failed

		dict GetProperties()

			Returns Supplementary Services related properties. See
			the properties section for available properties.

Signals		NotificationReceived(string message)

			Signal is emitted on a network-initiated USSD
			request for which no response is needed.

		RequestReceived(string message)

			Signal is emitted on a network-initiated USSD
			request for which a response must be sent using
			the Respond method unless it is cancelled or
			the request is not supported.

		PropertyChanged(string property, variant value)

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

Properties	string State [readonly]

			Reflects the state of current USSD session.  The
			values have the following meanings:

			"idle"			No active USSD session.
			"active"		A session is active between the
						network and the ME, the ME is
						waiting for a reply from the
						network.
			"user-response"		The network is waiting for the
						user's response, client must
						call Respond().


Initiate method output arguments
================================

The first return argument and the corresponding second return argument are:

	"USSD"				string ussd_response
	"CallBarring"			(string ss_op, string cb_service,
					dict cb_dict)
	"CallForwarding"		(string ss_op, string cf_service,
					dict cf_dict)
	"CallWaiting"			(string ss_op, dict cw_dict)
	"CallingLinePresentation"	(string ss_op, string status)
	"ConnectedLinePresentation"	(string ss_op, string status)
	"CallingLineRestriction"	(string ss_op, string clir_status)
	"ConnectedLineRestriction"	(string ss_op, string status)

ss_op contains the supplementary service operation:

	"activation"
	"registration"
	"interrogation"
	"deactivation"
	"erasure"

cb_service contains the call barring service for which the operation was
requested:

	"AllOutgoing"
	"InternationalOutgoing"
	"InternationalOutgoingExceptHome"
	"AllIncoming"
	"IncomingWhenRoaming"
	"AllBarringServices"
	"AllOutgoingServices"
	"AllIncomingServices"

cf_service contains the call forwarding service for which the operation was
requested:

	"Unconditional"
	"Busy"
	"NoReply"
	"NotReachable"
	"All"
	"AllConditional"

cb_dict contains basic service/call barring service combinations that were
affected by SS operation and their current status ("enabled" or "disabled").
The basic services are:

	"Voice"
	"Data"
	"Fax"
	"Sms"
	"DataSync"
	"DataAsync"
	"DataPad"
	"DataPacket"

To those the name of call barring service is appended, so the property and
value is for example:

	"FaxIncomingWhenRoaming" : "disabled"

cf_dict contains call forwarding properties affected by the operation.
Propery names are formed from basic service name and call forwarding
service name, for example:

	"VoiceNoReply" : "+12345678"

The property value is the phone number to which the call is forwarded.

For "NoReply" service, there is also a timeout property, holding the timeout
in seconds, for example:

	"VoiceNoReplyTimeout" : 20

cw_dict contains basic services with "CallWaiting" suffix that were affected
by call waiting operation and their current status ("enabled" or "disabled"),
for example:

	"VoiceCallWaiting" : "enabled"

status can be "disabled" or "enabled".
clir_status can be "disabled", "permanent", "on" or "off".

More information about supplementary services is provided in
call-barring-api.txt, call-forwarding-api.txt and call-settings-api.txt