Fix audio api block.

Change-Id: Ic48fe6c79a252291adac0524144d2cf17fb047c1
diff --git a/mbtk/mbtk_lib/src/mbtk_audio.c b/mbtk/mbtk_lib/src/mbtk_audio.c
index 1858fa1..bdf3a77 100755
--- a/mbtk/mbtk_lib/src/mbtk_audio.c
+++ b/mbtk/mbtk_lib/src/mbtk_audio.c
@@ -123,6 +123,10 @@
 
 static struct mbtk_audio_ubus_db_t  *mbtk_audio_ubus_db = NULL;
 
+#ifdef MBTK_YX_SUPPORT
+static struct ubus_context *audio_ctx = NULL;
+static uint32_t ubus_id_audio_if = 0;
+#endif
 
 static int record_fd = 0;
 
@@ -458,25 +462,15 @@
     }
 #else
 
-    static struct ubus_context *ctx;
-    ctx = ubus_connect(NULL);
-	if (!ctx) {
-		printf("Failed to connect to ubus\n");
-		return;
-	}
-
     static struct blob_buf b;
-    uint32_t id;
 	int ret;
-    ret = ubus_lookup_id(ctx, AUDIO_UBUS_REQUEST_NAME, &id);
-	if (ret) {
-        printf("ubus_lookup_id() fail.\n");
-		return ret;
-	}
+    if(audio_ctx == NULL || ubus_id_audio_if == 0) {
+        return;
+    }
 
     blob_buf_init(&b, 0);
     blobmsg_add_u32(&b, "param0", mode);
-	if((ret = ubus_invoke(ctx, id, AUDIO_UBUS_SWITCH_PCM, b.head, NULL, NULL, 0)) != UBUS_STATUS_OK) {
+	if((ret = ubus_invoke(audio_ctx, ubus_id_audio_if, AUDIO_UBUS_SWITCH_PCM, b.head, NULL, NULL, 2000)) != UBUS_STATUS_OK) {
         printf("ubus_invoke fail:%d.\n", ret);
 	} else {
         printf("ubus_invoke success.\n");
@@ -892,7 +886,6 @@
 
 int mbtk_audio_ubus_client_init(mbtk_audio_client_handle_type *ph_audio, mbtk_dtmf_cb cb)
 {
-    int id;
 #ifndef MBTK_YX_SUPPORT
     // Set call handle.
     if(ph_audio == NULL || mbtk_audio_ubus_db != NULL)
@@ -917,7 +910,17 @@
     *ph_audio = mbtk_audio_ubus_db;
     LOGI("%s %d:%x", __FUNCTION__, __LINE__, mbtk_audio_ubus_db);
 #else
-    // Do nothong for YX.
+    audio_ctx = ubus_connect(NULL);
+	if (!audio_ctx) {
+		printf("Failed to connect to ubus\n");
+		return -1;
+	}
+
+	int ret = ubus_lookup_id(audio_ctx, AUDIO_UBUS_REQUEST_NAME, &ubus_id_audio_if);
+	if (ret) {
+        printf("ubus_lookup_id() fail.\n");
+		return ret;
+	}
 #endif
     return 0;
 }
@@ -960,7 +963,10 @@
     free(h_audio);
     mbtk_audio_ubus_db = NULL;
 #else
-    // Do nothong for YX.
+    if(audio_ctx) {
+        ubus_free(audio_ctx);
+		audio_ctx = NULL;
+	}
 #endif
     return 0;
 }