5a894cf129c0bc985fcdebbc0a9f65ea0ae3e282
[framework/telephony/tel-plugin-socket_communicator.git] / test / network.c
1 /*
2  * tel-plugin-socket-communicator
3  *
4  * Copyright (c) 2012 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact: Ja-young Gu <jygu@samsung.com>
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  */
20
21 #include <stdio.h>
22 #include <stdlib.h>
23 #include <string.h>
24 #include <sys/time.h>
25 #include <unistd.h>
26 #include <glib.h>
27 #include <glib-object.h>
28
29 #include <tapi_sipc.h>
30
31 #include "menu.h"
32 #include "noti.h"
33
34 static char data_menu_net_set_plmn_mode_mode[MENU_DATA_SIZE + 1] = "automatic";
35 static char data_menu_net_set_plmn_mode_plmn[MENU_DATA_SIZE + 1] = "450001";
36
37 static char data_net_set_service_domain_domain[MENU_DATA_SIZE + 1] = "combined";
38
39 static char data_net_set_band_mode[MENU_DATA_SIZE + 1] = "only";
40 static char data_net_set_band_band[MENU_DATA_SIZE + 1] = "1";
41
42 static char data_net_set_preferred_plmn_mode[MENU_DATA_SIZE + 1] = "add";
43 static char data_net_set_preferred_plmn_plmn[MENU_DATA_SIZE + 1] = "45001";
44 static char data_net_set_preferred_plmn_act[MENU_DATA_SIZE + 1] = "1";
45 static char data_net_set_preferred_plmn_ef_index[MENU_DATA_SIZE + 1] = "0";
46
47 static char data_net_set_order_order[MENU_DATA_SIZE + 1] = "auto";
48
49 static char data_net_set_poa_enable[MENU_DATA_SIZE + 1] = "true";
50
51
52 gboolean on_noti_network_registration_status(tapi_service_object_t *data, void *user_data)
53 {
54         gint cs_domain_status, ps_domain_status, service_type, roaming_status;
55
56         msg("TAPI_NOTI_NETWORK_REGISTRATION_STATUS receive !!");
57
58         cs_domain_status = tapi_service_object_get_int(data, "cs_domain_status");
59         ps_domain_status = tapi_service_object_get_int(data, "ps_domain_status");
60         service_type = tapi_service_object_get_int(data, "service_type");
61         roaming_status = tapi_service_object_get_int(data, "roaming_status");
62
63         msg("cs_domain_status = %d", cs_domain_status);
64         msg("ps_domain_status = %d", ps_domain_status);
65         msg("service_type = %d", service_type);
66         msg("roaming_status = %d", roaming_status);
67
68         return TRUE;
69 }
70
71 gboolean on_noti_network_location_cellinfo(tapi_service_object_t *data, void *user_data)
72 {
73         gint lac, cell_id;
74
75         msg("TAPI_NOTI_NETWORK_LOCATION_CELLINFO receive !!");
76
77         lac = tapi_service_object_get_int(data, "lac");
78         cell_id = tapi_service_object_get_int(data, "cell_id");
79
80         msg("lac = %d", lac);
81         msg("cell_id = %d", cell_id);
82
83         return TRUE;
84 }
85
86 gboolean on_noti_network_icon_info(tapi_service_object_t *data, void *user_data)
87 {
88         gint type, rssi, battery, hdr_rssi;
89
90         msg("TAPI_NOTI_NETWORK_ICON_INFO receive !!");
91
92         type = tapi_service_object_get_int(data, "type");
93         rssi = tapi_service_object_get_int(data, "rssi");
94         battery = tapi_service_object_get_int(data, "battery");
95         hdr_rssi = tapi_service_object_get_int(data, "hdr_rssi");
96
97         msg("type = %d", type);
98         msg("rssi = %d", rssi);
99         msg("battery = %d", battery);
100         msg("hdr_rssi = %d", hdr_rssi);
101
102         return TRUE;
103 }
104
105 gboolean on_noti_network_change(tapi_service_object_t *data, void *user_data)
106 {
107         gchar *plmn;
108         gint act, lac, carrier, sid, nid, bs_id, bs_lat, bs_long, reg_sonze, pilot_pn;
109
110         msg("TAPI_NOTI_NETWORK_CHANGE receive !!");
111
112         plmn = tapi_service_object_get_string(data, "plmn");
113         act = tapi_service_object_get_int(data, "act");
114         lac = tapi_service_object_get_int(data, "lac");
115         carrier = tapi_service_object_get_int(data, "carrier");
116         sid = tapi_service_object_get_int(data, "sid");
117         nid = tapi_service_object_get_int(data, "nid");
118         bs_id = tapi_service_object_get_int(data, "bs_id");
119         bs_lat = tapi_service_object_get_int(data, "bs_lat");
120         bs_long = tapi_service_object_get_int(data, "bs_long");
121         reg_sonze = tapi_service_object_get_int(data, "reg_sonze");
122         pilot_pn = tapi_service_object_get_int(data, "pilot_pn");
123
124         msg("plmn = %s", plmn);
125         msg("act = %d", act);
126         msg("lac = %d", lac);
127         msg("carrier = %d", carrier);
128         msg("sid = %d", sid);
129         msg("nid = %d", nid);
130         msg("bs_id = %d", bs_id);
131         msg("bs_lat = %d", bs_lat);
132         msg("bs_long = %d", bs_long);
133         msg("reg_sonze = %d", reg_sonze);
134         msg("pilot_pn = %d", pilot_pn);
135
136         return TRUE;
137 }
138
139 gboolean on_noti_network_timeinfo(tapi_service_object_t *data, void *user_data)
140 {
141         gchar *plmn;
142         gint year, month, day, hour, minute, second, wday, gmtoff, dstoff, isdst;
143
144         msg("TAPI_NOTI_NETWORK_TIMEINFO receive !!");
145
146         plmn = tapi_service_object_get_string(data, "plmn");
147         year = tapi_service_object_get_int(data, "year");
148         month = tapi_service_object_get_int(data, "month");
149         day = tapi_service_object_get_int(data, "day");
150         hour = tapi_service_object_get_int(data, "hour");
151         minute = tapi_service_object_get_int(data, "minute");
152         second = tapi_service_object_get_int(data, "second");
153         wday = tapi_service_object_get_int(data, "wday");
154         gmtoff = tapi_service_object_get_int(data, "gmtoff");
155         dstoff = tapi_service_object_get_int(data, "dstoff");
156         isdst = tapi_service_object_get_int(data, "isdst");
157
158         msg("plmn = %s", plmn);
159         msg("year = %d", year);
160         msg("month = %d", month);
161         msg("day = %d", day);
162         msg("hour = %d", hour);
163         msg("minute = %d", minute);
164         msg("second = %d", second);
165         msg("wday = %d", wday);
166         msg("gmtoff = %d", gmtoff);
167         msg("dstoff = %d", dstoff);
168         msg("isdst = %d", isdst);
169
170         return TRUE;
171 }
172
173 static gboolean on_net_search(tapi_service_object_t *data, void *cb_data)
174 {
175         int count;
176         int i;
177         char buf[10] = {0, };
178         char *plmn;
179         int status;
180         int act;
181         tapi_service_object_t *entry;
182
183         msg("TAPI_SERVICE_NETWORK_SEARCH response receive");
184         count = tapi_service_object_get_int(data, "count");
185
186         msg("count = %d", count);
187         for (i = 0; i < count; i++) {
188                 snprintf(buf, 10, "%d", i);
189                 entry = tapi_service_object_get_object(data, buf);
190                 if (!entry)
191                         continue;
192
193                 plmn = tapi_service_object_get_string(entry, "plmn");
194                 status = tapi_service_object_get_int(entry, "status");
195                 act = tapi_service_object_get_int(entry, "act");
196                 msg("[%2d] plmn=[%s], status=%d, act=%d", i, plmn, status, act);
197         }
198
199         return TRUE;
200 }
201
202 static int run_net_search(MManager *mm, struct menu_data *menu)
203 {
204         tapi_handle_t *handle = menu_manager_ref_user_data(mm);
205         tapi_service_object_t *in = NULL;
206
207         msg("call [%s] tapi service !!!", menu->title);
208
209         in = tapi_create_service_object(TAPI_SERVICE_NETWORK_SEARCH);
210
211         tel_processing_command_async(handle, in, on_net_search, NULL);
212
213         return 0;
214 }
215
216 static int run_net_set_plmn_mode(MManager *mm, struct menu_data *menu)
217 {
218         msg("mode = %s", data_menu_net_set_plmn_mode_mode);
219         msg("plmn = %s", data_menu_net_set_plmn_mode_plmn);
220         msg("call [%s] tapi service !!!", menu->title);
221
222         return 0;
223 }
224
225 static int run_net_get_plmn_mode(MManager *mm, struct menu_data *menu)
226 {
227         msg("call [%s] tapi service !!!", menu->title);
228
229         return 0;
230 }
231
232 static int run_net_set_service_domain(MManager *mm, struct menu_data *menu)
233 {
234         msg("call [%s] tapi service !!!", menu->title);
235
236         return 0;
237 }
238
239 static int run_net_get_service_domain(MManager *mm, struct menu_data *menu)
240 {
241         msg("call [%s] tapi service !!!", menu->title);
242
243         return 0;
244 }
245
246 static int run_net_set_band(MManager *mm, struct menu_data *menu)
247 {
248         msg("call [%s] tapi service !!!", menu->title);
249
250         return 0;
251 }
252
253 static int run_net_get_band(MManager *mm, struct menu_data *menu)
254 {
255         msg("call [%s] tapi service !!!", menu->title);
256
257         return 0;
258 }
259
260 static int run_net_set_preferred_plmn(MManager *mm, struct menu_data *menu)
261 {
262         msg("call [%s] tapi service !!!", menu->title);
263
264         return 0;
265 }
266
267 static int run_net_get_preferred_plmn(MManager *mm, struct menu_data *menu)
268 {
269         msg("call [%s] tapi service !!!", menu->title);
270
271         return 0;
272 }
273
274 static int run_net_set_order(MManager *mm, struct menu_data *menu)
275 {
276         msg("call [%s] tapi service !!!", menu->title);
277
278         return 0;
279 }
280
281 static int run_net_get_order(MManager *mm, struct menu_data *menu)
282 {
283         msg("call [%s] tapi service !!!", menu->title);
284
285         return 0;
286 }
287
288 static int run_net_set_poa(MManager *mm, struct menu_data *menu)
289 {
290         msg("call [%s] tapi service !!!", menu->title);
291
292         return 0;
293 }
294
295 static int run_net_get_poa(MManager *mm, struct menu_data *menu)
296 {
297         msg("call [%s] tapi service !!!", menu->title);
298
299         return 0;
300 }
301
302 static int run_net_set_cancel_manual_search(MManager *mm, struct menu_data *menu)
303 {
304         msg("call [%s] tapi service !!!", menu->title);
305
306         return 0;
307 }
308
309 static int run_net_get_serving_network(MManager *mm, struct menu_data *menu)
310 {
311         msg("call [%s] tapi service !!!", menu->title);
312
313         return 0;
314 }
315
316
317 static struct menu_data menu_net_search[] = {
318         { "1", "run", NULL, run_net_search, NULL},
319         { NULL, NULL, },
320 };
321
322 static struct menu_data menu_net_set_plmn_mode[] = {
323         { "1", "mode (automatic / manual)", NULL, NULL, data_menu_net_set_plmn_mode_mode},
324         { "2", "plmn (45001)", NULL, NULL, data_menu_net_set_plmn_mode_plmn},
325         { "3", "run", NULL, run_net_set_plmn_mode, NULL},
326         { NULL, NULL, },
327 };
328
329 static struct menu_data menu_net_get_plmn_mode[] = {
330         { "1", "run", NULL, run_net_get_plmn_mode, NULL},
331         { NULL, NULL, },
332 };
333
334
335 static struct menu_data menu_net_set_service_domain[] = {
336         { "1", "domain (circuit / packet / combined)", NULL, NULL, data_net_set_service_domain_domain},
337         { "2", "run", NULL, run_net_set_service_domain, NULL},
338         { NULL, NULL, },
339 };
340
341 static struct menu_data menu_net_get_service_domain[] = {
342         { "1", "run", NULL, run_net_get_service_domain, NULL},
343         { NULL, NULL, },
344 };
345
346
347 static struct menu_data menu_net_set_band[] = {
348         { "1", "mode (only / preferred)", NULL, NULL, data_net_set_band_mode},
349         { "2", "band (1=.., 2=..)", NULL, NULL, data_net_set_band_band},
350         { "3", "run", NULL, run_net_set_band, NULL},
351         { NULL, NULL, },
352 };
353
354 static struct menu_data menu_net_get_band[] = {
355         { "1", "run", NULL, run_net_get_band, NULL},
356         { NULL, NULL, },
357 };
358
359
360 static struct menu_data menu_net_set_preferred_plmn[] = {
361         { "1", "mode (add / edit / delete)", NULL, NULL, data_net_set_preferred_plmn_mode},
362         { "2", "plmn (45001)", NULL, NULL, data_net_set_preferred_plmn_plmn},
363         { "3", "act (1=.., 2=..)", NULL, NULL, data_net_set_preferred_plmn_act},
364         { "4", "ef_index (0,...)", NULL, NULL, data_net_set_preferred_plmn_ef_index},
365         { "5", "run", NULL, run_net_set_preferred_plmn, NULL},
366         { NULL, NULL, },
367 };
368
369 static struct menu_data menu_net_get_preferred_plmn[] = {
370         { "1", "run", NULL, run_net_get_preferred_plmn, NULL},
371         { NULL, NULL, },
372 };
373
374
375 static struct menu_data menu_net_set_order[] = {
376         { "1", "order (auto / gsm / wcdma / no_change)", NULL, NULL, data_net_set_order_order},
377         { "2", "run", NULL, run_net_set_order, NULL},
378         { NULL, NULL, },
379 };
380
381 static struct menu_data menu_net_get_order[] = {
382         { "1", "run", NULL, run_net_get_order, NULL},
383         { NULL, NULL, },
384 };
385
386
387 static struct menu_data menu_net_set_poa[] = {
388         { "1", "enable (true / false)", NULL, NULL, data_net_set_poa_enable},
389         { "2", "run", NULL, run_net_set_poa, NULL},
390         { NULL, NULL, },
391 };
392
393 static struct menu_data menu_net_get_poa[] = {
394         { "1", "run", NULL, run_net_get_poa, NULL},
395         { NULL, NULL, },
396 };
397
398
399 static struct menu_data menu_net_set_cancel_manual_search[] = {
400         { "1", "run", NULL, run_net_set_cancel_manual_search, NULL},
401         { NULL, NULL, },
402 };
403
404
405 static struct menu_data menu_net_get_serving_network[] = {
406         { "1", "run", NULL, run_net_get_serving_network, NULL},
407         { NULL, NULL, },
408 };
409
410
411 struct menu_data menu_net[] = {
412         { "1", "Search", menu_net_search, NULL, NULL},
413         { "2s", "SET PLMN Selection mode", menu_net_set_plmn_mode, NULL, NULL},
414         { "2g", "GET PLMN Selection mode", menu_net_get_plmn_mode, NULL, NULL},
415         { "3s", "SET Service Domain", menu_net_set_service_domain, NULL, NULL},
416         { "3g", "GET_Service Domain", menu_net_get_service_domain, NULL, NULL},
417         { "4s", "SET Band", menu_net_set_band, NULL, NULL},
418         { "4g", "GET Band", menu_net_get_band, NULL, NULL},
419         { "5s", "SET Preferred PLMN", menu_net_set_preferred_plmn, NULL, NULL},
420         { "5g", "GET Preferred PLMN", menu_net_get_preferred_plmn, NULL, NULL},
421         { "6s", "SET Order", menu_net_set_order, NULL, NULL},
422         { "6g", "GET Order", menu_net_get_order, NULL, NULL},
423         { "7s", "SET Power on attach", menu_net_set_poa, NULL, NULL},
424         { "7g", "GET Power on attach", menu_net_get_poa, NULL, NULL},
425         { "8s", "SET Cancel manual search", menu_net_set_cancel_manual_search, NULL, NULL},
426         { "9g", "GET Serving network", menu_net_get_serving_network, NULL, NULL},
427         { NULL, NULL, },
428 };