diff --git a/dongle_infrastructure.c b/dongle_infrastructure.c
index 77490499235be0657b746df45ea861afc3031f70..c6dfb749f3a4405e317e69cb0ae0cf7b2c2d4dfb 100644
--- a/dongle_infrastructure.c
+++ b/dongle_infrastructure.c
@@ -481,7 +481,7 @@ fail_unknown:
 	return UBUS_STATUS_UNKNOWN_ERROR;
 }
 
-int disconnect(struct ubus_context *ctx, struct ubus_object *obj,
+int disconnect_network(struct ubus_context *ctx, struct ubus_object *obj,
 			struct ubus_request_data *req, const char *method,
 			struct blob_attr *msg)
 {
@@ -578,8 +578,8 @@ struct ubus_method dynamic_object_methods[] = {
 	UBUS_METHOD("set_apn_profile", set_apn_profile, apn_policy),
 	UBUS_METHOD_NOARG("current_apn_profile", show_current_apn),
 	UBUS_METHOD_NOARG("signal_strength", get_signal_strength),  //network..
-	UBUS_METHOD_NOARG("connect", connect_network),
-	UBUS_METHOD_NOARG("disconnect", disconnect),
+	UBUS_METHOD_NOARG("connect_network", connect_network),
+	UBUS_METHOD_NOARG("disconnect_network", disconnect_network),
 	UBUS_METHOD_NOARG("modem_state", modem_state),
 	UBUS_METHOD_NOARG("enable_roaming", enable_roaming),
 	UBUS_METHOD_NOARG("disable_roaming", disable_roaming),
diff --git a/libmobile_wrapper.c b/libmobile_wrapper.c
index f619e439fc066d6fb3781650d07d73bbdd291de4..ea8f680573f9bdcdf9207971cea1e8625c618c24 100644
--- a/libmobile_wrapper.c
+++ b/libmobile_wrapper.c
@@ -117,5 +117,65 @@ struct json_object *mobile_get_rssi(struct device *dev)
 	else if (strcmp(dev->usb.if_name, "eth5") == 0)
 		//return mobile_get_rssi_hilink(dev->ip);
 
+		return NULL;
+}
+
+struct json_object *mobile_connect_network(struct device *dev)
+{
+	if (strcmp(dev->usb.if_name, "usb0") == 0)
+		return mobile_connect_network_zte(dev->ip);
+	else if (strcmp(dev->usb.if_name, "eth5") == 0)
+		//return mobile_connect_network_hilink(dev->ip);
+
+		return NULL;
+}
+
+struct json_object *mobile_disconnect_network(struct device *dev)
+{
+	if (strcmp(dev->usb.if_name, "usb0") == 0)
+		return mobile_disconnect_network_zte(dev->ip);
+	else if (strcmp(dev->usb.if_name, "eth5") == 0)
+		//return mobile_disconnect_network_hilink(dev->ip);
+
+		return NULL;
+}
+
+struct json_object *mobile_get_modem_state(struct device *dev)
+{
+	if (strcmp(dev->usb.if_name, "usb0") == 0)
+		return mobile_get_modem_state_zte(dev->ip);
+	else if (strcmp(dev->usb.if_name, "eth5") == 0)
+		//return mobile_get_modem_state_hilink(dev->ip);
+
+		return NULL;
+}
+
+struct json_object *mobile_enable_roaming(struct device *dev)
+{
+	if (strcmp(dev->usb.if_name, "usb0") == 0)
+		return mobile_enable_roaming_zte(dev->ip);
+	else if (strcmp(dev->usb.if_name, "eth5") == 0)
+		//return mobile_enable_roaming_hilink(dev->ip);
+
+		return NULL;
+}
+
+struct json_object *mobile_disable_roaming(struct device *dev)
+{
+	if (strcmp(dev->usb.if_name, "usb0") == 0)
+		return mobile_disable_roaming_zte(dev->ip);
+	else if (strcmp(dev->usb.if_name, "eth5") == 0)
+		//return mobile_disable_roaming_hilink(dev->ip);
+
+		return NULL;
+}
+
+struct json_object *mobile_get_roam_status(struct device *dev)
+{
+	if (strcmp(dev->usb.if_name, "usb0") == 0)
+		return mobile_get_roam_status_zte(dev->ip);
+	else if (strcmp(dev->usb.if_name, "eth5") == 0)
+		//return mobile_get_roam_status_hilink(dev->ip);
+
 		return NULL;
 }
\ No newline at end of file