4 * Copyright (c) 2012 Samsung Electronics Co., Ltd. All rights reserved.
6 * Contact: Ja-young Gu <jygu@samsung.com>
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
12 * http://www.apache.org/licenses/LICENSE-2.0
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.
25 #include "tapi_common.h"
26 #include "TapiUtility.h"
27 #include "TelNetwork.h"
31 #include "ITapiNetwork.h"
33 static int _convert_systemtype_to_act(int type)
36 case TAPI_NETWORK_SYSTEM_GSM:
40 case TAPI_NETWORK_SYSTEM_GPRS:
44 case TAPI_NETWORK_SYSTEM_EGPRS:
48 case TAPI_NETWORK_SYSTEM_PCS1900:
51 case TAPI_NETWORK_SYSTEM_UMTS:
55 case TAPI_NETWORK_SYSTEM_GSM_AND_UMTS:
59 case TAPI_NETWORK_SYSTEM_IS95A:
63 case TAPI_NETWORK_SYSTEM_IS95B:
67 case TAPI_NETWORK_SYSTEM_CDMA_1X:
71 case TAPI_NETWORK_SYSTEM_EVDO_REV_0:
75 case TAPI_NETWORK_SYSTEM_1X_EVDO_REV_0_HYBRID:
79 case TAPI_NETWORK_SYSTEM_EVDO_REV_A:
83 case TAPI_NETWORK_SYSTEM_1X_EVDO_REV_A_HYBRID:
87 case TAPI_NETWORK_SYSTEM_EVDV:
91 case TAPI_NETWORK_SYSTEM_LTE:
102 static int _convert_act_to_systemtype(int act)
106 return TAPI_NETWORK_SYSTEM_GSM;
110 return TAPI_NETWORK_SYSTEM_GPRS;
114 return TAPI_NETWORK_SYSTEM_EGPRS;
118 return TAPI_NETWORK_SYSTEM_UMTS;
122 return TAPI_NETWORK_SYSTEM_GSM_AND_UMTS;
126 return TAPI_NETWORK_SYSTEM_IS95A;
130 return TAPI_NETWORK_SYSTEM_IS95B;
134 return TAPI_NETWORK_SYSTEM_CDMA_1X;
138 return TAPI_NETWORK_SYSTEM_EVDO_REV_0;
142 return TAPI_NETWORK_SYSTEM_1X_EVDO_REV_0_HYBRID;
146 return TAPI_NETWORK_SYSTEM_EVDO_REV_A;
150 return TAPI_NETWORK_SYSTEM_1X_EVDO_REV_A_HYBRID;
154 return TAPI_NETWORK_SYSTEM_EVDV;
158 return TAPI_NETWORK_SYSTEM_LTE;
165 return TAPI_NETWORK_SYSTEM_NO_SRV;
168 static void on_response_search_network(GObject *source_object, GAsyncResult *res, gpointer user_data)
170 GError *error = NULL;
171 GDBusConnection *conn = NULL;
172 struct tapi_resp_data *evt_cb_data = user_data;
176 TelNetworkPlmnList_t list;
178 GVariant *dbus_result = NULL;
179 GVariant *value = NULL;
180 GVariantIter *iter = NULL;
181 GVariantIter *iter_row = NULL;
182 const gchar *key = NULL;
184 memset(&list, 0, sizeof(TelNetworkPlmnList_t));
186 conn = G_DBUS_CONNECTION (source_object);
188 dbus_result = g_dbus_connection_call_finish(conn, res, &error);
192 if (evt_cb_data->cb_fn) {
193 evt_cb_data->cb_fn(evt_cb_data->handle, -1, NULL, evt_cb_data->user_data);
203 g_variant_get (dbus_result, "(aa{sv}i)", &iter, &result);
205 list.networks_count = g_variant_iter_n_children(iter);
208 while (g_variant_iter_next(iter, "a{sv}", &iter_row)) {
209 while (g_variant_iter_loop(iter_row, "{sv}", &key, &value)) {
210 if (!g_strcmp0(key, "plmn")) {
211 list.network_list[i].plmn_id = atoi(g_variant_get_string(value, NULL));
212 strncpy(list.network_list[i].plmn, g_variant_get_string(value, NULL), TAPI_NETWORK_PLMN_LEN_MAX);
214 if (!g_strcmp0(key, "act")) {
215 list.network_list[i].access_technology = _convert_act_to_systemtype(g_variant_get_int32(value));
217 if (!g_strcmp0(key, "type")) {
218 list.network_list[i].type_of_plmn = g_variant_get_int32(value);
220 if (!g_strcmp0(key, "name")) {
221 strncpy(list.network_list[i].network_name, g_variant_get_string(value, NULL), 40);
225 g_variant_iter_free(iter_row);
227 g_variant_iter_free(iter);
229 if (evt_cb_data->cb_fn) {
230 evt_cb_data->cb_fn(evt_cb_data->handle, result, &list, evt_cb_data->user_data);
236 static void on_response_get_network_selection_mode(GObject *source_object, GAsyncResult *res, gpointer user_data)
238 GError *error = NULL;
239 GDBusConnection *conn = NULL;
240 struct tapi_resp_data *evt_cb_data = user_data;
243 GVariant *dbus_result;
246 conn = G_DBUS_CONNECTION (source_object);
247 dbus_result = g_dbus_connection_call_finish(conn, res, &error);
251 if (evt_cb_data->cb_fn) {
252 evt_cb_data->cb_fn(evt_cb_data->handle, -1, NULL, evt_cb_data->user_data);
262 g_variant_get (dbus_result, "(ii)", &mode, &result);
264 if (evt_cb_data->cb_fn) {
265 evt_cb_data->cb_fn(evt_cb_data->handle, result, &mode, evt_cb_data->user_data);
271 static void on_response_default_set(GObject *source_object, GAsyncResult *res, gpointer user_data)
273 GError *error = NULL;
274 GDBusConnection *conn = NULL;
275 struct tapi_resp_data *evt_cb_data = user_data;
278 GVariant *dbus_result;
280 conn = G_DBUS_CONNECTION (source_object);
281 dbus_result = g_dbus_connection_call_finish(conn, res, &error);
285 if (evt_cb_data->cb_fn) {
286 evt_cb_data->cb_fn(evt_cb_data->handle, -1, NULL, evt_cb_data->user_data);
297 g_variant_get (dbus_result, "(i)", &result);
299 if (evt_cb_data->cb_fn) {
300 evt_cb_data->cb_fn(evt_cb_data->handle, result, NULL, evt_cb_data->user_data);
306 static void on_response_get_network_preferred_plmn(GDBusConnection *conn, GAsyncResult *res, gpointer user_data)
308 GError *error = NULL;
309 struct tapi_resp_data *evt_cb_data = user_data;
313 TelNetworkPreferredPlmnList_t list;
315 GVariant *dbus_result = NULL;
316 GVariant *value = NULL;
317 GVariantIter *iter = NULL;
318 GVariantIter *iter_row = NULL;
319 const gchar *key = NULL;
321 memset(&list, 0, sizeof(TelNetworkPreferredPlmnList_t));
323 dbus_result = g_dbus_connection_call_finish(conn, res, &error);
327 if (evt_cb_data->cb_fn) {
328 evt_cb_data->cb_fn(evt_cb_data->handle, -1, &list, evt_cb_data->user_data);
338 g_variant_get (dbus_result, "(aa{sv}i)", &iter, &result);
340 list.NumOfPrefPlmns = g_variant_iter_n_children(iter);
342 if (list.NumOfPrefPlmns == 0) {
343 dbg("num_of_.. = 0");
344 if (evt_cb_data->cb_fn) {
345 evt_cb_data->cb_fn(evt_cb_data->handle, result, &list, evt_cb_data->user_data);
353 while (g_variant_iter_next(iter, "a{sv}", &iter_row)) {
354 while (g_variant_iter_loop(iter_row, "{sv}", &key, &value)) {
355 if (!g_strcmp0(key, "plmn")) {
356 strncpy(list.PrefPlmnRecord[i].Plmn, g_variant_get_string(value, NULL), 6);
358 if (!g_strcmp0(key, "act")) {
359 list.PrefPlmnRecord[i].SystemType = _convert_act_to_systemtype(g_variant_get_int32(value));
361 if (!g_strcmp0(key, "index")) {
362 list.PrefPlmnRecord[i].Index = g_variant_get_int32(value);
364 if (!g_strcmp0(key, "name")) {
365 strncpy(list.PrefPlmnRecord[i].network_name, g_variant_get_string(value, NULL), 40);
369 g_variant_iter_free(iter_row);
371 g_variant_iter_free(iter);
373 if (evt_cb_data->cb_fn) {
374 evt_cb_data->cb_fn(evt_cb_data->handle, result, &list, evt_cb_data->user_data);
380 static void on_response_get_network_band(GObject *source_object, GAsyncResult *res, gpointer user_data)
382 GError *error = NULL;
383 GDBusConnection *conn = NULL;
384 struct tapi_resp_data *evt_cb_data = user_data;
387 GVariant *dbus_result;
391 conn = G_DBUS_CONNECTION (source_object);
392 dbus_result = g_dbus_connection_call_finish(conn, res, &error);
396 if (evt_cb_data->cb_fn) {
397 evt_cb_data->cb_fn(evt_cb_data->handle, -1, NULL, evt_cb_data->user_data);
407 g_variant_get (dbus_result, "(iii)", &band, &mode, &result);
409 if (evt_cb_data->cb_fn) {
410 evt_cb_data->cb_fn(evt_cb_data->handle, result, &band, evt_cb_data->user_data);
416 static void on_response_get_network_mode(GObject *source_object, GAsyncResult *res, gpointer user_data)
418 GError *error = NULL;
419 GDBusConnection *conn = NULL;
420 struct tapi_resp_data *evt_cb_data = user_data;
423 GVariant *dbus_result;
426 conn = G_DBUS_CONNECTION (source_object);
427 dbus_result = g_dbus_connection_call_finish(conn, res, &error);
431 if (evt_cb_data->cb_fn) {
432 evt_cb_data->cb_fn(evt_cb_data->handle, -1, NULL, evt_cb_data->user_data);
442 g_variant_get (dbus_result, "(ii)", &mode, &result);
444 if (evt_cb_data->cb_fn) {
445 evt_cb_data->cb_fn(evt_cb_data->handle, result, &mode, evt_cb_data->user_data);
451 static void on_response_get_network_service_domain(GObject *source_object, GAsyncResult *res, gpointer user_data)
453 GError *error = NULL;
454 GDBusConnection *conn = NULL;
455 struct tapi_resp_data *evt_cb_data = user_data;
458 GVariant *dbus_result;
461 conn = G_DBUS_CONNECTION (source_object);
462 dbus_result = g_dbus_connection_call_finish(conn, res, &error);
466 if (evt_cb_data->cb_fn) {
467 evt_cb_data->cb_fn(evt_cb_data->handle, -1, NULL, evt_cb_data->user_data);
477 g_variant_get (dbus_result, "(ii)", &domain, &result);
479 if (evt_cb_data->cb_fn) {
480 evt_cb_data->cb_fn(evt_cb_data->handle, result, &domain, evt_cb_data->user_data);
486 static void on_response_get_network_serving(GObject *source_object, GAsyncResult *res, gpointer user_data)
488 GError *error = NULL;
489 GDBusConnection *conn = NULL;
490 struct tapi_resp_data *evt_cb_data = user_data;
493 TelNetworkServing_t data;
495 GVariant *dbus_result;
498 memset(&data, 0, sizeof(TelNetworkServing_t));
500 conn = G_DBUS_CONNECTION (source_object);
501 dbus_result = g_dbus_connection_call_finish(conn, res, &error);
505 if (evt_cb_data->cb_fn) {
506 evt_cb_data->cb_fn(evt_cb_data->handle, -1, NULL, evt_cb_data->user_data);
516 g_variant_get (dbus_result, "(isii)",
522 data.act = _convert_act_to_systemtype(data.act);
525 snprintf(data.plmn, 7, "%s", plmn);
529 if (evt_cb_data->cb_fn) {
530 evt_cb_data->cb_fn(evt_cb_data->handle, result, &data, evt_cb_data->user_data);
536 static void on_response_get_neighboring_cell_info(GObject *source_object, GAsyncResult *res, gpointer user_data)
538 GError *error = NULL;
539 GDBusConnection *conn = NULL;
540 struct tapi_resp_data *evt_cb_data = user_data;
542 int geran_index=0, umts_index=0;
544 TelNetworkNeighboringCellInfo_t list;
546 GVariant *dbus_result = NULL;
547 GVariant *value = NULL;
548 GVariantIter *iter = NULL;
549 GVariantIter *iter_row = NULL;
550 const gchar *key = NULL;
551 gint v0, v1,v2,v3,v4;
553 memset(&list, 0, sizeof(TelNetworkNeighboringCellInfo_t));
556 conn = G_DBUS_CONNECTION (source_object);
558 dbus_result = g_dbus_connection_call_finish(conn, res, &error);
562 if (evt_cb_data->cb_fn) {
563 evt_cb_data->cb_fn(evt_cb_data->handle, -1, NULL, evt_cb_data->user_data);
573 g_variant_get (dbus_result, "(aa{sv}i)", &iter, &result);
575 while (g_variant_iter_next(iter, "a{sv}", &iter_row)) {
576 while (g_variant_iter_loop(iter_row, "{sv}", &key, &value)) {
577 g_variant_get(value, "(iiiii)", &v0,&v1,&v2,&v3,&v4);
578 if (!g_strcmp0(key, "geran")) {
579 list.geran_list[geran_index].cell_id = v0;
580 list.geran_list[geran_index].lac = v1;
581 list.geran_list[geran_index].bcch = v2;
582 list.geran_list[geran_index].bsic = v3;
583 list.geran_list[geran_index].rxlev = v4;
586 else if (!g_strcmp0(key, "umts")) {
587 list.umts_list[umts_index].cell_id = v0;
588 list.umts_list[umts_index].lac = v1;
589 list.umts_list[umts_index].arfcn = v2;
590 list.umts_list[umts_index].psc = v3;
591 list.umts_list[umts_index].rscp = v4;
595 g_variant_iter_free(iter_row);
597 g_variant_iter_free(iter);
599 list.geran_list_count = geran_index;
600 list.umts_list_count = umts_index;
601 dbg("geran_list_count=%d, umts_list_count=%d", geran_index, umts_index);
603 if (evt_cb_data->cb_fn) {
604 evt_cb_data->cb_fn(evt_cb_data->handle, result, &list, evt_cb_data->user_data);
610 EXPORT_API int tel_search_network(TapiHandle *handle, tapi_response_cb callback, void *user_data)
612 struct tapi_resp_data *evt_cb_data = NULL;
614 dbg("Func Entrance");
616 MAKE_RESP_CB_DATA(evt_cb_data, handle, callback, user_data);
618 g_dbus_connection_call(handle->dbus_connection,
619 DBUS_TELEPHONY_SERVICE , handle->path, DBUS_TELEPHONY_NETWORK_INTERFACE,
620 "Search", NULL, NULL,
621 G_DBUS_CALL_FLAGS_NONE, 180000, handle->ca,
622 on_response_search_network, evt_cb_data);
624 return TAPI_API_SUCCESS;
627 EXPORT_API int tel_get_network_selection_mode(struct tapi_handle *handle, tapi_response_cb callback, void *user_data)
629 struct tapi_resp_data *evt_cb_data = NULL;
631 dbg("Func Entrance");
633 MAKE_RESP_CB_DATA(evt_cb_data, handle, callback, user_data);
635 g_dbus_connection_call(handle->dbus_connection,
636 DBUS_TELEPHONY_SERVICE , handle->path, DBUS_TELEPHONY_NETWORK_INTERFACE,
637 "GetSelectionMode", NULL, NULL,
638 G_DBUS_CALL_FLAGS_NONE, -1, handle->ca,
639 on_response_get_network_selection_mode, evt_cb_data);
641 return TAPI_API_SUCCESS;
644 EXPORT_API int tel_select_network_automatic(struct tapi_handle *handle, tapi_response_cb callback, void *user_data)
646 struct tapi_resp_data *evt_cb_data = NULL;
649 dbg("Func Entrance");
651 MAKE_RESP_CB_DATA(evt_cb_data, handle, callback, user_data);
653 param = g_variant_new("(isi)",
658 g_dbus_connection_call(handle->dbus_connection,
659 DBUS_TELEPHONY_SERVICE , handle->path, DBUS_TELEPHONY_NETWORK_INTERFACE,
660 "SetSelectionMode", param, NULL,
661 G_DBUS_CALL_FLAGS_NONE, 180000, handle->ca,
662 on_response_default_set, evt_cb_data);
664 return TAPI_API_SUCCESS;
667 EXPORT_API int tel_select_network_manual(struct tapi_handle *handle, const char *plmn, int type, tapi_response_cb callback, void *user_data)
669 struct tapi_resp_data *evt_cb_data = NULL;
672 dbg("Func Entrance");
674 MAKE_RESP_CB_DATA(evt_cb_data, handle, callback, user_data);
676 param = g_variant_new("(isi)",
679 _convert_systemtype_to_act(type));
681 g_dbus_connection_call(handle->dbus_connection,
682 DBUS_TELEPHONY_SERVICE , handle->path, DBUS_TELEPHONY_NETWORK_INTERFACE,
683 "SetSelectionMode", param, NULL,
684 G_DBUS_CALL_FLAGS_NONE, 180000, handle->ca,
685 on_response_default_set, evt_cb_data);
687 return TAPI_API_SUCCESS;
690 EXPORT_API int tel_set_network_preferred_plmn(
692 TelNetworkPreferredPlmnOp_t operation,
693 TelNetworkPreferredPlmnInfo_t *info,
694 tapi_response_cb callback,
697 struct tapi_resp_data *evt_cb_data = NULL;
701 dbg("Func Entrance");
703 MAKE_RESP_CB_DATA(evt_cb_data, handle, callback, user_data);
705 switch (info->SystemType) {
706 case TAPI_NETWORK_SYSTEM_GSM:
710 case TAPI_NETWORK_SYSTEM_UMTS:
714 case TAPI_NETWORK_SYSTEM_GPRS:
718 case TAPI_NETWORK_SYSTEM_EGPRS:
722 case TAPI_NETWORK_SYSTEM_GSM_AND_UMTS:
731 param = g_variant_new("(iiis)",
737 g_dbus_connection_call(handle->dbus_connection,
738 DBUS_TELEPHONY_SERVICE , handle->path, DBUS_TELEPHONY_NETWORK_INTERFACE,
739 "SetPreferredPlmn", param, NULL,
740 G_DBUS_CALL_FLAGS_NONE, -1, handle->ca,
741 on_response_default_set, evt_cb_data);
743 return TAPI_API_SUCCESS;
746 EXPORT_API int tel_get_network_preferred_plmn(TapiHandle *handle, tapi_response_cb callback, void *user_data)
748 struct tapi_resp_data *evt_cb_data = NULL;
750 dbg("Func Entrance");
752 MAKE_RESP_CB_DATA(evt_cb_data, handle, callback, user_data);
754 g_dbus_connection_call(handle->dbus_connection,
755 DBUS_TELEPHONY_SERVICE , handle->path, DBUS_TELEPHONY_NETWORK_INTERFACE,
756 "GetPreferredPlmn", NULL, NULL,
757 G_DBUS_CALL_FLAGS_NONE, -1, handle->ca,
758 (GAsyncReadyCallback) on_response_get_network_preferred_plmn, evt_cb_data);
760 return TAPI_API_SUCCESS;
763 EXPORT_API int tel_set_network_band(TapiHandle *handle, TelNetworkBandPreferred_t mode, TelNetworkBand_t band, tapi_response_cb callback, void *user_data)
765 struct tapi_resp_data *evt_cb_data = NULL;
768 dbg("Func Entrance");
770 MAKE_RESP_CB_DATA(evt_cb_data, handle, callback, user_data);
772 param = g_variant_new("(ii)",
776 g_dbus_connection_call(handle->dbus_connection,
777 DBUS_TELEPHONY_SERVICE , handle->path, DBUS_TELEPHONY_NETWORK_INTERFACE,
778 "SetBand", param, NULL,
779 G_DBUS_CALL_FLAGS_NONE, -1, handle->ca,
780 on_response_default_set, evt_cb_data);
782 return TAPI_API_SUCCESS;
785 EXPORT_API int tel_get_network_band(TapiHandle *handle, tapi_response_cb callback, void *user_data)
787 struct tapi_resp_data *evt_cb_data = NULL;
789 dbg("Func Entrance");
791 MAKE_RESP_CB_DATA(evt_cb_data, handle, callback, user_data);
793 g_dbus_connection_call(handle->dbus_connection,
794 DBUS_TELEPHONY_SERVICE , handle->path, DBUS_TELEPHONY_NETWORK_INTERFACE,
795 "GetBand", NULL, NULL,
796 G_DBUS_CALL_FLAGS_NONE, -1, handle->ca,
797 on_response_get_network_band, evt_cb_data);
799 return TAPI_API_SUCCESS;
802 EXPORT_API int tel_set_network_mode(TapiHandle *handle, int mode, tapi_response_cb callback, void *user_data)
804 struct tapi_resp_data *evt_cb_data = NULL;
807 dbg("Func Entrance");
809 MAKE_RESP_CB_DATA(evt_cb_data, handle, callback, user_data);
811 param = g_variant_new("(i)",
814 g_dbus_connection_call(handle->dbus_connection,
815 DBUS_TELEPHONY_SERVICE , handle->path, DBUS_TELEPHONY_NETWORK_INTERFACE,
816 "SetMode", param, NULL,
817 G_DBUS_CALL_FLAGS_NONE, -1, handle->ca,
818 on_response_default_set, evt_cb_data);
820 return TAPI_API_SUCCESS;
823 EXPORT_API int tel_get_network_mode(TapiHandle *handle, tapi_response_cb callback, void *user_data)
825 struct tapi_resp_data *evt_cb_data = NULL;
827 dbg("Func Entrance");
829 MAKE_RESP_CB_DATA(evt_cb_data, handle, callback, user_data);
831 g_dbus_connection_call(handle->dbus_connection,
832 DBUS_TELEPHONY_SERVICE , handle->path, DBUS_TELEPHONY_NETWORK_INTERFACE,
833 "GetMode", NULL, NULL,
834 G_DBUS_CALL_FLAGS_NONE, -1, handle->ca,
835 on_response_get_network_mode, evt_cb_data);
837 return TAPI_API_SUCCESS;
840 EXPORT_API int tel_set_network_service_domain(TapiHandle *handle, TelNetworkServiceDomain_t domain, tapi_response_cb callback, void *user_data)
842 struct tapi_resp_data *evt_cb_data = NULL;
845 dbg("Func Entrance");
847 MAKE_RESP_CB_DATA(evt_cb_data, handle, callback, user_data);
849 param = g_variant_new("(i)", domain);
851 g_dbus_connection_call(handle->dbus_connection,
852 DBUS_TELEPHONY_SERVICE , handle->path, DBUS_TELEPHONY_NETWORK_INTERFACE,
853 "SetServiceDomain", param, NULL,
854 G_DBUS_CALL_FLAGS_NONE, -1, handle->ca,
855 on_response_default_set, evt_cb_data);
857 return TAPI_API_SUCCESS;
860 EXPORT_API int tel_get_network_service_domain(TapiHandle *handle, tapi_response_cb callback, void *user_data)
862 struct tapi_resp_data *evt_cb_data = NULL;
864 dbg("Func Entrance");
866 MAKE_RESP_CB_DATA(evt_cb_data, handle, callback, user_data);
868 g_dbus_connection_call(handle->dbus_connection,
869 DBUS_TELEPHONY_SERVICE , handle->path, DBUS_TELEPHONY_NETWORK_INTERFACE,
870 "GetServiceDomain", NULL, NULL,
871 G_DBUS_CALL_FLAGS_NONE, -1, handle->ca,
872 on_response_get_network_service_domain, evt_cb_data);
874 return TAPI_API_SUCCESS;
877 EXPORT_API int tel_cancel_network_manual_search(TapiHandle *handle, tapi_response_cb callback, void *user_data)
879 struct tapi_resp_data *evt_cb_data = NULL;
881 dbg("Func Entrance");
883 MAKE_RESP_CB_DATA(evt_cb_data, handle, callback, user_data);
885 g_dbus_connection_call(handle->dbus_connection,
886 DBUS_TELEPHONY_SERVICE , handle->path, DBUS_TELEPHONY_NETWORK_INTERFACE,
887 "SearchCancel", NULL, NULL,
888 G_DBUS_CALL_FLAGS_NONE, -1, handle->ca,
889 on_response_default_set, evt_cb_data);
891 return TAPI_API_SUCCESS;
894 EXPORT_API int tel_get_network_serving(TapiHandle *handle, tapi_response_cb callback, void *user_data)
896 struct tapi_resp_data *evt_cb_data = NULL;
898 dbg("Func Entrance");
900 MAKE_RESP_CB_DATA(evt_cb_data, handle, callback, user_data);
902 g_dbus_connection_call(handle->dbus_connection,
903 DBUS_TELEPHONY_SERVICE , handle->path, DBUS_TELEPHONY_NETWORK_INTERFACE,
904 "GetServingNetwork", NULL, NULL,
905 G_DBUS_CALL_FLAGS_NONE, -1, handle->ca,
906 on_response_get_network_serving, evt_cb_data);
908 return TAPI_API_SUCCESS;
911 EXPORT_API int tel_get_network_neighboring_cell_info(TapiHandle *handle, tapi_response_cb callback, void *user_data)
913 struct tapi_resp_data *evt_cb_data = NULL;
915 dbg("Func Entrance");
917 MAKE_RESP_CB_DATA(evt_cb_data, handle, callback, user_data);
919 g_dbus_connection_call(handle->dbus_connection,
920 DBUS_TELEPHONY_SERVICE , handle->path, DBUS_TELEPHONY_NETWORK_INTERFACE,
921 "GetNgbrCellInfo", NULL, NULL,
922 G_DBUS_CALL_FLAGS_NONE, -1, handle->ca,
923 on_response_get_neighboring_cell_info, evt_cb_data);
925 return TAPI_API_SUCCESS;