diff --git a/docs/.vuepress/components/PlatformSwitch.vue b/docs/.vuepress/components/PlatformSwitch.vue
index e28f3f324..e23a553a5 100644
--- a/docs/.vuepress/components/PlatformSwitch.vue
+++ b/docs/.vuepress/components/PlatformSwitch.vue
@@ -44,6 +44,14 @@ const PLATFORM_ICON_MAP = {
     icon : '/icon-platform.svg',
     activeIcon: '/icon-platform-hover.svg',
   },
+  electron: {
+    icon : '/icon-Electron.svg',
+    activeIcon: '/icon-Electron-hover.svg',
+  },
+  linux: {
+    icon : '/icon-linux.svg',
+    activeIcon: '/icon-linux-hover.svg',
+  },
 }
 
 const platform = ref('android')
@@ -84,7 +92,7 @@ const options = [
     options: [
        {
         value: 'privatization',
-        label: '服务部署',
+        label: '环境准备',
       },
     ],
   },
@@ -122,11 +130,20 @@ const options = [
       {
         value: 'applet',
         label: '小程序',
+        
+      },
+      {
+        value: 'electron',
+        label: 'Electron',
+      },
+      {
+        value: 'linux',
+        label: 'Linux',
       },
       {
         value: 'server-side',
         label: 'Rest Api',
-      }
+      },
     ],
   },
 ]
diff --git a/docs/.vuepress/public/icon-linux-hover.svg b/docs/.vuepress/public/icon-linux-hover.svg
new file mode 100644
index 000000000..336b3ce1b
--- /dev/null
+++ b/docs/.vuepress/public/icon-linux-hover.svg
@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1695287034792" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3692" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20"><path d="M525.2 198.3c-8.6 5.6-15.2 13.8-18.9 23.4-3.8 12.4-3.2 25.6 1.5 37.7 3.9 12.7 11.7 23.8 22.2 31.8 5.4 3.8 11.6 6.2 18.2 7 6.6 0.8 13.2-0.3 19.1-3.3 7-3.9 12.6-10 15.9-17.3 3.2-7.4 5-15.3 5.2-23.3 0.7-10.2-0.6-20.4-3.8-30.1-3.5-10.6-10.3-19.7-19.5-25.9-4.7-3-9.9-5-15.4-5.8-5.5-0.8-11.1-0.2-16.3 1.8-2.9 1.2-5.7 2.7-8.3 4.5" fill="#FFFFFF" p-id="3693"></path><path d="M810.2 606.5c-5.1-28.3-13.1-56-23.8-82.6-7.3-19.8-17.2-38.6-29.5-55.8-12.4-16.5-28.1-30.4-40.2-47.1-6.4-8.7-11.8-18.4-18.5-26.9-2.7-5.6-5.3-11.2-7.9-16.8-8-17.5-15.3-35.4-24.8-52-1.5-2.6-3.1-5.2-4.6-7.7-1.2-16-2.9-32-3.8-48 0.7-32.1-2-64.3-8.1-95.9-4.2-15.1-10.6-29.6-19-42.8-9.8-15.6-22.4-29.2-37.2-40.1-24.1-17.1-52.9-26.3-82.4-26.4-21.7-0.5-43.2 4.4-62.5 14.4-20.3 11.1-36.7 28.2-47 48.9-9.6 20.9-14.7 43.5-15 66.5-0.8 22.6 1.3 45 2.2 67.6 0.9 23.4 0.4 46.9 2.3 70.3 0.6 7.5 1.5 15 1.5 22.6 0 3.8-0.2 7.6-0.3 11.3l-0.3 0.8c-10.2 17.3-21.5 34-33.8 49.9-8.6 10.9-17.2 21.7-25.9 32.4-11.3 12.7-20.9 26.8-28.5 42-5.1 13.2-9.2 26.8-12.4 40.6l-0.3 1.1c-4.8 15.9-10.8 31.3-18 46.2-0.7 1.4-1.4 2.9-2 4.2-4.3 8.9-8.8 17.8-13.5 26.5l-5.4 10.1c-3.4 6.1-6.4 12.4-9 18.8-1.5 3.9-2.7 7.9-3.4 12-1.3 8.7-0.7 17.5 1.6 25.9 0.5 2.1 1.2 4.2 1.9 6.3 2.2 6.2 4.8 12.3 7.9 18.1 1.4 2.7 2.9 5.3 4.3 8l1.3 1.9c1.4 2.5 2.9 5 4.4 7.4l0.2 0.3c1.7 2.8 3.6 5.5 5.4 8.2l0.3 0.4c1.9 2.6 3.8 5.3 5.8 7.9 7.4 28.9 21 55.8 39.7 79-2.9 5.1-5.5 10.1-8.4 15.1-10.2 14.8-18.6 30.7-25.1 47.4-2.7 8.6-3.4 17.7-1.9 26.6 1.4 9 6 17.1 13 23 4.7 3.6 10.1 6.1 15.8 7.3 5.7 1.2 11.6 1.8 17.5 1.5 22.2-1.7 44.2-6.1 65.4-12.9 12.8-3.4 25.6-6.4 38.6-9 13.5-3.1 27.2-5 41-5.6 3.4 0.1 6.8-0.1 10.1-0.3 9.4 1 18.8 1.4 28.3 1l3.5-0.2c2.4 0.3 4.9 0.4 7.4 0.6 16.6 0.9 33.1 2.6 49.5 5.1 14.4 2.2 28.8 5 43 8.5 21.9 6.6 44.4 11 67.3 12.9 6 0.3 12-0.2 18-1.4 5.9-1.2 11.5-3.8 16.3-7.4 7-5.8 11.6-13.9 13.1-22.9 1.5-8.9 0.8-18-1.9-26.6-6.6-16.7-15.1-32.6-25.5-47.3-3.6-6.1-7-12.4-10.6-18.5 15.5-17.3 29.2-36.3 40.7-56.5 7 0.4 13.9-0.4 20.6-2.6 17.5-5.9 32.7-17.3 43.3-32.5 3.2-4.5 5.7-9.5 7.2-14.8 6.9-10.7 11.6-22.7 13.8-35.3 3.2-20.8 2.7-42.1-1.5-62.7h-0.2z m0 0" fill="#020204" p-id="3694"></path><path d="M425.6 323.2c-3.1 4-5.3 8.7-6.4 13.6-1.1 4.9-1.8 10-1.9 15 0.3 10.1-0.5 20.2-2.5 30.1-3.5 10.3-8.8 19.8-15.6 28.3-11.7 14.7-20.9 31.2-27.2 48.8-3.2 10.9-4.3 22.3-3.1 33.7-12.1 17.9-22.6 36.9-31.3 56.7-13.4 29.9-22 61.8-25.5 94.4-4.3 40.1 1.6 80.6 17 117.8 11.3 26.8 28.5 50.8 50.3 70.1 11.2 9.7 23.5 17.9 36.7 24.4 46.7 22.8 101.4 22.3 147.6-1.4 23.1-13.5 44.2-30.2 62.6-49.5 11.9-10.8 22.5-22.9 31.8-36.1 15.5-26.9 24.6-57.1 26.5-88.1 9.6-53.6 3.7-108.8-16.9-159.2-8.1-16.8-18.8-32.2-31.8-45.6a252.5 252.5 0 0 0-20.2-68c-7.2-15.5-15.9-30.3-22.6-46.2-2.7-6.5-5.1-13.1-8.1-19.4-2.9-6.4-6.9-12.3-11.8-17.3-5.3-4.9-11.6-8.6-18.5-10.7-6.9-2.2-14-3.4-21.2-3.6-14.4-0.7-28.9 1.1-43.1 0.6-11.5-0.5-22.8-2.5-34.3-1.8-5.7 0.3-11.4 1.4-16.7 3.5-5.4 2.1-10.1 5.5-13.8 10m4.6-125.1c-5.4 0.4-10.5 2.7-14.4 6.4-3.9 3.7-6.8 8.4-8.4 13.5-2.7 10.4-3.4 21.3-1.9 32 0.2 9.7 1.9 19.4 5.1 28.6 1.8 4.5 4.4 8.7 7.8 12.2 3.4 3.5 7.7 6.1 12.4 7.3 4.5 1.1 9.2 0.9 13.5-0.5 4.3-1.4 8.3-3.8 11.5-7 4.7-4.8 8.1-10.7 9.8-17.1 1.7-6.4 2.5-13.1 2.3-19.8 0-8.3-1.3-16.6-3.8-24.6s-6.8-15.3-12.6-21.4c-2.8-2.9-6-5.4-9.6-7.2-3.7-1.7-7.7-2.6-11.7-2.4m95 0c-8.6 5.6-15.2 13.8-18.9 23.4-3.8 12.4-3.2 25.6 1.5 37.7 3.9 12.7 11.7 23.8 22.2 31.8 5.4 3.8 11.6 6.2 18.2 7 6.6 0.8 13.2-0.3 19.1-3.3 7-3.9 12.6-10 15.9-17.3 3.2-7.4 5-15.3 5.2-23.3 0.7-10.2-0.6-20.4-3.8-30.1-3.5-10.6-10.3-19.7-19.5-25.9-4.7-3-9.9-5-15.4-5.8-5.5-0.8-11.1-0.2-16.3 1.8-2.9 1.2-5.7 2.7-8.3 4.5" fill="#FFFFFF" p-id="3695"></path><path d="M544.5 223.6c-3.2 0.2-6.2 1.2-8.9 2.9s-5 4-6.8 6.6c-3.4 5.3-5.3 11.5-5.4 17.9-0.3 4.7 0.4 9.5 1.9 14s4.3 8.5 7.9 11.5c3.8 3.1 8.4 4.9 13.3 5.2 4.9 0.2 9.7-1.1 13.7-3.9 3.2-2.3 5.8-5.2 7.6-8.7 1.8-3.4 2.9-7.2 3.4-11 1-6.8-0.2-13.8-3.2-19.9-3.1-6.2-8.4-10.9-14.8-13.4-2.8-1.1-5.7-1.5-8.7-1.4" fill="#020204" p-id="3696"></path><path d="M430.2 198.3c-5.4 0.4-10.5 2.7-14.4 6.4-3.9 3.7-6.8 8.4-8.4 13.5-2.7 10.4-3.4 21.3-1.9 32 0.2 9.7 1.9 19.4 5.1 28.6 1.8 4.6 4.4 8.7 7.8 12.2 3.4 3.5 7.7 6.1 12.4 7.3 4.5 1.1 9.2 0.9 13.5-0.5 4.3-1.4 8.3-3.8 11.5-7 4.7-4.8 8.1-10.7 9.8-17.1 1.7-6.4 2.5-13.1 2.3-19.8 0-8.3-1.3-16.6-3.8-24.6s-6.8-15.3-12.6-21.4c-2.8-2.9-6-5.4-9.6-7.2-3.7-1.7-7.7-2.6-11.7-2.4" fill="#FFFFFF" p-id="3697"></path><path d="M417.3 242.8c-1.3 6.7-1 13.7 1.1 20.2 1.6 4.3 4 8.2 7.2 11.5 2 2.2 4.3 4.1 7 5.4 2.7 1.4 5.7 1.8 8.7 1.1 2.7-0.7 5-2.3 6.7-4.5 1.7-2.2 2.9-4.7 3.7-7.3 2.3-7.8 2.1-16.1-0.4-23.9-1.6-5.7-4.7-10.9-9.1-14.8-2.1-1.8-4.7-3.2-7.4-3.9-2.8-0.7-5.7-0.5-8.4 0.7-2.8 1.4-5.1 3.7-6.5 6.5-1.4 2.8-2.3 5.8-2.7 8.9" fill="#020204" p-id="3698"></path><path d="M404.6 326.9c0.2 0.9 0.5 1.8 1 2.5 0.9 1.4 2 2.5 3.4 3.4 1.3 0.9 2.6 1.7 3.9 2.5 6.9 4.7 13 10.5 17.9 17.3 6 9.4 13.5 17.8 22 25 6.5 4.5 14.1 7.2 22 7.9 9.2 0.7 18.5-0.4 27.4-3.2 8.2-2.4 16.1-5.8 23.5-10.3 12.7-10.2 26.3-19.2 40.7-26.7 3.4-1.2 6.8-2.1 10-3.6 3.3-1.4 6.1-3.8 7.8-7 1.1-3.2 1.8-6.6 1.9-10 0.5-3.6 1.7-7.1 2.3-10.7 0.8-3.6 0.5-7.3-0.8-10.8-1.4-2.7-3.6-4.9-6.3-6.3-2.7-1.3-5.7-2.1-8.7-2.2-6.1 0.2-12.1 0.8-18 1.8-8 0.7-16-0.3-24 0-9.9 0.3-19.8 2.5-29.8 2.9-11.4 0.6-22.7-1.2-34.1-1.7-4.9-0.3-9.9-0.1-14.8 0.7-4.9 0.7-9.6 2.5-13.7 5.3-3.8 3-7.3 6.2-10.7 9.6-1.8 1.6-3.8 3-5.9 4.1-2.2 1.1-4.5 1.7-7 1.6-1.2-0.2-2.5-0.2-3.7 0-0.7 0.3-1.4 0.7-1.9 1.2l-1.5 1.8c-1 1.5-1.9 3.1-2.6 4.7" fill="#D99A03" p-id="3699"></path><path d="M429.7 301.7c-4 2.4-7.9 5-11.8 7.7-2.1 1.3-3.8 3-5.1 5.1-0.7 1.6-1 3.3-0.9 5 0.1 1.7 0.1 3.4 0 5.1-0.1 1.1-0.5 2.3-0.5 3.5 0 0.6 0 1.2 0.2 1.7 0.2 0.6 0.4 1.1 0.8 1.5 0.5 0.5 1.2 0.9 2 1.1 0.7 0.2 1.5 0.3 2.3 0.5 3.5 1 6.7 2.9 9.3 5.4 2.7 2.4 5.1 5.2 8 7.5 8 6 17.7 9.1 27.6 9 9.9-0.2 19.7-1.6 29.2-4.1 7.5-1.6 14.9-3.6 22.1-6.1 11.2-4.2 21.5-10.3 30.4-18.2 3.9-3.8 8-7.2 12.4-10.3 4-2.5 8.7-4.2 12.7-6.6 0.4-0.2 0.7-0.5 1.1-0.7 0.3-0.3 0.6-0.6 0.8-1 0.3-0.7 0.3-1.5 0-2.2-0.2-0.7-0.5-1.3-0.9-1.8-0.5-0.6-1.1-1.2-1.7-1.7-4.6-3.4-10.1-5.3-15.8-5.5-5.8-0.4-11.3 0-16.9-1.1-5.2-1.1-10.3-2.6-15.3-4.4-5.3-1.7-10.7-3-16.3-3.9-13-2.1-26.2-1.8-39.1 1-12.1 2.7-23.8 7.3-34.6 13.5" fill="#604405" p-id="3700"></path><path d="M428.4 288.1c-5.8 3.9-11 8.7-15.5 14.1-2.6 3-4.7 6.5-6.1 10.3-0.9 3-1.5 6.1-2 9.2-0.3 1.1-0.5 2.3-0.5 3.5 0 0.6 0.1 1.2 0.3 1.7 0.2 0.6 0.5 1.1 0.9 1.5 0.7 0.7 1.6 1.1 2.6 1.3 0.9 0.2 1.9 0.2 2.9 0.3 4.4 0.7 8.5 2.5 12.1 5.1 3.6 2.5 7 5.4 10.7 7.8 8.4 5 18 7.7 27.8 7.9 9.8 0.2 19.5-0.8 29-2.9 7.6-1.4 15.1-3.5 22.4-6.3 10.9-4.7 21.1-10.8 30.4-18.2 4.3-3.2 8.5-6.6 12.4-10.3 1.3-1.3 2.6-2.6 4-3.8 1.4-1.2 3-2.1 4.7-2.7 2.7-0.7 5.5-0.8 8.3-0.1 2 0.5 4.1 0.7 6.2 0.7 1.1 0 2.1-0.2 3.1-0.5 1-0.4 1.9-1 2.5-1.8 0.9-1.1 1.3-2.4 1.3-3.8s-0.4-2.7-1.1-3.9c-1.5-2.3-3.8-4.1-6.3-5.1-3.5-1.4-7.1-2.5-10.8-3.2-11.3-2.7-22.3-6.7-32.7-11.9-5.2-2.6-10.1-5.4-15.3-8.1-5.2-2.9-10.6-5.4-16.2-7.2-12.9-3.5-26.6-2.9-39.1 1.8-14 4.9-26.5 13.4-36.1 24.7" fill="#F5BD0C" p-id="3701"></path><path d="M493.5 272.2c0.7 2.3 4.3 1.9 6.4 2.9 2.1 1 3.3 2.9 5.3 3.1 2.1 0.2 5-0.7 5.3-2.6 0.4-2.6-3.4-4.2-5.8-5.1-3.2-1.5-6.8-1.6-10-0.2-0.7 0.3-1.4 1.2-1.2 1.9z m-34.4-1.2c-2.7-0.9-7.1 3.8-5.8 6.3 0.4 0.7 1.6 1.5 2.4 1.1 0.8-0.4 2.3-3.1 3.6-4 1-0.8 0.8-3.1-0.2-3.4z m0 0" fill="#CD8907" p-id="3702"></path><path d="M887.7 829.8c-2 5.2-4.9 10-8.5 14.3-8.4 9-18.6 16.2-29.8 21.2-19 8.8-37.5 18.6-55.5 29.3-11.7 7.8-22.6 16.6-32.7 26.4-8.3 8.7-17.2 16.7-26.6 24.2-9.8 7.2-21.1 12.1-33.1 14-14.7 1.9-29.6-0.4-43.1-6.5-9.7-3.7-18.1-10.2-24-18.8-5-9.2-7.3-19.5-6.8-29.9 0.6-18.3 2.8-36.5 6.6-54.5 2.6-15 5.2-30 6.8-45.1 2.8-27.6 3.1-55.3 1-82.9-0.5-4.6-0.5-9.3 0-13.9 0.6-9.4 8.5-16.6 18-16.5 4.3-0.1 8.6 0.3 12.8 1.1 10 1.2 20 2.9 29.8 5.2 6.1 1.6 12.2 3.8 18.3 5.5 10.2 3 21 3.9 31.6 2.9 11.1-2.6 22.4-4.3 33.8-5.3 4.7 0.2 9.4 1 13.8 2.4 4.6 1.3 8.9 3.6 12.4 6.9 2.5 2.7 4.5 5.8 5.8 9.2 1.9 5.1 3.1 10.4 3.5 15.8 0.2 4.8 0.6 9.6 1.2 14.4 1.7 7.7 5.4 14.9 10.6 20.9 5.3 5.8 11 11.2 17.2 16 5.9 5.2 12.1 10 18.6 14.4 3.1 2.1 6.2 4 9.1 6.3 3 2.2 5.5 5 7.4 8.2 2.4 4.4 3.2 9.5 2 14.4" fill="#F5BD0C" p-id="3703"></path><path d="M887.7 829.8c-2 5.2-4.9 10-8.5 14.3-8.4 9-18.6 16.2-29.8 21.2-19 8.8-37.5 18.6-55.5 29.3-11.7 7.8-22.6 16.6-32.7 26.4-8.3 8.7-17.2 16.7-26.6 24.2-9.8 7.2-21.1 12.1-33.1 14-14.7 1.9-29.6-0.4-43.1-6.5-9.7-3.7-18.1-10.2-24-18.8-5-9.2-7.3-19.5-6.8-29.9 0.6-18.3 2.8-36.5 6.6-54.5 2.6-15 5.2-30 6.8-45.1 2.8-27.6 3.1-55.3 1-82.9-0.5-4.6-0.5-9.3 0-13.9 0.6-9.4 8.5-16.6 18-16.5 4.3-0.1 8.6 0.3 12.8 1.1 10 1.2 20 2.9 29.8 5.2 6.1 1.6 12.2 3.8 18.3 5.5 10.2 3 21 3.9 31.6 2.9 11.1-2.6 22.4-4.3 33.8-5.3 4.7 0.2 9.4 1 13.8 2.4 4.6 1.3 8.9 3.6 12.4 6.9 2.5 2.7 4.5 5.8 5.8 9.2 1.9 5.1 3.1 10.4 3.5 15.8 0.2 4.8 0.6 9.6 1.2 14.4 1.7 7.7 5.4 14.9 10.6 20.9 5.3 5.8 11 11.2 17.2 16 5.9 5.2 12.1 10 18.6 14.4 3.1 2.1 6.2 4 9.1 6.3 3 2.2 5.5 5 7.4 8.2 2.4 4.4 3.2 9.5 2 14.4M259.4 676.3c4.9-1.9 10.2-2.4 15.4-1.4 5.2 1 10.1 3.1 14.4 6.1 8.3 6.3 15.5 14.1 21.2 22.8 14.1 19.4 27.6 39.2 39.9 59.8 10 16.7 19.1 33.9 30.6 49.6 7.5 10.2 16 19.7 23.6 29.9 7.9 10 13.9 21.4 17.6 33.5 4.4 16.1 2.6 33.2-4.9 48.1-5.4 10.4-13.5 19.1-23.4 25.1-10 6-21.5 9-33.2 8.7-18.4-2.5-36.2-8.1-52.6-16.6-34.9-13.9-72.8-18.3-108.8-29.1-11.1-3.3-21.9-7.3-33.1-10.3-5-1.2-9.9-2.7-14.7-4.7-4.7-2-8.8-5.4-11.5-9.7-2-3.5-3-7.5-2.9-11.5 0.1-4 0.9-7.9 2.3-11.5 2.7-7.5 7.1-14.2 10-21.6 4.4-12.2 6.1-25.3 5-38.2-0.6-12.9-2.9-25.8-3.6-38.7-0.6-5.8-0.4-11.6 0.6-17.3 1.5-11.4 10.4-20.5 21.9-22.2 5.3-0.9 10.6-1.3 15.9-1 5.3 0.3 10.7 0.3 16 0 5.3-0.3 10.6-1.8 15.3-4.3 4.3-2.6 8.1-6.2 11-10.4 2.9-4.2 5.5-8.5 7.9-13 2.4-4.5 5.1-8.7 8.3-12.7 3-4.1 7.1-7.2 11.8-9.4" fill="#F5BD0C" p-id="3704"></path><path d="M259.4 676.4c4.9-1.9 10.2-2.4 15.4-1.4 5.2 1 10.1 3.1 14.4 6.1 8.3 6.3 15.5 14.1 21.2 22.8 14.1 19.4 27.6 39.2 39.9 59.8 10 16.7 19.1 33.9 30.6 49.6 7.5 10.2 16 19.7 23.6 29.9 7.9 10 13.9 21.4 17.6 33.5 4.4 16.1 2.6 33.2-4.9 48.1-5.4 10.4-13.5 19.1-23.4 25.1-10 6-21.5 9-33.2 8.7-18.4-2.5-36.2-8.1-52.6-16.6-34.9-13.9-72.8-18.3-108.8-29.1-11.1-3.3-21.9-7.3-33.1-10.3-5-1.2-9.9-2.7-14.7-4.7-4.7-2-8.8-5.4-11.5-9.7-2-3.5-3-7.5-2.9-11.5 0.1-4 0.9-7.9 2.3-11.5 2.7-7.5 7.1-14.2 10-21.6 4.4-12.2 6.1-25.3 5-38.2-0.6-12.9-2.9-25.7-3.6-38.7-0.6-5.8-0.4-11.6 0.6-17.3 1.5-11.4 10.4-20.5 21.9-22.2 5.3-0.9 10.6-1.3 15.9-1 5.3 0.3 10.7 0.3 16 0 5.3-0.3 10.6-1.8 15.3-4.3 4.3-2.6 8.1-6.2 11-10.4 2.9-4.2 5.5-8.5 7.9-13 2.4-4.5 5.1-8.7 8.3-12.7 3-4.1 7.1-7.3 11.8-9.4" fill="#F5BD0C" p-id="3705"></path><path d="M267.1 684.8c4.4-1.7 9.3-2 13.9-0.9s8.9 3.2 12.6 6.2c7.1 6.2 13.1 13.6 17.6 21.9 12 19.4 23.7 39 34.6 59 7.9 15.3 16.8 30.1 26.6 44.2 6.8 9.2 14.6 17.6 21.6 26.6 7.3 8.9 12.8 19 16.2 29.9 4 14.3 2.3 29.6-4.5 42.9-5 9.4-12.5 17.3-21.7 22.6-9.2 5.4-19.8 8-30.4 7.5-16.7-2.6-32.9-7.6-48.2-14.9-30.4-11.1-63.5-12.5-94.7-21.2-11.2-3-22.1-7.1-33.4-9.9-5-1.1-10-2.5-14.8-4.3-4.8-1.8-9-5.2-11.8-9.5-1.8-3.4-2.7-7.2-2.5-11 0.2-3.8 1-7.6 2.4-11.2 2.7-7.1 7-13.6 9.7-20.7 3.8-11 5.1-22.6 3.9-34.2-0.8-11.5-2.9-22.9-3.5-34.5-0.4-5.1-0.2-10.3 0.7-15.4 0.9-5.1 3.3-9.8 6.9-13.6 4.2-3.8 9.4-6.3 15-7 5.6-0.7 11.2-0.7 16.7 0 5.6 0.7 11.2 0.9 16.8 0.8 11 0 21-6.4 25.7-16.4 2.3-4.5 4.3-9.2 5.9-13.9 1.7-4.8 4-9.3 6.7-13.6 2.8-4.3 6.8-7.7 11.5-9.7" fill="#F5BD0C" p-id="3706"></path></svg>
\ No newline at end of file
diff --git a/docs/.vuepress/public/icon-linux.svg b/docs/.vuepress/public/icon-linux.svg
new file mode 100644
index 000000000..eee941b86
--- /dev/null
+++ b/docs/.vuepress/public/icon-linux.svg
@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1695287178022" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3859" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20"><path d="M533.454557 0c-6.611245 0-13.435757 0.341226-20.43088 0.895717-180.295057 14.203514-132.480825 205.03391-135.21063 268.629825-3.284296 46.619943-12.795959 83.344344-44.828508 128.855303-37.748078 44.828508-90.723347 117.296287-115.846079 192.835096-11.857588 35.487459-17.48781 71.827981-12.241467 106.163803a18.084955 18.084955 0 0 0-4.734504 5.758182c-11.089831 11.431056-19.151285 25.63457-28.236416 35.786031-8.487986 8.487986-20.6868 11.388403-33.994596 17.061278-13.35045 5.800835-28.065803 11.47371-36.852361 29.046826-3.838788 8.018801-5.800835 16.762706-5.630222 25.63457 0 8.487986 1.151636 17.103931 2.345926 22.862113 2.473885 17.018625 4.947771 31.094179 1.663474 41.373599-10.577992 29.004173-11.900242 48.880562-4.478585 63.339995 7.421656 14.246167 22.81946 20.004349 40.05135 25.634571 34.591741 8.530639 81.467603 5.758181 118.362617 25.549264 39.496859 19.919042 79.590863 28.620294 111.58076 20.047002 22.435581-4.905117 41.3736-19.748429 51.52506-40.30727 25.037426-0.12796 52.46343-11.47371 96.396221-14.246167 29.814584-2.473885 67.13613 11.388403 109.959938 8.487986 1.06633 5.758181 2.687151 8.487986 4.862464 14.246167l0.12796 0.12796c16.677399 33.184186 47.473006 48.283417 80.35862 45.681572 32.885614-2.559192 67.903887-22.862113 96.268262-55.705073 26.914166-32.629694 71.785328-46.236064 101.429298-64.107753 14.843312-8.487986 26.82886-20.004349 27.681924-36.383176 0.981023-17.061278-8.487986-34.634395-30.454381-58.73345v-4.13736l-0.12796-0.127959c-7.251043-8.530639-10.663299-22.81946-14.41678-39.496859-3.625522-17.103931-7.762882-33.525412-20.985372-44.615242h-0.12796c-2.516539-2.303273-5.246343-2.857764-8.018801-5.758182a15.227191 15.227191 0 0 0-8.104107-2.729804c18.383527-54.510784 11.260444-108.765648-7.379002-157.560904-22.734153-60.141005-62.486931-112.519129-92.7707-148.561079-33.951944-42.866461-67.221436-83.472303-66.581638-143.698616 1.151636-91.789676 10.108807-261.592047-151.162925-261.847966z m22.563541 145.23413h0.554491c9.085131 0 16.890665 2.644498 24.909466 8.445333 8.14676 5.758181 14.075554 14.160861 18.724753 22.734153 4.478586 11.047178 6.739205 19.577817 7.08043 30.880913 0-0.853064 0.255919-1.706128 0.25592-2.516538v4.435932a3.668175 3.668175 0 0 1-0.170613-0.895717l-0.170613-1.023677a77.074324 77.074324 0 0 1-6.397979 30.113156 40.648495 40.648495 0 0 1-9.085131 14.288821 30.283769 30.283769 0 0 0-3.753481-1.791434c-4.478586-1.919394-8.487986-2.729805-12.156161-5.672875a55.960992 55.960992 0 0 0-9.34105-2.815111c2.090007-2.516539 6.184713-5.672875 7.762882-8.445333 2.260619-5.459609 3.497562-11.260444 3.753481-17.146584v-0.810411a51.610366 51.610366 0 0 0-2.601845-17.061278c-1.919394-5.758181-4.307973-8.573292-7.805534-14.246168-3.582868-2.815111-7.123084-5.630222-11.388404-5.630221h-0.682451c-3.966747 0-7.506962 1.279596-11.175137 5.630221a34.122556 34.122556 0 0 0-8.743905 14.246168 50.330771 50.330771 0 0 0-3.838788 17.061278v0.810411c0.085306 3.796134 0.341226 7.634922 0.853064 11.388403-8.232067-2.857764-18.6821-5.758181-25.890489-8.615946a69.737974 69.737974 0 0 1-0.767758-8.487986v-0.853064a75.581462 75.581462 0 0 1 6.39798-32.800307c3.497562-9.34105 9.895541-17.317197 18.340874-22.734153a42.013397 42.013397 0 0 1 25.335998-8.487986z m-126.338765 2.516539h1.535515c6.056754 0 11.516363 2.047353 17.018625 5.758181 6.227367 5.502262 11.260444 12.28412 14.672699 19.833736 3.838788 8.487986 6.014101 17.103931 6.525939 28.449681v0.170613c0.298572 5.715528 0.255919 8.573292-0.085306 11.34575v3.412256c-1.279596 0.298572-2.388579 0.767758-3.540216 1.023676-6.483286 2.345926-11.686976 5.758181-16.762705 8.530639 0.511838-3.796134 0.554492-7.634922 0.127959-11.388403v-0.639798c-0.511838-5.672875-1.663475-8.487986-3.497562-14.203514a26.146409 26.146409 0 0 0-7.08043-11.388403 10.577992 10.577992 0 0 0-7.805535-2.729804h-0.895717c-3.028377 0.255919-5.544915 1.748781-7.933494 5.630221a23.544564 23.544564 0 0 0-5.118384 11.516363 40.264616 40.264616 0 0 0-0.981023 14.118208v0.597145c0.511838 5.758181 1.578168 8.573292 3.454908 14.246167 1.919394 5.715528 4.13736 8.530639 7.037778 11.431056 0.469185 0.383879 0.895717 0.767758 1.450208 1.023677-2.985724 2.431232-4.990424 2.985724-7.506962 5.800834a13.009225 13.009225 0 0 1-5.587569 2.900418 111.794025 111.794025 0 0 1-11.729628-17.146585 75.581462 75.581462 0 0 1-6.611246-28.449681 75.026971 75.026971 0 0 1 3.412256-28.492335 60.994069 60.994069 0 0 1 12.070854-22.819459c5.459609-5.672875 11.089831-8.530639 17.829036-8.530639z m58.477531 72.766351c14.118208 0 31.222139 2.772458 51.823632 17.018625 12.497386 8.530639 22.307621 11.47371 44.913815 19.961695h0.127959c10.876565 5.800835 17.274544 11.34575 20.388228 17.018625v-5.587568a24.354975 24.354975 0 0 1 0.682451 20.047002c-5.246343 13.265144-22.009049 27.468658-45.383 35.956643v0.085307c-11.431056 5.758181-21.369251 14.203514-33.056226 19.833736-11.772282 5.758181-25.080079 12.454733-43.165034 11.388403a48.58199 48.58199 0 0 1-19.108632-2.857764 152.101295 152.101295 0 0 1-13.734328-8.445333c-8.317373-5.758181-15.48311-14.160861-26.103756-19.833736v-0.213266h-0.213266c-17.061278-10.492686-26.274368-21.838436-29.260092-30.326422-2.94307-11.431056-0.213266-20.004349 8.232067-25.591917 9.554316-5.758181 16.208214-11.559016 20.601493-14.331474 4.435932-3.156336 6.099407-4.350626 7.506962-5.587568h0.085307v-0.12796c7.20839-8.615945 18.596793-20.004349 35.786031-25.63457 5.928794-1.535515 12.540039-2.772458 19.876389-2.772458z m119.386294 91.405798c15.312497 60.439578 51.055875 148.219854 74.045947 190.787743 12.198814 22.776806 36.468482 70.761651 47.003821 128.983262 6.653898-0.213266 14.032901 0.767758 21.881089 2.729805 27.553964-71.273489-23.288645-147.878628-46.449329-169.162573-9.426356-8.573292-9.895541-14.28882-5.246343-14.28882 25.122732 22.776806 58.221612 67.050823 70.207159 117.594859 5.502262 22.81946 6.781858 47.089128 0.895717 71.230836 2.857764 1.194289 5.758181 2.601845 8.743905 2.857765 44.018098 22.776806 60.268965 40.008697 52.463431 65.557961v-1.834088c-2.601845-0.12796-5.118383 0-7.720229 0h-0.639798c6.440633-19.919042-7.762882-35.188886-45.425653-52.207511-39.027674-17.061278-70.20716-14.331474-75.538809 19.833736-0.298572 1.834087-0.511838 2.815111-0.725104 5.758182-2.900417 0.981023-5.928794 2.260619-8.914518 2.729804-18.340874 11.431056-28.236415 28.534988-33.823984 50.629343-5.544915 22.734153-7.251043 49.307094-8.743905 79.718822v0.12796c-0.895717 14.246167-7.293696 35.743378-13.606369 57.624467-63.979793 45.724225-152.698439 65.600614-228.151942 14.246167a112.817702 112.817702 0 0 0-17.146585-22.734153 61.847133 61.847133 0 0 0-11.729629-14.246168c7.762882 0 14.41678-1.236943 19.833736-2.857764a26.231715 26.231715 0 0 0 13.393104-14.246167c4.606545-11.388403 0-29.729277-14.715353-49.605666-14.715352-19.919042-39.710125-42.439929-76.263913-64.87551-26.871513-17.018625-42.056051-37.10828-49.051175-59.543861-7.037777-22.776806-6.099407-46.278717-0.639798-70.164506 10.450033-45.638919 37.23624-89.998242 54.340171-117.850779 4.563892-2.772458 1.578168 5.758181-17.402503 41.544212-16.890665 32.03255-48.667296 106.505029-5.20369 164.385415a346.514559 346.514559 0 0 1 27.596617-122.67059c24.056402-54.510784 74.34452-149.456797 78.311267-224.697033 2.047353 1.535515 9.255743 5.758181 12.326773 8.615946 9.298397 5.672875 16.208214 14.203514 25.165386 19.833735 8.999824 8.573292 20.345574 14.28882 37.364199 14.288821 1.663475 0.12796 3.19899 0.255919 4.734504 0.255919 17.530463 0 31.094179-5.715528 42.482583-11.431056 12.369427-5.715528 22.222315-14.246167 31.563364-17.061279h0.213266c19.919042-5.758181 35.658071-17.146585 44.57259-29.857236z m93.239885 382.087324c1.578168 25.63457 14.630046 53.103228 37.620118 58.73345 25.080079 5.715528 61.164682-14.203514 76.391873-32.629695l8.999824-0.383878c13.435757-0.341226 24.610894 0.426532 36.127257 11.388403l0.127959 0.127959c8.871865 8.487986 13.009225 22.648847 16.6774 37.364199 3.625522 17.103931 6.568592 33.269492 17.445156 45.468307 20.729453 22.478234 27.511311 38.643795 27.127433 48.624642l0.127959-0.255919v0.767758l-0.127959-0.511839c-0.639798 11.175137-7.890841 16.890665-21.241292 25.378652-26.871513 17.103931-74.472479 30.369075-104.798901 66.965516-26.359675 31.435405-58.477531 48.58199-86.841905 50.799956-28.321722 2.260619-52.762003-8.530639-67.13613-38.302569l-0.213266-0.12796c-8.957171-17.103931-5.118383-43.719525 2.388579-72.0839 7.506962-28.492335 18.255568-57.368548 19.74843-80.955765 1.578168-30.454381 3.241643-56.942016 8.317373-77.372896 5.118383-19.833736 13.137184-33.994597 27.340698-41.970745l1.919394-0.93837z m-461.294308 2.090006h0.426532c2.260619 0 4.478586 0.213266 6.696551 0.597145 16.037601 2.345926 30.113156 14.203514 43.634219 32.075203l38.814408 70.974917 0.12796 0.12796c10.364726 22.734153 32.160509 45.383 50.714649 69.865934 18.511487 25.506611 32.84296 48.240764 31.094179 66.965516v0.25592c-2.431232 31.733977-20.430881 48.965868-47.984844 55.193234-27.511311 5.758181-64.832857 0.085306-102.154403-19.791082-41.288293-22.862113-90.339468-20.004349-121.860179-25.677224-15.739029-2.815111-26.061102-8.573292-30.838261-17.103931-4.734505-8.487986-4.819811-25.63457 5.246343-52.46343v-0.12796l0.085307-0.12796c4.990424-14.246167 1.279596-32.117856-1.151637-47.728925-2.345926-17.103931-3.540215-30.241116 1.834088-40.094004 6.824511-14.246167 16.890665-17.018625 29.388051-22.734153 12.582693-5.758181 27.340698-8.615945 39.070327-20.004349h0.085307v-0.127959c10.919218-11.431056 18.980672-25.63457 28.492334-35.743378 8.104107-8.573292 16.208214-14.331474 28.279069-14.331474z m305.354225-387.035094c-18.55414 8.573292-40.30727 22.81946-63.467954 22.819459-23.118032 0-41.3736-11.388403-54.553437-19.876389-6.611245-5.715528-11.942895-11.431056-15.952295-14.28882-6.995124-5.715528-6.14206-14.246167-3.156337-14.246168 4.649198 0.682451 5.502262 5.758181 8.487986 8.573293 4.094707 2.815111 9.170437 8.487986 15.397804 14.203514 12.41208 8.530639 29.004173 19.919042 49.733626 19.919042 20.6868 0 44.913815-11.388403 59.629167-19.876389 8.317373-5.758181 18.980672-14.246167 27.63927-19.919042 6.653898-5.843488 6.355326-11.431056 11.900242-11.431057 5.502262 0.682451 1.450209 5.715528-6.27002 14.203514a345.405576 345.405576 0 0 1-29.430705 19.961696v-0.042653z m-46.150757-67.562662V240.564022c-0.255919-0.810411 0.554492-1.791434 1.236943-2.13266 3.156336-1.834087 7.677575-1.151636 11.089831 0.170613 2.687151 0 6.824511 2.857764 6.397979 5.758181-0.255919 2.090007-3.625522 2.815111-5.758182 2.815111-2.345926 0-3.924094-1.834087-6.0141-2.900417-2.217966-0.767758-6.227367-0.341226-6.952471-2.772458z m-23.501911 0c-0.853064 2.473885-4.819811 2.090007-7.08043 2.815111-2.0047 1.06633-3.668175 2.900417-5.928794 2.900417-2.175313 0-5.587569-0.810411-5.843488-2.900417-0.383879-2.815111 3.753481-5.672875 6.397979-5.672875 3.454909-1.322249 7.848188-2.0047 11.047178-0.213266 0.810411 0.383879 1.535515 1.279596 1.279596 2.13266v0.895717h0.127959z" fill="#8a8a8a" p-id="3860"></path></svg>
\ No newline at end of file
diff --git a/docs/.vuepress/public/si-glyph-electron (1).svg b/docs/.vuepress/public/si-glyph-electron (1).svg
new file mode 100644
index 000000000..7b267ee7c
--- /dev/null
+++ b/docs/.vuepress/public/si-glyph-electron (1).svg	
@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1695286964054" class="icon" viewBox="0 0 1088 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1629" xmlns:xlink="http://www.w3.org/1999/xlink" width="21.25" height="20"><path d="M448 509.696a125.696 125.184 90 1 0 250.368 0 125.696 125.184 90 1 0-250.368 0Z" fill="#1afa29" p-id="1630"></path><path d="M830.528 1023.808c-154.88 0-349.504-98.816-508.032-257.92C75.328 517.76-7.232 211.904 134.592 69.504 179.712 24.128 243.968 0.128 320.064 0.128c154.944 0 349.568 98.88 508.096 258.048 247.104 248.064 329.6 553.92 187.904 696.32-45.12 45.376-109.312 69.312-185.536 69.312zM320.128 85.888c-53.824 0-96 14.848-125.184 44.224-104.32 104.704-18.24 368.128 187.904 575.104 143.04 143.616 314.624 232.896 447.68 232.896 53.888 0 96-14.848 125.248-44.224 104.384-104.768 18.24-368.128-187.904-575.104-143.04-143.68-314.624-232.896-447.744-232.896z" fill="#1afa29" p-id="1631"></path><path d="M320.128 1023.808c-76.096 0-140.352-23.936-185.472-69.312C-7.232 812.096 75.328 506.24 322.56 258.112 481.088 99.008 675.712 0.128 830.592 0.128c76.224 0 140.352 24 185.6 69.376 141.696 142.272 59.136 448.192-187.904 696.384-158.592 159.104-353.28 257.92-508.16 257.92z m510.4-937.984c-133.056 0-304.64 89.28-447.68 232.896-206.144 207.04-292.16 470.464-187.904 575.168 29.184 29.312 71.36 44.224 125.184 44.224 133.12 0 304.64-89.28 447.744-232.896 206.144-207.04 292.096-470.528 187.84-575.168-29.248-29.312-71.36-44.224-125.184-44.224z" fill="#1afa29" p-id="1632"></path></svg>
\ No newline at end of file
diff --git a/docs/.vuepress/public/si-glyph-electron.svg b/docs/.vuepress/public/si-glyph-electron.svg
new file mode 100644
index 000000000..c4701b50c
--- /dev/null
+++ b/docs/.vuepress/public/si-glyph-electron.svg
@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1695286964054" class="icon" viewBox="0 0 1088 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1629" xmlns:xlink="http://www.w3.org/1999/xlink" width="21.25" height="20"><path d="M448 509.696a125.696 125.184 90 1 0 250.368 0 125.696 125.184 90 1 0-250.368 0Z" fill="#8a8a8a" p-id="1630"></path><path d="M830.528 1023.808c-154.88 0-349.504-98.816-508.032-257.92C75.328 517.76-7.232 211.904 134.592 69.504 179.712 24.128 243.968 0.128 320.064 0.128c154.944 0 349.568 98.88 508.096 258.048 247.104 248.064 329.6 553.92 187.904 696.32-45.12 45.376-109.312 69.312-185.536 69.312zM320.128 85.888c-53.824 0-96 14.848-125.184 44.224-104.32 104.704-18.24 368.128 187.904 575.104 143.04 143.616 314.624 232.896 447.68 232.896 53.888 0 96-14.848 125.248-44.224 104.384-104.768 18.24-368.128-187.904-575.104-143.04-143.68-314.624-232.896-447.744-232.896z" fill="#8a8a8a" p-id="1631"></path><path d="M320.128 1023.808c-76.096 0-140.352-23.936-185.472-69.312C-7.232 812.096 75.328 506.24 322.56 258.112 481.088 99.008 675.712 0.128 830.592 0.128c76.224 0 140.352 24 185.6 69.376 141.696 142.272 59.136 448.192-187.904 696.384-158.592 159.104-353.28 257.92-508.16 257.92z m510.4-937.984c-133.056 0-304.64 89.28-447.68 232.896-206.144 207.04-292.16 470.464-187.904 575.168 29.184 29.312 71.36 44.224 125.184 44.224 133.12 0 304.64-89.28 447.744-232.896 206.144-207.04 292.096-470.528 187.84-575.168-29.248-29.312-71.36-44.224-125.184-44.224z" fill="#8a8a8a" p-id="1632"></path></svg>
\ No newline at end of file
diff --git a/docs/.vuepress/sidebar/document_v2.ts b/docs/.vuepress/sidebar/document_v2.ts
index d8dd52ab2..3b337d7a2 100644
--- a/docs/.vuepress/sidebar/document_v2.ts
+++ b/docs/.vuepress/sidebar/document_v2.ts
@@ -8,26 +8,33 @@ const platformList = getSubDirectories(DOC_PATH)
 const privateSidebar = {
   '/document/v2/privatization/': [ 
     {
-      text: '服务部署', 
+      text: '产品简介', 
       children: [
-        { text: '私有化服务部署', link: 'uc_deploy.html' },
+        { text: '产品概述', link: 'uc_introduction.html' },
+        { text: '产品使用限制', link: 'uc_limitation.html' },
+        { text: '术语表', link: 'uc_glossary.html' },
       ]
-    },
+    } ,
     {
-      text: '配置说明', 
-      children: [
-        { text: 'Console配置说明', link: 'uc_configure.html' },
-        { text: 'Android私有化配置', link: 'uc_android_private.html' },
-        { text: 'iOS私有化配置', link: 'uc_iOS_private.html' },
-        { text: 'Web私有化配置', link: 'uc_Web_private.html' },
-      ]
-    },
-    {
-      text: 'SDK下载', 
-      children: [
-        { text: 'SDK 及 Demo 下载', link: 'uc_private.html' },
-      ]
-    },
+        text: '快速开始', 
+        children: [
+          { text: '服务部署', link: 'uc_deploy.html' },
+          { text: '客户端下载', link: 'uc_private.html' },
+          { text: 'Console指南', link: 'uc_configure.html' },
+          { text: 'App Token 鉴权', link: 'easemob_app_token.html' },
+          { text: 'User Token 鉴权', link: 'easemob_user_token.html' },
+          { text: '快速开始(不使用 UIKIT) Android', link: '/document/v2/android/overview.html' },
+          { text: '快速开始(不使用 UIKIT)iOS', link: '/document/v2/ios/quickstart.html' },
+          { text: '快速开始(不使用 UIKIT) Web', link: '/document/v2/web/quickstart.html' },
+        ]   
+      } ,
+      {
+        text: 'FAQ', 
+        children: [
+          { text: 'FAQ质量', link: 'faq_quality_issues.html' },
+          { text: ' FAQ集成', link: 'faq_integration_issues.html' },
+        ]
+      } ,
   ]
 }
 
@@ -60,9 +67,9 @@ const documentSidebar = [
       { text: '使用环信 App Token 鉴权', link: 'easemob_app_token.html', only: ['server-side'] },
       { text: '使用环信 User Token 鉴权', link: 'easemob_user_token.html', only: ['server-side'] },
       { text: 'IM 产品使用限制', link: 'limitation.html', only: ['server-side'] },
-      { text: '接口频率限制', link: 'limitationapi.html', only: ['server-side'] },
+      /*{ text: '接口频率限制', link: 'limitationapi.html', only: ['server-side'] },*/
     ],
-    except: ['applet']
+    except: ['applet', 'linux', 'electron']
   },
   {
     text: '基础功能',
@@ -78,7 +85,7 @@ const documentSidebar = [
           { text: '管理服务端消息', link: 'message_retrieve.html', except: ['react-native'] },
           { text: '管理消息回执', link: 'message_receipt.html' },
           { text: '修改消息', link: 'message_modify.html' },
-          { text: '翻译', link: 'message_translation.html' },
+          /*{ text: '翻译', link: 'message_translation.html' },*/
         ]
       },
       { text: '管理用户属性', link: 'userprofile.html' },
@@ -104,7 +111,7 @@ const documentSidebar = [
         ]
       },
     ],
-    except: ['applet', 'server-side']
+    except: ['applet', 'server-side','electron']
   },
   {
     text: '进阶功能',
@@ -121,9 +128,9 @@ const documentSidebar = [
           { text: '管理子区消息', link: 'thread_message.html' }
         ]
       },
-      { text: '消息审核(举报)', link: 'moderation.html'},
+      /*{ text: '消息审核(举报)', link: 'moderation.html'},*/
     ],
-    except: ['applet','server-side']
+    except: ['applet','server-side','electron']
   },
   {
     text: '其他',
@@ -168,7 +175,7 @@ const documentSidebar = [
           { text: '管理服务端消息', link: 'message_retrieve.html' },
           { text: '管理消息回执', link: 'message_receipt.html' },
           { text: '修改消息', link: 'message_modify.html' },
-          { text: '翻译', link: 'message_translation.html' },
+          /**{ text: '翻译', link: 'message_translation.html' },**/
         ]
       },
       { text: '用户属性', link: 'userprofile.html' },
@@ -211,7 +218,7 @@ const documentSidebar = [
           { text: '管理子区消息', link: 'thread_message.html' }
         ]
       },
-      { text: '消息审核(举报)', link: 'moderation.html'},
+      /**{ text: '消息审核(举报)', link: 'moderation.html'},**/
     ],
     only: ['applet']
   },
@@ -274,7 +281,45 @@ const documentSidebar = [
       { text: '发送后回调-事件回调', link: 'callback_configurations.html' }
     ],
     only: ['server-side']
-  }
+  },
+  {
+    text: 'Linux开发文档',
+    children: [
+      { text: '集成说明', link: 'overview.html' },
+      { text: '技术参数', link: 'techspec.html' },
+      { text: 'SDK更新日志', link: 'releasenote.html' },
+    ],
+    only: ['linux']
+  },
+  {
+    text: '快速开始',
+    children: [
+      { text: 'Demo下载体验', link: 'demo.html' },
+      { text: '快速开始', link: 'quickstart.html' },
+      { text: '集成概述', link: 'overview.html' },
+      { text: 'SDK更新日志', link: 'releasenote.html' },
+    ],
+    only: ['electron']
+  },
+  {
+    text: '基础功能',
+    children: [
+      { text: '消息管理', link: 'message.html' },
+      { text: '会话管理', link: 'chatmanage.html' },
+      { text: '好友管理', link: 'user_relationship.html' },
+      { text: '群组管理', link: 'group_manage.html' },
+      { text: '聊天室管理', link: 'room_manage.html' },
+    ],
+    only: ['electron']
+  },
+  {
+    text: '进阶功能',
+    children: [
+      { text: '多设备监听', link: 'multi_device.html' },
+      { text: '附录', link: 'appendix.html' },
+    ],
+    only: ['electron']
+  },
 ]
 
 function buildDocSidebar() {
diff --git a/docs/.vuepress/sidebar/push.ts b/docs/.vuepress/sidebar/push.ts
index 0c0d424d3..e7b926f92 100644
--- a/docs/.vuepress/sidebar/push.ts
+++ b/docs/.vuepress/sidebar/push.ts
@@ -8,15 +8,15 @@ export const PUSH_SIDEBAR = [
           { text: 'Android SDK 发布动态', link: 'push_dynamics_android.html' },
           { text: 'iOS SDK 发布动态', link: 'push_dynamics_ios.html' },
         ]},
-        { text: '全球化部署', link: 'push_global_deployment.html' },
+        /**{ text: '全球化部署', link: 'push_global_deployment.html' },**/
       ]
     },
-    {
+   /**  {
       text: '产品定价',
       children: [
         { text: '计费说明', link: 'push_billing.html' },
       ]
-    },
+    },**/
     {
       text: '快速入门',
       children: [
diff --git a/docs/document/v2/android/demo.md b/docs/document/v2/android/demo.md
index e675ba063..0b8f7fc8a 100644
--- a/docs/document/v2/android/demo.md
+++ b/docs/document/v2/android/demo.md
@@ -4,23 +4,22 @@
 
 环信即时通讯 IM Android 端提供示例应用可供体验。
 
-1. [下载 Demo](https://www.easemob.com/download/demo)。
+1. [下载 Demo](https://downloadsdk.easemob.com/mp/downloads/sdk/imsdkdemo_android-4.1.2.apk)。
 
-2. 输入你的手机号,获取验证码,然后输入。
+2. 输入你的登录账号和密码。
 
 3. 选择同意《环信服务条款》与《环信隐私协议》,然后点击 **登录** 登录 Demo。
 
-![img](@static/images/demo/android_login.png)
+<!--![img](@static/images/demo/android_login.png)-->
 
 ## 代码下载
 
 您可以通过以下两种方式获取到源代码:
-- 下载代码压缩包:[IM SDK 及 Demo 下载](https://www.easemob.com/download/im)
-- 下载源代码:[github源码地址](https://github.com/easemob/chat-android)
+- 下载代码压缩包:[IM SDK 及 Demo 下载](https://downloadsdk.easemob.com/downloads/easemob-sdk-4.1.2.zip)
 欢迎大家提交 PR 改进和修复 EaseIM 和 EaseIMKit 中的问题。
 ## 导入 EaseIM
 
-从 [IM SDK 及 Demo 下载](https://www.easemob.com/download/im) 下载 Android SDK 压缩包,然后解压。解压后在 examples 文件夹下,即为 EaseIM 的工程目录。
+下载 Android SDK 压缩包,然后解压。解压后在 examples 文件夹下,即为 EaseIM 的工程目录。
 ### 导入到 Android Studio
 打开 Android Studio,点击 File > Open,打开 EaseIm3.0 根目录即可。
 :::notice
@@ -58,6 +57,14 @@
 - **ContactListFragment**:继承自 EaseIMKit 中的 EaseContactListFragment,展示了添加头布局,添加条目长按功能及实现条目点击事件等;
 - **GroupDetailActivity**:实现了如下功能:添加群成员,修改群公告及群介绍,上传共享文件,进行群组管理,设置消息免打扰及解散或者退出群组等。
 ## 部分 UI 展示
-![会话列表](@static/images/android/app-demo-ui-1.jpeg)
-![联系人列表](@static/images/android/app-demo-ui-2.jpeg)
-![聊天页面](@static/images/android/app-demo-ui-3.jpeg)
\ No newline at end of file
+
+<img src=@static/images/android/app-demo-ui-1.jpeg  title=“会话列表” width="200"/>&nbsp;&nbsp;
+<img src=@static/images/android/app-demo-ui-2.jpeg  title=联系人列表 width="200"/>&nbsp;&nbsp;
+<img src=@static/images/android/app-demo-ui-3.jpeg  title=聊天页面 width="200"/>
+<!--
+![会话列表](@static/images/android/app-demo-ui-1.jpeg?w=50)
+<br>
+![联系人列表](@static/images/android/app-demo-ui-2.jpeg?w=50)
+<br>
+![聊天页面](@static/images/android/app-demo-ui-3.jpeg?w=50)
+-->
\ No newline at end of file
diff --git a/docs/document/v2/android/easecallkit.md b/docs/document/v2/android/easecallkit.md
index 7af7401b8..a7f96e818 100644
--- a/docs/document/v2/android/easecallkit.md
+++ b/docs/document/v2/android/easecallkit.md
@@ -14,7 +14,7 @@
 
 ## 跑通 Demo
 
-EaseCallKit 集成在环信开源 IM Demo 中,你可以通过进入 [环信 Demo 及源码](https://www.easemob.com/download/im) 下载页面,选择 Android 端进行下载,直接下载: [Android IM 源码](https://github.com/easemob/chat-android)。
+EaseCallKit 集成在环信开源 IM Demo 中,你可以直接下载 Android 端源码 [Android IM 源码](https://downloadsdk.easemob.com/downloads/easemob-sdk-4.1.2.zip)。
 
 环境准备:
 
@@ -32,7 +32,7 @@ EaseCallKit 集成在环信开源 IM Demo 中,你可以通过进入 [环信 De
 
 集成该库之前,你需要满足以下条件:
 
-- 分别创建 [环信应用](/product/enable_and_configure_IM.html) 及 [声网应用](https://docportal.shengwang.cn/cn/video-legacy/run_demo_video_call_ios?platform=iOS#1-创建声网项目);
+- 分别创建 [环信应用](/document/v2/privatization/uc_configure.html) 及 [声网应用](https://docportal.shengwang.cn/cn/video-legacy/run_demo_video_call_ios?platform=iOS#1-创建声网项目);
 - 已完成环信 IM 的基本功能,包括登录、好友、群组以及会话等的集成;
 - 上线之前开通声网 Token 验证时,用户需要实现自己的 [App Server](https://github.com/easemob/easemob-im-app-server/tree/master/agora-app-server),用于生成 Token。具体请参见 [创建 Token 服务及使用 App Server 生成 Token](https://docportal.shengwang.cn/cn/video-call-4.x/token_server_ios_ng)。
 
@@ -65,7 +65,7 @@ implementation 'io.hyphenate:ease-call-kit:3.8.9'
 
 #### 源码集成
 
-- 下载 [EaseCallKit 源码](https://github.com/easemob/easecallkitui-android);
+- 下载 [EaseCallKit 源码](https://github.com/easemob/easecallkitui-android/tree/EaseCallKit_4.1.0);
 - 在 `build.gradle` 中增加以下内容,重新 build 你的项目即可。
 
 ```gradle
@@ -201,7 +201,7 @@ public void startInviteMultipleCall(final String[] users,final String ext){}
 
 发起通话后的 UI 界面如下:
 
-![img](@static/images/android/sendcall.png)
+<img src=@static/images/android/sendcall.png  title=发起通话后 width="200"/>
 
 ### 被叫收到通话邀请
 
@@ -221,7 +221,7 @@ void onRevivedCall(EaseCallType callType, String userId,String ext){}
 
 收到通话邀请后的界面如下:
 
-![img](@static/images/android/called.jpeg)
+<img src=@static/images/android/called.jpeg  title=收到通话 width="200"/>
 
 ### 多人通话中邀请
 
diff --git a/docs/document/v2/android/easeimkit.md b/docs/document/v2/android/easeimkit.md
index 572314c07..4235dd546 100644
--- a/docs/document/v2/android/easeimkit.md
+++ b/docs/document/v2/android/easeimkit.md
@@ -12,11 +12,11 @@ EaseIMKit 是什么?
 
 EaseIMKit 源码地址
 
-- [EaseIMKit](https://github.com/easemob/easeui/tree/EaseIMKit)
+- [EaseIMKit](https://github.com/easemob/easeui/tree/EaseIMKit_4.1.0)
 
 使用 EaseIMKIt 的环信 IM APP 源码地址:
 
-- [环信 IM](https://github.com/easemob/chat-android)
+- [环信 IM](https://downloadsdk.easemob.com/downloads/easemob-sdk-4.1.2.zip)
 
 ## 导入 EaseIMKit
 
@@ -100,7 +100,8 @@ EaseIMKit 封装了常用 IM 功能,提供了会话,聊天及联系人等基
 
 EaseIMKit 提供了 EaseConversationListFragment,需要将其或者其子类添加到 Activity 中。开发者需要对刷新事件(新消息,删除消息,删除会话等)进行处理。
 
-![img](@static/images/android/easeim.jpeg)
+<img src=@static/images/android/easeim.jpeg  title=创建会话列表 width="200"/>
+
 
 :::notice
 要实现自定义头像及昵称,请参考 [设置头像和昵称](userprofile.html#设置当前用户的属性)。
@@ -136,13 +137,13 @@ public class ChatActivity extends BaseActivity {
 }
 ```
 
-![img](@static/images/android/easeim1.jpeg)
+<img src=@static/images/android/easeim1.jpeg  title=创建聊天页面 width="200"/>
 
 ### 添加联系人界面
 
 EaseIMKit 提供了 EaseContactListFragment,添加其及其子类到 Activity 中。开发者需要对刷新事件(添加联系人,删除联系人等)进行处理。
 
-![img](@static/images/android/easeim2.jpeg)
+<img src=@static/images/android/easeim2.jpeg  title=添加联系人界面 width="200"/>
 
 ## 设置样式
 
@@ -150,7 +151,7 @@ EaseIMKit 提供了 EaseContactListFragment,添加其及其子类到 Activity
 
 EaseIMKit 提供了自定义的标题栏控件 EaseTitleBar。
 
-![img](@static/images/android/easeim-titlebar.jpeg)
+<img src=@static/images/android/easeim-titlebar.jpeg  title=设置标题栏 width="200"/>
 
 标题栏除了做为 View 所具有的属性功能外,还可以设置标题的位置等。
 
@@ -215,10 +216,10 @@ conversationListLayout.hideUnreadDot(false);
 conversationListLayout.showUnreadDotPosition(EaseConversationSetStyle.UnreadDotPosition.LEFT);
 ```
 
-效果如下图:
+效果如下图,更多样式请参考 EaseContactListLayout 控件。
+
+<img src=@static/images/android/easeim3.jpeg  title=设置会话列表 width="200"/>
 
-![img](@static/images/android/easeim3.jpeg)
-更多样式请参考 EaseContactListLayout 控件。
 
 #### 增加长按菜单项
 
@@ -262,7 +263,7 @@ public boolean onMenuItemClick(MenuItem item, int position) {
 
 聊天窗口包括标题栏(不包含在 EaseChatFragment 中),聊天区,输入区及扩展展示区,如下图所示:
 
-![img](@static/images/android/easeim4.png)
+<img src=@static/images/android/easeim4.png  title=设置会话列表 width="600"/>
 
 标题区 EaseTitleBar 的具体布局及实现不在 EaseIMKit 库的聊天控件及 fragment 中,需要你自己去实现。
 开发者可以在 EaseChatFragment 中获取到 EaseChatLayout 这个控件,然后通过这个控件进一步获取到获取其他控件,代码如下:
@@ -295,7 +296,7 @@ messageListLayout.setBackground(new ColorDrawable(Color.parseColor("#DA5A4D")));
 
 效果如下图:
 
-![img](@static/images/android/easeim5.jpeg)
+<img src=@static/images/android/easeim5.jpeg  title=修改聊天列表背景 width="200"/>
 
 #### 修改头像属性
 
@@ -312,7 +313,7 @@ messageListLayout.setAvatarShapeType(1);
 
 效果如下图:
 
-![img](@static/images/android/easeim6.jpeg)
+<img src=@static/images/android/easeim6.jpeg  title=修改头像属性 width="200"/>
 
 #### 修改聊天文本
 
@@ -329,7 +330,7 @@ messageListLayout.setItemTextColor(ContextCompat.getColor(mContext, R.color.red)
 
 效果如下图:
 
-![img](@static/images/android/easeim7.jpeg)
+<img src=@static/images/android/easeim7.jpeg  title=修改聊天文本 width="200"/>
 
 #### 修改时间线样式
 
@@ -348,7 +349,7 @@ messageListLayout.setTimeTextColor(ContextCompat.getColor(mContext, R.color.blac
 
 效果如下图:
 
-![img](@static/images/android/easeim8.jpeg)
+<img src=@static/images/android/easeim8.jpeg  title=修改时间线样式 width="200"/>
 
 #### 修改聊天列表展示样式
 
@@ -363,7 +364,7 @@ messageListLayout.setItemShowType(EaseChatMessageListLayout.ShowType.LEFT);
 
 效果如下图:
 
-![img](@static/images/android/easeim9.jpeg)
+<img src=@static/images/android/easeim9.jpeg  title=修改聊天列表展示样式 width="200"/>
 
 #### 修改输入区样式
 
@@ -395,25 +396,26 @@ if(primaryMenu != null) {
 
 效果(EaseInputMenuStyle.DISABLE_VOICE)如下图:
 
-![img](@static/images/android/easeim10.jpeg)
+
+<img src=@static/images/android/easeim10.jpeg  title=easeim10 width="200"/>
 
 其他样式为:
 
 完整模式(EaseInputMenuStyle.All):
 
-![img](@static/images/android/easeim11.jpeg)
+<img src=@static/images/android/easeim11.jpeg  title=easeim11 width="200"/>
 
 不可用表情模式(EaseInputMenuStyle.DISABLE_EMOJICON):
 
-![img](@static/images/android/easeim12.jpeg)
+<img src=@static/images/android/easeim12.jpeg  title=easeim12 width="200"/>
 
 不可用语音和表情模式(EaseInputMenuStyle.DISABLE_VOICE_EMOJICON):
 
-![img](@static/images/android/easeim13.jpeg)
+<img src=@static/images/android/easeim13.jpeg  title=easeim13 width="200"/>
 
 只有文本输入模式(EaseInputMenuStyle.ONLY_TEXT):
 
-![img](@static/images/android/easeim14.jpeg)
+<img src=@static/images/android/easeim14.jpeg  title=easeim14 width="200"/>
 
 #### 增加自定义消息类型及其布局
 
@@ -768,7 +770,7 @@ contactList.setHeaderBackGround(ContextCompat.getDrawable(mContext, R.color.whit
 
 效果如图:
 
-![img](@static/images/android/easeim15.jpeg)
+<img src=@static/images/android/easeim15.jpeg  title=设置联系人列表 width="200"/>
 
 设置简洁模式
 
@@ -779,7 +781,8 @@ contactLayout.showSimple();
 
 效果如图:
 
-![img](@static/images/android/easeim16.jpeg)
+<img src=@static/images/android/easeim16.jpeg  title=设置简洁模式 width="200"/>
+
 
 #### 增加长按菜单项
 
diff --git a/docs/document/v2/android/group_attributes.md b/docs/document/v2/android/group_attributes.md
index ec13e6e4a..58d6573e8 100644
--- a/docs/document/v2/android/group_attributes.md
+++ b/docs/document/v2/android/group_attributes.md
@@ -18,8 +18,7 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
-- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
diff --git a/docs/document/v2/android/group_manage.md b/docs/document/v2/android/group_manage.md
index 9e755fae8..d1cfbda1f 100644
--- a/docs/document/v2/android/group_manage.md
+++ b/docs/document/v2/android/group_manage.md
@@ -22,8 +22,7 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
-- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
diff --git a/docs/document/v2/android/group_members.md b/docs/document/v2/android/group_members.md
index c1bd623e5..150ace624 100644
--- a/docs/document/v2/android/group_members.md
+++ b/docs/document/v2/android/group_members.md
@@ -19,10 +19,9 @@
 
 开始前,请确保满足以下条件:
 
-- 完成 SDK 初始化,详见 [快速开始](quickstart.html);
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html);
+- 完成 SDK 初始化,详见 [快速开始](quickstart.html)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 - 了解群成员角色,详见 [群组概述](group_overview.html);
-- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。
 
 ## 实现方法
 
diff --git a/docs/document/v2/android/group_overview.md b/docs/document/v2/android/group_overview.md
index 5bf01cb7f..f026e83a0 100644
--- a/docs/document/v2/android/group_overview.md
+++ b/docs/document/v2/android/group_overview.md
@@ -20,7 +20,7 @@
 | 功能<div style="width: 100px;"></div> | 群组<div style="width: 300px;"></div> | 聊天室 |
 | :----------- | :----------------------------------------------------------- | :----------------------------------------------------------- |
 | 使用场景     | 类似于 Signal,Skype 里的群聊,所有加入的用户拥有固定的关系。  | 类似 Twitch 的直播间,成员间没有固定关系,离开即退出。     |
-| 创建方式 | 所有 app 用户都可以创建群组。   | 仅 [超级管理员](/document/server-side/chatroom.html#管理超级管理员) 有权限创建聊天室。  |
+| 创建方式 | 所有 app 用户都可以创建群组。   | 仅 [超级管理员](/document/v2/server-side/chatroom.html#管理超级管理员) 有权限创建聊天室。  |
 | 类型 | 分为公开群和私有群,创建群组时可设置入群是否需获得群主和群管理员的同意,支持不同使用场景。 | 没有公开和私有之分,所有用户均可自由加入或退出。      |
 | 最大成员数   | 成员数支持取决于所选择的版本,最高版本支持 8,000 人。        | 成员数支持取决于所选择的版本,最高版本支持 10,000 人。如需提升该上限,请联系商务。 |
 | 离线推送消息 | 离线时,会收到推送消息。             | 离线时,不会收到推送消息;成员离线超过 2 分钟会自动退出聊天室。          |
@@ -50,7 +50,7 @@
 
 | 功能               | 描述                                                         |
 | :----------------- | :----------------------------------------------------------- |
-| 创建群组           | 群组分为公开群和私有群,可以对加群的方式进行设置。任何用户都可以创建群组。群组创建者为群组。群组数量和群成员数量根据套餐版本有所不同。详见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im)。 |
+| 创建群组           | 群组分为公开群和私有群,可以对加群的方式进行设置。任何用户都可以创建群组。群组创建者为群组。 |
 | 解散群组           | 只有群主才能解散群组。群组一旦解散,所有本地群组数据都会被删除,所有群成员都被强制退出群。 |
 | 获取群成员列表     | 所有群组用户都可以从服务器获取群组成员的分页列表。成员按加入群组时的时间戳降序显示。 |
 | 获取群组列表       | 用户可以获取公开群列表和自己创建或加入的群组列表。 |
@@ -80,4 +80,4 @@
 
 ### 群组人数限制
 
-群成员的数量根据不同的套餐版本而不同,免费版 100 人/群,专业版 300 人/群, 旗舰版 3,000 人/群,尊享版 8,000 人/群。
+群成员的数量可按需设置,默认群成员数:2000人/群,可支持调整至8000人/群
diff --git a/docs/document/v2/android/message_manage.md b/docs/document/v2/android/message_manage.md
index aa756a7d7..a6dba84ae 100644
--- a/docs/document/v2/android/message_manage.md
+++ b/docs/document/v2/android/message_manage.md
@@ -32,8 +32,8 @@
 
 开始前,请确保满足以下条件:
 
-- 完成 SDK 初始化并连接到服务器,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 完成 SDK 初始化,详见 [快速开始](quickstart.html)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
diff --git a/docs/document/v2/android/message_modify.md b/docs/document/v2/android/message_modify.md
index 73984ffa9..6a9ac5425 100644
--- a/docs/document/v2/android/message_modify.md
+++ b/docs/document/v2/android/message_modify.md
@@ -9,7 +9,7 @@
 若使用该功能,需将 SDK 升级至 4.1.0 或以上版本。
 :::
 
-你可以调用 `com.hyphenate.chat.EMChatManager#asyncModifyMessage` 方法修改已经发送成功的消息。一条消息默认最多可修改 10 次,若要提升修改次数,需联系商务。
+你可以调用 `com.hyphenate.chat.EMChatManager#asyncModifyMessage` 方法修改已经发送成功的消息。一条消息默认最多可修改 10 次。
 
 示例代码如下:
 
diff --git a/docs/document/v2/android/message_overview.md b/docs/document/v2/android/message_overview.md
index b6672c58d..26cc14020 100644
--- a/docs/document/v2/android/message_overview.md
+++ b/docs/document/v2/android/message_overview.md
@@ -59,7 +59,7 @@ Web 和小程序端无本地消息存储。
 
 环信即时通讯 IM 在消息服务器保存历史消息,方便用户在新设备上获取历史消息。
 
-历史消息存储时间与套餐版本相关:专业版 7 天,旗舰版 90 天, 尊享版 180 天。
+私有部署历史消息存储时间支持自定义,请在部署服务前约定存储时间。
 
 | 功能                       | 描述                                 | 适用的平台/框架|
 | :---------- | :----------- |:----------------------------------- |
diff --git a/docs/document/v2/android/message_receipt.md b/docs/document/v2/android/message_receipt.md
index 56038fd77..2d4edbfa9 100644
--- a/docs/document/v2/android/message_receipt.md
+++ b/docs/document/v2/android/message_receipt.md
@@ -4,7 +4,7 @@
 
 单聊会话支持消息送达回执、会话已读回执和消息已读回执,发送方发送消息后可及时了解接收方是否及时收到并阅读了信息,也可以了解整个会话是否已读。
 
-群聊会话只支持消息已读回执。群主和群管理员在发送消息时,可以设置该消息是否需要已读回执。仅旗舰版及以上版本支持群消息已读回执功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。
+群聊会话只支持消息已读回执。群主和群管理员在发送消息时,可以设置该消息是否需要已读回执,私有部署即时通讯服务默认支持并开通该功能。
 
 本文介绍如何使用环信即时通讯 IM Android SDK 实现单聊和群聊的消息回执功能。
 
@@ -39,9 +39,9 @@
 
 开始前,请确保满足以下条件:
 
-- 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
-- 群消息已读回执功能仅在环信 IM 旗舰版及以上版本支持该功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。
+- 完成 SDK 初始化,详见 [快速开始](quickstart.html)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
+
 
 ## 实现方法
 
@@ -200,7 +200,7 @@ EMClient.getInstance().chatManager().addMessageListener(new EMMessageListener()
 
 对于群聊,群主和群管理员发送消息时,可以设置该消息是否需要已读回执。若需要,每个群成员在阅读消息后,SDK 均会发送已读回执,即阅读该消息的群成员数量即为已读回执的数量。
 
-仅旗舰版及以上版本支持群消息已读回执功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。
+私有部署即时通讯服务默认支持并开通群消息已读回执功能。
 
 1. 群主或群管理员发送消息时若需已读回执,需设置 `EMMessage` 的方法 `setIsNeedGroupAck()` 为 `YES`。
 
diff --git a/docs/document/v2/android/message_retrieve.md b/docs/document/v2/android/message_retrieve.md
index e5ac77703..8bd255750 100644
--- a/docs/document/v2/android/message_retrieve.md
+++ b/docs/document/v2/android/message_retrieve.md
@@ -4,9 +4,6 @@
 
 环信即时通讯 IM 提供消息漫游功能,即将用户的所有会话的历史消息保存在消息服务器,用户在任何一个终端设备上都能获取到历史信息,使用户在多个设备切换使用的情况下也能保持一致的会话场景。本文介绍用户如何获取和删除服务端的会话和消息。
 
-:::tip
-本文介绍的功能均为增值服务,需在[环信即时通讯 IM 管理后台](https://console.easemob.com/user/login)开通。
-:::
 
 ## 技术原理
 
@@ -23,8 +20,8 @@
 
 开始前,请确保满足以下条件:
 
-- 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 完成 SDK 初始化,详见 [快速开始](quickstart.html)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
@@ -159,8 +156,9 @@ EMClient.getInstance().chatManager().asyncFetchHistoryMessage(
 
 你可以调用 `removeMessagesFromServer` 方法单向删除服务端的历史消息,每次最多可删除 50 条消息。消息删除后,该用户无法从服务端拉取到该消息。其他用户不受该操作影响。登录该账号的其他设备会收到 `EMMultiDeviceListener` 中的 `onMessageRemoved` 回调,已删除的消息自动从设备本地移除。
 
-:::tip
-若使用该功能,需将 SDK 升级至 V3.9.8 或以上版本并联系商务开通。
+
+:::notice
+若使用该功能,需将 SDK 升级至 V3.9.8 或以上版本
 :::
 
 示例代码如下:
diff --git a/docs/document/v2/android/message_send_receive.md b/docs/document/v2/android/message_send_receive.md
index 0b1551778..0803cd2b2 100644
--- a/docs/document/v2/android/message_send_receive.md
+++ b/docs/document/v2/android/message_send_receive.md
@@ -40,7 +40,7 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
@@ -117,7 +117,7 @@ EMClient.getInstance().chatManager().removeMessageListener(msgListener);
 
 ### 撤回消息
 
-发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信即时通讯云控制台](https://console.easemob.com/user/login)的**功能配置** > **功能配置总览** > **基础功能** 页面设置消息撤回时长,该时长不超过 7 天。
+发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在 环信即时通讯云控制台的**服务管理** > **服务概览** 页面设置消息撤回时长,该时长不超过 7 天。
 
 ```java
 try {
diff --git a/docs/document/v2/android/moderation.md b/docs/document/v2/android/moderation.md
index c9a7e1677..1ec745b8b 100644
--- a/docs/document/v2/android/moderation.md
+++ b/docs/document/v2/android/moderation.md
@@ -13,8 +13,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。
-- 已在 [环信即时通讯云控制台](https://console.easemob.com/user/login) 开通消息审核服务。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 已在 环信即时通讯云控制台开通消息审核服务。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
diff --git a/docs/document/v2/android/multi_device.md b/docs/document/v2/android/multi_device.md
index 2aaa8e140..c7b3eb1eb 100644
--- a/docs/document/v2/android/multi_device.md
+++ b/docs/document/v2/android/multi_device.md
@@ -11,7 +11,7 @@
 
 多端登录时,即时通讯 IM 每端默认最多支持 4 个设备同时在线。如需增加支持的设备数量,可以联系环信即时通讯 IM 的商务经理。
 
-你可以在环信控制台的**功能配置** > **功能配置总览**页面的**基础功能**页签下点击**多端多设备在线**操作栏中的**设置**,在弹出的对话框中设置设置各端设备的数量:
+你可以在环信控制台的**服务管理** > **服务概览**页面的下点击**多端多设备在线**操作栏中的**设置**,在弹出的对话框中设置设置各端设备的数量:
 
 ![img](@static/images/common/multidevice_device_count.png)
 
@@ -24,7 +24,7 @@
 </head>
 
 <body>
-<table width="815" height="195" border="1">
+<table width="815" height="" border="1">
   <tbody>
     <tr>
       <td width="127" height="49">单端/多端登录</td>
@@ -37,8 +37,8 @@
       <td rowspan="2">设备支持自动登录时,若设备下线后自动重连时需要判断是否踢掉当前在线的最早登录设备,请联系环信商务。 </td>
     </tr>
     <tr>
-      <td height="84">多端登录</td>
-      <td>若一端的登录设备数量达到了上限,最新登录的设备会将该端最早登录的设备踢下线。&lt;br/&gt;即时通讯 IM 仅支持同端互踢,不支持各端之间互踢。</td>
+      <td height="">多端登录</td>
+      <td>若一端的登录设备数量达到了上限,最新登录的设备会将该端最早登录的设备踢下线。<br>即时通讯 IM 仅支持同端互踢,不支持各端之间互踢。</td>
     </tr>
   </tbody>
 </table>
@@ -137,7 +137,7 @@ EMClient.getInstance().chatManager().sendMessage(message);
 
 你可以按照以下步骤设置登录设备所属的平台:
 
-1. 在环信控制台的**功能配置** > **功能配置总览**页面,点击**基础功能**页签,然后点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击 **新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台**和**设备数量**。
+1. 在环信控制台的**服务管理** > **服务概览**页面,点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击 **新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台**和**设备数量**。
 
 **设备平台**的取值范围为 [1,100],**设备数量**的取值范围为 [0,4]。
 
diff --git a/docs/document/v2/android/overview.md b/docs/document/v2/android/overview.md
index a0e284094..a2d35d8b2 100644
--- a/docs/document/v2/android/overview.md
+++ b/docs/document/v2/android/overview.md
@@ -6,7 +6,7 @@
 
 ## 前提条件
 
-开始前,请注册有效的环信即时通讯 IM 开发者账号并取得 App key,见 [环信即时通讯云管理后台](https://console.easemob.com/user/login)。
+开始前,请注册有效的环信即时通讯 IM 开发者账号并取得 App key,见 [环信即时通讯云管理后台](/document/v2/privatization/uc_configure.html)。
 
 ## 集成环境
 
@@ -57,7 +57,7 @@ EMClient.getInstance().createAccount(mAccount, mPassword);// 同步方法。
 :::notice
 
 - 以上注册模式为在客户端注册,旨在方便测试,并不推荐在正式环境中使用;
-- 正式环境应使用服务器端调用 REST API 接口[注册用户](/document/server-side/account_system.html#注册用户)。
+- 正式环境应使用服务器端调用 REST API 接口[注册用户](/document/v2/server-side/account_system.html#注册用户)。
   :::
 
 ## 用户登录
@@ -67,7 +67,7 @@ EMClient.getInstance().createAccount(mAccount, mPassword);// 同步方法。
 - 用户 ID + 密码
 - 用户 ID + token
 
-手动登录时传入的用户 ID 必须为 String 类型,支持的字符集详见[用户注册的 RESTful 接口](/document/server-side/account_system.html#注册用户)。
+手动登录时传入的用户 ID 必须为 String 类型,支持的字符集详见[用户注册的 RESTful 接口](/document/v2/server-side/account_system.html#注册用户)。
 
 调用登录接口后,收到 `onConnected` 回调表明 SDK 与环信服务器连接成功。
 
@@ -92,7 +92,7 @@ EMClient.getInstance().login(mAccount, mPassword, new EMCallBack() {
 });
 ```
 
-**用户 ID + token** 是更加安全的登录方式。token 可以通过调用 REST API 获取。详见 [环信用户 token 的获取](/document/server-side/easemob_user_token.html)。
+**用户 ID + token** 是更加安全的登录方式。token 可以通过调用 REST API 获取。详见 [环信用户 token 的获取](/document/v2/server-side/easemob_user_token.html)。
 
 :::notice
 使用 token 登录时需要处理 token 过期的问题,比如在每次登录时更新 token 等机制。
diff --git a/docs/document/v2/android/presence.md b/docs/document/v2/android/presence.md
index b1c430652..5486bf229 100644
--- a/docs/document/v2/android/presence.md
+++ b/docs/document/v2/android/presence.md
@@ -35,8 +35,8 @@
 使用在线状态功能前,请确保满足以下条件:
 
 1. 完成 `3.9.1 或以上版本` SDK 初始化,详见 [快速开始](quickstart.html)。
-2. 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。
-3. 已联系商务开通在线状态订阅功能。
+2. 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。
+3. 私有部署已开通在线状态订阅功能。
 
 ## 实现方法
 
@@ -44,7 +44,7 @@
 
 ### 订阅指定用户的在线状态
 
-默认情况下,你不关注任何其他用户的在线状态。你可以通过调用 `com.hyphenate.chat.EMPresenceManager#subscribePresences` 方法订阅指定用户的在线状态,示例代码如下:
+默认情况下,你不关注任何其他用户的在线状态。你可以通过调用方法订阅指定用户的在线状态, `com.hyphenate.chat.EMPresenceManager#subscribePresences` 示例代码如下:
 
 ```java
 EMClient.getInstance().presenceManager().subscribePresences(contactsFromServer, 1 * 24 * 3600, new EMValueCallBack<List<EMPresence>>() {
diff --git a/docs/document/v2/android/push.md b/docs/document/v2/android/push.md
index 33cab9136..24d4436be 100644
--- a/docs/document/v2/android/push.md
+++ b/docs/document/v2/android/push.md
@@ -38,9 +38,9 @@
 
 ## 前提条件
 
-- 已开启环信即时通讯服务,详见 [开启和配置即时通讯服务](/product/enable_and_configure_IM.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
-- 你已在 [环信控制台](https://console.easemob.com/user/login)中激活推送高级功能。高级功能激活后,你可以设置推送通知方式、免打扰模式和自定义推送模板。如需关闭推送高级功能必须联系商务,因为该操作会删除所有相关配置。
+- 已开启环信即时通讯服务,详见 [环信控制台Console操作指南](/document/v2/privatization/uc_deploy.html)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
+- 你已在 环信控制台中激活推送高级功能。高级功能激活后,你可以设置推送通知方式、免打扰模式和自定义推送模板。如需关闭推送高级功能必须联系商务,因为该操作会删除所有相关配置。
 
 各推送使用条件:
 
@@ -104,7 +104,7 @@ EMClient.getInstance().init(this, options);
 
 **步骤二:上传推送证书。**
 
-注册完成后,在[环信即时通讯云控制台](https://console.easemob.com/user/login)上传推送证书,选择你的应用 > **即时通讯** > **功能配置** > **消息推送** > **证书配置**,点击 **添加推送证书**。即时通讯 IM 支持 FCM 的旧版证书和 v1 版证书。
+注册完成后,在环信即时通讯云控制台上传推送证书,选择你的应用 > **即时推送** > **配置证书**,点击 **添加推送证书**。即时通讯 IM 支持 FCM 的旧版证书和 v1 版证书。
 
 - 若 **证书类型** 选择 **旧版**,你需要将 **证书名称** 设置为 FCM 的发送者 ID,**推送秘钥** 设置为 FCM 的服务器密钥。你需在 [Firebase 控制台](https://console.firebase.google.com/?hl=zh-cn)的 **项目设置 > 云消息传递** 页面中,在 **Cloud Messaging API(旧版)** 区域中获取发送者 ID 和服务器密钥,如下图所示。配置完毕,设置 **铃声**、**推送优先级设置** 和 **推送消息类型** 参数。
 
@@ -287,10 +287,10 @@ public class EMFCMMSGService extends FirebaseMessagingService {
 
 详见[荣耀推送官网说明](https://developer.hihonor.com/cn/kitdoc?category=%E5%9F%BA%E7%A1%80%E6%9C%8D%E5%8A%A1&kitId=11002&navigation=guides&docId=kit-history.md&token=)。
 
-**步骤 2:在[环信即时通讯云控制台](https://console.easemob.com/user/login)上传荣耀推送证书。**
+**步骤 2:在环信即时通讯云控制台上传荣耀推送证书。**
 
-1. 在环信即时通讯云控制台首页的`应用列表`中,点击目标应用的**操作**栏中的**查看**。
-2. 在右侧导航栏中,选择**即时通讯** > **功能配置** > **消息推送** > **证书管理**,点击**添加推送证书**。
+1. 在环信即时通讯云控制台首页的`应用列表`中,点击目标应用的**操作**栏中的**管理**。
+2. 在右侧导航栏中,选择**即时推送** > **配置证书** ,点击**添加推送证书**。
 3. 在**添加推送证书**对话框中选择**荣耀**,配置荣耀推送参数。
 
 ![image](@static/images/android/push/add_honor_push_template.png)
@@ -900,7 +900,7 @@ OPPO 推送在 2.1.0 适配了 Android Q,在 Android Q 上接收 OPPO 推送
 - 设置推送通知,包含设置推送通知方式和免打扰模式。
 - 配置推送翻译和推送模板。
 
-其中,设置推送通知方式、免打扰模式和推送模板为推送的高级功能,使用前需要在[环信即时通讯云控制后台](https://console.easemob.com/user/login)上开通。
+其中,设置推送通知方式、免打扰模式和推送模板为推送的高级功能,使用前需要在环信即时通讯云控制后台上开通。
 
 ![image](@static/images/android/push/push_android_enable_push.png)
 
@@ -1139,7 +1139,7 @@ EMPushManager.DisplayStyle style = pushConfigs.getDisplayStyle();
 
 #### 4.3 设置推送翻译
 
-如果用户启用 [自动翻译](message_translation.html) 功能并发送消息,SDK 会同时发送原始消息和翻译后的消息。
+如果用户启用 自动翻译 功能并发送消息,SDK 会同时发送原始消息和翻译后的消息。
 
 推送通知与翻译功能协同工作。作为接收方,你可以设置你在离线时希望接收的推送通知的首选语言。如果翻译消息的语言符合你的设置,则翻译消息显示在推送通知中;否则,将显示原始消息。
 
@@ -1158,7 +1158,7 @@ EMClient.getInstance().pushManager().getPreferredNotificationLanguage(new EMValu
 环信 IM 支持自定义推送通知模板。使用前,你可参考以下步骤在环信即时通讯云管理后台上创建推送模板:
 
 1. 登录环信 IM Console,进入首页。
-2. 在 **应用列表** 区域中,点击对应 app 的 **操作** 一栏中的 **查看** 按钮。
+2. 在 **应用列表** 区域中,点击对应 app 的 **操作** 一栏中的 **管理** 按钮。
 3. 在环信 IM 配置页面的左侧导航栏,选择 **即时通讯 > 功能配置 > 消息推送 > 模板管理**,进入推送模板管理页面。
    ![image](@static/images/android/push/push_android_template_mgmt.png)
 4. 点击 **添加推送模板**。弹出以下页面,进行参数配置。
diff --git a/docs/document/v2/android/quickstart.md b/docs/document/v2/android/quickstart.md
index f630ddf92..59012bbf5 100644
--- a/docs/document/v2/android/quickstart.md
+++ b/docs/document/v2/android/quickstart.md
@@ -23,7 +23,7 @@
 - Android Studio 3.0 或以上版本;
 - Android SDK API 等级 21 或以上;
 - Android 5.0 或以上版本的设备;
-- 有效的环信即时通讯 IM 开发者账号和 App key,见 [环信即时通讯云控制台](https://console.easemob.com/user/login)。
+- 有效的环信即时通讯 IM 开发者账号和 App key,见 [环信即时通讯云控制台](/document/v2/privatization/uc_configure.html)。
 
 ## 准备开发环境
 
@@ -168,7 +168,7 @@ implementation 'io.hyphenate:hyphenate-sdk-lite:3.7.5' // 精简版,只包含I
 </manifest>
 ```
 
-关于 App Key 对应的 value 获取,在 [环信即时通讯 IM 管理后台](https://console.easemob.com/user/login) 创建应用后,申请 App Key 并进行相关配置。
+关于 App Key 对应的 value 获取,在 [环信即时通讯 IM 管理后台](/document/v2/privatization/uc_configure.html) 创建应用后,申请 App Key 并进行相关配置。
 
 ### 4. 防止代码混淆
 
@@ -212,7 +212,7 @@ try {
 ```
 
 :::notice
-该注册模式为在客户端注册,主要用于测试,简单方便,但不推荐在正式环境中使用;正式环境中应使用服务器端调用 Restful API 注册,具体见[注册单个用户](/document/server-side/account_system.html#注册单个用户)。
+该注册模式为在客户端注册,主要用于测试,简单方便,但不推荐在正式环境中使用;正式环境中应使用服务器端调用 Restful API 注册,具体见[注册单个用户](/document/v2/server-side/account_system.html#注册用户)。
 :::
 
 ### 3. 登录账号
diff --git a/docs/document/v2/android/reaction.md b/docs/document/v2/android/reaction.md
index ed399f6dc..499e15b43 100644
--- a/docs/document/v2/android/reaction.md
+++ b/docs/document/v2/android/reaction.md
@@ -7,7 +7,6 @@
 :::notice
 
 1. 目前 Reaction 仅适用于单聊和群组。聊天室暂不支持 Reaction 功能。
-2. 私有化版本不支持 Reaction 功能。
    :::
 
 ## 技术原理
@@ -31,8 +30,8 @@ Reaction 场景示例如下:
 开始前,请确保满足以下条件:
 
 1. 完成 `3.9.2.1 或以上版本` SDK 初始化,详见 [快速开始](quickstart.html)。
-2. 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。
-3. 已联系商务开通 Reaction 功能。
+2. 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。
+3. 私有部署已开通 Reaction 功能。
 
 ## 实现方法
 
diff --git a/docs/document/v2/android/releasenote.md b/docs/document/v2/android/releasenote.md
index cae5ca651..b95fc1cfb 100644
--- a/docs/document/v2/android/releasenote.md
+++ b/docs/document/v2/android/releasenote.md
@@ -236,7 +236,7 @@
 
 - [IM SDK] 新增群组详情中群组禁用状态:[EMGroup#isDisabled()](https://sdkdocs.easemob.com/apidoc/android/chat3.0/classcom_1_1hyphenate_1_1chat_1_1_e_m_group.html#acd072d7fc16e6ff89110173979ed318b) 属性,该属性需要开发者在服务端设置;
 - [IM SDK] 优化遇到连接问题时更新接入点的策略,增强可用性;
-- [IM SDK] [发送前回调](/document/server-side/callback.html#_1、发送前回调):发送失败时返回给 app 用户的错误描述中增加你自定义的错误信息(即 [响应体参数](/document/server-side/callback.html#响应体参数) code 信息)。
+- [IM SDK] [发送前回调](/document/v2/server-side/callback.html#_1、发送前回调):发送失败时返回给 app 用户的错误描述中增加你自定义的错误信息(即 [响应体参数](/document/v2/server-side/callback.html#响应体参数) code 信息)。
 - [IM SDK] 在 [EMError](https://sdkdocs.easemob.com/apidoc/android/chat3.0/classcom_1_1hyphenate_1_1_e_m_error.html) 中新增错误码 1101:[EMError#PRESENCE_CANNOT_SUBSCRIBE_YOURSELF](https://sdkdocs.easemob.com/apidoc/android/chat3.0/classcom_1_1hyphenate_1_1_e_m_error.html#abc9130b164d5cccb3559585ec38e8e99),用来提示用户不能订阅自己的在线状态。
 
 ### 优化:
@@ -287,7 +287,6 @@
 ### 新增特性:
 
 - [IM SDK] 新增 [消息 Reaction](reaction.html) 功能,可以对消息进行不同的响应;
-- [IM SDK] 新增 [举报 API](moderation.html) 用于内容审核。
 
 ### 优化:
 
@@ -302,7 +301,6 @@
 ### 修复:
 
 - [IM SDK] 修复 Google Play 上架时报的加密算法问题;
-- [IM SDK] 修复 Translation API 失效的问题。
 
 ## 版本 V3.9.1.1 2022-4-27
 
@@ -312,9 +310,6 @@
 
 ## 版本 V3.9.1 2022-4-19
 
-:::tip
-仅 V3.9.1 及以下版本支持私有化部署。
-:::
 
 ### 新增特性
 
@@ -335,7 +330,7 @@
 ### 新增特性
 
 - [IM SDK] [EaseIMKIt] 增加 [单向删除服务端会话 API](https://sdkdocs.easemob.com/apidoc/android/chat3.0/classcom_1_1hyphenate_1_1chat_1_1_e_m_chat_manager.html#a345e81b9caf2658c8796855fe63fe752);
-- [IM SDK] Push 平台增加推送支持扩展字段获取、后续动作、角标设置、透传消息等功能,见 [Android 推送集成](https://docs-im.easemob.com/push/apppush/androidsdk);
+- [IM SDK] Push 平台增加推送支持扩展字段获取、后续动作、角标设置、透传消息等功能,见 [Android 推送集成](/push/push_integration_note_android.html);
 - [IM SDK] 增加非好友不能发送消息错误码 [221 USER_NOT_ON_ROSTER];
 - [IM SDK] [EaseIMKIt] 增加通过 REST 接口撤回消息功能。
 
@@ -359,7 +354,6 @@
 
 ### 新增
 
-- [IM SDK] 增加翻译功能 API;
 - [IM SDK] 位置消息增加建筑物名称字段;
 - [IM SDK] 增加按照时间删除消息的 API;
 - [IM SDK] 增加获取会话中消息总数的 API;
@@ -1071,7 +1065,7 @@ EaseUI:
 新功能:
 
 1. 增加是否使用 FCM 推送的接口 通过`EMOptions`的`setUserFCM()`方法设置
-2. 添加语音会议功能 [多人音视频会议](https://docs-im.easemob.com/im/android/basics/multiuserconference)
+2. 添加语音会议功能 [多人音视频会议](/private/media/conference_android.html)
 
 修复:
 
@@ -1112,7 +1106,7 @@ EaseUI:
 2. 使用外接音频输入源进行音视频通话时,设置音频源
 3. 提供是否自己处理附件的上传和下载设置项
 4. 提供是否自动下载附件类消息附件设置项(缩略图,语音文件)
-5. 多人音视频会议功能,详细参考集成文档 [多人音视频会议](https://docs-im.easemob.com/im/android/basics/multiuserconference)
+5. 多人音视频会议功能,详细参考集成文档 [多人音视频会议](/private/media/conference_android.html)
 
 优化:
 
diff --git a/docs/document/v2/android/room_attributes.md b/docs/document/v2/android/room_attributes.md
index b520bc5c6..cda748a5b 100644
--- a/docs/document/v2/android/room_attributes.md
+++ b/docs/document/v2/android/room_attributes.md
@@ -19,9 +19,8 @@
 
 开始前,请确保满足以下条件:
 
-- 完成 SDK 初始化,详见 [快速开始](quickstart.html);
-- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html);
-- 了解聊天室的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。
+- 完成 SDK 初始化,详见 [快速开始](quickstart.html)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
diff --git a/docs/document/v2/android/room_manage.md b/docs/document/v2/android/room_manage.md
index ce40ceb80..5f1f61f8c 100644
--- a/docs/document/v2/android/room_manage.md
+++ b/docs/document/v2/android/room_manage.md
@@ -25,9 +25,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html)。
-- 了解环信即时通讯 IM 不同版本的聊天室相关数量限制,详见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im)。
-- 只有超级管理员才有创建聊天室的权限,因此你还需要确保已调用 RESTful API 添加了超级管理员,详见 [添加聊天室超级管理员](/document/server-side/chatroom.html#添加超级管理员)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
+- 只有超级管理员才有创建聊天室的权限,因此你还需要确保已调用 RESTful API 添加了超级管理员,详见 [添加聊天室超级管理员](/document/v2/server-side/chatroom.html#添加超级管理员)。
 - 聊天室创建者和管理员的数量之和不能超过 100,即管理员最多可添加 99 个。
 
 ## 实现方法
@@ -36,9 +35,9 @@
 
 ### 创建聊天室
 
-仅 [超级管理员](/document/server-side/chatroom.html#管理超级管理员) 可以调用 `createChatRoom` 方法创建聊天室,并设置聊天室的名称、描述、最大成员数等信息。成功创建聊天室后,该超级管理员为该聊天室的所有者。
+仅 [超级管理员](/document/v2/server-side/chatroom.html#管理超级管理员) 可以调用 `createChatRoom` 方法创建聊天室,并设置聊天室的名称、描述、最大成员数等信息。成功创建聊天室后,该超级管理员为该聊天室的所有者。
 
-你也可以直接调用 REST API [从服务端创建聊天室](/document/server-side/chatroom.html#创建聊天室)。
+你也可以直接调用 REST API [从服务端创建聊天室](/document/v2/server-side/chatroom.html#创建聊天室)。
 
 示例代码如下:
 
diff --git a/docs/document/v2/android/room_members.md b/docs/document/v2/android/room_members.md
index 8f5bdffe0..e16f72e57 100644
--- a/docs/document/v2/android/room_members.md
+++ b/docs/document/v2/android/room_members.md
@@ -21,8 +21,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html)。
-- 了解环信即时通讯 IM 聊天室相关限制,详见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
+
 
 ## 实现方法
 
diff --git a/docs/document/v2/android/room_overview.md b/docs/document/v2/android/room_overview.md
index 1635b9905..f8a78fc2b 100644
--- a/docs/document/v2/android/room_overview.md
+++ b/docs/document/v2/android/room_overview.md
@@ -6,7 +6,7 @@
 
 聊天室是支持多人加入的类似 Twitch 的组织,聊天室中的成员没有固定关系,一旦离线后,不会收到聊天室中的任何消息,超过 2 分钟会自动退出聊天室。聊天室可以应用于直播、消息广播等。若需调整该时间,需联系环信商务经理。
 
-聊天室的使用限制视不同套餐版本而定,请参见 [使用限制](/product/limitation.html)。
+聊天室的使用限制请参见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 本文以及接下来几篇主要介绍聊天室管理功能,如需查看消息相关内容,参见 <Link title="消息管理" to="message_overview.html" />。
 
@@ -32,7 +32,7 @@
 
 | 功能           | 描述                                                         |
 | :------------- | :----------------------------------------------------------- |
-| 创建聊天室     | 只有被赋予 [超级管理员](/document/server-side/chatroom.html#管理超级管理员) 权限的用户有权限创建聊天室。聊天室成员数会受到版本指定聊天室最大成员数的限制。 |
+| 创建聊天室     | 只有被赋予 [超级管理员](/document/v2/server-side/chatroom.html#管理超级管理员) 权限的用户有权限创建聊天室。聊天室成员数会受到版本指定聊天室最大成员数的限制。 |
 | 加入聊天室     | 没有被加入黑名单的所有 app 用户可自由加入聊天室。                                   |
 | 离开聊天室     | 所有聊天室成员都可以自由退出聊天室;也可能被动离开聊天室,原因分为:被管理员移出聊天室、聊天室解散和用户账号离线。   |
 | 销毁聊天室     | 需要聊天室所有者权限。                                       |
diff --git a/docs/document/v2/android/thread.md b/docs/document/v2/android/thread.md
index 1dab017f1..f4d9bea6b 100644
--- a/docs/document/v2/android/thread.md
+++ b/docs/document/v2/android/thread.md
@@ -6,9 +6,6 @@
 
 如需查看消息相关内容,参见 [子区消息管理](thread_message.html)。
 
-:::notice
-私有化版本不支持子区功能。
-:::
 
 ## 技术原理
 
@@ -28,9 +25,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 3.9.3 或以上版本 SDK 初始化,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。
-- 了解子区和子区成员数量限制,详见 [使用限制](/product/limitation.html)。
-- 联系商务开通子区功能。
+- 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。
+- 私有部署已开通子区功能。
 
 ## 实现方法
 
diff --git a/docs/document/v2/android/thread_message.md b/docs/document/v2/android/thread_message.md
index 8feb4358a..4c670ab91 100644
--- a/docs/document/v2/android/thread_message.md
+++ b/docs/document/v2/android/thread_message.md
@@ -31,8 +31,8 @@
 
 - 已集成环信 IM 3.9.3 或以上版本的基本功能,账户登录成功。
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
-- 联系商务开通子区功能。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
+- 私有部署已开通子区功能。
 
 ## 实现方法
 
diff --git a/docs/document/v2/android/user_relationship.md b/docs/document/v2/android/user_relationship.md
index 5b72c3e38..bd798f83b 100644
--- a/docs/document/v2/android/user_relationship.md
+++ b/docs/document/v2/android/user_relationship.md
@@ -28,8 +28,8 @@ SDK 提供用户关系管理功能,包括好友列表管理和黑名单管理
 
 开始前,请确保满足以下条件:
 
-- 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 完成 SDK 初始化,详见 [快速开始](quickstart.html)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
diff --git a/docs/document/v2/android/userprofile.md b/docs/document/v2/android/userprofile.md
index 902df1dad..fdb2c78f5 100644
--- a/docs/document/v2/android/userprofile.md
+++ b/docs/document/v2/android/userprofile.md
@@ -28,7 +28,7 @@
 设置用户属性前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
@@ -73,7 +73,7 @@ EMClient.getInstance().userInfoManager().updateOwnInfoByAttribute(EMUserInfoType
 });
 ```
 
-若[调用 RESTful 的接口设置](/document/server-side/userprofile.html#设置用户属性)或[删除用户属性](/document/server-side/userprofile.html#删除用户属性),请求中必须传以下字段各客户端才能获取到。
+若[调用 RESTful 的接口设置](/document/v2/server-side/userprofile.html#设置用户属性)或[删除用户属性](/document/v2/server-side/userprofile.html#删除用户属性),请求中必须传以下字段各客户端才能获取到。
 
 | 字段        | 类型   | 描述                                                                                              |
 | :---------- | :----- | :------------------------------------------------------------------------------------------------ |
@@ -145,7 +145,7 @@ EMClient.getInstance().chatManager().sendMessage(message);
 
 如果需要在名片中展示更丰富的信息,可以在 `ext` 中增加更多字段。
 
-可参考 [示例项目](https://www.easemob.com/download/im) 中的以下类:
+可参考 Demo 中的以下类:
 
 - `ChatUserCardAdapterDelegate`
 - `ChatUserCardAdapterDelegate`
diff --git a/docs/document/v2/applet/alipay.md b/docs/document/v2/applet/alipay.md
index f8e2a1e96..56854ac12 100644
--- a/docs/document/v2/applet/alipay.md
+++ b/docs/document/v2/applet/alipay.md
@@ -4,7 +4,7 @@
 
 ### 注册环信账号
 
-开发者需要在环信管理后台 [注册并创建应用](/product/enable_and_configure_IM.html#创建应用),来获取唯一 appKey,SDK 初始化时需要配置 appKey。
+开发者需要在环信管理后台 [注册并创建应用](/document/v2/privatization/uc_configure.html#创建应用),来获取唯一 appKey,SDK 初始化时需要配置 appKey。
 
 ### 搭建支付宝小程序开发环境
 
@@ -14,8 +14,8 @@
 
 小程序在发布前,需要配置合法域名。
 
-登录 [支付宝开放平台](https://open.alipay.com/platform/home.htm), 配置以下服务器域名。
-
+登录 [支付宝开放平台](https://open.alipay.com/platform/home.htm), 按私有部署文档中的 **2.2开通防火墙白名单** 配置各服务“地址:端口”。
+<!--
 :::tip
 request 合法域名:
 
@@ -30,7 +30,7 @@ request 合法域名:
 socket 合法域名:
 wss://im-api-alipay.easemob.com/websocket
 :::
-
+-->
 ### 说明
 
 支付宝小程序:支付宝小程序在一段时间内只能保留一个 WebSocket 连接,如果当前已存在 WebSocket 连接,那么会自动关闭该连接,并重新创建一个新的 WebSocket 连接。
@@ -41,8 +41,8 @@ wss://im-api-alipay.easemob.com/websocket
 
 可以通过以下两种方式获取 SDK:
 
-- 通过官网[下载 SDK](https://www.easemob.com/download/im)
-- 从环信的[github 仓库](https://github.com/easemob/webim-weixin-xcx/tree/master/src/sdk) 中获取 SDK 中的文件
+<!--- 通过官网 [下载 SDK](https://www.easemob.com/download/im)-->
+- 从环信的 [github 仓库](https://github.com/easemob/webim-weixin-xcx) 中获取 SDK 中的文件
 
 #### 引入 SDK
 
diff --git a/docs/document/v2/applet/baidu.md b/docs/document/v2/applet/baidu.md
index 6c8c362ea..4f08c5541 100644
--- a/docs/document/v2/applet/baidu.md
+++ b/docs/document/v2/applet/baidu.md
@@ -4,7 +4,7 @@
 
 ### 注册环信账号
 
-开发者需要在环信管理后台 [注册并创建应用](/product/enable_and_configure_IM.html#创建应用),来获取唯一 appKey,SDK 初始化时需要配置 appKey。
+开发者需要在环信管理后台 [注册并创建应用](/document/v2/privatization/uc_configure.html#创建应用),来获取唯一 appKey,SDK 初始化时需要配置 appKey。
 
 ### 搭建百度小程序开发环境
 
@@ -14,8 +14,8 @@
 
 小程序在发布前,需要配置合法域名。
 
-登录 [百度智能小程序官网](https://smartprogram.baidu.com/),在开发设置页面配置以下服务器域名。
-
+登录 [百度智能小程序官网](https://smartprogram.baidu.com/),在开发设置页面配置按私有部署文档中的 **2.2开通防火墙白名单** 配置各服务“地址:端口”。。
+<!--
 :::tip
 request 合法域名:
 
@@ -49,7 +49,7 @@ socket 合法域名:
 应用所在数据中心可以在环信用户管理后台>应用信息中查看:
 
 ![img](@static/images/applet/console.jpeg)
-
+-->
 ### 说明
 
 百度小程序注册主体不能为个人,必须为企业、媒体、政府等。
@@ -60,8 +60,8 @@ socket 合法域名:
 
 可以通过以下两种方式获取 SDK:
 
-- 通过官网 [下载 SDK](https://www.easemob.com/download/im)
-- 从环信的 [github 仓库](https://github.com/easemob/webim-weixin-xcx/tree/master/src/sdk) 中获取 SDK 中的文件
+<!--- 通过官网 [下载 SDK](https://www.easemob.com/download/im)-->
+- 从环信的 [github 仓库](https://github.com/easemob/webim-weixin-xcx) 中获取 SDK 中的文件
 
 #### 引入 SDK
 
diff --git a/docs/document/v2/applet/bytedance.md b/docs/document/v2/applet/bytedance.md
index 5f10d4c59..f45f2dfb0 100644
--- a/docs/document/v2/applet/bytedance.md
+++ b/docs/document/v2/applet/bytedance.md
@@ -4,7 +4,7 @@
 
 ### 注册环信账号
 
-开发者需要在环信管理后台 [注册并创建应用](/product/enable_and_configure_IM.html#创建应用),来获取唯一 appKey,SDK 初始化时需要配置 appKey。
+开发者需要在环信管理后台 [注册并创建应用](/document/v2/privatization/uc_configure.html#创建应用),来获取唯一 appKey,SDK 初始化时需要配置 appKey。
 
 ### 搭建字节跳动小程序开发环境
 
@@ -14,8 +14,8 @@
 
 小程序在发布前,需要配置合法域名。
 
-登录字节跳动小程序 [开发者平台](https://microapp.bytedance.com/),选择当前小程序(如果没有需要创建一个小程序),进入 “开发管理>开发设置” 页面配置以下服务器地址。
-
+登录字节跳动小程序 [开发者平台](https://microapp.bytedance.com/),选择当前小程序(如果没有需要创建一个小程序),进入 “开发管理>开发设置” 页面按私有部署文档中的 **2.2开通防火墙白名单** 配置各服务“地址:端口”。
+<!--
 :::tip
 request 合法域名:
 
@@ -50,15 +50,15 @@ socket 合法域名:
 应用所在数据中心可以在环信用户管理后台>应用信息中查看:
 
 ![img](@static/images/applet/console.jpeg)
-
+-->
 ### 集成 SDK
 
 #### 下载 SDK
 
 可以通过以下两种方式获取 SDK:
 
-- 通过官网 [下载 SDK](https://www.easemob.com/download/im)
-- 从环信的 [github 仓库](https://github.com/easemob/webim-weixin-xcx/tree/master/src/sdk) 中获取 SDK 中的文件
+<!--- 通过官网 [下载 SDK](https://www.easemob.com/download/im)-->
+- 从环信的 [github 仓库](https://github.com/easemob/webim-weixin-xcx) 中获取 SDK 中的文件
 
 #### 引入 SDK
 
diff --git a/docs/document/v2/applet/initialization.md b/docs/document/v2/applet/initialization.md
index 3934058b8..439734734 100644
--- a/docs/document/v2/applet/initialization.md
+++ b/docs/document/v2/applet/initialization.md
@@ -6,7 +6,7 @@
 
 ## 前提条件
 
-开始前,请注册有效的环信即时通讯 IM 开发者账号且获得 App key,见 [环信即时通讯云管理后台](https://console.easemob.com/user/login)。
+开始前,请注册有效的环信即时通讯 IM 开发者账号且获得 App key,见 [环信即时通讯云管理后台](/document/v2/privatization/uc_configure.html)。
 
 ## 引入 SDK
 
@@ -55,15 +55,15 @@ const conn = new EC.connection({
 
 ### 控制台注册
 
-登录[环信即时通讯云控制台](https://console.easemob.com/user/login),选择**即时通讯** > **运营服务** > **用户管理**,创建 IM 用户。
+登录[环信即时通讯云控制台](/document/v2/privatization/uc_configure.html),选择**运营服务** > **用户管理**,创建 IM 用户。
 
 ### REST API 注册
 
-请参考 [注册用户](/document/server-side/account_system.html#注册用户)。
+请参考 [注册用户](/document/v2/server-side/account_system.html#注册用户)。
 
 ### SDK 注册
 
-若支持 SDK 注册,需登录[环信即时通讯云控制台](https://console.easemob.com/user/login),选择 **即时通讯** > **服务概览**,将 **设置**下的 **用户注册模式** 设置为 **开放注册**。
+若支持 SDK 注册,需登录[环信即时通讯云控制台](/document/v2/privatization/uc_configure.html),选择 **应用概览** > **应用详情**,将 **应用设置**下的 **用户注册模式** 设置为 **开放注册**。
 
 ```javascript
 conn
@@ -87,7 +87,7 @@ SDK 不支持自动登录,只支持通过以下方式手动登录:
 - 用户 ID + 密码
 - 用户 ID + token
 
-登录时传入的用户 ID 必须为 String 类型,支持的字符集详见[用户注册的 RESTful 接口](/document/server-side/account_system.html#注册用户)。
+登录时传入的用户 ID 必须为 String 类型,支持的字符集详见[用户注册的 RESTful 接口](/document/v2/server-side/account_system.html#注册用户)。
 
 调用登录接口后,收到 `onConnected` 回调表明 SDK 与环信服务器连接成功。
 
@@ -109,7 +109,7 @@ conn
   });
 ```
 
-**用户 ID + token** 是更加安全的登录方式。token 可以通过调用 REST API 获取,详见 [环信用户 token 的获取](/product/easemob_user_token.html)。
+**用户 ID + token** 是更加安全的登录方式。token 可以通过调用 REST API 获取,详见 [环信用户 token 的获取](/document/v2/server-side/easemob_user_token.html)。
 
 :::notice
 使用 token 登录时需要处理 token 过期的问题,比如在每次登录时更新 token 等机制。
diff --git a/docs/document/v2/applet/message_send_receive.md b/docs/document/v2/applet/message_send_receive.md
index 5760c5aae..55cd1db7b 100644
--- a/docs/document/v2/applet/message_send_receive.md
+++ b/docs/document/v2/applet/message_send_receive.md
@@ -38,7 +38,7 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
@@ -160,7 +160,7 @@ WebIM.conn.addEventHandler("eventName", {
 
 ### 撤回消息
 
-发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信即时通讯云控制台](https://console.easemob.com/user/login)的**功能配置** > **功能配置总览** > **基础功能** 页面设置消息撤回时长,该时长不超过 7 天。
+发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在 环信即时通讯云控制台的**服务管理** > **服务概览** 页面设置消息撤回时长,该时长不超过 7 天。
 
 ```javascript
 let option = {
diff --git a/docs/document/v2/applet/overview.md b/docs/document/v2/applet/overview.md
index d30df01c2..e0b97d066 100644
--- a/docs/document/v2/applet/overview.md
+++ b/docs/document/v2/applet/overview.md
@@ -8,6 +8,7 @@
 SDK 目前支持微信、QQ、百度小程序、字节跳动、uni-app 编译的原生 Android 以及 iOS。
 :::
 
+<!--
 ## 体验小程序
 
 扫描下方小程序二维码,或者微信搜索 **环信即时通讯云** 即可快速体验环信小程序 Demo 在线版本:
@@ -25,7 +26,7 @@ SDK 目前支持微信、QQ、百度小程序、字节跳动、uni-app 编译的
 - 各小程序 Demo 源码可在官网 [下载页](https://www.easemob.com/download/im) 获取
 - Uni-app Demo Git 源码地址:[https://github.com/easemob/webim-uniapp-demo](https://github.com/easemob/webim-uniapp-demo)
   :::
-
+-->
 ## 功能说明
 
 环信小程序 Web IM 在微信生态系统进行优化,功能与微信对接更为流畅:
diff --git a/docs/document/v2/applet/qq.md b/docs/document/v2/applet/qq.md
index be8c7b2d5..34a4b744e 100644
--- a/docs/document/v2/applet/qq.md
+++ b/docs/document/v2/applet/qq.md
@@ -6,7 +6,7 @@
 
 ### 注册环信账号
 
-开发者需要在环信管理后台 [注册并创建应用](/product/enable_and_configure_IM.html#创建应用),来获取唯一 appKey,SDK 初始化时需要配置 appKey。
+开发者需要在环信管理后台 [注册并创建应用](/document/v2/privatization/uc_configure.html#创建应用),来获取唯一 appKey,SDK 初始化时需要配置 appKey。
 
 ## 实现步骤
 
@@ -18,8 +18,8 @@
 
 小程序在发布前,需要配置合法域名。
 
-登录 QQ 小程序 [开发者平台](https://q.qq.com/),进入 “开发 > 开发设置” 页面配置以下服务器地址。
-
+登录 QQ 小程序 [开发者平台](https://q.qq.com/),进入 “开发 > 开发设置” 页面按私有部署文档中的 **2.2开通防火墙白名单** 配置各服务“地址:端口”。
+<!--
 :::tip
 request 合法域名:
 
@@ -53,7 +53,7 @@ socket 合法域名:
 应用所在数据中心可以在环信用户管理后台 > 应用信息中查看:
 
 ![img](@static/images/applet/console.jpeg)
-
+-->
 ### 说明
 
 QQ、微信小程序: 1.7.0 及以上版本,最多可以同时存在 5 个 WebSocket 连接,需开发者控制好连接数量,超出此限制 SDK 将不能连接上服务器。
@@ -64,8 +64,8 @@ QQ、微信小程序: 1.7.0 及以上版本,最多可以同时存在 5 个 W
 
 可以通过以下两种方式获取 SDK:
 
-- 通过官网 [下载 SDK](https://www.easemob.com/download/im)
-- 从环信的 [github 仓库](https://github.com/easemob/webim-weixin-xcx/tree/master/src/sdk) 中获取 SDK 中的文件
+<!--- 通过官网 [下载 SDK](https://www.easemob.com/download/im)-->
+- 从环信的 [github 仓库](https://github.com/easemob/webim-weixin-xcx) 中获取 SDK 中的文件
 
 #### 引入 SDK
 
diff --git a/docs/document/v2/applet/releasenote.md b/docs/document/v2/applet/releasenote.md
index 7927ddbe9..3e8dab1c8 100644
--- a/docs/document/v2/applet/releasenote.md
+++ b/docs/document/v2/applet/releasenote.md
@@ -100,19 +100,19 @@
 ### 新增特性
 
 - [IM SDK] 新增群组事件回调 [onGroupEvent](https://docs-im-beta.easemob.com/jsdoc/interfaces/Types.EventHandlerType.EventHandlerType.html#onGroupEvent) 和聊天室事件回调 [onChatroomEvent](https://docs-im-beta.easemob.com/jsdoc/interfaces/Types.EventHandlerType.EventHandlerType.html#onChatroomEvent)。原回调可继续使用;
-- [IM SDK] 新增群聊消息限流错误码 [MESSAGE_CURRENT_LIMITING](/document/web/error.html)
+- [IM SDK] 新增群聊消息限流错误码 [MESSAGE_CURRENT_LIMITING](/document/v2/web/error.html)
 - [IM SDK] 邀请加入群聊回调 `onGroupChange` 返回中新增 群名称 参数值。
 
 ### 优化
 
-- [IM SDK] 支持批量查询群组详情 [getGroupInfo](/document/web/group_manage.html#获取群组详情信息)。
+- [IM SDK] 支持批量查询群组详情 [getGroupInfo](/document/v2/web/group_manage.html#获取群组详情信息)。
 
 ## 版本 V4.0.7 2022-5-25
 
 ### 新增特性:
 
 - [IM SDK] 新增消息子区(message thread)功能;
-- [IM SDK] 新增 [getConversationList](/document/web/message_retrieve.html) 方法解析会话中的最新一条消息;
+- [IM SDK] 新增 [getConversationList](/document/v2/web/message_retrieve.html) 方法解析会话中的最新一条消息;
 
 ### 优化:
 
@@ -138,14 +138,10 @@
 
 ## 版本 V4.0.4 2022-4-19
 
-:::tip
-仅 V4.0.4 及以下版本支持私有化部署。
-:::
-
 ### 新增特性:
 
 - [IM SDK] 增加用户在线状态(Presence)订阅功能。
-- [IM SDK] 增加自动翻译接口。除了按需翻译,IM 实现自动翻译。
+
 
 ### 优化:
 
diff --git a/docs/document/v2/applet/serverconfig.md b/docs/document/v2/applet/serverconfig.md
index c17507370..540535ff5 100644
--- a/docs/document/v2/applet/serverconfig.md
+++ b/docs/document/v2/applet/serverconfig.md
@@ -25,13 +25,12 @@
 
 ![img](@static/images/applet/config5.png)
 
-7. 登陆环信后台获取 socket 域名,进入即时通讯-服务概览页,即可看到如图的域名展示。
+7. 按私有部署文档中的 **2.2开通防火墙白名单** 配置各服务“地址:端口”。。
 
 :::notice
 字节跳动小程序、QQ 小程序、百度小程序、uniapp 全平台等同微信小程序的域名一致,使用微信小程序栏的域名即可。
 :::
 
-![img](@static/images/applet/config6.png)
 
 8. 填写完域名信息之后,点击下面 “保存并提及” 按钮即可设置完成。
 
diff --git a/docs/document/v2/applet/uniapp.md b/docs/document/v2/applet/uniapp.md
index 668e372bf..c7212af39 100644
--- a/docs/document/v2/applet/uniapp.md
+++ b/docs/document/v2/applet/uniapp.md
@@ -17,7 +17,7 @@ SDK 目前支持微信、QQ、百度小程序、字节跳动(请使用低于 1
 :::notice
 
 - 小程序 Demo 只包含部分 IM 功能,详细参考 **功能说明**。
-- Uni-app Demo Git 源码地址 [https://github.com/easemob/webim-uniapp-demo](https://github.com/easemob/webim-uniapp-demo)
+- 下载Uni-app Demo 源码地址 [立即下载](https://downloadsdk.easemob.com/mp/downloads/sdk/private-uniapp-20230918.zip)
   :::
 
 ## 功能说明
@@ -32,7 +32,7 @@ SDK 目前支持微信、QQ、百度小程序、字节跳动(请使用低于 1
 
 ### 集成前准备
 
-[注册并创建应用](/product/enable_and_configure_IM.html#创建应用)
+[注册并创建应用](/document/v2/privatization/uc_configure.html#创建应用)
 
 ### 搭建开发环境
 
@@ -45,6 +45,7 @@ SDK 目前支持微信、QQ、百度小程序、字节跳动(请使用低于 1
 
 ### 配置服务器域名(以微信为例)
 
+<!--
 为满足不同客户的业务需求,环信在多地部署了数据中心。不同数据中心的 REST API 请求域名、WebSocket 访问域名不同。请根据您所在数据中心进行配置。
 
 环信不同数据中心的 REST API 请求域名、WebSocket 访问域名:
@@ -62,9 +63,9 @@ SDK 目前支持微信、QQ、百度小程序、字节跳动(请使用低于 1
 应用所在数据中心可以在环信用户管理后台>应用信息中查看:Console 中查看请求域名
 
 ![img](@static/images/applet/console.jpeg)
-
-登录 [微信公众平台](https://mp.weixin.qq.com/),进入 “开发 > 开发设置” 页面,配置以下服务器地址(其他平台小程序配置与微信一致):
-
+-->
+登录 [微信公众平台](https://mp.weixin.qq.com/),进入 “开发 > 开发设置” 页面,按私有部署文档中的 **2.2开通防火墙白名单** 配置各服务“地址:端口”。
+<!--
 :::tip
 request 合法域名,uploadFile 合法域名,downloadFile 合法域名
 
@@ -89,7 +90,7 @@ socket 合法域名:
 4. wss://im-api-alipay.easemob.com/websocket(支付宝小程序专用)
 5. wss://im-api-alipay-31.easemob.com/websocket(支付宝小程序专用)
    :::
-
+-->
 ### 各端小程序 WebSocket 连接数量
 
 - QQ、微信小程序: `**1.7.0**` 及以上版本,最多可以同时存在 **5** 个 WebSocket 连接
@@ -103,7 +104,7 @@ socket 合法域名:
 
 可以通过以下方式获取 SDK:
 
-- 从环信的 [github 仓库](https://github.com/easemob/webim-uniapp-demo/tree/master/newSDK) 中获取 SDK 中的文件,从 3.3.1 开始支持 uniapp。
+- 从环信的 [Demo包](https://downloadsdk.easemob.com/mp/downloads/sdk/private-uniapp-20230918.zip) 中获取 SDK 中的文件,从 3.3.1 开始支持 uniapp。
 
 #### 引入 SDK
 
diff --git a/docs/document/v2/applet/uniappnativeapp.md b/docs/document/v2/applet/uniappnativeapp.md
index a97da9d39..4247ac5ce 100644
--- a/docs/document/v2/applet/uniappnativeapp.md
+++ b/docs/document/v2/applet/uniappnativeapp.md
@@ -6,14 +6,9 @@
 
 ## 体验 IM 应用
 
-- 安卓: [https://www.pgyer.com/h4XF](https://www.pgyer.com/h4XF)
-- iOS: [https://www.pgyer.com/9ISC](https://www.pgyer.com/9ISC)
+- 小程序 Demo 只包含部分 IM 功能,详细参考 **功能说明**。
+- 下载Uni-app Demo 源码地址 [立即下载](https://downloadsdk.easemob.com/mp/downloads/sdk/private-uniapp-20230918.zip)
 
-:::notice
-
-- Demo 只包含部分 IM 功能,详细参考 **功能说明**
-- Uni-app Demo Git 源码地址 [https://github.com/easemob/webim-uniapp-demo](https://github.com/easemob/webim-uniapp-demo)
-  :::
 
 ## 功能说明
 
@@ -24,7 +19,7 @@
 
 ## 开发者集成
 
-[注册并创建应用](/product/enable_and_configure_IM.html#创建应用)
+[注册并创建应用](/document/v2/privatization/uc_configure.html#创建应用)
 
 ### 搭建 app 开发环境
 
@@ -82,7 +77,7 @@ WebIM.conn = new WebIM.connection({
 });
 ```
 
-IM 基本功能,请参考 [消息管理](/document/web/message_overview.html)。
+IM 基本功能,请参考 [消息管理](/document/v2/web/message_overview.html)。
 
 ## 打包发布
 
diff --git a/docs/document/v2/applet/wechat.md b/docs/document/v2/applet/wechat.md
index 7edbd9b61..2f2eb9e50 100644
--- a/docs/document/v2/applet/wechat.md
+++ b/docs/document/v2/applet/wechat.md
@@ -4,7 +4,7 @@
 
 ### 注册环信账号
 
-开发者需要在环信管理后台 [注册并创建应用](/product/enable_and_configure_IM.html#创建应用),来获取唯一 appKey,SDK 初始化时需要配置 appKey。
+开发者需要在环信管理后台 [注册并创建应用](/document/v2/privatization/uc_configure.html#创建应用),来获取唯一 appKey,SDK 初始化时需要配置 appKey。
 
 ### 搭建微信小程序开发环境
 
@@ -14,8 +14,8 @@
 
 小程序在发布前,需要配置合法域名。
 
-登录[微信公众平台](https://mp.weixin.qq.com/), 在开发设置页面配置以下服务器域名。
-
+登录[微信公众平台](https://mp.weixin.qq.com/), 在开发设置页面按私有部署文档中的 **2.2开通防火墙白名单** 配置各服务“地址:端口”。
+<!--
 :::tip
 request 合法域名:
 
@@ -68,15 +68,15 @@ downloadFile 合法域名:
 应用所在数据中心可以在环信用户管理后台>应用信息中查看:
 
 ![img](@static/images/applet/console.jpeg)
-
+-->
 ### 集成 SDK
 
 #### 下载 SDK
 
 可以通过以下两种方式获取 SDK:
 
-- 通过官网 [下载 SDK](https://www.easemob.com/download/im)
-- 从环信的 [github 仓库](https://github.com/easemob/webim-weixin-xcx/tree/master/src/sdk) 中获取 SDK 中的文件
+<!--- 通过官网 [下载 SDK](https://www.easemob.com/download/im)-->
+- 从环信的 [github 仓库](https://github.com/easemob/webim-weixin-xcx) 中获取 SDK 中的文件
 
 #### 引入 SDK
 
diff --git a/docs/document/v2/electron/appendix.md b/docs/document/v2/electron/appendix.md
new file mode 100644
index 000000000..08097e268
--- /dev/null
+++ b/docs/document/v2/electron/appendix.md
@@ -0,0 +1,53 @@
+# 附录
+
+文档中用到的结构体定义
+
+```
+Result
+{
+  code, //{Number} 0表示成功,其它值为失败
+  description //{String} code为非0值时,表示失败原因
+}
+ContactListResult
+{
+    code:result.errorCode, //{Number} 0表示成功,其它值为失败
+    description:result.description, //{String} code为非0值时有效,表示失败原因
+    data //{StringArray} 用户ID数组,code为0时有效,["ID1","ID2"]
+}
+GroupResult
+{
+    code:result.errorCode, //{Number} 0表示成功,其它值为失败
+    description:result.description, //{String} code为非0值时有效,表示失败原因
+    data //{StringArray} EMGroup对象,code为0时有效
+}
+GroupListResult
+{
+    code:result.errorCode, //{Number} 0表示成功,其它值为失败
+    description:result.description, //{String} code为非0值时有效,表示失败原因
+    data //{Array} EMGroup对象数组,code为0时有效
+}
+SharedFileResult
+{
+    code:result.errorCode, //{Number} 0表示成功,其它值为失败
+    description:result.description, //{String} code为非0值时有效,表示失败原因
+    data //{Object} EMMucSharedFile,code为0时有效
+}
+SharedFileListResult
+{
+    code:result.errorCode, //{Number} 0表示成功,其它值为失败
+    description:result.description, //{String} code为非0值时有效,表示失败原因
+    data //{Array} EMMucSharedFile对象数组,code为0时有效
+}
+AnnouncementResult
+{
+    code:result.errorCode, //{Number} 0表示成功,其它值为失败
+    description:result.description, //{String} code为非0值时有效,表示失败原因
+    data //{String} 群组公告内容,code为0时有效
+}
+MessageListResult
+{
+    code:result.errorCode, //{Number} 0表示成功,其它值为失败
+    description:result.description, //{String} code为非0值时有效,表示失败原因
+    data //{Array} EMMessage对象数组,code为0时有效
+}
+```
\ No newline at end of file
diff --git a/docs/document/v2/electron/chatmanage.md b/docs/document/v2/electron/chatmanage.md
new file mode 100644
index 000000000..cc5152285
--- /dev/null
+++ b/docs/document/v2/electron/chatmanage.md
@@ -0,0 +1,458 @@
+# 会话管理
+
+环信桌面端 SDK 支持会话管理的集成,集成后可以进行如下操作:
+
+- 会话处理
+
+- 获取消息
+
+- 消息处理
+
+通过这些操作,可以组合帮助您完成多种场景下的 IM 需求。
+
+会话管理模块为 EMChatManager,由 EMClient 模块加载时主动创建,可以使用 EMClient 模块的 getChatManager 方法获取,代码如下:
+
+```
+var chatManager = emclient.getChatManager();
+```
+
+------
+
+## 会话处理
+
+会话处理包含以下处理操作:
+
+- 获取会话列表
+
+- 根据 ID 获取会话
+
+- 删除会话
+
+- 获取会话属性
+
+- 会话属性扩展
+
+所有处理操作的示例下面会一一说明。
+
+------
+
+### 获取会话列表
+
+接口 API 如下:
+
+```
+/** 
+ * 获取会话列表
+ * return 返回会话列表,EMConversation 数组
+ */
+getConversations()
+```
+
+调用方法如下:
+
+```
+var convlist = chatManager.getConversations();
+```
+
+------
+
+### 根据 ID 获取会话
+
+根据会话 ID 获取会话,接口 API 如下:
+
+```
+/** 
+ * 获取会话
+ * param conversationId 会话 ID,输入参数,String
+ * param type 会话类型,输入参数,0为单聊,1为群聊
+ * return 会话,EMConversation
+ */
+conversationWithType(conversationId,type)
+```
+
+调用方法如下:
+
+```
+let conversationlist = chatManager.conversationWithType(conversationId,type);
+```
+
+------
+
+### 删除会话
+
+接口 API 如下:
+
+```
+/** 根据 ID 删除会话
+ * param conversationId 会话 ID,输入参数
+ * param isRemoveMessages 是否删除消息,ture 为删除
+ */
+removeConversation(conversationId,isRemoveMessages)
+```
+
+调用方法如下:
+
+```
+chatManager.removeConversation(conversationId,true);
+```
+
+------
+
+### 获取会话属性
+
+```
+// 获取会话 ID
+console.log("conversationId" + conversation.conversationId());
+// 获取会话类型,0为单聊,1为群聊
+console.log("conversationType" + conversation.conversationType());
+```
+
+------
+
+### 会话扩展属性
+
+接口 API 如下:
+
+```
+/** 
+ * 设置会话扩展属性
+ * param ext 扩展属性,String
+ */
+setExtField(strAttr)
+/** 
+ * 获取会话扩展属性
+ * return 扩展属性,String
+ */
+extField()
+```
+
+调用方法如下:
+
+```
+conversation.setExtField(ext);
+var strAttr = conversation.extField();
+```
+
+------
+
+## 获取消息
+
+获取消息包含以下处理操作:
+
+- 获取历史消息
+
+- 根据 ID 获取当前会话消息
+
+- 获取会话中的消息计数
+
+- 获取会话中的未读消息计数
+
+- 获取最新消息
+
+所有处理操作的示例下面会一一说明。
+
+------
+
+### 获取历史消息
+
+接口 API 如下:
+
+```
+/** 
+ * 分页获取历史消息,从服务器获取
+ * param conversationId 会话 ID,输入参数
+ * param type 会话类型,1为群组,0为单聊
+ * param pageSize 每页的消息计数
+ * param startMsgId 起始消息 ID
+ * return 返回 Promise 对象,response 参数为 MessageListResult
+ */
+chatManager.fetchHistoryMessages(conversationId, type, pageSize, startMsgId)
+```
+
+调用方法如下:
+
+```
+chatManager.fetchHistoryMessages(conversationId, type, pageSize, startMsgId).then((res) => {},(error) => {});
+```
+
+------
+
+### 根据 ID 获取当前会话消息
+
+根据消息 ID 获取当前会话消息,接口 API 如下:
+
+```
+/** 
+ * 根据消息 ID 获取消息
+ * param msgid 消息 ID
+ * return 未读消息计数
+ */
+loadMessage(msgid)
+```
+
+调用方法如下:
+
+```
+var msg = conversation.loadMessage(msgid);
+```
+
+------
+
+### 获取会话中的消息计数
+
+接口 API 如下:
+
+```
+/** 
+ * 获取会话中的消息计数
+ * return 消息计数,Number
+ */
+messagesCount()
+```
+
+调用方法如下:
+
+```
+var msgCount = conversation.messagesCount();
+```
+
+------
+
+### 获取会话中的未读消息计数
+
+接口 API 如下:
+
+```
+/** 
+ * 获取会话中的未读消息计数
+ * return 未读消息计数,Number
+ */
+unreadMessagesCount()
+```
+
+调用方法如下:
+
+```
+var unreaddMsgCount = conversation.unreadMessagesCount();
+```
+
+------
+
+### 获取最新一条消息
+
+接口 API 如下:
+
+```
+/** 
+ * 获取会话中的最新一条消息
+ * return EMMessage 消息对象
+ */
+latestMessage()
+```
+
+调用方法如下:
+
+```
+var msg = conversation.latestMessage();
+```
+
+------
+
+## 消息处理
+
+消息处理包含以下处理操作:
+
+- 插入消息
+
+- 添加消息
+
+- 修改消息
+
+- 加载会话消息
+
+- 删除会话消息
+
+- 清空会话消息
+
+- 下载图片、附件
+
+- 设置消息已读状态
+
+所有处理操作的示例下面会一一说明。
+
+------
+
+### 插入消息
+
+接口 API 如下:
+
+```
+/**
+  * 不发送消息,只是插入到本地,按照时间插入到本地数据库
+  * param messagelist 要插入的消息列表,EMMessage 数组
+  * return 返回操作结果,Bool
+*/
+insertMessages(messagelist);
+```
+
+调用方法如下:
+
+```
+chatManager.insertMessages(messagelist);
+```
+
+------
+
+### 添加消息
+
+接口 API 如下:
+
+```
+/**
+  * 在末尾添加一条消息
+  * param message 要插入的消息,EMMessage 对象
+  * return 返回操作结果,Bool
+*/
+appendMessage(message);
+```
+
+调用方法如下:
+
+```
+chatManager.appendMessage(message);
+```
+
+------
+
+### 修改消息
+
+接口 API 如下:
+
+```
+/**
+  * 修改一条消息,不能改变消息 ID
+  * param message 要插入的消息,EMMessage 对象
+  * return 返回操作结果,Bool
+*/
+updateMessage(message);
+```
+
+调用方法如下:
+
+```
+chatManager.updateMessage(message);
+```
+
+------
+
+### 加载会话消息
+
+接口 API 如下:
+
+```
+/** 
+ * 按照 ID 加载会话消息
+ * param refMsgId 起始消息 ID,输入参数,空为最新消息,String
+ * param count 加载的消息数,输入参数,Number
+ * param direction 消息加载方向填0
+ * return 返回为 EMMessage 数组
+ */
+loadMoreMessagesByMsgId(refMsgId, count, direction);
+
+/** 
+ * 按照时间加载会话消息
+ * param timeStamp 起始消息时间,输入参数
+ * param count 加载的消息数,输入参数
+ * param direction 消息加载方向,填0
+ * return 返回EMMessage数组
+ */
+conversation.loadMoreMessagesByTime(timeStamp, count, direction);
+```
+
+调用方法如下:
+
+```
+conversation.loadMoreMessagesByMsgId("", 20,0);
+conversation.loadMoreMessagesByTime(timeStamp, 20,0);
+```
+
+------
+
+### 删除会话消息
+
+接口 API 如下:
+
+```
+/** 
+ * 按照 ID 移除会话消息,只操作缓存和本地数据库
+ * param messageId 要删除的消息 ID
+ * return 返回操作结果,bool 型
+ */
+removeMessage(messageId)
+```
+
+调用方法如下:
+
+```
+conversation.removeMessage(messageId).then((res)=>{},(error) => {});
+```
+
+------
+
+### 清空会话消息
+
+接口 API 如下:
+
+```
+/** 
+ * 清空会话消息,只操作缓存和本地数据库
+ * return 返回操作结果,bool 型
+ */
+clearAllMessages()
+```
+
+调用方法如下:
+
+```
+conversation.clearAllMessages();
+```
+
+------
+
+### 下载图片、附件
+
+```
+// 下载附件消息,message 为 EMMessage 对象,可在 message 中设置回调
+chatManager.downloadMessageAttachments(message);
+// 下载图片缩略,message 为 EMMessage 对象,可在 message 中设置回调
+chatManager.downloadMessageThumbnail(message);
+```
+
+------
+
+### 设置消息已读状态
+
+接口 API 如下:
+
+```
+/** 
+ * 根据消息 ID 标记消息已读状态
+ * param msgid,消息 ID
+ * isread bool,已读状态
+ * return 返回操作结果,bool 型
+ */
+markMessageAsRead(msgid,isread);
+/** 
+ * 标记会话中所有消息的已读状态
+ * isread bool,已读状态
+ * return 返回操作结果,bool 型
+ */
+markAllMessagesAsRead(isread);
+```
+
+调用方法如下:
+
+```
+conversation.markMessageAsRead(msgid,isread);
+conversation.markAllMessagesAsRead(isread);
+```
\ No newline at end of file
diff --git a/docs/document/v2/electron/demo.md b/docs/document/v2/electron/demo.md
new file mode 100644
index 000000000..e5a62b9d7
--- /dev/null
+++ b/docs/document/v2/electron/demo.md
@@ -0,0 +1,6 @@
+# Demo 下载体验
+
+
+- [Windows Demo](https://download-sdk.oss-cn-beijing.aliyuncs.com/downloads/DesktopDemo.3.8.4.win.setup.exe)
+- [Mac Demo](https://download-sdk.oss-cn-beijing.aliyuncs.com/downloads/DesktopDemo.3.8.4.mac.dmg)
+- [Demo 源码](https://github.com/easemob/sdkdemoapp_windows/tree/electron)
\ No newline at end of file
diff --git a/docs/document/v2/electron/group_manage.md b/docs/document/v2/electron/group_manage.md
new file mode 100644
index 000000000..475423c5d
--- /dev/null
+++ b/docs/document/v2/electron/group_manage.md
@@ -0,0 +1,1018 @@
+# 群组管理
+
+环信桌面端 SDK 支持群组功能的集成,集成后可以进行如下操作:
+
+- 获取群组
+
+- 群组管理
+
+- 群成员管理
+
+- 加群处理
+
+- 群消息
+
+- 群文件
+
+- 群组变更的监听
+
+通过这些操作,可以组合帮助您完成多种场景下的 IM 需求。
+
+群组管理模块为 EMGroupManager ,由 EMClient 模块加载时主动创建,可以使用 EMClient 模块的 getGroupManager 方法获取,代码如下
+
+```
+var groupManager = emclient.getGroupManager();
+```
+
+------
+
+## 获取群组
+
+获取群组包含以下处理操作:
+
+- 本地获取群组
+
+- 服务器获取群组
+
+- ID 获取群组
+
+- 获取群组信息
+
+- 获取公开群组
+
+- 查找公开群组
+
+所有处理操作的示例下面会一一说明。
+
+------
+
+### 本地获取群组
+
+本地获取用户所在的所有群组,接口 API 如下:
+
+```
+/**  
+ * 本地获取用户所有的组
+ * return GroupListResult
+ */
+allMyGroups()
+```
+
+调用方法如下:
+
+```
+let res = groupManager.allMyGroups()
+```
+
+------
+
+### 服务器获取群组
+
+服务器获取用户所在的所有群组,接口 API 如下:
+
+```
+/**  
+ * 服务器获取用户所有的组
+ * return 返回 Promise 对象,response 参数为 GroupListResult
+ */
+fetchAllMyGroups()
+```
+
+调用方法如下:
+
+```
+groupManager.fetchAllMyGroups().then((res)=>{},(error) => {});
+```
+
+------
+
+### ID 获取群组
+
+根据 ID 获取群组
+
+```
+let group = groupManager.groupWithId(groupId);
+```
+
+------
+
+### 获取群组信息
+
+```
+// 获取组 ID
+console.log("group.groupId" + group.groupId());
+// 获取组名
+console.log("group.groupSubject" + group.groupSubject());
+// 获取组描述
+console.log("group.groupDescription" + group.groupDescription());
+// 获取群主
+console.log("group.groupOwner" + group.groupOwner());
+// 获取成员计数
+console.log("group.groupMembersCount" + group.groupMembersCount());
+// 获取群设置类型
+console.log("group.groupMemberType" + group.groupMemberType());
+// 获取群成员
+console.log("members:"+group.groupMembers().join(' || '));
+// 获取群设置对象
+var set = group.groupSetting();
+console.log("set.style() = " + set.style());
+console.log("set.maxUserCount() = " + set.maxUserCount());
+console.log("set.extension() = " + set.extension());
+```
+
+------
+
+### 获取公开群组
+
+接口 API 如下:
+
+```
+/**  
+ * 分页获取公开群组
+ * param pageNum 第几页,输入参数,Number,0表示不分页,获取所有公开组,1为分页起始
+ * param pageSize 每页计数,输入参数,Number,最大200
+ * return 返回 Promise 对象,response 参数为 GroupListResult
+ */
+fetchPublicGroupsWithPage(pageNum, pageSize);
+```
+
+调用方法如下:
+
+```
+groupManager.fetchPublicGroupsWithPage(1,20).then((res) => {
+  },(error) => {})
+```
+
+------
+
+### 查找公开群组
+
+接口 API 如下:
+
+```
+/**  
+ * 根据群 ID 查找公开群
+ * param1 groupId 群组 ID,输入参数,String
+ * return 返回 Promise 对象,response 参数为 GroupResult
+ */
+searchPublicGroup(groupId);
+```
+
+调用方法如下:
+
+```
+groupManager.searchPublicGroup(groupId).then((res) => {
+  },(error) => {})
+```
+
+------
+
+## 群组管理
+
+群组管理包含以下处理操作:
+
+- 创建群组
+
+- 解散群组
+
+- 退出群组
+
+- 转移群组
+
+- 修改群信息
+
+- 群组公告管理
+
+所有处理操作的示例下面会一一说明。
+
+------
+
+### 创建群组
+
+创建群组时,需要先实例化一个群组设置对象,然后创建群组。实例化群组设置接口 API 如下:
+
+```
+/**  
+ * 实例化区群组设置
+ * param style 组类型, Number ,0为私有群,只有群主可以邀请成员加入,1为私有群,成员也可以邀请成员加入,2为公开群,但申请入群需要群主同意,3为公开群,成员可以随意申请加入
+ * param maxUserCount 最大成员数, Number ,最大200
+ * param inviteNeedConfirm 邀请是否需要确认,Bool
+ * param extension 扩展信息,String
+ * return 返回组设置对象
+ */
+EMMucSetting(style, maxUserCount, inviteNeedConfirm, extension)
+```
+
+调用方法如下:
+
+```
+var setting = new easemob.EMMucSetting(1, 20, false, "test");
+```
+
+创建群组接口 API 如下:
+
+```
+/** 
+  * 创建群组 api
+  * param subject 群组名称,输入参数,String
+  * param description 群组描述,输入参数,String
+  * param welcomeMessage 欢迎信息,输入参数,String
+  * param setting 群组设置,输入参数,Object
+  * param members 群组初始成员,输入参数,StringArray
+  * return 返回 Promise 对象,response 参数为 GroupResult
+  */
+createGroup(subject, description, welcomeMessage, setting, members)
+```
+
+调用方法如下:
+
+```
+groupManager.createGroup("subject","description","welcome message",setting,["jwfan1", "jwfan2"]).then((res) => {},(error) => {})
+```
+
+------
+
+### 解散群组
+
+接口 API 如下:
+
+```
+/**  
+ * 解散群组 api
+ * param groupId 组 ID,输入参数
+ * return 返回 Promise 对象,response 参数为 Result
+ */
+destroyGroup(groupId);
+```
+
+调用方法如下:
+
+```
+groupManager.destroyGroup("55139673112577").then((res)=>{},(error) => {})
+```
+
+------
+
+### 退出群组
+
+接口 API 如下:
+
+```
+/** 
+ *  成员主动退出群组
+ * param groupId 群组 ID,输入参数,String
+ * 返回 Promise 对象,response 参数为 Result
+ */
+leaveGroup(groupId)
+```
+
+调用方法如下:
+
+```
+groupManager.leaveGroup(groupId).then((res)=>{},(error) => {})
+```
+
+------
+
+### 转移群组
+
+接口 API 如下:
+
+```
+/**  
+ * 转移群主,只有群主能操作
+ * param groupId 群组ID,输入参数,String
+ * param member 新群主用户名,输入参数,String
+ * return 返回 Promise 对象,response 参数为 GroupResult
+ */
+transferGroupOwner(groupId, member)
+```
+
+调用方法如下:
+
+```
+groupManager.transferGroupOwner(groupId, member).then((res) =>{},(error) => {});
+```
+
+------
+
+### 修改群组信息
+
+接口 API 如下:
+
+```
+/**  
+ * 修改群标题
+ * param groupId 群组 ID ,输入参数,String
+ * param newSubject 群组新组名,输入参数,String
+ * return 返回 Promise对象,response 参数为 GroupResult
+ */
+groupManager.changeGroupSubject(groupId, newSubject);
+
+
+/** 
+ *  修改群描述
+ * param groupId 群组 ID,输入参数,String
+ * param newDescription 群组新描述,输入参数,String
+ * return 返回 Promise 对象,response 参数为 GroupResult
+ */
+changeGroupDescription(groupId, newDescription)
+```
+
+调用方法如下:
+
+```
+groupManager.changeGroupSubject(groupId, "new Subject", error).then((res) =>{},(error) => {});
+groupManager.changeGroupDescription(groupId, "new Description", error).then((res) =>{},(error) => {});
+```
+
+------
+
+### 群组公告管理
+
+接口 API 如下:
+
+```
+/**  
+ * 设置群组公告
+ * param groupId 群组 ID,输入参数,String
+ * param announcement 群组公告,输入参数,String
+ * return 返回 Promise 对象,response 参数为 GroupResult
+ */
+updateGroupAnnouncement(groupId, announcement,error)
+
+/**  
+ * 获取群组公告
+ * param groupId 群组 ID,输入参数,String
+ * return 返回 Promise 对象,response 参数为 AnnouncementResult
+ */
+fetchGroupAnnouncement(groupId)
+```
+
+调用方法如下:
+
+```
+groupManager.fetchGroupAnnouncement(groupId).then((res) =>{},(error) => {}); groupManager.updateGroupAnnouncement(groupId, "new announcement").then((res) =>{},(error) => {});
+```
+
+------
+
+## 群成员管理
+
+群成员管理包含以下处理操作:
+
+- 群成员邀请
+
+- 群成员移除
+
+- 添加管理员
+
+- 删除管理员
+
+- 获取禁言成员列表
+
+- 成员禁言
+
+- 取消成员禁言
+
+- 加入群组黑名单
+
+- 从群组黑名单移除
+
+所有处理操作的示例下面会一一说明。
+
+------
+
+### 群成员邀请
+
+接口 API 如下:
+
+```
+/**  
+ * 邀请成员入群,一次可邀请多个成员
+ * param groupId 群组 ID,输入参数,String
+ * param members 邀请的成员,输入参数,StringArray,["ID1","ID2"]
+ * param welcomeMessage 欢迎信息,输入参数,String
+ * 返回 Promise 对象,response 参数为 GroupResult
+ */
+addGroupMembers(groupId, members, welcomeMessage);
+```
+
+调用方法如下:
+
+```
+groupManager.addGroupMembers(groupId, ["jwfan3", "jwfan4"], "hahaha").then((res)=>{},(error) => {})
+```
+
+------
+
+### 群成员移除
+
+接口 API 如下:
+
+```
+/** 
+ *  将成员踢出群,同样可踢出多人
+ * param groupId 群组ID,输入参数,String
+ * param members 踢出的成员,输入参数,StringArray,["ID1","ID2"]
+ * 返回 Promise 对象,response 参数为 Result
+ */
+removeGroupMembers(groupId, members, error);
+```
+
+调用方法如下:
+
+```
+groupManager.removeGroupMembers(groupId, ["jwfan3", "jwfan4"]).then((res)=>{},(error) => {})
+```
+
+------
+
+### 添加管理员
+
+接口 API 如下:
+
+```
+/**  
+ * 将普通群成员提升为管理员
+ * param groupId 群组 ID,输入参数,String
+ * param member 成员用户名,输入参数,String
+ * return 返回 Promise 对象,response 参数为 GroupResult
+ */
+addGroupAdmin(groupId, member)
+```
+
+调用方法如下:
+
+```
+groupManager.addGroupAdmin(groupId, member).then((res) =>{},(error) => {});
+```
+
+------
+
+### 删除管理员
+
+接口 API 如下:
+
+```
+/**  
+ * 将管理员降级为普通成员
+ * param groupId 群组ID,输入参数,String
+ * param member 管理员用户名,输入参数,String
+ * return 返回 Promise 对象,response 参数为 GroupResult
+ */
+removeGroupAdmin(groupId, member)
+```
+
+调用方法如下:
+
+```
+groupManager.removeGroupAdmin(groupId, member).then((res) =>{},(error) => {});
+```
+
+------
+
+### 获取禁言列表
+
+接口API如下:
+
+```
+/**  
+ * 获取禁言列表
+ * param groupId 群组 ID,输入参数,String
+ * param pageNum 第几页,输入参数,Number,1为起始页
+ * param pageSize 每页计数,输入参数,Number,最大200
+ * return 返回 Promise 对象,response 参数为 GroupResult
+ */
+fetchGroupMutes(groupId, pageNum, pageSize)
+```
+
+------
+
+### 群组禁言
+
+接口API如下:
+
+```
+/**  
+ * 将成员加入禁言列表,被禁言的成员无法在群组内发消息
+ * param {String} groupId 群组ID,输入参数,String
+ * param {Array} members 成员列表,输入参数,String 数组
+ * param {Number} muteDuration 禁言时间,单位毫秒
+ * return 返回 Promise 对象,response 参数为 GroupResult
+ */
+muteGroupMembers(groupId,members,muteDuration)
+```
+
+------
+
+### 取消禁言
+
+接口API如下:
+
+```
+/**  
+ * 将成员从禁言列表移除
+ * param {String} groupId 群组ID,输入参数,String
+ * param {Array} members 成员列表,输入参数,String 数组
+ * return 返回 Promise 对象,response 参数为 GroupResult
+ */
+unmuteGroupMembers(groupId,members)
+```
+
+------
+
+### 获取群组黑名单列表
+
+接口 API 如下:
+
+```
+/**  
+ * 分页获取群组黑名单列表
+ * param groupId 群组 ID,输入参数,String
+ * param pageNum 第几页,输入参数,Number,1为起始页
+ * param pageSize 每页计数,输入参数,Number,最大200
+ * return 返回 Promise 对象,response 参数为 GroupListResult
+ */
+fetchGroupBans(groupId,pageNum, pageSize)
+```
+
+调用方法如下:
+
+```
+groupManager.fetchGroupBans(groupId, 1, 20).then((res) =>{},(error) => {});
+```
+
+------
+
+### 加入群组黑名单
+
+接口 API 如下:
+
+```
+/**  
+ * 将成员加入群组黑名单,黑名单中的人员无法加入群组
+ * param groupId 群组ID,输入参数,String
+ * param members 成员列表,输入参数,String 数组
+ * param reason 加入黑名单原因,输入参数,String
+ * return 返回 Promise 对象,response 参数为 GroupResult
+ */
+blockGroupMembers(groupId,members,reason)
+```
+
+调用方法如下:
+
+```
+groupManager.blockGroupMembers(groupId, members, "reason").then((res) =>{},(error) => {});
+```
+
+------
+
+### 从群组黑名单移除
+
+接口 API 如下:
+
+```
+/**  
+ * 将人员从群组黑名单移除
+ * param groupId 群组 ID,输入参数,String
+ * param members 成员列表,输入参数,StringArray
+ * return 返回 Promise 对象,response 参数为 GroupResult
+ */
+unblockGroupMembers(groupId, members)
+```
+
+调用方法如下:
+
+```
+groupManager.unblockGroupMembers(groupId, members).then((res) =>{},(error) => {});
+```
+
+------
+
+## 加群处理
+
+加群处理包含以下处理操作:
+
+- 加入公开群组
+
+- 申请加入公开群组
+
+- 接受群邀请
+
+- 拒绝群邀请
+
+- 接受入群申请
+
+- 拒绝入群申请
+
+所有处理操作的示例下面会一一说明。
+
+------
+
+### 加入公开群组
+
+接口 API 如下:
+
+```
+/** 
+ *  加入 PUBLIC_JOIN_OPEN 类型公开群组
+ * param groupId 群组 ID,输入参数,String
+ * return 返回 Promise 对象,response 参数为 GroupResult
+ */
+joinPublicGroup(groupId,error)
+```
+
+调用方法如下:
+
+```
+groupManager.joinPublicGroup(groupId,error).then((res) =>{},(error) => {});
+```
+
+------
+
+### 申请加入公开群组
+
+接口 API 如下:
+
+```
+/** 
+ *  申请加入 applyJoinPublicGroup 类型公开群组,需要群主或管理员同意
+ * param groupId 群组 ID,输入参数,String
+ * param nickname 用户在群内的昵称,String
+ * return 返回 Promise 对象,response 参数为 GroupResult
+ */
+applyJoinPublicGroup(groupId,nickname,message)
+```
+
+调用方法如下:
+
+```
+groupManager.applyJoinPublicGroup(groupId,nickname,message).then((res) =>{},(error) => {});
+```
+
+------
+
+### 接受群邀请
+
+接口 API 如下:
+
+```
+/**  
+ * 接受群组发来的入群邀请
+ * param groupId 群组ID,输入参数,String
+ * param inviter 邀请人,输入参数,String
+ * return 返回 Promise 对象,response 参数为 GroupResult
+ */
+acceptInvitationFromGroup(groupId,inviter)
+```
+
+调用方法如下:
+
+```
+groupManager.acceptInvitationFromGroup(groupId,inviter).then((res) =>{},(error) => {});
+```
+
+### 拒绝群邀请
+
+接口 API 如下:
+
+```
+/**  
+ * 拒绝群组发来的入群邀请
+ * param groupId 群组 ID,输入参数,String
+ * param inviter 邀请人,输入参数,String
+ * return 返回 Promise 对象,response 参数为 GroupResult
+ */
+declineInvitationFromGroup(groupId,inviter)
+```
+
+调用方法如下:
+
+```
+groupManager.declineInvitationFromGroup(groupId,inviter).then((res) =>{},(error) => {});
+```
+
+------
+
+### 接受加入群申请
+
+接口 API 如下:
+
+```
+/**  
+ * 同意成员的入群邀请,由群主操作
+ * param groupId 群组ID,输入参数,String
+ * param from 入群申请人,输入参数,String
+ * return 返回 Promise 对象,response 参数为 GroupResult
+ */
+acceptJoinGroupApplication(groupId,from)
+```
+
+调用方法如下:
+
+```
+groupManager.acceptJoinGroupApplication(groupId,from).then((res) =>{},(error) => {});
+```
+
+------
+
+### 拒绝加入群申请
+
+接口 API 如下:
+
+```
+/**  
+ * 拒绝成员的入群邀请,由群主操作
+ * param groupId 群组 ID,输入参数,String
+ * param from 入群申请人,输入参数,String
+ * param reason 拒绝原因,输入参数,String
+ * return 返回 Promise 对象,response 参数为 GroupResult
+ */
+declineJoinGroupApplication(groupId,from,reason)
+```
+
+调用方法如下:
+
+```
+groupManager.declineJoinGroupApplication(groupId,from,"decline reason").then((res) =>{},(error) => {});
+```
+
+------
+
+## 群消息
+
+群消息包含以下处理操作:
+
+- 屏蔽群组消息
+
+- 取消屏蔽群组消息
+
+所有处理操作的示例下面会一一说明。
+
+------
+
+### 屏蔽群组消息
+
+接口 API 如下:
+
+```
+/**  
+ * 屏蔽群组消息
+ * param groupId 群组ID,输入参数,String
+ * return 返回 Promise 对象,response 参数为 GroupResult
+ */
+blockGroupMessage(groupId)
+```
+
+调用方法如下:
+
+```
+groupManager.blockGroupMessage(groupId).then((res) =>{},(error) => {});
+```
+
+------
+
+### 取消屏蔽群组消息
+
+接口 API 如下:
+
+```
+/**  
+ * 取消屏蔽群组消息
+ * param groupId 群组 ID,输入参数,String
+ * return 返回 Promise 对象,response 参数为GroupResult
+ */
+unblockGroupMessage(groupId)
+```
+
+调用方法如下:
+
+```
+groupManager.unblockGroupMessage(groupId).then((res) =>{},(error) => {});
+```
+
+------
+
+## 群文件
+
+群文件包含以下处理操作:
+
+- 获取群文件列表
+
+- 上传群文件
+
+- 下载群文件
+
+- 删除群文件
+
+所有处理操作的示例下面会一一说明。
+
+------
+
+### 获取群文件列表
+
+接口 API 如下:
+
+```
+/**  
+ * 分页获取群文件列表
+ * param groupId 群组ID,输入参数,String
+ * param pageNum 当前页数,从1开始
+ * param pageSize 每页计数,最大200
+ * return 返回 Promise 对象,response 参数为 SharedFileListResult
+ */
+fetchGroupSharedFiles(groupId, pageNum, pageSize)
+```
+
+调用方法如下:
+
+```
+groupManager.fetchGroupSharedFiles(groupId, 1, 20).then((res) => {},(error) => {});
+```
+
+------
+
+### 上传群文件
+
+上传群文件过程中,需要使用回调监控上传进度及结果
+
+```
+// 设置回调函数显示上传进度和结果
+var emUploadCallback = new easemob.EMCallback();
+console.log("create upload emCallback success");
+
+// 上传成功
+emUploadCallback.onSuccess(() => {
+    console.log("upload emCallback call back success");
+    return true;
+});
+// 上传失败
+emUploadCallback.onFail((error) => {
+    console.log("upload emCallback call back fail");
+    console.log(error.description);
+    console.log(error.errorCode);
+    return true;
+});
+// 上传进度
+emUploadCallback.onProgress((progress) => {
+    if (progress >= 98) {
+        console.log("upload call back progress " + progress);
+    }
+});
+```
+
+接口 API 如下:
+
+```
+/**  
+ * 上传群文件
+ * param groupId 群组 ID,输入参数,String
+ * param filepath 文件路径,输入参数,String
+ * param emUploadCallback 设置回调,输入
+ * 返回 Promise 对象,response 参数为 SharedFileResult
+ */
+uploadGroupSharedFile(groupId, filepath, emUploadCallback)
+```
+
+调用方法如下:
+
+```
+groupManager.uploadGroupSharedFile(groupId, filepath, emUploadCallback).then((res) => {},(error) => {});
+```
+
+------
+
+### 下载群文件
+
+下载群文件过程中需要使用回调监控下载进度及结果
+
+```
+var emDownloadCallback = new easemob.EMCallback();
+console.log("create download emCallback success");
+
+// 下载成功
+emDownloadCallback.onSuccess(() => {
+    console.log("download emCallback call back success");
+    return true;
+});
+// 下载失败
+emDownloadCallback.onFail((error) => {
+    console.log("download emCallback call back fail");
+    console.log(error.description);
+    console.log(error.errorCode);
+    return true;
+});
+// 下载进度
+emDownloadCallback.onProgress((progress) => {
+    if (progress >= 98) {
+        console.log("download call back progress " + progress);
+    }
+});
+```
+
+接口 API 如下:
+
+```
+/**  
+ * 下载群文件
+ * param groupId 群组 ID,输入参数,String
+ * param filePath 文件本地存储路径,输入参数,String
+ * param fileId 文件 ID,输入参数,由文件列表数组获取
+ * param callback 设置回调,输入
+ * return 返回 Promise 对象,response 参数为 GroupResult
+ */
+downloadGroupSharedFile(groupId, filePath, fileId, callback)
+```
+
+调用方法如下:
+
+```
+let fileId = sharedFile.fileId();
+groupManager.downloadGroupSharedFile(groupid, filelocalpath, fileId, emDownloadCallback);
+```
+
+------
+
+### 删除群文件
+
+接口 API 如下:
+
+```
+/**  
+ * 删除群文件
+ * param groupId 群组 ID,输入参数,String
+ * param fileId 文件 ID,输入参数,由文件列表获取
+ * return 返回 Promise 对象,response 参数为 GroupResult
+ */
+deleteGroupSharedFile(groupId, fileId)
+```
+
+调用方法如下:
+
+```
+let fileId = sharedFile.fileId();
+groupManager.deleteGroupSharedFile(groupId, fileId).then((res) =>{},(error) => {});
+```
+
+------
+
+## 群组变更的监听
+
+```
+groupManager = emclient.getGroupManager();
+groupListener = new easemob.EMGroupManagerListener(groupManager);
+// 添加群管理员时触发(只有是自己时才能收到通知)
+// group : 发生操作的群组
+// admin : 被提升的群管理员
+groupListener.onAddAdminFromGroup((groupId, admin) => {
+    console.log("onAddAdminFromGroup:"+groupId+" admin:"+admin);
+});
+
+// 删除群管理员时触发(只有是自己时才能收到通知)
+// group : 发生操作的群组
+// admin : 被删除的群管理员(群管理员变成普通群成员)
+groupListener.onRemoveAdminFromGroup((groupId, admin) => {
+    console.log("onRemoveAdminFromGroup:"+groupId+" admin:"+admin);
+});
+
+// 转让群主的时候触发
+// group : 发生操作的群组
+// newOwner : 新群主
+// oldOwner : 原群主
+groupListener.onAssignOwnerFromGroup((groupId, newOwner, oldOwner) => {
+    console.log("onAssignOwnerFromGroup:"+groupId+" newOwner:"+newOwner + " oldOwner:" + oldOwner);
+});
+
+// 我接收到自动进群时被触发
+// group : 发生操作的群组
+// inviter : 邀请人
+// inviteMessage : 邀请信息
+groupListener.onAutoAcceptInvitationFromGroup((groupId, inviter, inviteMessage)=>{
+    console.log("onAutoAcceptInvitationFromGroup:"+groupId+" inviter:"+inviter + " inviteMessage:" + inviteMessage);
+    });
+
+// 成员加入群组时触发
+// group : 发生操作的群组
+// member : 加入群组的成员名称
+groupListener.onMemberJoinedGroup((groupId, member)=>{
+    console.log("onMemberJoinedGroup:"+groupId+" member:"+member);
+});
+
+// 成员离开群组时触发
+// group : 发生操作的群组
+// member : 离开群组的成员名称
+groupListener.onMemberLeftGroup((groupId, member)=>{
+    console.log("onMemberLeftGroup:"+groupId+" member:"+member);
+});
+
+// 离开群组时触发
+// group : 发生操作的群组
+// reason : 离开群组的原因(0: 被踢出 1:群组解散 2:被服务器下线)
+groupListener.onLeaveGroup((groupId, reason)=>{
+    console.log("onLeaveGroup:"+groupId+" reason:"+reason);
+});
+groupManager.addListener(groupListener);
+// 移除监听
+groupManager.removeListener(groupListener);
+```
\ No newline at end of file
diff --git a/docs/document/v2/electron/message.md b/docs/document/v2/electron/message.md
new file mode 100644
index 000000000..c00b2af77
--- /dev/null
+++ b/docs/document/v2/electron/message.md
@@ -0,0 +1,257 @@
+# 消息管理
+
+消息是桌面端集成中最重要的功能之一,消息的使用方法主要为 :
+
+- 发送消息
+
+- 接受消息
+
+同时对于发送不超过2分钟的消息,允许主动撤回。
+
+通过对消息的集成,您可以最快速的集成体验 IM 收发消息的流畅体验。
+
+------
+
+## 发送消息
+
+发送消息类型主要有以下几种:
+
+- 文本消息
+
+- 文件消息
+
+- 图片消息
+
+- CMD 消息
+- 自定义 消息
+
+- 位置消息
+
+通过这些操作,可以组合帮助您完成多种场景下的 IM 需求。
+
+发送文本、文件、图片等消息(单聊/群聊通用)。完整的消息发送过程,包括创建消息体,创建消息,设置属性,设置回调,然后发送消息,不同的消息类型只是在创建消息体过程不同,其他步骤一样。
+
+------
+
+### 发送文本消息
+
+```
+/** 
+ * 创建文本消息体
+ * param1 文本消息正文,输入参数,String
+ * return 消息体 EMTextMessageBody
+ */
+var textMsgBody = new easemob.EMTextMessageBody("wahhahahaha");
+/** 
+ * 创建消息
+ * param1 发送者用户名,输入参数
+ * param2 目的端,会话 ID,输入参数
+ * param3 消息体 EMTextMessageBody
+ * return 消息 EMMessage
+ */
+var textSendMsg = easemob.createSendMessage("jwfan", "jwfan1", textMsgBody);
+// 消息可以设置扩展属性,用户界面可通过自定义属性,实现自定义等功能
+textSendMsg.setAttribute("data", 120);
+data = textSendMsg.getAttribute("data");
+// 设置消息类型,0为单聊,1为群聊,2为聊天室
+textSendMsg.setChatType(0);
+// 设置回调
+var emCallback = new easemob.EMCallback();
+emCallback.onSuccess(() => {
+    console.log("emCallback call back success");
+    if(me.cfr){
+        console.log(sendMessage);
+        console.log(sendMessage.msgId());
+        return true;
+    });
+    emCallback.onFail((error) => {
+        console.log("emCallback call back fail");
+        console.log(error.description);
+        console.log(error.errorCode);
+        return true;
+    });
+    emCallback.onProgress((progress) => {
+        console.log(progress);
+        console.log("call back progress");
+    });
+sendMessage.setCallback(emCallback);
+// 发送消息
+chatManager.sendMessage(textMsg);
+```
+
+------
+
+### 发送文件
+
+```
+/** 
+ * 创建文件消息体
+ * param1 文件路径,输入参数,String
+ * return 消息体 EMFileMessageBody
+ */
+var fileMsgBody = new easemob.EMFileMessageBody("/Users/jiangwei/Code/fanjiangwei7/emclient-linux/testapp/file.txt");
+// 创建消息
+var fileMsg = easemob.createSendMessage("jwfan", "jwfan1", fileMsgBody);
+//setCallback(callback) 设置消息回调函数,通过回调函数显示消息发送成功失败,以及附件上传百分比
+//callback easemob.EMCallback的实例,设置onSuccess、onFail和onProgress三个回调函数。
+fileMsg.setCallback(emCallback);
+chatManager.sendMessage(fileMsg);
+```
+
+------
+
+### 发送图片
+
+```
+/** 
+ * 创建图片消息体
+ * param1 图片文件路径,输入参数,String
+ * param2 图片缩略图路径,输入参数
+ * return 消息体EMFileMessageBody
+ */
+var imageMsgBody = new easemob.EMImageMessageBody('/Users/jiangwei/Code/fanjiangwei7/emclient-linux/testapp/image_960x718.jpg', '/Users/jiangwei/Code/fanjiangwei7/emclient-linux/testapp/thumb_image.jpg');
+var imageMsg = easemob.createSendMessage("jwfan", "jwfan1", imageMsgBody);
+imageMsg.setCallback(emCallback);
+chatManager.sendMessage(imageMsg);
+```
+
+------
+
+### 发送 CMD 消息
+
+```
+var cmdMsgBody = new easemob.EMCmdMessageBody("action");
+console.log("cmdMsgBody.type() = " + cmdMsgBody.type());
+
+console.log("cmdMsgBody.action() = " + cmdMsgBody.action());
+cmdMsgBody.setAction("displayName");
+console.log("cmdMsgBody.action() = " + cmdMsgBody.action());
+
+var obj1 = {"key" : "1", "value" : "1"};
+var obj2 = {"key" : "2", "value" : "2"};
+console.log("cmdMsgBody.params() = " + cmdMsgBody.params());
+cmdMsgBody.setParams([obj1, obj2]);
+var cmdMsg = easemob.createSendMessage("jwfan", "jwfan1", cmdMsgBody);
+chatManager.sendMessage(cmdMsg);
+```
+
+------
+
+### 发送 自定义 消息
+
+自定义消息包括消息event和消息扩展exts,构造及发送过程如下
+
+```
+let customMsgBody = new easemob.EMCustomMessageBody("userCard");
+customMsgBody.setExts({'avatar':'https://download-sdk.oss-cn-beijing.aliyuncs.com/downloads/IMDemo/avatar/Image5.png','nickname':'xiaoming','uid':'uid'});
+let customMsg = easemob.createSendMessage('lxm9','lxm',customMsgBody);
+chatManager.sendMessage(customMsg);
+```
+
+------
+
+### 位置消息
+
+```
+/** 
+ * 创建位置消息体
+ * param1 位置经度,输入参数,String
+ * param2 位置纬度,输入参数
+ * param3 地址,输入参数
+ * return 消息体EMFileMessageBody
+ */
+var locationMsgBody = new easemob.EMLocationMessageBody(123.45, 35.67, 'USA');
+console.log("locationMsgBody.type() = " + locationMsgBody.type());
+console.log("locationMsgBody.latitude() = " + locationMsgBody.latitude());
+console.log("locationMsgBody.longitude() = " + locationMsgBody.longitude());
+console.log("locationMsgBody.address() = " + locationMsgBody.address());
+locationMsgBody.setLatitude(87.87);
+locationMsgBody.setLongitude(45.45);
+locationMsgBody.setAddress('china');
+var locationMsg = easemob.createSendMessage("jwfan", "jwfan1", locationMsgBody);
+chatManager.sendMessage(locationMsg);
+```
+
+------
+
+## 撤回消息
+
+默认发送两分钟内的消息可以撤回,撤回使用recallMessage接口
+
+```
+/** 
+ * 撤回消息
+ * param msg {EMMessage} 要撤回的消息
+ */
+chatManager.recallMessage(msg);
+```
+
+------
+
+## 接收消息
+
+接收消息在会话管理中通过设置回调函数实现,在回调函数中处理
+
+```
+// 实例化监听回调,并添加到client
+chatManager = emclient.getChatManager();
+listener = new easemob.EMChatManagerListener();
+chatManager.addListener(listener);
+
+// 收到会话消息
+listener.onReceiveMessages((messages) => {
+    console.log("onReceiveMessages messages.length = " + messages.length);
+    for (var index = 0, len = messages.length; index < len; index++) {
+    var msg = messages[index];
+    var bodies = msg.bodies();
+    console.log("bodies.length = " + bodies.length);
+    var body = bodies[0];
+    var type = body.type();
+    console.log("msg.from() = " + msg.from());
+    console.log("msg.to() = " + msg.to());
+    console.log("body.type() = " + type);
+    if (type == 0) {    //text message
+      console.log("body.text() = " + body.text());
+    } else if (type == 1) {     //image message
+      console.log("body.displayName() = " + body.displayName());
+      console.log("body.localPath() = " + body.localPath());
+      chatManager.downloadMessageAttachments(msg);
+      chatManager.downloadMessageThumbnail(msg);
+    } else if (type == 5) {     //file message
+      console.log("body.displayName() = " + body.displayName());
+      console.log("body.localPath() = " + body.localPath());
+      chatManager.downloadMessageAttachments(msg);
+    }
+});
+// 收到命令消息
+listener.onReceiveCmdMessages ((messages) => {
+  for (var index = 0, len = messages.length; index < len; index++) {
+  var msg = messages[index];
+  var bodies = msg.bodies();
+  console.log("bodies.length = " + bodies.length);
+  var body = bodies[0];
+  var type = body.type();
+  console.log("msg.from() = " + msg.from());
+  console.log("msg.to() = " + msg.to());
+  console.log("msg.type() = " + type);
+  console.log("body.action() = " + body.action());
+  var params = cmdMsgBody.params()
+  console.log("cmdMsgBody.params().length = " + params.length);
+  if (params.length > 0) {
+    console.log("cmdMsgBody.params()[0] = " + JSON.stringify(params[0]));
+  }
+}
+});
+
+// 收到消息撤回
+listener.onReceiveRecallMessages ((message) => {
+  console.log("onReceiveRecallMessages messages.length = " + messages.length);
+  for (var index = 0, len = messages.length; index < len; index++) {
+  var message = messages[index];
+  console.log("message.msgId() = " + message.msgId());
+  console.log("message.from() = " + message.from());
+  console.log("message.to() = " + message.to());
+} 
+});
+// addListener(listener) 添加消息回调监听,从监听中获取接收消息。
+```
\ No newline at end of file
diff --git a/docs/document/v2/electron/multi_device.md b/docs/document/v2/electron/multi_device.md
new file mode 100644
index 000000000..9012368e0
--- /dev/null
+++ b/docs/document/v2/electron/multi_device.md
@@ -0,0 +1,23 @@
+# 多设备管理监听
+
+当同一账号同时使用桌面端,移动端登录时,需要使用多设备管理监听事件,使用回调实现
+
+```
+// 实例化监听,并添加到客户端
+var listener = new easemob.EMMultiDevicesListener();
+emclient.addMultiDevicesListener(listener);
+
+// 设置回调
+// 收到其他设备的会话操作
+listener.onContactMultiDevicesEvent((operation, target, ext) => {
+  console.log('operation = ' + operation);
+  console.log('target = ' + target);
+  console.log('ext = ' + ext);
+});
+// 收到其他设备的组操作
+listener.onGroupMultiDevicesEvent((operation, target, usernames) => {
+  console.log('operation = ' + operation);
+  console.log('target = ' + target);
+  console.log('usernames = ' + usernames);
+});
+```
\ No newline at end of file
diff --git a/docs/document/v2/electron/overview.md b/docs/document/v2/electron/overview.md
new file mode 100644
index 000000000..800f8b9d6
--- /dev/null
+++ b/docs/document/v2/electron/overview.md
@@ -0,0 +1,152 @@
+# 集成概述说明
+
+桌面端 SDK 为用户在 Windows/Mac OS 平台上进行开发的 js 接口及二进制文件,开发框架使用 electron 。
+
+目前支持登录、注册、单聊、群聊、聊天室、文本消息、图片、语音、位置等消息以及透传消息,还可以实现好友管理、群组管理等功能。
+
+**注意:**之前的 Windows SDK 将不再维护,同时对应的 demo ,文档也一并下线。如需查看旧版文档,点击[Windows SDK 集成说明](https://docs-im.easemob.com/im/windows/intro/integration)
+
+------
+
+## 准备
+
+### 开发环境需求
+
+#### 操作系统
+
+- win7/win8/win10 64位操作系统
+
+- mac OS 10.10 及以上
+
+#### 开发工具
+
+- nodejs
+
+版本 10.0 以上,[官网地址](http://nodejs.cn/)
+
+- electron
+
+版本 4.0 以上,[官网地址](https://electronjs.org/),nodejs 安装完成后,可以在命令行使用 npm 命令安装,安装命令:
+
+```
+npm install electron -g
+```
+
+------
+
+## SDK 目录结构
+
+Windows SDK 目录结构如下。使用时将 SDK 拷贝到工程目录下。
+
+```
+|-node
+  |-modules
+    |-message
+  index.js
+  load.js
+|-easemob
+  easemobMac.node
+  easemobWin.node
+  libcurl.dll
+  libcurl.lib
+  libcrypto.1.0.0.dylib
+```
+
+------
+
+## SDK 模块介绍
+
+SDK 采用模块化设计,每一模块的功能相对独立和完善,用户可以根据自己的需求选择使用下面的模块:
+
+![img](https://docs-im.easemob.com/_media/im/windows/intro/sdk%E6%A8%A1%E5%9D%97.png)
+
+### 模块化设计
+
+- EMClient
+
+SDK 的入口,主要完成登录、退出、注册、配置管理等功能,管理连接监听模块 EMConnectionListener 。也是获取其他模块的入口。
+
+- EMChatManager
+
+管理消息的收发,完成会话管理等功能,管理会话监听模块 EMChatManagerListener 。
+
+- EMContactManager
+
+负责好友的添加删除,黑名单的管理等功能,管理好友变更监听模块 EMContactListener。
+
+- EMGroupManager
+
+负责群组的管理,创建、删除群组,管理群组成员等功能,管理群组监听模块 EMGroupManagerListener。
+
+- EMChatroomManager
+
+负责聊天室的查询、加入、退出功能管理,管理聊天室监听模块 EMChatroomManagerListener。
+
+------
+
+## SDK 对象说明
+
+SDK 中使用到的对象包括:
+
+- 系统配置信息 EMChatConfigs
+
+- 群组信息 EMGroup
+
+- 群组配置信息 EMMucSetting
+
+- 群文件信息 EMMucSharedFile
+
+- 聊天室信息 EMChatroom
+
+- 会话信息 EMConversation
+
+- 消息 EMMessage
+
+- 文本消息体 EMFileMessageBody
+
+- 图片消息体 EMImageMessageBody
+
+- 文件消息体 EMTextMessageBody
+
+- 命令消息体 EMCmdMessageBody
+
+具体接口[详见 SDK API Doc](https://downloads.easemob.com/doc/desktop/apidoc/index.html)
+
+### 依赖模块安装
+
+electron 开发中依赖的模块及版本写在 package.json 中,安装依赖模块时,在 sdkdemoapp_windows 目录下使用命令:
+
+```
+npm install
+```
+
+如果安装过程中出现 error,可能是网络原因,可以选择使用 yarn 镜像下载安装:
+
+```
+npm install -g yarn
+yarn install
+```
+
+------
+
+### 软件调试
+
+首先需要编译软件,运行命令:
+
+```
+npm run build:app
+```
+
+调试过程需要使用热启动,运行命令:
+
+```
+npm run hot-server
+```
+
+然后另启动一个命令行工具,运行命令:
+
+```
+npm run start:hot
+```
+
+可启动软件。调试过程中修改代码后,hot-server 会自动编译新代码,在界面上使用 F5 按键可以立即刷新界面,应用新代码。在界面上点击鼠标右键,弹出右键菜单,点击检查元素,可以打开开发者工具,查看 console 控制台输出,在 Source 中加断点调试。
\ No newline at end of file
diff --git a/docs/document/v2/electron/quickstart.md b/docs/document/v2/electron/quickstart.md
new file mode 100644
index 000000000..92402d244
--- /dev/null
+++ b/docs/document/v2/electron/quickstart.md
@@ -0,0 +1,228 @@
+# 快速开始
+
+## 加载SDK
+
+直接加载 index.js 模块,代码如下:
+
+```
+var easemob = require('../../node/index');
+```
+
+------
+
+## 用户登录
+
+登录前,需要先创建配置对象和 client 对象,用户可以使用 **用户名+密码** 和 **用户名+token** 两种方式登录。
+
+### 创建配置对象
+
+```
+/**  
+ * 首先构造 sdk 配置信息
+ * param1 为资源存储路径,输入参数
+ * param2 为工作路径,输入参数,日志存储在这里
+ * param3 为 appkey ,输入参数,easemob-demo#chatdemoui 为 DemoAppKey ,需填写自己的 Appkey
+ * param4 为设备 ID ,默认 0
+ * return 配置模块对象
+ */
+var emchatconfigs = new easemob.EMChatConfig(".", ".", "easemob-demo#chatdemoui", 0);
+```
+
+### 创建 client 对象
+
+```
+var emclient = new easemob.EMClient(emchatconfigs);
+```
+
+#### 用户名+密码登录方式代码如下:
+
+```
+/** 
+ *  密码登录 api ,异步操作
+ * param username 为用户名,输入, String
+ * param password 为密码,输入, String
+ * return 返回 Promise 对象,response 参数为 #Result
+ */
+login(username, password)
+```
+
+调用用方法如下:
+
+```
+emclient.login("jwfan", "jwfan").then((res) =>{
+if(res.code == 0)
+  console.log("login success");
+},(error) => {});
+```
+
+#### 用户名+token 登录方式代码如下:
+
+```
+/** 
+ *  token 登录 api ,异步操作
+ * param username 用户名,输入, String
+ * param token 用户 token ,输入, String
+ * return 返回 Promise 对象,response 参数为 #Result
+ */
+loginWithToken(username, token)
+```
+
+调用方法如下:
+
+```
+emclient.loginWithToken("jwfan", "Mytoken").then((res) =>{
+if(res.code == 0)
+  console.log("login success");
+},(error) => {});
+```
+
+登录接口返回值 ret 为 EMError 对象,登录成功则 ret 的 errorCode 为 0,否则可以用 description 获取错误信息 登录后获取用户信息方法如下:
+
+```
+// 获取用户信息,包括用户名,密码,token
+var loginInfo = emclient.getLoginInfo();
+console.log("loginInfo.loginUser = " + loginInfo.loginUser);
+console.log("loginInfo.loginPassword = " + loginInfo.loginPassword);
+console.log("loginInfo.loginToken = " + loginInfo.loginToken);
+```
+
+------
+
+## 用户退出
+
+用户退出代码如下:
+
+```
+// 返回退出结果 EMError 对象
+emclient.logout().then((res) => {
+if(res.code == 0)
+  console.log("logout success");
+},(error) => {});
+```
+
+------
+
+## 用户注册
+
+接口API如下:
+
+```
+/** 
+ *  账户注册api,异步操作
+ * param username 用户名,输入,String
+ * param password 密码,输入,String
+ * return Promise对象,该对象的response参数为Result
+ */
+createAccount(username, password);
+<code>
+
+调用方法如下:
+<code>
+emclient.createAccount("newAccount","password").then((res) => {
+  if(res.errorCode == 0)
+      console.log("createAccount success");
+  else
+      console.log("createAccount fail:" + res.description);
+  },(error) => {})
+```
+
+------
+
+## 连接监听管理
+
+通过注册回调函数,可以监听 SDK 的连接与断开状态,在用户登录成功后调用,代码如下
+
+```
+// 实例化监听模块
+var listener = new easemob.EMConnectionListener();
+// 添加到client
+emclient.addConnectionListener(listener);
+
+// 连接成功,什么都不需要做
+listener.onConnect(() => {
+console.log("EMConnectionListener onConnect");
+});
+
+// 连接断开,可能是断网或异地登录被踢,可通过error.errorCode判断,若为206,即为被踢,需要退出登录
+listener.onDisconnect((res) => {
+console.log(res.errorCode);
+console.log(res.description);
+console.log("EMConnectionListener onDisconnect");
+if(res.errorCode == 206)
+    emclient.logout();
+    console.log("你的账户已在其他地方登录");
+});
+
+// 移除监听
+emclient.removeConnectionListener(listener);
+```
+
+------
+
+## 系统配置
+
+系统配置信息模块为 EMChatConfig ,可以使用 emclient 的 getChatConfigs() 接口获取
+
+```
+let config = emclient.getChatConfigs();
+```
+
+配置信息包括日志路径,资源路径、下载路径、是否自动同意好友申请、是否自动同意组邀请、退出群组时是否删除消息等,[详见](https://github.com/easemob/sdkdemoapp_windows/blob/electron/jsdoc/out/EmChatConfigs.html)
+
+------
+
+## 私有化部署
+
+sdk 提供私有化部署中的服务器设置接口,私有化部署设置使用 api 中的 **EMChatPrivateConfigs**,可以由系统配置模块的 **privateConfigs** 接口获取,代码如下:
+
+```
+let privateconfigs = config.privateConfigs();
+```
+
+**EMChatPrivateConfigs** 使用属性配置服务器部署信息,设置及获取的方法如下:
+
+```
+privateconfigs.enableDns=false;
+privateconfigs.chatServer="192.168.1.100";
+privateconfigs.chatPort=5000;
+privateconfigs.restServer="http://192.168.1.101:5001";
+privateconfigs.resolverServer="http://192.168.1.101:5002";
+console.log(privateconfigs.enableDns);
+console.log(privateconfigs.chatServer);
+console.log(privateconfigs.chatPort);
+console.log(privateconfigs.restServer);
+console.log(privateconfigs.resolverServer);
+```
+
+------
+
+## 日志输出
+
+SDK 提供输出到日志文件的 js 接口,需要先创建 EMLog 对象,可以输出 String 和数字,代码如下:
+
+```
+// 实例化日志对象,日志按等级可分为error,warn,Debug 3级
+var log = new easemob.EMLog();
+
+// 设置日志等级,0为debug,1为warn,2为error
+log.setLogLevel(0);
+
+// 可以控制日志是否输出到控制台,默认不输出
+log.setIsDisplayOnConsole(true);
+
+//输出日志
+log.Log("Log Test");
+log.Log(5);
+log.Debug("Debug Test");
+log.Debug(5);
+log.Warn("Warn Test");
+log.Warn(5);
+log.Error("Error Test");
+log.Error(5);
+```
+
+**注:**由于 EMChatConfig 对象创建时会指定日志输出路径,日志对象的创建一般放到 EMChatConfig 创建之后。
+
+Windows 桌面端日志生成在 c:/用户/{user}/AppData/Roaming/{ProcessName}/easemob-desktop/easemobLog 路径下的`easemob.log`,{user}为操作系统用户名,{ProcessName}为进程名称,热启动时为**electron**,安装后启动时为**IM-SDK桌面端Demo**。
+
+Mac 桌面端日志生成在 /Users/{user}/Library/Application Support/{ProcessName}/easemob-desktop/easemobLog 路径下的`easemolog.log`,{user}为操作系统用户名,{ProcessName}为进程名称,热启动时为**electron**,安装后启动时为**IM-SDK桌面端Demo**。
\ No newline at end of file
diff --git a/docs/document/v2/electron/releasenote.md b/docs/document/v2/electron/releasenote.md
new file mode 100644
index 000000000..cb44c8b6e
--- /dev/null
+++ b/docs/document/v2/electron/releasenote.md
@@ -0,0 +1,59 @@
+# 桌面端SDK 更新日志
+
+## 版本 V3.8.4 2021-12-09
+
+新增
+
+- 增加支持自定义消息的收发
+
+## 版本 V3.8.0 2021-03-13
+
+修复
+
+- 去掉音视频功能
+- 修复部分Demo bug
+
+## 版本 V3.6.0 2019-07-16
+
+新增
+
+- 1v1音视频会话功能
+
+修复
+
+- 修复了上传附件token过期时,重新获取的token在重试过程中未应用的bug
+- 修复了音视频消息体中remotePath路径为空的问题
+- 修复Demo UI层的bug
+
+## 版本 V3.5.5 2019-05-09
+
+新增
+
+- sdk 新增私有化部署的接口
+
+修复
+
+- 修复 Demo 在 mac 系统某些版本(如10.12)上,存在兼容性问题,无法启动的问题
+- 修改 sdk 收到消息后 ack 确认的发送为消息存储到数据库之后,防止突然崩溃导致的消息丢失
+- 修复 Demo UI 层的部分 bug
+
+优化
+
+- 离线消息的下载存储由单条存储改为多条批量存储,提升效率
+
+## 版本:V3.5.4 2019-03-26
+
+实现功能:
+
+- 账户的登录、登出、注册。
+
+- 聊天:单聊、群聊消息收发。
+
+- 消息类型:
+
+1. 可发送:文本、emoji表情、图片、文件。
+2. 可接收:文本、emoji表情、图片、文件、位置、语音消息。
+
+- 好友管理:添加好友、删除好友。
+
+- 群管理:创建群、退出群、解散群、修改群标题、邀请加入群、搜索公开群、申请加入公开群。
\ No newline at end of file
diff --git a/docs/document/v2/electron/room_manage.md b/docs/document/v2/electron/room_manage.md
new file mode 100644
index 000000000..dc437efbd
--- /dev/null
+++ b/docs/document/v2/electron/room_manage.md
@@ -0,0 +1,106 @@
+# 聊天室管理
+
+环信桌面端 SDK 支持聊天室功能的集成,集成后可以进行如下操作:
+
+- 查询聊天室信息
+
+- 加入聊天室
+
+- 退出聊天室
+
+- 监听回调
+
+通过这些操作,可以组合帮助您完成多种场景下的 IM 需求。
+
+**注意:**聊天室只能有服务端创建,客户端只可以查询、加入和退出聊天室
+
+------
+
+## 查询聊天室信息
+
+```
+// 获取聊天室控制对象
+var chatroomManager = emclient.getChatroomManager();
+// 获取所有聊天室
+var chatroomlist = chatroomManager.fetchAllChatrooms(error);
+// 获取聊天室属性
+chatroomlist.map((chatroom) => {
+  console.log("chatroom id:"+chatroom.chatroomId());
+  console.log("chatroom chatroomSubject:"+chatroom.chatroomSubject());
+  console.log("chatroom chatroomDescription:"+chatroom.chatroomDescription());
+  console.log("chatroom owner:"+chatroom.owner());
+  console.log("chatroom chatroomMemberCount:"+chatroom.chatroomMemberCount());
+  console.log("chatroom chatroomMemberMaxCount:"+chatroom.chatroomMemberMaxCount());
+  console.log("chatroom chatroomAnnouncement:"+chatroom.chatroomAnnouncement());
+  var adminlist = chatroom.chatroomAdmins();
+  var memberlist = chatroom.chatroomMembers();
+  var banslist = chatroom.chatroomBans();
+});
+```
+
+------
+
+## 加入聊天室
+
+接口 API 说明如下:
+
+```
+/** 
+ *  加入聊天室
+ * param chatroomid 聊天室 ID
+ * param error 操作结果
+ * return Promise 对象,该对象的 response 参数 EMChatroom 对象
+ */
+joinChatroom(chatroomid,error);
+```
+
+调用方法如下:
+
+```
+chatroomManager.joinChatroom(chatroomId, error).then((res)=>{},(error) => {});
+```
+
+------
+
+## 退出聊天室
+
+接口 API 说明如下:
+
+```
+/** 
+ *  离开聊天室
+ * param chatroomid 聊天室 ID
+ * param error 操作结果
+ * return Promise 对象,该对象的 response 参数为空
+ */
+leaveChatroom(chatroomid,error);
+```
+
+调用方法如下:
+
+```
+chatroomManager.leaveChatroom(chatroomId, error).then((res)=>{},(error) => {});
+```
+
+------
+
+## 回调监听
+
+```
+// 添加消息回调
+var emchatroomlistener = new easemob.EMChatroomManagerListener();
+console.log(emchatroomlistener);
+
+emchatroomlistener.onMemberJoinedChatroom((chatroom,member) => {
+    console.log("onMemberJoinedChatroom" + chatroom.chatroomSubject());
+    console.log("onMemberJoinedChatroom" + member);
+});
+emchatroomlistener.onMemberLeftChatroom((chatroom,member) => {
+    console.log("onMemberLeftChatroom" + chatroom.chatroomSubject());
+    console.log("onMemberLeftChatroom" + member);
+});
+//注册监听
+chatroomManager.addListener(emchatroomlistener);
+// 移除监听
+chatroomManager.removeListener(emchatroomlistener);
+```
\ No newline at end of file
diff --git a/docs/document/v2/electron/user_relationship.md b/docs/document/v2/electron/user_relationship.md
new file mode 100644
index 000000000..3d1afc810
--- /dev/null
+++ b/docs/document/v2/electron/user_relationship.md
@@ -0,0 +1,338 @@
+# 好友管理
+
+环信桌面端 SDK 支持好友功能的集成,集成后可以进行如下操作:
+
+- 好友处理
+
+- 黑名单处理
+
+- 监听联系人变更
+
+通过这些操作,可以组合帮助您完成多种场景下的 IM 需求。
+
+好友管理模块为 EMContactManager ,由 EMClient 模块加载时主动创建,可以使用 EMClient 模块的 getContactManager 方法获取,代码如下:
+
+```
+var contactManager = emclient.getContactManager();
+```
+
+------
+
+## 好友处理
+
+好友处理包含以下处理操作:
+
+- 获取好友列表
+
+- 添加好友
+
+- 删除好友
+
+- 同意好友申请
+
+- 拒绝好友申请
+
+所有处理操作的示例下面会一一说明。
+
+------
+
+### 获取好友列表
+
+好友列表可以从**本地**和**服务器**获取,各接口说明如下:
+
+#### 从本地中获取
+
+接口 API 如下:
+
+```
+/** 
+ *  获取当前缓存中的好友列表,若缓存中没有则从数据库中获取
+ * return 返回 ContactListResult
+ */
+allContacts()
+```
+
+调用方法如下:
+
+```
+let res = contactManager.allContacts();
+console.log()
+```
+
+#### 从服务器获取
+
+接口API如下:
+
+```
+/** 
+ *  从服务端拉取好友列表,异步操作
+ * return 返回 Promise 对象,response 参数为 ContactListResult
+ */
+getContactsFromServer();
+```
+
+调用方法如下:
+
+```
+contactManager.getContactsFromServer().then(ContactListResult => {
+  },(error) => {});
+```
+
+------
+
+### 添加好友
+
+接口API如下:
+
+```
+/** 
+ *  添加好友 api,异步操作
+ * param String,username 为对方用户名,输入参数
+ * param String,message 为欢迎信息,输入参数,对方收到好友申请时可以看到
+ * return Promise 对象,response 参数为 Result
+ */
+inviteContact(username, message);
+```
+
+调用方法如下:
+
+```
+contactManager.inviteContact("jwfan1", "welcome").then((res) => {
+  },(error) => {})
+```
+
+------
+
+### 删除好友
+
+接口API如下:
+
+```
+/** 
+ *  从好友列表移除好友 api,异步操作
+ * param username 移除目标好友的用户名,输入参数
+ * param keepConversation 移除好友后,是否保留会话,输入参数,布尔型,true 为保留,false 为不保留
+ * return Promise 对象,response 参数 Result
+ */
+deleteContact(username,keepConversation);
+```
+
+调用方法如下:
+
+```
+contactManager.deleteContact("jwfan1", true).then((res) => {
+  },(error) => {})
+```
+
+------
+
+### 同意好友申请
+
+接口 API 如下:
+
+```
+/** 
+ *  用户收到好友申请后的操作,同意好友申请,异步操作
+ * param username 发起好友申请的用户名,输入参数
+ * return Promise 对象,response 参数为 Result
+ */
+acceptInvitation(username);
+```
+
+调用方法如下:
+
+```
+contactManager.acceptInvitation(username).then((res) => {
+  },(error) => {})
+```
+
+------
+
+### 拒绝好友申请
+
+接口 API 如下:
+
+```
+/** 
+ * 用户收到好友申请后的操作,拒绝好友申请,异步操作
+ * param username 发起好友申请的用户名,输入参数
+ * return Promise 对象,response 参数为 Result
+ */
+declineInvitation(username)
+```
+
+调用方法如下:
+
+```
+contactManager.declineInvitation(username).then((res) => {
+  },(error) => {})
+```
+
+------
+
+## 黑名单
+
+黑名单包含以下处理操作:
+
+- 获取黑名单
+
+- 设置黑名单
+
+- 移入黑名单
+
+- 从黑名单移除
+
+所有处理操作的示例下面会一一说明。
+
+------
+
+### 获取黑名单
+
+黑名单列表可以从**本地**和**服务器**获取,各接口说明如下:
+
+#### 从本地中获取
+
+接口 API 如下:
+
+```
+/**  
+ * 从本地获取用户的黑名单列表,黑名单的用户无法发送消息
+ * return ContactListResult 黑名单列表,data 为 String 数组
+ */
+blacklist();
+```
+
+调用方法如下:
+
+```
+let res = contactManager.blacklist()
+```
+
+#### 从服务器获取
+
+接口 API 如下:
+
+```
+/**  
+ * 从服务器获取用户的黑名单列表,黑名单的用户无法发送消息
+ * return Promise 对象,response 参数为 ContactListResult
+ */
+getBlackListFromServer();
+```
+
+调用方法如下:
+
+```
+contactManager.getBlackListFromServer().then((res) => {},(error) => {})
+```
+
+------
+
+### 设置黑名单
+
+接口 API 如下:
+
+```
+/** 
+ *  设置用户的黑名单列表,异步操作
+ * param blacklist 输入参数,黑名单列表,StringArray,["ID1","ID2"]
+ * return Promise 对象,response 参数为 Result
+ */
+saveBlackList(blacklist);
+```
+
+调用方法如下:
+
+```
+contactManager.saveBlackList(['jwfan2', 'jwfan3']).then((res)=>{},(error) => {});
+```
+
+### 移入黑名单
+
+接口 API 如下:
+
+```
+/** 
+ *  添加用户到黑名单列表,异步操作
+ * param username 输入参数,要添加的黑名单用户名,String
+ * return Promise 对象,response 参数为 Result
+ */
+addToBlackList(username);
+```
+
+调用方法如下:
+
+```
+contactManager.addToBlackList('jwfan2').then((res)=>{},(error) => {});
+```
+
+------
+
+### 从黑名单移除
+
+接口 API 如下:
+
+```
+/**  
+ * 从黑名单列表移除用户,异步操作
+ * param username 输入参数,要从黑名单移除的用户名,String
+ * return Promise 对象,response 参数为 Result
+ */
+removeFromBlackList(username);
+```
+
+调用方法如下:
+
+```
+contactManager.removeFromBlackList('jwfan2').then((res)=>{},(error) => {});
+```
+
+------
+
+## 监听联系人变更
+
+通过注册回调函数,监听联系人的变动,代码如下:
+
+```
+// 实例化监听对象
+var listener = new easemob.EMContactListener();
+
+// 有好友添加的回调
+listener.onContactAdded((username) => {
+console.log("onContactAdded username: " + username);
+});
+
+// 有好友删除的回调
+listener.onContactDeleted((username) => {
+console.log("onContactDeleted username: " + username);
+});
+
+// 收到好友申请的回调,用户可以在这里同意或拒绝好友申请
+listener.onContactInvited((username, reason) => {
+console.log("onContactInvited username: " + username + " reason: " + reason);
+if (username == "jwfan1") {
+  let res = contactManager.acceptInvitation(username);
+} else {
+  let res = contactManager.declineInvitation(username);
+}
+});
+
+// 群组邀请成员同意
+listener.onContactAgreed((username) => {
+console.log("onContactAgreed username: " + username);
+});
+
+// 群组邀请成员拒绝
+listener.onContactRefused((username) => {
+console.log("onContactRefused username: " + username);
+});
+
+// 注册回调函数
+contactManager.registerContactListener(listener);
+<code>
+
+===== 结束联系人监听 =====
+<code>
+// 移除回调监听
+contactManager.removeContactListener(listener);
+```
\ No newline at end of file
diff --git a/docs/document/v2/flutter/error.md b/docs/document/v2/flutter/error.md
index 7d126aa90..1587434c3 100644
--- a/docs/document/v2/flutter/error.md
+++ b/docs/document/v2/flutter/error.md
@@ -2,6 +2,6 @@
 
 <Toc />
 
-[Android 平台设备请参见:](/document/android/error.html)
+[Android 平台设备请参见:](/document/v2/android/error.html)
 
-[iOS 平台设备请参见:](/document/ios/error.html)  
\ No newline at end of file
+[iOS 平台设备请参见:](/document/v2/ios/error.html)  
\ No newline at end of file
diff --git a/docs/document/v2/flutter/group_attributes.md b/docs/document/v2/flutter/group_attributes.md
index ddc42fbfb..6e0f2f80d 100644
--- a/docs/document/v2/flutter/group_attributes.md
+++ b/docs/document/v2/flutter/group_attributes.md
@@ -18,8 +18,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html);
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html);
-- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html);
+
 
 ## 实现方法
 
diff --git a/docs/document/v2/flutter/group_manage.md b/docs/document/v2/flutter/group_manage.md
index 3cbf8b2c3..f0dd7852e 100644
--- a/docs/document/v2/flutter/group_manage.md
+++ b/docs/document/v2/flutter/group_manage.md
@@ -23,8 +23,7 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html);
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html);
-- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html);
 
 ## 实现方法
 
diff --git a/docs/document/v2/flutter/group_members.md b/docs/document/v2/flutter/group_members.md
index ed7794d33..087ac4b0c 100644
--- a/docs/document/v2/flutter/group_members.md
+++ b/docs/document/v2/flutter/group_members.md
@@ -21,9 +21,9 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html);
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html);
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html);
 - 了解群成员角色,详见 [群组概述](group_overview.html);
-- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。
+
 
 ## 实现方法
 
diff --git a/docs/document/v2/flutter/message_manage.md b/docs/document/v2/flutter/message_manage.md
index 359609ec9..66958343c 100644
--- a/docs/document/v2/flutter/message_manage.md
+++ b/docs/document/v2/flutter/message_manage.md
@@ -31,7 +31,7 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
diff --git a/docs/document/v2/flutter/message_modify.md b/docs/document/v2/flutter/message_modify.md
index 8d18da44e..8ed38f336 100644
--- a/docs/document/v2/flutter/message_modify.md
+++ b/docs/document/v2/flutter/message_modify.md
@@ -9,7 +9,7 @@
 若使用该功能,需将 SDK 升级至 4.1.0 或以上版本。
 :::
 
-你可以调用 `EMChatManager#modifyMessage` 方法修改已经发送成功的消息, 目前只支持文本消息。一条消息默认最多可修改 10 次,若要提升修改次数,需联系商务。
+你可以调用 `EMChatManager#modifyMessage` 方法修改已经发送成功的消息, 目前只支持文本消息。一条消息默认最多可修改 10 次。
 
 示例代码如下:
 
diff --git a/docs/document/v2/flutter/message_receipt.md b/docs/document/v2/flutter/message_receipt.md
index fb146886b..0b247dfb5 100644
--- a/docs/document/v2/flutter/message_receipt.md
+++ b/docs/document/v2/flutter/message_receipt.md
@@ -4,7 +4,7 @@
 
 单聊会话支持消息送达回执、会话已读回执和消息已读回执,发送方发送消息后可及时了解接收方是否及时收到并阅读了信息,也可以了解整个会话是否已读。
 
-群聊会话只支持消息已读回执。群主和群管理员在发送消息时,可以设置该消息是否需要已读回执。仅旗舰版及以上版本支持群消息已读回执功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。
+群聊会话只支持消息已读回执。群主和群管理员在发送消息时,可以设置该消息是否需要已读回执,私有部署即时通讯服务默认支持并开通该功能。
 
 本文介绍如何使用环信即时通讯 IM Android SDK 实现单聊和群聊的消息回执功能。
 
@@ -36,8 +36,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
-- 群消息已读回执功能仅在环信 IM 旗舰版及以上版本支持该功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
+
 
 ## 实现方法
 
@@ -157,7 +157,7 @@ try {
 
 对于群聊,群主和群管理员发送消息时,可以设置该消息是否需要已读回执。若需要,每个群成员在阅读消息后,SDK 均会发送已读回执,即阅读该消息的群成员数量即为已读回执的数量。
 
-仅旗舰版及以上版本支持群消息已读回执功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。
+私有部署即时通讯服务默认支持并开通群消息已读回执功能。
 
 1. 消息发送方需要知道群组消息是否已读,需要监听 `onGroupMessageRead` 事件。
 
diff --git a/docs/document/v2/flutter/message_retrieve.md b/docs/document/v2/flutter/message_retrieve.md
index 80a60ba28..2b44d2a2d 100644
--- a/docs/document/v2/flutter/message_retrieve.md
+++ b/docs/document/v2/flutter/message_retrieve.md
@@ -4,9 +4,7 @@
 
 环信即时通讯 IM 提供消息漫游功能,即将用户的所有会话的历史消息保存在消息服务器,用户在任何一个终端设备上都能获取到历史信息,使用户在多个设备切换使用的情况下也能保持一致的会话场景。本文介绍用户如何从消息服务器获取会话和消息。
 
-:::tip
-本文介绍的功能均为增值服务,需在[环信即时通讯 IM 管理后台](https://console.easemob.com/user/login)开通。
-:::
+
 
 ## 技术原理
 
@@ -24,7 +22,7 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
@@ -147,7 +145,7 @@ try {
 你可以调用 `deleteRemoteMessagesBefore` 和 `deleteRemoteMessagesWithIds` 方法单向删除服务端的历史消息,每次最多可删除 50 条消息。消息删除后,该用户无法从服务端拉取到该消息。其他用户不受该操作影响。已删除的消息自动从设备本地移除。
 
 :::tip
-若使用该功能,需将 SDK 升级至 V4.0.0 或以上版本并联系商务。
+若使用该功能,需将 SDK 升级至 V4.0.0 或以上版本。
 :::
 
 ```dart
diff --git a/docs/document/v2/flutter/message_send_receive.md b/docs/document/v2/flutter/message_send_receive.md
index b4eafcdf1..1c3b1a233 100644
--- a/docs/document/v2/flutter/message_send_receive.md
+++ b/docs/document/v2/flutter/message_send_receive.md
@@ -38,7 +38,7 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
@@ -153,7 +153,8 @@ class _ChatMessagesPageState extends State<ChatMessagesPage> {
 
 ### 撤回消息
 
-发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信即时通讯云控制台](https://console.easemob.com/user/login)的**功能配置** > **功能配置总览** > **基础功能** 页面设置消息撤回时长,该时长不超过 7 天。
+发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在 环信即时通讯云控制台的**服务管理** > **服务概览** 页面设置消息撤回时长,该时长不超过 7 天。
+
 ```dart
 try {
   await EMClient.getInstance.chatManager.recallMessage(msgId);
diff --git a/docs/document/v2/flutter/moderation.md b/docs/document/v2/flutter/moderation.md
index 8b9d6d4dc..5e1ec2afe 100644
--- a/docs/document/v2/flutter/moderation.md
+++ b/docs/document/v2/flutter/moderation.md
@@ -14,7 +14,7 @@
 
 - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。
 - 开通消息审核服务,详见管理后台。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
diff --git a/docs/document/v2/flutter/multi_device.md b/docs/document/v2/flutter/multi_device.md
index 8b4c9d51a..84a57c488 100644
--- a/docs/document/v2/flutter/multi_device.md
+++ b/docs/document/v2/flutter/multi_device.md
@@ -11,7 +11,8 @@
 
 多端登录时,即时通讯 IM 每端默认最多支持 4 个设备同时在线。如需增加支持的设备数量,可以联系环信即时通讯 IM 的商务经理。
 
-你可以在环信控制台的**功能配置** > **功能配置总览**页面的**基础功能**页签下点击**多端多设备在线**操作栏中的**设置**,在弹出的对话框中设置设置各端设备的数量:
+你可以在环信控制台的**服务管理** > **服务概览**页面的下点击**多端多设备在线**操作栏中的**设置**,在弹出的对话框中设置设置各端设备的数量:
+
 
 ![img](@static/images/common/multidevice_device_count.png)
 
@@ -24,7 +25,7 @@
 </head>
 
 <body>
-<table width="815" height="195" border="1">
+<table width="815" height="" border="1">
   <tbody>
     <tr>
       <td width="127" height="49">单端/多端登录</td>
@@ -38,7 +39,7 @@
     </tr>
     <tr>
       <td height="84">多端登录</td>
-      <td>若一端的登录设备数量达到了上限,最新登录的设备会将该端最早登录的设备踢下线。&lt;br/&gt;即时通讯 IM 仅支持同端互踢,不支持各端之间互踢。</td>
+      <td>若一端的登录设备数量达到了上限,最新登录的设备会将该端最早登录的设备踢下线。<br>即时通讯 IM 仅支持同端互踢,不支持各端之间互踢。</td>
     </tr>
   </tbody>
 </table>
@@ -128,7 +129,7 @@ EMClient.getInstance.addConnectionEventHandler(
 
 你可以按照以下步骤设置登录设备所属的平台:
 
-1. 在环信控制台的**功能配置** > **功能配置总览**页面,点击**基础功能**页签,然后点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击 **新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台**和**设备数量**。
+1. 在环信控制台的**服务管理** > **服务概览**页面,点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击 **新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台**和**设备数量**。
 
 **设备平台**的取值范围为 [1,100],**设备数量**的取值范围为 [0,4]。
 
diff --git a/docs/document/v2/flutter/overview.md b/docs/document/v2/flutter/overview.md
index 56ce90ad9..6af6c4fdc 100644
--- a/docs/document/v2/flutter/overview.md
+++ b/docs/document/v2/flutter/overview.md
@@ -6,7 +6,7 @@
 
 ## 前提条件
 
-开始前,请注册有效的环信即时通讯 IM 开发者账号和取得 App key,见 [环信即时通讯云管理后台](https://console.easemob.com/user/login)。
+开始前,请注册有效的环信即时通讯 IM 开发者账号和取得 App key,见 [环信即时通讯云管理后台](/document/v2/privatization/uc_configure.html)。
 
 ## 集成环境
 
@@ -40,7 +40,7 @@ try {
 
 :::notice
 - 以上注册模式为在客户端注册,主要用于测试,简单方便,但不推荐在正式环境中使用;
-- 正式环境应[调用 REST API 接口注册用户](/document/server-side/account_system.html#注册用户)。
+- 正式环境应[调用 REST API 接口注册用户](/document/v2/server-side/account_system.html#注册用户)。
 :::
 
 ## 用户登录
@@ -50,7 +50,7 @@ try {
 - 用户 ID + 密码
 - 用户 ID + token
 
-手动登录时传入的用户 ID 必须为 String 类型,支持的字符集详见[用户注册的 RESTful 接口](/document/server-side/account_system.html#注册用户)。
+手动登录时传入的用户 ID 必须为 String 类型,支持的字符集详见[用户注册的 RESTful 接口](/document/v2/server-side/account_system.html#注册用户)。
 
 调用登录接口后,收到 `onConnected` 回调表明 SDK 与环信服务器连接成功。
 
@@ -64,7 +64,7 @@ try {
 } on EMError catch (e) {}
 ```
 
-**用户 ID + token** 是更加安全的登录方式。token 可以通过调用 REST API 获取。 详见 [环信用户 token 的获取](/document/server-side/easemob_user_token.html)。
+**用户 ID + token** 是更加安全的登录方式。token 可以通过调用 REST API 获取。 详见 [环信用户 token 的获取](/document/v2/server-side/easemob_user_token.html)。
 
 :::notice
 使用 token 登录时需要处理 token 过期的问题,比如在每次登录时更新 token 等机制。
diff --git a/docs/document/v2/flutter/presence.md b/docs/document/v2/flutter/presence.md
index 906b1103f..0ceb7ee9b 100644
--- a/docs/document/v2/flutter/presence.md
+++ b/docs/document/v2/flutter/presence.md
@@ -6,9 +6,6 @@
 
 本文介绍如何在即时通讯应用中发布、订阅和查询用户的在线状态。
 
-:::notice
-私有化版本不支持在线状态订阅。
-:::
 
 ## 技术原理
 
@@ -40,8 +37,8 @@
 使用在线状态功能前,请确保满足以下条件:
 
 1. 完成 `1.0.5 以上版本` SDK 初始化,详见 [快速开始](quickstart.html)。
-2. 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。
-3. 已联系商务开通在线状态订阅功能。
+2. 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。
+3. 私有部署已开通在线状态订阅功能。
 
 ## 实现方法
 
diff --git a/docs/document/v2/flutter/quickstart.md b/docs/document/v2/flutter/quickstart.md
index 7eb201aeb..f0c186cff 100644
--- a/docs/document/v2/flutter/quickstart.md
+++ b/docs/document/v2/flutter/quickstart.md
@@ -31,7 +31,7 @@
 
 配置开发或者运行环境如果遇到问题,请参考 [这里](https://docs.flutter.dev/get-started/install)。
 
-- 有效的环信即时通讯 IM 开发者账号和 App Key,详见 [环信即时通讯云控制台](https://console.easemob.com/user/login)。
+- 有效的环信即时通讯 IM 开发者账号和 App Key,详见 [环信即时通讯云控制台](/document/v2/privatization/uc_configure.html)。
 
 ## 项目设置
 
@@ -259,7 +259,7 @@ void _initSDK() async {
 
 ### 注册环信 IM 用户
 
-Demo 中使用 [开放注册](/server-side/account_system.html#开放注册单个用户),此操作需要在环信后台开启 `开放注册`。在开放注册模式下,允许通过 App 客户端直接注册环信用户,正式环境中请使用 [授权注册](server-side/account_system.html#授权注册单个用户)。
+Demo 中使用 [开放注册](/document/v2/server-side/account_system.html#开放注册单个用户),此操作需要在环信后台开启 `开放注册`。在开放注册模式下,允许通过 App 客户端直接注册环信用户,正式环境中请使用 [授权注册](/document/v2/server-side/account_system.html#授权注册单个用户)。
 
 在 `_signUp` 方法中添加注册代码:
 
@@ -457,19 +457,19 @@ flutter run
 
 运行结果如下:
 
-<img src="@static/images/flutter/simulator_screen_shot1.png" width="500" />
+<img src="@static/images/flutter/simulator_screen_shot1.png" width="200" />
 
 参考以下步骤发送和接收文本消息:
 
 1. 输入任意用户名(如 `flutter001` 和 `flutter002`)和密码 `1`,点击 `SIGN UP` 创建用户;
 2. 以 `flutter001` 身份登录 Demo,将 `Enter the username you want to send` 输如为 `flutter002`, 发送文本消息;
 
-<img src="@static/images/flutter/simulator_screen_shot2.png" width="500" />
+<img src="@static/images/flutter/simulator_screen_shot2.png" width="200" />
 
 3. 以 `flutter002` 身份登录 Demo,查看 Log 信息确认是否都到消息。
 
-<img src="@static/images/flutter/simulator_screen_shot3.png" width="500" />
+<img src="@static/images/flutter/simulator_screen_shot3.png" width="200" />
 
 ## 后续步骤
 
-为保障通信安全,在正式生产环境中,你需要在自己的 app 服务端生成 Token。详见[使用 App Token 鉴权](/product/easemob_app_token.html)。
\ No newline at end of file
+为保障通信安全,在正式生产环境中,你需要在自己的 app 服务端生成 Token。详见[使用 App Token 鉴权](/document/v2/server-side/easemob_app_token.html)。
\ No newline at end of file
diff --git a/docs/document/v2/flutter/reaction.md b/docs/document/v2/flutter/reaction.md
index 7e1be8e9a..4c94963b0 100644
--- a/docs/document/v2/flutter/reaction.md
+++ b/docs/document/v2/flutter/reaction.md
@@ -6,7 +6,6 @@
 
 :::notice
 1. 目前 Reaction 仅适用于单聊和群组。聊天室暂不支持 Reaction 功能。
-2. 私有化版本不支持 Reaction 功能。
 :::
 
 ## 技术原理
@@ -29,8 +28,8 @@ Reaction 场景示例如下:
 开始前,请确保满足以下条件:
 
 1. 完成 `1.0.5 以上版本` SDK 初始化,详见 [快速开始](quickstart.html)。
-2. 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。
-3. 已联系商务开通 Reaction 功能。
+2. 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。
+3. 私有部署已开通 Reaction 功能。
 
 ## 实现方法
 
diff --git a/docs/document/v2/flutter/room_attributes.md b/docs/document/v2/flutter/room_attributes.md
index 1f217c88d..7f3954475 100644
--- a/docs/document/v2/flutter/room_attributes.md
+++ b/docs/document/v2/flutter/room_attributes.md
@@ -20,8 +20,7 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html);
-- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html)。
-- 了解聊天室的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。
+- 了解环信即时通讯 IM 的 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
diff --git a/docs/document/v2/flutter/room_manage.md b/docs/document/v2/flutter/room_manage.md
index 4a13320d4..9944ef2cc 100644
--- a/docs/document/v2/flutter/room_manage.md
+++ b/docs/document/v2/flutter/room_manage.md
@@ -25,9 +25,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html);
-- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html)。
-- 了解环信即时通讯 IM 不同版本的聊天室相关数量限制,详见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im)。
-- 只有超级管理员才有创建聊天室的权限,因此你还需要确保已调用 RESTful API 添加了超级管理员,详见 [添加聊天室超级管理员](/document/server-side/chatroom.html#添加超级管理员)。
+- 了解环信即时通讯 IM 的 [使用限制](/document/v2/privatization/uc_limitation.html)。
+- 只有超级管理员才有创建聊天室的权限,因此你还需要确保已调用 RESTful API 添加了超级管理员,详见 [添加聊天室超级管理员](/document/v2/server-side/chatroom.html#添加超级管理员)。
 - 聊天室创建者和管理员的数量之和不能超过 100,即管理员最多可添加 99 个。
 
 ## 实现方法
@@ -36,9 +35,9 @@
 
 ### 创建聊天室
 
-仅 [超级管理员](/document/server-side/chatroom.html#管理超级管理员) 可以调用 `EMChatRoomManager#createChatRoom` 方法创建聊天室,并设置聊天室的名称、描述、最大成员数等信息。成功创建聊天室后,该超级管理员为该聊天室的所有者。
+仅 [超级管理员](/document/v2/server-side/chatroom.html#管理超级管理员) 可以调用 `EMChatRoomManager#createChatRoom` 方法创建聊天室,并设置聊天室的名称、描述、最大成员数等信息。成功创建聊天室后,该超级管理员为该聊天室的所有者。
 
-你也可以直接调用 REST API [从服务端创建聊天室](/document/server-side/chatroom.html#创建聊天室)。
+你也可以直接调用 REST API [从服务端创建聊天室](/document/v2/server-side/chatroom.html#创建聊天室)。
 
 示例代码如下:
 
diff --git a/docs/document/v2/flutter/room_members.md b/docs/document/v2/flutter/room_members.md
index 2d9967893..3697407e4 100644
--- a/docs/document/v2/flutter/room_members.md
+++ b/docs/document/v2/flutter/room_members.md
@@ -21,8 +21,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html);
-- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html)。
-- 了解环信即时通讯 IM 聊天室相关限制,详见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im)。
+- 了解环信即时通讯 IM 的 [使用限制](/document/v2/privatization/uc_limitation.html)。
+
 
 ## 实现方法
 
diff --git a/docs/document/v2/flutter/thread.md b/docs/document/v2/flutter/thread.md
index 576c97f7d..868298543 100644
--- a/docs/document/v2/flutter/thread.md
+++ b/docs/document/v2/flutter/thread.md
@@ -6,9 +6,6 @@
 
 本文介绍如何使用环信即时通讯 IM Flutter SDK 在实时互动 app 中创建和管理子区,并实现子区相关功能。
 
-:::notice
-私有化版本不支持子区功能。
-:::
 
 ## 技术原理
 
@@ -29,9 +26,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 `1.0.5 或以上版本` SDK 初始化,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。
-- 了解子区和子区成员数量限制,详见 [使用限制](/product/limitation.html)。
-- 联系商务开通子区功能。
+- 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。
+- 私有部署已开通子区功能。
 
 ## 实现方法
 
diff --git a/docs/document/v2/flutter/thread_message.md b/docs/document/v2/flutter/thread_message.md
index 758032fec..24910c369 100644
--- a/docs/document/v2/flutter/thread_message.md
+++ b/docs/document/v2/flutter/thread_message.md
@@ -32,8 +32,8 @@
 开始前,请确保满足以下条件:
 
 - 已集成 `1.0.5 或版本` SDK 的基本功能,完成 SDK 初始化,详见 [快速开始](quickstart.html)。
-- 了解即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
-- 联系商务开通子区功能。
+- 了解即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
+- 私有部署已开通子区功能。
 
 ## 实现方法
 
diff --git a/docs/document/v2/flutter/user_relationship.md b/docs/document/v2/flutter/user_relationship.md
index 1bbde6e24..5b4026774 100644
--- a/docs/document/v2/flutter/user_relationship.md
+++ b/docs/document/v2/flutter/user_relationship.md
@@ -30,7 +30,7 @@ SDK 提供用户关系管理功能,包括好友列表管理和黑名单管理
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
diff --git a/docs/document/v2/flutter/userprofile.md b/docs/document/v2/flutter/userprofile.md
index 8f5ba095f..3591965de 100644
--- a/docs/document/v2/flutter/userprofile.md
+++ b/docs/document/v2/flutter/userprofile.md
@@ -25,7 +25,7 @@
 设置用户属性前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
@@ -45,7 +45,7 @@ try {
 }
 ```
 
-若[调用 RESTful 的接口设置](/document/server-side/userprofile.html#设置用户属性)或[删除用户属性](/document/server-side/userprofile.html#删除用户属性),请求中必须传以下字段各客户端才能获取到。
+若[调用 RESTful 的接口设置](/document/v2/server-side/userprofile.html#设置用户属性)或[删除用户属性](/document/v2/server-side/userprofile.html#删除用户属性),请求中必须传以下字段各客户端才能获取到。
 
 | 字段        | 类型   | 描述                                                         |
 | :---------- | :----- | :----------------------------------------------------------- |
diff --git a/docs/document/v2/ios/demo.md b/docs/document/v2/ios/demo.md
index 7675a32b3..8a483dc0c 100644
--- a/docs/document/v2/ios/demo.md
+++ b/docs/document/v2/ios/demo.md
@@ -2,7 +2,7 @@
 
 <Toc />
 
-环信即时通讯 IM iOS 端提供示例应用可供体验。
+<!--环信即时通讯 IM iOS 端提供示例应用可供体验。
 
 1. [下载 Demo](https://www.easemob.com/download/demo)。
 
@@ -11,19 +11,20 @@
 3. 选择同意《环信服务条款》与《环信隐私协议》,然后点击 **登录** 登录 Demo。
 
 ![img](@static/images/demo/ios_login.png)
+-->
 
 ## 代码下载
 
 您可以通过以下两种方式获取到源代码:
 
-- 下载代码压缩包:[IM SDK 及 Demo 下载](https://www.easemob.com/download/im)
-- 下载源代码:[github 源码地址](https://github.com/easemob/chat-ios)
+- 下载代码压缩包:[IM SDK 及 Demo 下载](https://downloadsdk.easemob.com/downloads/iOS_IM_SDK_V4.1.1.zip)
+
 
 欢迎大家提交 PR 改进和修复 EaseIM 和 EaseIMKit 中的问题。
 
 ## 运行 EaseIM 工程
 
-从 [IM SDK 及 Demo 下载](https://www.easemob.com/download/im) 下载 iOS SDK 压缩包,然后解压。解压后在 `EaseIM` 文件夹下,即为 EaseIM 的工程目录。
+下载 iOS SDK 压缩包,然后解压。解压后在 `EaseIM` 文件夹下,即为 EaseIM 的工程目录。
 
 终端 cd 到 EaseIM 的 `podfile` 目录下,终端执行 `pod install` 命令,等待下载完所有的 pod 依赖库,即可打开 `EaseIM.xcworkspace`,运行 EaseIM demo 进行自定义再次开发。
 
@@ -67,6 +68,6 @@ Demo 中有几大 UI 功能模块,在集成时将对应的模块添加到工
 
 ## 部分 UI 展示
 
-![联系人列表](@static/images/android/app-demo-ui-2.jpeg)
 
-![聊天页面](@static/images/android/app-demo-ui-3.jpeg)
\ No newline at end of file
+<img src=@static/images/android/app-demo-ui-2.jpeg  title=联系人列表 width="200"/>&nbsp;&nbsp;
+<img src=@static/images/android/app-demo-ui-3.jpeg  title=聊天页面 width="200"/>
\ No newline at end of file
diff --git a/docs/document/v2/ios/easecallkit.md b/docs/document/v2/ios/easecallkit.md
index f106f5d30..9b6f63c3b 100644
--- a/docs/document/v2/ios/easecallkit.md
+++ b/docs/document/v2/ios/easecallkit.md
@@ -8,7 +8,7 @@
 
 使用 `EaseCallKit` 库可以快速实现常用的音视频场景,通过信令的交互确认,保证 **用户多端登录时,收到呼叫同时振铃,一端处理后,其他端自动停止**。
 
-`EaseCallKit` 库在 Github 上进行了保存,请参见 [EaseCallKit iOS 端使用指南](https://github.com/easemob/easecallkitui-ios)。
+`EaseCallKit` 库在 Github 上进行了保存,请参见 [EaseCallKit iOS 端使用指南](https://github.com/easemob/easecallkitui-ios/tree/4.0.0)。
 
 **`EaseCallKit` 在通话过程中,使用环信 ID 加入频道,方便音视频视图中显示用户名。如果用户不使用 `EaseCallKit` 而直接调用声网 API,也可以直接使用数字 UID 加入频道。**
 
@@ -18,7 +18,7 @@
 
 ## 跑通 Demo
 
-`EaseCallKit` 集成在环信提供的开源 IM Demo 中,你可以通过进入 [环信 IM Demo 下载页面](https://www.easemob.com/download/im),选择 iOS 端 Demo 下载,或直接进入 [Github 开源网站](https://github.com/easemob/chat-ios) 下载。
+EaseCallKit 集成在环信开源 IM Demo 中,你可以直接下载 iOS 端Demo下载 [iOS IM源码](https://downloadsdk.easemob.com/downloads/iOS_IM_SDK_V4.1.1.zip) 。
 
 - 安装 SDK 与 `EaseCallKit`
 
@@ -40,7 +40,7 @@ pod install
 
 在集成该库前,你需要满足以下条件:
 
-- 分别创建 [环信应用](/product/enable_and_configure_IM.html) 及 [声网应用](https://docportal.shengwang.cn/cn/video-legacy/run_demo_video_call_ios?platform=iOS#1-创建声网项目);
+- 分别创建 [环信应用](/document/v2/privatization/uc_configure.html) 及 [声网应用](https://docportal.shengwang.cn/cn/video-legacy/run_demo_video_call_ios?platform=iOS#1-创建声网项目);
 - 已完成环信 IM 的基本功能,包括登录、好友、群组以及会话等的集成;
 - 上线之前开通声网 token 验证时,用户需要实现自己的 [App Server](https://github.com/easemob/easemob-im-app-server/tree/master/agora-app-server),用于生成 token。利用 App Server 生成 token 的过程参见 [声网 token](https://docportal.shengwang.cn/cn/video-call-4.x/token_server_ios_ng?platform=iOS)。
 
@@ -163,13 +163,13 @@ config.agoraAppId=@"声网 AppID";
 
 发起通话后的 UI 界面如下:
 
-<img src="@static/images/ios/sendcall.png" width="400" />
+<img src=@static/images/ios/sendcall.png  title=发起通话后 width="200"/>
 
 ### 收到邀请
 
 主叫方调用邀请接口后,如果被叫方在线且并未处于通话过程中,将弹出通话页面,被叫用户可选择接听或者拒绝。通话页面如下:
 
-<img src="@static/images/ios/recvcall.png" width="400" />
+<img src=@static/images/ios/recvcall.png  title=发起通话后 width="200"/>
 
 被叫振铃的同时,会触发以下回调:
 
diff --git a/docs/document/v2/ios/easeimkit.md b/docs/document/v2/ios/easeimkit.md
index b3e5e2317..6f87eb206 100644
--- a/docs/document/v2/ios/easeimkit.md
+++ b/docs/document/v2/ios/easeimkit.md
@@ -12,11 +12,11 @@ EaseIMKit 是基于环信 IM SDK 的一款 UI 组件库,它提供了一些通
 
 EaseIMKit 源码地址
 
-- [EaseIMKit 工程](https://github.com/easemob/easeui_ios/tree/EaseIMKit)
+- [EaseIMKit 工程](https://github.com/easemob/easeui_ios/tree/EaseIMKit_4.1.0)
 
 使用 EaseIMKit 环信 IM App 地址:
 
-- [环信 IM](https://github.com/easemob/chat-ios)
+- [环信 IM](https://downloadsdk.easemob.com/downloads/iOS_IM_SDK_V4.1.1.zip)
 
 ## 导入
 
@@ -43,9 +43,13 @@ EaseIMKit 中包含了拍照,发语音,发图片,发视频,发位置,
 
 ### 源码集成
 
+<!--
 - [Github 下载源码](https://github.com/easemob/easeui_ios.git)
 
 执行命令:`git clone https://github.com/easemob/easeui_ios.git`
+-->
+[下载IM源码](https://downloadsdk.easemob.com/downloads/iOS_IM_SDK_V4.1.1.zip)
+
 
 - 创建 `Podfile` 文件并添加 EaseIMKit 源码依赖
 
@@ -75,7 +79,7 @@ EaseIMKit 中包含了拍照,发语音,发图片,发视频,发位置,
   1. 终端 cd 到 Podfile 文件所在目录,执行 pod install 命令在项目中安装 EaseIMKit 本地源码
   2. 执行完成后,则在 Xcode 项目目录 Pods/Development Pods/ 可找到 EaseIMKit 源码,如下图所示:
 
-  ![img](@static/images/ios/easeimkit3.png)
+  <img src=@static/images/ios/easeimkit3.png  title=集成本地源码 width="400"/>
 
   3. 可对源码进行符合自己项目目标的自定义修改
 
@@ -334,19 +338,21 @@ typedef enum {
 
 聊天页背景色,输入区颜色配置示例:
 
-![背景色,输入区颜色](@static/images/ios/easeimkit4.png)
+ <img src=@static/images/ios/easeimkit4.png  title=背景色,输入区颜色 width="200"/>
 
 聊天会话输入区类型参数配置示例:
 
-![全部功能,语音不可用,表情不可用,语音和表情不可用,纯文本](@static/images/ios/easeimkit5.png)
+
+ <img src=@static/images/ios/easeimkit5.png  title=纯文本 width="200"/>
 
 输入区扩展功能参数配置示例:
 
-![输入区扩展](@static/images/ios/easeimkit6.jpeg)
+ <img src=@static/images/ios/easeimkit6.jpeg  title=输入区扩展 width="200"/>
 
 聊天会话群聊消息同左排列,时间线背景色,时间字体颜色配置示例:
 
-![群聊消息同左排列,时间线背景色,时间字体颜色](@static/images/ios/easeimkit7.jpeg)
+
+ <img src=@static/images/ios/easeimkit7.jpeg  title=群聊消息 width="200"/>
 
 ### 会话列表样式配置
 
@@ -417,7 +423,7 @@ typedef enum {
 
 通讯录添加头部功能区:新的好友,群聊,聊天室示意图:
 
-![头部功能区:新的好友,群聊,聊天室以及联系人列表](@static/images/ios/easeimkit8.png)
+ <img src=@static/images/ios/easeimkit8.png  title=头部功能区 width="200"/>
 
 ## 自定义功能扩展
 
@@ -476,7 +482,7 @@ EaseChatViewControllerDelegate
 
 通过自定义 cell 展示单聊音视频通话记录的效果图:
 
-![自定义 cell 展示单聊音视频通话记录](@static/images/ios/easeimkit9.png)
+ <img src=@static/images/ios/easeimkit9.png  title=单聊音视频通话记录 width="200"/>
 
 #### 选中消息的回调
 
diff --git a/docs/document/v2/ios/group_attributes.md b/docs/document/v2/ios/group_attributes.md
index e064d5b71..8fefd08e3 100644
--- a/docs/document/v2/ios/group_attributes.md
+++ b/docs/document/v2/ios/group_attributes.md
@@ -18,8 +18,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
-- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
+
 
 ## 实现方法
 
diff --git a/docs/document/v2/ios/group_manage.md b/docs/document/v2/ios/group_manage.md
index 8d5573aba..c8380a14e 100644
--- a/docs/document/v2/ios/group_manage.md
+++ b/docs/document/v2/ios/group_manage.md
@@ -22,8 +22,7 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
-- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
diff --git a/docs/document/v2/ios/group_members.md b/docs/document/v2/ios/group_members.md
index 781231138..60eae8177 100644
--- a/docs/document/v2/ios/group_members.md
+++ b/docs/document/v2/ios/group_members.md
@@ -20,9 +20,9 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 - 了解群成员角色,详见 [群组功能介绍](group_overview.html)。
-- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。
+
 
 ## 实现方法
 
diff --git a/docs/document/v2/ios/message_manage.md b/docs/document/v2/ios/message_manage.md
index c613b71c2..0d1012f45 100644
--- a/docs/document/v2/ios/message_manage.md
+++ b/docs/document/v2/ios/message_manage.md
@@ -32,7 +32,7 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
diff --git a/docs/document/v2/ios/message_modify.md b/docs/document/v2/ios/message_modify.md
index b4e2b01c1..7f40a7943 100644
--- a/docs/document/v2/ios/message_modify.md
+++ b/docs/document/v2/ios/message_modify.md
@@ -9,7 +9,7 @@
 若使用该功能,需将 SDK 升级至 4.1.0 或以上版本。
 :::
 
-你可以调用 `EMChatManager::modifyMessage:body:completion:` 方法修改已经发送成功的消息。一条消息默认最多可修改 10 次,若要提升修改次数,需联系商务。
+你可以调用 `EMChatManager::modifyMessage:body:completion:` 方法修改已经发送成功的消息。一条消息默认最多可修改 10 次。
 
 消息修改后,消息的接收方会收到 `EMChatManagerDelegate#onMessageContentChanged:operatorId:operationTime` 事件,该事件中会携带修改后的消息对象、最新一次修改消息的用户以及消息的最新修改时间。对于群聊会话,除了修改消息的用户,群组内的其他成员均会收到该事件。
 
diff --git a/docs/document/v2/ios/message_receipt.md b/docs/document/v2/ios/message_receipt.md
index a04dea65a..adedefa3e 100644
--- a/docs/document/v2/ios/message_receipt.md
+++ b/docs/document/v2/ios/message_receipt.md
@@ -4,7 +4,7 @@
 
 单聊会话支持消息送达回执、会话已读回执和消息已读回执,发送方发送消息后可及时了解接收方是否及时收到并阅读了信息,也可以了解整个会话是否已读。
 
-群聊会话只支持消息已读回执。群主和群管理员在发送消息时,可以设置该消息是否需要已读回执。仅旗舰版及以上版本支持群消息已读回执功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。
+群聊会话只支持消息已读回执。群主和群管理员在发送消息时,可以设置该消息是否需要已读回执,私有部署即时通讯服务默认支持并开通该功能。
 
 本文介绍如何使用环信即时通讯 IM Android SDK 实现单聊和群聊的消息回执功能。
 
@@ -40,8 +40,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
-- 群消息已读回执功能仅在环信 IM 旗舰版及以上版本支持该功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
+
 
 ## 实现方法
 
@@ -189,7 +189,7 @@ EMChatManagerDelegate
 
 对于群聊,群主和群管理员发送消息时,可以设置该消息是否需要已读回执。若需要,每个群成员在阅读消息后,SDK 均会发送已读回执,即阅读该消息的群成员数量即为已读回执的数量。
 
-仅旗舰版及以上版本支持群消息已读回执功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。
+私有部署即时通讯服务默认支持并开通群消息已读回执功能。
 
 1. 群主或群管理员设置 `EMChatMessage` 的属性 `isNeedGroupAck` 为 `YES`。
 
diff --git a/docs/document/v2/ios/message_retrieve.md b/docs/document/v2/ios/message_retrieve.md
index 45adf99d3..50e50ab81 100644
--- a/docs/document/v2/ios/message_retrieve.md
+++ b/docs/document/v2/ios/message_retrieve.md
@@ -4,9 +4,7 @@
 
 环信即时通讯 IM 提供消息漫游功能,即将用户的所有会话的历史消息保存在消息服务器,用户在任何一个终端设备上都能获取到历史信息,使用户在多个设备切换使用的情况下也能保持一致的会话场景。本文介绍用户如何获取和删除服务端的会话和消息。
 
-:::tip
-本文介绍的功能均为增值服务,需在[环信即时通讯 IM 管理后台](https://console.easemob.com/user/login)开通。
-:::
+
 
 ## 技术原理
 
@@ -24,7 +22,7 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
@@ -105,8 +103,8 @@ NSString *cursor = @"";
 
 你可以调用 `removeMessagesFromServerWithTimeStamp` 或 `removeMessagesFromServerMessageIds` 方法按消息时间或消息 ID 单向删除服务端的历史消息。每次最多可删除 50 条消息。消息删除后,该用户无法从服务端拉取到该消息。其他用户不受该操作影响。登录该账号的其他设备会收到 `EMMultiDevicesDelegate` 中的 `multiDevicesMessageBeRemoved` 回调,已删除的消息自动从设备本地移除。
 
-:::tip
-若使用该功能,需将 SDK 升级至 V3.9.8 或以上版本并联系商务开通。
+:::notice
+若使用该功能,需将 SDK 升级至 V3.9.8 或以上版本。
 :::
 
 示例代码如下:
diff --git a/docs/document/v2/ios/message_send_receive.md b/docs/document/v2/ios/message_send_receive.md
index 8485f4305..0c563597d 100644
--- a/docs/document/v2/ios/message_send_receive.md
+++ b/docs/document/v2/ios/message_send_receive.md
@@ -38,7 +38,7 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
@@ -112,7 +112,7 @@ message.priority = EMChatRoomMessagePriorityHigh;
 
 ### 撤回消息
 
-发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信即时通讯云控制台](https://console.easemob.com/user/login)的**功能配置** > **功能配置总览** > **基础功能** 页面设置消息撤回时长,该时长不超过 7 天。
+发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在 环信即时通讯云控制台的**服务管理** > **服务概览** 页面设置消息撤回时长,该时长不超过 7 天。
 
 ```objectivec
 // 异步方法
diff --git a/docs/document/v2/ios/multi_device.md b/docs/document/v2/ios/multi_device.md
index cc1f13e5b..aff8a5a5f 100644
--- a/docs/document/v2/ios/multi_device.md
+++ b/docs/document/v2/ios/multi_device.md
@@ -11,7 +11,7 @@
 
 多端登录时,即时通讯 IM 每端默认最多支持 4 个设备同时在线。如需增加支持的设备数量,可以联系环信即时通讯 IM 的商务经理。
 
-你可以在环信控制台的**功能配置** > **功能配置总览**页面的**基础功能**页签下点击**多端多设备在线**操作栏中的**设置**,在弹出的对话框中设置设置各端设备的数量:
+在环信控制台的**服务管理** > **服务概览**页面,点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击 **新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台**和**设备数量**。
 
 ![img](@static/images/common/multidevice_device_count.png)
 
@@ -24,7 +24,7 @@
 </head>
 
 <body>
-<table width="815" height="195" border="1">
+<table width="815" height="" border="1">
   <tbody>
     <tr>
       <td width="127" height="49">单端/多端登录</td>
@@ -121,7 +121,7 @@ option.customDeviceName = @"XXX的iPad";
 
 你可以按照以下步骤设置登录设备所属的平台:
 
-1. 在环信控制台的**功能配置** > **功能配置总览**页面,点击**基础功能**页签,然后点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击**新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台**和**设备数量**。
+1. 在环信控制台的**服务管理** > **服务概览**页面,点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击**新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台**和**设备数量**。
 
 **设备平台**的取值范围为 [1,100],**设备数量**的取值范围为 [0,4]。
 
diff --git a/docs/document/v2/ios/overview.md b/docs/document/v2/ios/overview.md
index b2e072a95..6e10038e3 100644
--- a/docs/document/v2/ios/overview.md
+++ b/docs/document/v2/ios/overview.md
@@ -6,7 +6,7 @@
 
 ## 前提条件
 
-开始前,请注册有效的环信即时通讯 IM 开发者账号并获得 App key,详见 [环信即时通讯云管理后台](https://console.easemob.com/user/login)。
+开始前,请注册有效的环信即时通讯 IM 开发者账号并获得 App key,详见 [环信即时通讯云管理后台](/document/v2/privatization/uc_configure.html)。
 
 ## 集成环境
 
@@ -41,7 +41,7 @@ EMOptions *options = [EMOptions optionsWithAppkey:@"<#appkey#>"];
 :::notice
 
 - 以上注册模式为在客户端注册,旨在方便测试,并不推荐在正式环境中使用;
-- 正式环境应使用服务器端调用 REST API 接口 [注册用户](/document/server-side/account_system.html#注册用户)。
+- 正式环境应使用服务器端调用 REST API 接口 [注册用户](/document/v2/server-side/account_system.html#注册用户)。
   :::
 
 ## 用户登录
@@ -53,7 +53,7 @@ EMOptions *options = [EMOptions optionsWithAppkey:@"<#appkey#>"];
 
 ### 手动登录
 
-登录时传入的用户 ID 必须为 String 类型,支持的字符集详见[用户注册的 RESTful 接口](/document/server-side/account_system.html#注册用户)。
+登录时传入的用户 ID 必须为 String 类型,支持的字符集详见[用户注册的 RESTful 接口](/document/v2/server-side/account_system.html#注册用户)。
 
 手动登录后,收到 `connectionStateDidChange` 回调表明 SDK 与环信服务器连接成功。
 
@@ -70,7 +70,7 @@ EMOptions *options = [EMOptions optionsWithAppkey:@"<#appkey#>"];
 
 ```
 
-**用户 ID + token** 是更加安全的登录方式。token 可以通过调用 REST API 获取,详见 [环信用户 token 的获取](/document/server-side/easemob_user_token.html)。
+**用户 ID + token** 是更加安全的登录方式。token 可以通过调用 REST API 获取,详见 [环信用户 token 的获取](/document/v2/server-side/easemob_user_token.html)。
 
 :::notice
 使用 token 登录时需要处理 token 过期的问题,比如每次登录时更新 token 等机制。
@@ -190,7 +190,7 @@ option.logLevel = EMLogLevelDebug;
 
 ### 获取本地日志
 
-SDK 会写入日志文件到本地。日志文件路径如下:沙箱 Library/Application Support/HyphenateSDK/easemobLog/easemob.log。
+SDK 会写入日志文件到本地。日志文件路径如下:<br>沙箱 Library/Application Support/HyphenateSDK/easemobLog/easemob.log。
 
 以真机为例,获取本地日志过程如下:
 
diff --git a/docs/document/v2/ios/presence.md b/docs/document/v2/ios/presence.md
index d552061ae..39e8db4ed 100644
--- a/docs/document/v2/ios/presence.md
+++ b/docs/document/v2/ios/presence.md
@@ -35,8 +35,8 @@
 使用在线状态功能前,请确保满足以下条件:
 
 1. 完成 `3.9.1 或以上版本` SDK 初始化,详见 [快速开始](quickstart.html)。
-2. 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。
-3. 已联系商务开通在线状态订阅功能。
+2. 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。
+3. 私有部署已开通在线状态订阅功能。
 
 ## 实现方法
 
diff --git a/docs/document/v2/ios/push.md b/docs/document/v2/ios/push.md
index 06d09e556..8bfacdd52 100644
--- a/docs/document/v2/ios/push.md
+++ b/docs/document/v2/ios/push.md
@@ -184,7 +184,7 @@ DeviceToken 注册后,iOS 系统会通过以下方式将 DeviceToken 回调给
 - 设置推送通知,包含设置推送通知方式和免打扰模式。
 - 配置推送翻译和推送模板。
 
-其中,设置推送通知方式、免打扰模式和推送模板为推送的高级功能,使用前需要在[环信即时通讯云控制后台](https://console.easemob.com/user/login)上开通。
+其中,设置推送通知方式、免打扰模式和推送模板为推送的高级功能,使用前需要在环信即时通讯云控制后台上开通。
 
 ![image](@static/images/ios/push/push_ios_27_enable_push.png)
 
@@ -449,7 +449,7 @@ NSArray *conversations = @[conversation1,conversation2];
 
 #### 4.3 设置推送翻译
 
-如果用户启用 [自动翻译](message_translation.html) 功能并发送消息,SDK 会同时发送原始消息和翻译后的消息。
+如果用户启用 自动翻译 功能并发送消息,SDK 会同时发送原始消息和翻译后的消息。
 
 推送通知与翻译功能协同工作。作为接收方,你可以设置你在离线时希望接收的推送通知的首选语言。如果翻译消息的语言符合你的设置,则翻译消息显示在推送通知中;否则,将显示原始消息。
 
diff --git a/docs/document/v2/ios/quickstart.md b/docs/document/v2/ios/quickstart.md
index 0964ab6e9..4e48e8330 100644
--- a/docs/document/v2/ios/quickstart.md
+++ b/docs/document/v2/ios/quickstart.md
@@ -15,7 +15,7 @@
 - Xcode (推荐最新版本)。
 - 安装 iOS 10.0 或更高版本的 iOS 模拟器或 Apple 设备。
 - CocoaPods [1.10.1 或更高版本](https://cocoapods.org/)。
-- 有效的环信即时通讯 IM 开发者账号和 App Key,见 [环信即时通讯云管理后台](https://console.easemob.com/user/login)。
+- 有效的环信即时通讯 IM 开发者账号和 App Key,见 [环信即时通讯云管理后台](/document/v2/privatization/uc_configure.html)。
 - 如果你的网络环境部署了防火墙,请联系环信技术支持设置白名单。
 
 ## 1. 准备开发环境
diff --git a/docs/document/v2/ios/reaction.md b/docs/document/v2/ios/reaction.md
index 9004c5168..0b40c80e8 100644
--- a/docs/document/v2/ios/reaction.md
+++ b/docs/document/v2/ios/reaction.md
@@ -6,7 +6,6 @@
 
 :::notice
 1. 目前 Reaction 仅适用于单聊和群组。聊天室暂不支持 Reaction 功能。
-2. 私有化版本不支持 Reaction 功能。
 :::
 
 ## 技术原理
@@ -30,8 +29,8 @@ Reaction 场景示例如下:
 开始前,请确保满足以下条件:
 
 1. 完成 `HyphenateChat 3.9.2.1 或以上版本` SDK 初始化,详见 [快速开始](quickstart.html)。
-2. 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。
-3. 已联系商务开通 Reaction 功能。
+2. 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。
+3. 私有部署已开通 Reaction 功能。
 
 ## 实现方法
 
diff --git a/docs/document/v2/ios/releasenote.md b/docs/document/v2/ios/releasenote.md
index e6f624172..e0161c9e5 100644
--- a/docs/document/v2/ios/releasenote.md
+++ b/docs/document/v2/ios/releasenote.md
@@ -227,7 +227,6 @@
 ### 新增特性:
 
 - [IM SDK] 新增 [消息 Reaction](reaction.html) 功能,可以对消息进行不同的响应。
-- [IM SDK] 新增 [举报 API](moderation.html) 用于内容审核。
 
 ### 优化:
 
@@ -260,7 +259,6 @@
 ### 新增特性:
 
 - [IM SDK] [用户在线状态 (Presence) 订阅](presence.html)功能。
-- [IM SDK] [翻译](message_translation.html)功能更新,增加自动翻译接口。实现用户按需翻译和发消息自动翻译。
 
 ### 优化:
 
@@ -275,7 +273,7 @@
 
 - [IM SDK] [单向删除服务端会话 API](https://sdkdocs.easemob.com/apidoc/ios/chat3.0/protocol_i_e_m_chat_manager-p.html#a4ac87045ad781e99c59acc271f9af433);
 - [IM SDK] 免打扰事件的多设备间同步;
-- [IM SDK] Push 平台推送支持扩展字段获取、后续动作、角标设置、透传消息等功能,具体见:[iOS 推送集成](https://docs-im.easemob.com/push/apppush/iossdk);
+- [IM SDK] Push 平台推送支持扩展字段获取、后续动作、角标设置、透传消息等功能,具体见:[iOS 推送集成](/push/push_integration_note_ios.html);
 - [IM SDK] 发送图片支持 PNG 格式;
 - [IM SDK] 非好友不能发送消息错误码 [221 EMErrorUserNotOnRoster];
 
@@ -917,7 +915,7 @@ IM_DEMO 修改:
 
 新功能:
 
-- 实现不同模式的实时语音会议功能 [多人音视频会议](https://docs-im.easemob.com/im/ios/basics/multiuserconference)
+- 实现不同模式的实时语音会议功能 [多人音视频会议](/private/media/conference_ios.html)
 - 添加动态更换对方实时视频显示页面的功能[IEMConferenceManager updateConference:streamId:remoteVideoView:completion:]
 
 ## 版本 V3.3.9 2018-02-11
diff --git a/docs/document/v2/ios/room_attributes.md b/docs/document/v2/ios/room_attributes.md
index ac023fd45..e9e08a56e 100644
--- a/docs/document/v2/ios/room_attributes.md
+++ b/docs/document/v2/ios/room_attributes.md
@@ -20,8 +20,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html);
-- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html)。
-- 了解聊天室的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。
+- 了解环信即时通讯 IM 的 [使用限制](/document/v2/privatization/uc_limitation.html)。
+
 
 ## 实现方法
 
diff --git a/docs/document/v2/ios/room_manage.md b/docs/document/v2/ios/room_manage.md
index ed6ea659e..9c2096585 100644
--- a/docs/document/v2/ios/room_manage.md
+++ b/docs/document/v2/ios/room_manage.md
@@ -25,9 +25,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html)。
-- 了解环信即时通讯 IM 不同版本的聊天室相关数量限制,详见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im)。
-- 只有超级管理员才有创建聊天室的权限,因此你还需要确保已调用 RESTful API 添加了超级管理员,详见 [添加聊天室超级管理员](/document/server-side/chatroom.html#添加超级管理员)。
+- 了解环信即时通讯 IM 的 [使用限制](/document/v2/privatization/uc_limitation.html)。
+- 只有超级管理员才有创建聊天室的权限,因此你还需要确保已调用 RESTful API 添加了超级管理员,详见 [添加聊天室超级管理员](/document/v2/server-side/chatroom.html#添加超级管理员)。
 - 聊天室创建者和管理员的数量之和不能超过 100 ,即管理员最多可添加 99 个。
 
 ## 实现方法
@@ -36,9 +35,9 @@
 
 ### 创建聊天室
 
-仅 [超级管理员](/document/server-side/chatroom.html#管理超级管理员) 可以调用 `createChatroomWithSubject` 方法创建聊天室,并设置聊天室的名称、描述、最大成员数等信息。成功创建聊天室后,该超级管理员为该聊天室的所有者。
+仅 [超级管理员](/document/v2/server-side/chatroom.html#管理超级管理员) 可以调用 `createChatroomWithSubject` 方法创建聊天室,并设置聊天室的名称、描述、最大成员数等信息。成功创建聊天室后,该超级管理员为该聊天室的所有者。
 
-你也可以直接调用 REST API [从服务端创建聊天室](/document/server-side/chatroom.html#创建聊天室)。
+你也可以直接调用 REST API [从服务端创建聊天室](/document/v2/server-side/chatroom.html#创建聊天室)。
 
 示例代码如下:
 
diff --git a/docs/document/v2/ios/room_members.md b/docs/document/v2/ios/room_members.md
index 9c0c73bb9..7e5aab57e 100644
--- a/docs/document/v2/ios/room_members.md
+++ b/docs/document/v2/ios/room_members.md
@@ -21,8 +21,7 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html)。
-- 了解环信即时通讯 IM 聊天室相关限制,详见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im)。
+- 了解环信即时通讯 IM 的 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
diff --git a/docs/document/v2/ios/thread.md b/docs/document/v2/ios/thread.md
index 594924d5e..e8dfe5443 100644
--- a/docs/document/v2/ios/thread.md
+++ b/docs/document/v2/ios/thread.md
@@ -4,9 +4,6 @@
 
 子区是群组成员的子集,是支持多人沟通的即时通讯系统,本文介绍如何使用环信即时通讯 IM iOS SDK 在实时互动 app 中创建和管理子区,并实现子区相关功能。
 
-:::notice
-私有化版本不支持子区功能。
-:::
 
 ## 技术原理
 
@@ -26,9 +23,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 3.9.3 或以上版本 SDK 初始化,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。
-- 了解子区和子区成员数量限制,详见 [使用限制](/product/limitation.html)。
-- 联系商务开通子区功能。
+- 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。
+- 私有部署已开通子区功能。
 
 ## 实现方法
 
diff --git a/docs/document/v2/ios/thread_message.md b/docs/document/v2/ios/thread_message.md
index e09af9b6a..27e67b1db 100644
--- a/docs/document/v2/ios/thread_message.md
+++ b/docs/document/v2/ios/thread_message.md
@@ -30,9 +30,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 3.9.3 以上版本 SDK 初始化,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。
-- 了解子区和子区成员数量限制,详见 [使用限制](/product/limitation.html)。
-- 联系商务开通子区功能。
+- 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。
+- 私有部署已开通子区功能。
 
 ## 实现方法
 
diff --git a/docs/document/v2/ios/user_relationship.md b/docs/document/v2/ios/user_relationship.md
index 6410b097c..aa278a65c 100644
--- a/docs/document/v2/ios/user_relationship.md
+++ b/docs/document/v2/ios/user_relationship.md
@@ -25,7 +25,7 @@ SDK 提供用户关系管理功能,包括好友列表管理和黑名单管理
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化并连接到服务器,详见 [快速开始](quickstart.html);
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html);
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html);
 - 调用好友请求相关方法之前先导入头文件 `IEMContactManager.h`;
 - 调用监听接收好友请求等回调方法 API 之前导入头文件:`EMContactManagerDelegate.h`。
 
diff --git a/docs/document/v2/ios/userprofile.md b/docs/document/v2/ios/userprofile.md
index c28363ace..9c8b83827 100644
--- a/docs/document/v2/ios/userprofile.md
+++ b/docs/document/v2/ios/userprofile.md
@@ -26,7 +26,7 @@
 设置用户属性前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html);
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
@@ -68,7 +68,7 @@ NSString *url = @"https://download-sdk.oss-cn-beijing.aliyuncs.com/downloads/IMD
 }];
 ```
 
-若[调用 RESTful 的接口设置](/document/server-side/userprofile.html#设置用户属性)或[删除用户属性](/document/server-side/userprofile.html#删除用户属性),请求中必须传以下字段各客户端才能获取到。
+若[调用 RESTful 的接口设置](/document/v2/server-side/userprofile.html#设置用户属性)或[删除用户属性](/document/v2/server-side/userprofile.html#删除用户属性),请求中必须传以下字段各客户端才能获取到。
 
 | 字段        | 类型   | 描述                                                                                              |
 | ----------- | ------ | ------------------------------------------------------------------------------------------------- |
@@ -142,7 +142,7 @@ EMChatMessage *message = [[EMChatMessage alloc] initWithConversationID:@"convers
 
 如果需要在名片中展示更丰富的信息,可以在 `ext` 中增加更多字段。
 
-可参考 [示例项目](https://www.easemob.com/download/im) 中的以下类:
+可参考 Demo 中的以下类:
 
 - `EMCustomMessageBody`
 - `EMChatMessage`
diff --git a/docs/document/v2/linux/overview.md b/docs/document/v2/linux/overview.md
new file mode 100644
index 000000000..9a3a5aad4
--- /dev/null
+++ b/docs/document/v2/linux/overview.md
@@ -0,0 +1,109 @@
+# Linux SDK 集成说明
+
+
+Linux SDK 是为在 Linux 及其他嵌入式设备中集成 IM 功能提供的 SDK。用户可以用 SDK 实现 IM 功能。目前支持文本消息、图片、语音、位置等消息以及透传消息,还可以实现好友管理、群组管理等功能。
+
+目前已经支持 ARM 平台及 MIPS 平台。
+
+## 集成准备
+
+获取环信 IM Linux SDK,SDK中包含如下文件:
+
+- release
+- doc
+- demo
+
+release 目录中包含SDK的库文件和头文件,libeasemob.a 是 SDK 静态库文件,include 目录包含 sdk 的头文件,doc 目录包含对 sdk 的详细说明,demo 包含使用 SDK 的 demo 程序。
+
+## 集成示例
+
+### 获取 EMClient
+
+EMClient 是 IM 服务的入口,可以直接调用 EMClient 的接口,也可以通过 EMClient 获得相应 EMContactManager、EMChatManager 等进行相应的操作。
+
+```
+#include "emclient.h"
+    ...
+    using namespace easemob;
+    
+    easemob::EMChatConfigsPtr configPtr = easemob::EMChatConfigsPtr(new easemob::EMChatConfigs(resourcePath, workPath, "easemob-demo#chatdemoui"));
+    chatClient = easemob::EMClient::create(configPtr);
+```
+
+### 注册及登录
+
+调用 chatclient 的 createAccount(), login() 接口可以实现注册、登录功能。
+
+注册的示例:
+
+```
+easemob::EMErrorPtr result = chatClient->createAccount("zhangsan", "passw0rd");
+if(result->mErrorCode == EMError::NO_ERROR) { 
+    cout << "Sing up successfully." << endl; 
+} else { 
+    cout << result->mDescription << endl; 
+}
+```
+
+登录的示例 :
+
+```
+easemob::EMErrorPtr result = chatClient->login("zhangsan", "passw0rd");
+if(result->mErrorCode == EMError::NO_ERROR) { 
+    cout << "Login successfully" << endl; 
+} else { 
+    cout << result->mDescription << endl; 
+}
+```
+
+**注意:** createAccount(), login() 是需要与后台服务器通讯的操作,可能需要一定时间,如果程序想同时显示 UI 的话,需要放在单独线程中处理。
+
+### 添加好友
+
+管理好友的操作需要通过 EMChatManager 进行。
+
+```
+chatClient->getContactManager().inviteContact("contact01", "hi, contact01");
+```
+
+添加好友需要等待对方的确认,也可以由程序设置成自动接受好友邀请。
+
+### 与好友聊天
+
+接收消息需要实现 EMChatManagerListener 的 onReceiveMessage() 方法并且注册该listener。
+
+```
+class Chat : public easemob::EMChatManagerListener { 
+    void onReceiveMessage(const easemob::EMMessageList &messages); 
+} 
+
+chatClient->getChatManager().addListener(this);
+```
+
+发送消息需要创建 EMMessage 实例,目前支持文本、图片、音频文件等消息类型。
+
+```
+EMTextMessageBody* body = new EMTextMessageBody("How are you, du");
+    easemob::EMMessagePtr msg = EMMessage::createSendMessage(loginUser, to, body);
+
+    easemob::EMCallbackPtr callback(new easemob::EMCallback(mHandle,
+				[=]()->bool{
+                    window_->AddOutput("Msg send success");
+                    return true;
+                }, 
+				[=](const easemob::EMErrorPtr error)->bool{
+                    window_->AddOutput( "Send message failed: " + error->mDescription);
+                    return true;
+                }));
+
+    msg->setCallback(callback);
+    chatClient->getChatManager().sendMessage(msg);
+```
+
+请注意 callback 的定义,为了能够获知 callback 的拥有者是否仍然存在,需要在您的类中定义`EMCallbackObserverHandle`。
+
+```
+easemob::EMCallbackObserverHandle mHandle;
+```
+
+具体接口说明及使用可以参考 SDK 中的文档和 demo 程序。
\ No newline at end of file
diff --git a/docs/document/v2/linux/releasenote.md b/docs/document/v2/linux/releasenote.md
new file mode 100644
index 000000000..63e4247f4
--- /dev/null
+++ b/docs/document/v2/linux/releasenote.md
@@ -0,0 +1,6 @@
+# Linux SDK 更新日志
+
+## 版本:V3.1.0 2016-03-24
+
+1. 全新的通信协议:全新的基于消息同步的私有协议,在不稳定网络环境下更稳定更省流量,确保消息投递的可靠、顺序以及实时性,并具有更高的安全性。同时提供了更好的扩展性,将支持更多的对接和设备同步场景。
+2. 全新的 SDK:全面重构,将核心通信模块做了更好的封装;简化了接口,结构更清晰,集成更容易;提升了登录速度和弱网络环境下的可靠性。
\ No newline at end of file
diff --git a/docs/document/v2/linux/techspec.md b/docs/document/v2/linux/techspec.md
new file mode 100644
index 000000000..2230c31f7
--- /dev/null
+++ b/docs/document/v2/linux/techspec.md
@@ -0,0 +1,7 @@
+# 技术参数
+
+
+- 开发语言:C++11
+- 编译器:GCC 4.8.4
+- 已适配系统:Ubuntu 14.04、树莓派
+- 第三方库:libpthread、libsqlite3、libcurl、libssl、libz
\ No newline at end of file
diff --git a/docs/document/v2/privatization/easemob_app_token.md b/docs/document/v2/privatization/easemob_app_token.md
new file mode 100644
index 000000000..1ef56108d
--- /dev/null
+++ b/docs/document/v2/privatization/easemob_app_token.md
@@ -0,0 +1,82 @@
+# 使用环信 App Token 鉴权
+
+<Toc />
+
+环信提供的 REST API 需要 app token (管理员权限 token) 才能使用,即发送 HTTP 请求时需要携带 app token。本文介绍如何获取 app token。
+
+另外,环信 Server SDK 提供了用户、消息、群组、聊天室等资源的操作管理能力,详见 [Java Server SDK](/document/v2/server-side/java_server_sdk.html) 和 [PHP Server SDK](/document/v2/server-side/php_server_sdk.html)。
+
+## 获取管理员权限 Token
+
+获取 token 时,服务器会返回 token 有效期,即响应中的 `expires_in` 字段的值。由于网络延迟等原因,系统不保证 token 在此值表示的有效期内绝对有效。如果发现 token 使用异常,如返回 HTTP 状态码 401,请重新获取新的 token。
+
+:::notice
+请不要频繁向服务器发送获取 token 的请求,同一账号发送此请求超过一定频率会被服务器封禁。
+:::
+
+### HTTP 请求
+
+```http
+POST https://{host}/{org_name}/{app_name}/token
+```
+
+#### 路径参数
+
+| 参数       | 类型   | 是否必需 | 描述                                                                                                                                            |
+| :--------- | :----- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------- |
+| `host`     | String | 是       | 访问 RESTful API 的域名或服务器信息。<br/>-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。 <br/> -私有化集成为部署后 `服务器地址:端口`。  |
+| `org_name` | String | 是       | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。  |
+| `app_name` | String | 是       | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。  |
+
+#### 请求 header
+
+| 参数           | 类型   | 是否必需 | 描述                                |
+| :------------- | :----- | :------- | :---------------------------------- |
+| `Content-Type` | String | 是       | 内容类型。请填 `application/json`。 |
+| `Accept`       | String | 是       | 内容类型。请填 `application/json`。 |
+
+#### 请求 body
+
+| 参数            | 类型   | 是否必需 | 描述                                                                                                                                                                                                             |
+| :-------------- | :----- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `grant_type`    | String | 是       | 授权方式。该参数设置为固定字符串 `client_credentials`,即客户端凭证模式。                                                                                                                                        |
+| `client_id`     | String | 是       | App 的 `client_id`,用于生成 app token 调用 REST API。详见环信即时通讯控制台的 `应用概览->应用详情`页面下的`应用信息-Client ID`。                                                                     |
+| `client_secret` | String | 是       | App 的 `client_secret`,用于生成 app token 调用 REST API。详见环信即时通讯控制台的 `应用概览->应用详情`页面下的`应用信息-ClientSecret`。                                                                 |
+| `ttl`           | Long   | 否       | token 有效期,单位为秒。<br/> - 若传入该参数,token 有效期以传入的值为准。<br/> - 若不传该参数,以 详见环信即时通讯控制台的`用户认证`页面的 token 有效期的设置为准。<br/> - 若设置为 `0`,则 token 永久有效。 |
+
+### HTTP 响应
+
+#### 响应 body
+
+如果返回的 HTTP 状态码为 `200`,表示成功返回 token。响应 body 包含如下字段:
+
+| 参数           | 类型   | 描述                                                 |
+| :------------- | :----- | :--------------------------------------------------- |
+| `access_token` | String | 有效的 Token 字符串。                                |
+| `expires_in`   | Long   | Token 有效时间,单位为秒,在有效期内不需要重复获取。 |
+| `application`  | String | 当前 App 的 UUID 值。                                |
+
+如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/v2/server-side/error.html) 了解可能的原因。
+
+### 示例
+
+#### 请求示例
+
+```shell
+curl -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{
+   "grant_type": "client_credentials",
+   "client_id": "YXA6i-Ak8Ol4Eei2l11ZjV-EAg",
+   "client_secret": "YXA6VunqiNxoB7IwXHInk1cGiXOOJfc",
+   "ttl": "1024000"
+ }' 'http://a1.easemob.com/easemob-demo/testapp/token'
+```
+
+#### 响应示例
+
+```json
+{
+  "access_token": "YWMte3bGuOukEeiTkNP4grL7iwAAAAAAAAAAAAAAAAAAAAGL4CTw6XgR6LaXXVmNX4QCAgMAAAFnKdc-ZgBPGgBFTrLhhyK8woMEI005emtrLJFJV6aoxsZSioSIZkr5kw",
+  "expires_in": 1024000,
+  "application": "8be024f0-e978-11e8-b697-5d598d5f8402"
+}
+```
diff --git a/docs/document/v2/privatization/easemob_user_token.md b/docs/document/v2/privatization/easemob_user_token.md
new file mode 100644
index 000000000..12d14da55
--- /dev/null
+++ b/docs/document/v2/privatization/easemob_user_token.md
@@ -0,0 +1,219 @@
+# 使用环信 User Token 鉴权
+
+<Toc />
+
+客户端 SDK 不提供获取 token 的 API。如果你的用户在客户端使用环信 token 登录和鉴权,你需要在应用服务器(App Server)集成环信服务端获取 token 的 API,实现获取 Token 的业务逻辑。
+
+环信服务端支持以下三种方式获取用户 token:
+
+- 通过“用户 ID”和“密码”获取:用户注册后,使用 “用户 ID” 和 “密码” 登录。登录成功后,你的 App Server 会为客户端提供一个用户 token。
+
+- 通过“用户 ID”获取:用户在客户端上登录时,你的应用服务器会下发用户 token,SDK 使用用户 ID 和用户 token 进行登录。开发者可通过 RESTful API 在你的应用服务器上对用户 token 进行管理,设置有效期,并确定当用户不存在时是否自动创建用户。
+
+- 基于 `AppKey、AppSecret` 和 `userId`(即注册用户时传入的 `username`)生成动态 Token。
+
+## 前提条件
+
+要调用环信即时通讯 RESTful API,请确保满足以下要求:
+
+- 已在环信即时通讯控制台 [开通配置环信即时通讯 IM 服务](uc_configure.html)。
+- 已从服务端获取 app token,详见 [App Token 鉴权](easemob_app_token.html)。
+
+## 认证方式
+
+环信即时通讯 RESTful API 要求 Bearer HTTP 认证。每次发送 HTTP 请求时,都必须在请求头部填入如下 `Authorization` 字段:
+
+Authorization:`Bearer YourAppToken`
+
+为提高项目的安全性,环信使用 token(动态密钥)对即将登录即时通讯系统的用户进行鉴权。即时通讯 RESTful API 推荐使用 app token 的鉴权方式,详见 [使用 App Token 鉴权](easemob_app_token.html)。
+
+## 通过用户 ID 和密码获取用户 token
+
+### HTTP 请求
+
+```http
+POST https://{host}/{org_name}/{app_name}/token
+```
+
+#### 路径参数
+
+| 参数    | 类型   | 是否必需 | 描述         |
+| :------------- | :----- | :------- | :--------------------- |
+| `host`| String | 是    |  访问 RESTful API 的域名或服务器信息。<br/>-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。 <br/> -私有化集成为部署后 `服务器地址:端口`。 |
+| `org_name` | String | 是     | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。  |
+| `app_name` | String | 是    | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。|
+
+#### 请求 header
+
+| 参数           | 类型   | 是否必需 | 描述                                |
+| :------------- | :----- | :------- | :---------------------- |
+| `Content-Type` | String | 是       | 内容类型。请填 `application/json`。 |
+| `Accept`       | String | 是       | 内容类型。请填 `application/json`。 |
+
+#### 请求 body
+
+| 参数         | 类型   | 是否必需 | 描述 |
+| :----------- | :----- | :------- | :------------------- |
+| `grant_type` | String | 是       | 授权方式。<br/> - 若值为 `password`,通过用户 ID 和密码获取 token,需设置 `username` 和 `password` 参数。在该请求中,该参数需设置为 `password`。<br/> - 若值为 `inherit`,通过用户 ID 获取 token,只需设置 `username` 参数。        |
+| `username`   | String | 是       | 用户 ID。                |
+| `password`   | String | 是       | 用户的登录密码。   |
+| `ttl`        | Long   | 否       | token 有效期,单位为秒。<br/> - 若传入该参数,token 有效期以传入的值为准。<br/> - 若不传该参数,以 详见环信即时通讯控制台的`用户认证`页面的 token 有效期的设置为准。<br/> - 若设置为 `0`,则 token 永久有效。 |
+
+### HTTP 响应
+
+#### 响应 body
+
+如果返回的 HTTP 状态码为 200,表示成功获取 token,响应包体中包含以下字段:
+
+| 字段            | 类型   | 描述                                               |
+| :-------------- | :----- | :---------------- |
+| `access_token`  | String | 有效的用户 token。                                     |
+| `expires_in`    | Long   | token 有效期,单位为秒。在有效期内无需重复获取。 |
+| `user`          | JSON   | 用户相关信息。                                             |
+| `user.uuid`    | String | 用户的 UUID。即时通讯服务为该请求中的 app 或用户生成的唯一内部标识,用于生成用户 token。   |
+| `user.type`    | String | 对象类型,无需关注。       |
+| `user.created`  | Long  | 注册用户的 Unix 时间戳,单位为毫秒。            |
+| `user.modified`  | Long  | 最近一次修改用户信息的 Unix 时间戳,单位为毫秒。          |
+| `user.username`  | String | 用户 ID。                                                       |
+| `user.activated` | Bool  | 用户是否为活跃状态:<br/> - `true`:用户为活跃状态。<br/> - `false`:用户为封禁状态。如要使用已被封禁的用户账户,你需要调用[解禁用户的 API](/document/v2/server-side/account_system.html#账号解禁)对账号解除封禁。 |
+
+如果返回的 HTTP 状态码非 200,表示请求失败。你可以参考[响应状态码](/document/v2/server-side/error.html)了解可能的原因。
+
+### 示例
+
+#### 请求示例
+
+```shell
+curl -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{
+   "grant_type": "password",
+   "username": "C",
+   "password": "1",
+   "ttl": "1024000"
+ }' 'http://XXXX/XXXX/XXXX/token'
+```
+
+#### 响应示例
+
+```json
+{
+    "access_token": "YWMtrR6ECkz8Eeyx6Y9j1eX9kbsMrFep3U6BvVj7KSnNonWqRx7gTPwR7Kzl-Q_xISNOAwMAAAF9UPZqbQAPoAAtYK9fWgaTNyuWoB3-6nGf_TXBx3Nt3XRZST-elU0x2A",
+    "expires_in": 1024000,
+    "user": {
+        "uuid": "aa471ee0-XXXX-XXXX-ace5-f90ff121234e",
+        "type": "user",
+        "created": 1637740861395,
+        "modified": 1637740861395,
+        "username": "c",
+        "activated": true
+    }
+}
+```
+
+## 通过用户 ID 获取用户 token
+
+你通过用户 ID 获取用户 token。若用户 ID 不存在,你可以确定是否自动创建用户。
+
+### HTTP 请求
+
+```http
+POST https://{host}/{org_name}/{app_name}/token
+```
+
+#### 路径参数
+
+| 参数    | 类型   | 是否必需 | 描述         |
+| :------------- | :----- | :------- | :---------------------------------- |
+| `host`| String | 是    | 访问 RESTful API 的域名或服务器信息。<br/>-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。 <br/> -私有化集成为部署后 `服务器地址:端口`。 |
+| `org_name` | String | 是     | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。  |
+| `app_name` | String | 是    | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。|
+
+#### 请求 header
+
+| 参数           | 类型   | 是否必需 | 描述                                |
+| :------------- | :----- | :------- | :---------------------------------- |
+| `Content-Type` | String | 是       | 内容类型。请填 `application/json`。 |
+| `Accept`       | String | 是       | 内容类型。请填 `application/json`。 |
+| `Authorization`| String | 是       | App 管理员的鉴权 token,格式为 `Bearer YourAppToken`,其中 `Bearer` 为固定字符,后面为英文空格和获取到的 app token。 |
+
+#### 请求 body
+
+| 参数         | 类型   | 是否必需 | 描述 |
+| :----------- | :----- | :------- | :------------------- |
+| `grant_type` | String | 是       | 授权方式。<br/> - 若值为 `password`,通过用户 ID 和密码获取 token,需设置 `username` 和 `password` 参数。 <br/> - 若值为 `inherit`,通过用户 ID 获取 token,只需设置 `username` 参数。在该请求中,该参数需设置为 `inherit`。  |
+| `username`   | String | 是       | 用户 ID。                |
+| `autoCreateUser`   | Boolean | 是       | 当用户不存在时,是否自动创建用户。**自动创建用户时,需保证授权方式(`grant_type`)必须为 `inherit`,API 请求 header 中使用 App token 进行鉴权**。  |
+| `ttl`        | Long   | 否       | token 有效期,单位为秒。<br/> - 若传入该参数,token 有效期以传入的值为准。<br/> - 若不传该参数,有效期默认为 60 天。此外,也可通过 环信即时通讯控制台的`用户认证`页面的 token 有效期的设置为准。<br/> - 若设置为 `0`,则 token 永久有效。 |
+
+### HTTP 响应
+
+#### 响应 body
+
+如果返回的 HTTP 状态码为 `200`,表示成功获取 token。如果返回的 HTTP 状态码非 200,表示请求失败。你可以参考[响应状态码](/document/v2/server-side/error.html)了解可能的原因。
+
+关于响应包体中的字段的描述,详见[通过用户 ID 和密码获取 token 的 API](#通过用户 ID 和密码获取用户 token) 中的响应字段的描述。
+
+### 示例
+
+#### 请求示例
+
+```shell
+# 将 <YourAppToken> 替换为你在服务端生成的 App Token
+
+curl -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Authorization: Bearer <YourAppToken>' -d '{
+    "username": "test2333",
+    "grant_type": "inherit",
+    "autoCreateUser": true,
+    "ttl": 1024000
+ }' 'http://XXXX/XXXX/XXXX/token'
+```
+
+#### 响应示例
+
+自动创建用户并获取 token 的响应如下:
+
+```json
+{
+    "access_token": "YWMthyeiFhbyEe2eMGeYZSLlT7sMrFep3U6BvVj7KSnNonUiDB-wFvIR7a5Ttx2-01MYAwMAAAGCfIeryQAPoAAsuveDfkUrePkEM2Hgy6SaOTeTx3ETgh5cnXcP_HfBPg",
+    "expires_in": 1024000,
+    "user": {
+        "uuid": "220c1fb0-XXXX-XXXX-ae53-b71dbed35318",
+        "type": "user",
+        "created": 1659946472753,
+        "modified": 1659946472753,
+        "username": "test2333",
+        "activated": true
+    }
+}
+```
+
+## 生成动态的用户 Token
+
+动态 Token 的生成方法依赖 `AppSecret`,因此生成逻辑务必在客户的服务器侧完成,以免 `AppSecret` 泄露。
+
+动态 Token 临时有效,有效期由你自行设置,建议不要太长。
+
+你可以按照如下步骤生成动态用户 token:
+
+1. 在环信即时通讯控制台 创建应用,生成 `AppKey`、`Client ID` 和 `ClientSecret`。
+
+2. 基于 `AppKey、AppSecret` 和 `userId`(即注册用户时传入的 `username`),参考如下示例生成 token。
+
+```
+a. 获取当前时间戳,单位为秒。
+    CurTime = 1686207557
+b. 设置过期时间,单位为秒。
+    ttl = 600
+c. 生成 signature,将 clientId、appkey、userId、curTime、ttl、clientSecret 六个字段拼成一个字符串,进行 sha1 编码并将编码内容得到的字节转换为十六进制字符串。
+    str = clientId + appkey + userId + curTime + ttl + clientSecret
+    shaBytes = sha1(str)
+    signature = fmt.Sprintf("%x", shaBytes)
+d. 组装为 json。
+     json = {"signature": "xx", "appkey":"xx#xx", "userId":"xx", "curTime":1686207557, "ttl": 600}
+e. 将 token 类型 "dt-" 放到 json 转成的字符串前,生成最终的字符串。
+    str = "dt-" + jsonStr
+f. 进行 base64 编码,生成最终的 token。
+    token = base64.urlEncode.encode(str)
+```
+
+3. 使用上述方法生成 Token 后,客户端 SDK 将该 Token 填入并登录,服务器校验成功后即登录成功。
+
diff --git a/docs/document/v2/privatization/faq_integration_issues.md b/docs/document/v2/privatization/faq_integration_issues.md
new file mode 100644
index 000000000..f7544a9a3
--- /dev/null
+++ b/docs/document/v2/privatization/faq_integration_issues.md
@@ -0,0 +1,53 @@
+# 集成类问题
+
+<Toc />
+
+## 如何实现跨 app 聊天
+
+如果您需要两个 app 之间可以互相通信,只要将 AppKey 写成同一个就可以实现跨 app 聊天。同时,您需要在环信即时通讯云控制台上传对应 app 的推送证书(可以是多个),这样可以确保您的两个 app 都能收到推送。
+
+## 获取设备本地日志文件
+
+在排查移动端集成或者使用问题的时候,会遇到需要查看设备本地 SDK 的 log 来确认问题,在此提供移动端获取本地 log 的方法。
+
+### Android
+
+#### 通过 API 获取
+
+SDK 的 log 文件在 app 的安装目录中,可以通过 API 获取,获取时需要确保 SDK 已经完成初始化。
+
+通过 API 获取 log 文件路径, 返回格式为 `xxxxx/xxxx/log.gz`
+
+```java
+logPath = EMClient.getInstance().compressLogs();
+```
+
+#### 从手机或者模拟器获取日志文件
+
+前提条件
+
+- 确保电脑上安装了 adb 工具,可以参考 [SDK Platform Tools](https://developer.android.com/studio/releases/platform-tools)
+- 手机连接到电脑,adb 的使用可以参考:[Android Debug Bridge]( https://developer.android.com/studio/command-line/adb)
+
+```shell
+adb pull  /sdcard/android/data/(your_package_name)/(appkey)/core_log/easemob.log
+```
+
+### iOS
+
+#### 通过 API 获取
+
+SDK 的 Log 文件在 app 的 sandbox 中,如需获取可通过 SDK 提供的`getLogFilesPath:` 获取,获取时需要确保SDK已经完成初始化。
+
+```
+EMError *error = nil;
+NSString *logPath = [EMClient.sharedClient getLogFilesPath:&error];
+```
+
+返回格式为 `xxxxx/xxxx/log.gz`。 `error` 为错误信息,无错误是返回`nil`。
+
+#### 从手机或者模拟器获取日志文件
+
+通过 XCode debug 时,可以连接手机或者模拟器,找到应用的 sandbox 目录,然后提取日志文件。
+
+App_Sandbox_path/Application Support/HyphenateSDK/easemobLog
\ No newline at end of file
diff --git a/docs/document/v2/privatization/faq_quality_issues.md b/docs/document/v2/privatization/faq_quality_issues.md
new file mode 100644
index 000000000..1153edfa3
--- /dev/null
+++ b/docs/document/v2/privatization/faq_quality_issues.md
@@ -0,0 +1,90 @@
+# 质量类问题
+
+<Toc />
+
+## 如何排查 环信即时通讯 IM 单聊消息丢失
+
+### 问题描述
+
+在使用 环信即时通讯 IM 聊天的过程中,如果遇到用户 A 给用户 B 发消息,用户 B 没有接收到的情况(视为消息丢失),可以按照下面的说明进行排查。
+
+### 问题原因
+
+可能是以下原因:
+
+- 用户 A 消息发送失败;
+- 接受消息的用户 ID 错误;
+- 用户 B 把 A 设为黑名单了;
+- 用户 B 在其他设备上登录时接收了消息;
+- 用户 B 离线消息数量超过 500 条等。
+
+### 排查方案
+
+#### 在使用环信即时通讯 IM SDK 集成阶段测试用户出现消息丢失
+
+分为用户 B 在线和不在线两种情况:
+
+- 用户 B 在线的情况下收不到用户 A 发的消息:
+    1. 检查用户 A 发送的消息是否成功,可以根据 SDK 发消息方法返回的结果判断消息是否发送成功,如果发送失败,则用户 B 收不到消息。
+    2. 检查用户 A 给用户 B 发消息时,B 的 ID 是否正确,如果传的不是用户 B 的 环信即时通讯 IM ID,那么用户 B 收不到消息。
+    3. 检查用户 B 是否将用户 A 加入黑名单 ,如果用户 B 将用户 A 加入黑名单,那么用户 B 将收不到用户 A 发的消息,详见 [获取黑名单](/document/v2/server-side/user_relationship.html#获取黑名单列表)。
+- 用户 B 不在线时,用户 A 给用户 B 发消息,用户 B 重新登录后收不到消息:
+    1. 可能存在用户 B 有在其他设备上登录的情况,把消息接收走了,所以在当前设备登录时将不再接收消息。
+    2. 确认用户 B 的离线数量是不是很大,如果超过 500 条,那么用户 B 只会收到最新的 500 条消息,超过500条的那部分消息将接收不到。
+
+
+
+## 排查环信即时通讯 IM 群聊消息丢失
+
+### 问题描述
+
+用户有时反馈环信即时通讯 IM 丢消息,在用户 A 与用户 B 在同一个群组,用户 A 向群组中发消息这种情况下,我们建议先按以下步骤自查。如果没发现问题,可以提交工单由技术支持同事协助排查。
+
+### 问题原因
+
+可能的原因包括用户 A 构建消息时传的消息类型不是群聊类型、用户 A 消息发送失败、用户 B 不在群组中、用户 B 屏蔽了该群组消息、用户 B 被加入了群组黑名单、用户 B 在其他设备上登录时接收了消息以及用户 B 群组离线消息数量超过 200 条等。
+
+### 排查方案
+
+#### 一、App 未上线时,使用环信即时通讯 IM SDK 集成阶段测试用户出现消息丢失
+
+- 用户 B 在线的情况下收不到用户 A 发的群组消息:
+    1. 检查用户 A 在构建消息时,传的消息类型是不是群聊类型的,如果不是则用户 B 收不到用户 A 发的群组消息,详见 [Android 版构建消息](/document/v2/android/message_send_receive.html#发送文本消息) 或 [iOS 版构建消息](/document/v2/ios/message_send_receive.html#发送文本消息)。
+    2. 检查用户 A 发送的消息是否成功,可以根据 SDK 发消息方法返回的结果判断消息是否发送成功,如果发送失败,则用户 B 收不到用户 A 发送的群组消息。
+    3. 检查用户 A 给用户 B 发消息时,传的群组 ID 是否正确(是否为 A 与 B 共同加入的群组 ID),如果传的不是正确的群组 ID,那么用户 B 收不到消息用户 A 发的群组消息。
+    4. 检查用户 B 是否在群组中,可以获取群组详情,看群组中是否有用户 B,详见 [获取群组详情](/document/v2/server-side/group.html#获取群组详情)。
+    5. 检查用户 B 是否屏蔽了该群组消息,如果用户 B 屏蔽了该群组消息,那么将收不到用户 A 发的群组消息,详见 [Android 屏蔽和解除群消息](/document/v2/android/group_manage.html#屏蔽和解除屏蔽群消息) 或 [iOS 屏蔽和解除群消息](/document/v2/ios/group_manage.html#屏蔽和解除屏蔽群消息)。
+    6. 检查用户 B 是否被加入了群组黑名单,如果用户 B 被加入到了群组黑名单,那么将收不到用户 A 发的群组消息,详见 [获取群组黑名单](/document/v2/server-side/group.html#查询群组黑名单)。
+- 用户 B 不在线时,用户 A 向群组中发送消息,用户 B 重新登录后收不到群组消息:
+    1. 可能存在用户 B 在其他设备上登录把消息接收走了的情况,则在当前设备登录时将不再接收消息。
+    2. 确认用户 B 所在的群组的离线数量是不是很大,如果超过200条,那么用户 B 只会收到最新的 200 条群组消息,超过 200 条的那部分群组消息将接收不到。
+
+#### 二、App 已经上线后,线上用户出现群组消息丢失
+
+1.先与 App 的用户确认是否存在以下情况:
+- “用户 B 在线的情况下收不到用户 A 发的群组消息”的 3、4 和 5 的情况
+- “用户 B 不在线时,用户 A 向群组中发送消息,用户 B 重新登录后收不到群组消息”的 1 和 2 的情况。
+
+2.若排除以上情况,可根据 App Key、发送者 ID 或消息 ID、消息发送时间在 环信即时通讯云控制台自行查询消息投递状态,具体操作如下:
+
+1. 登录环信即时通讯云控制台。
+2. 在首页的 应用列表 区域中,点击具体应用的 **操作** 栏中的 **管理**。
+3. 在界面左侧导航栏中选择**实时查询** > **IM消息投递查询**。
+
+![img](@static/images/privitization/faq-msgdeliveryquery.jpg)
+
+## 参考
+
+### 如何判断用户是否在线
+
+在使用环信即时通讯 IM 基础聊天业务的场景下,处理特定业务需求时需知晓某些用户是否在线。为此,环信即时通讯 IM 提供单个用户以及批量用户是否在线状态的查询,详见 [用户在线状态回调](/document/v2/server-side/user_status_callback.html)。
+
+除此之外,可以在 环信即时通讯云控制台 上查询用户连接状态,具体操作如下:
+
+1. 登录环信即时通讯云控制台。
+2. 在首页的 **应用列表** 区域中,点击具体应用的 **操作** 栏中的 **管理**。
+3. 在界面左侧导航栏中选择 **实时查询** > **IM用户连接状态**。
+
+![img](@static/images/privitization/faq-userconnectionstatus.jpg)
+
+说明: 环信即时通讯 IM SDK 未提供直接查询用户是否在线的方法,客户端可以封装查询用户是否在线的接口调用或者让自己服务器端来调用再与自己客户端交互。
\ No newline at end of file
diff --git a/docs/document/v2/privatization/uc_configure.md b/docs/document/v2/privatization/uc_configure.md
index 94eefb7bf..7dfbf9102 100644
--- a/docs/document/v2/privatization/uc_configure.md
+++ b/docs/document/v2/privatization/uc_configure.md
@@ -1,4 +1,4 @@
-# 开通配置环信即时通讯 IM 服务
+# Console服务开通与配置
 
 <Toc />
 
@@ -132,3 +132,15 @@
 ![img](@static/images/privitization/deploy_ip_allow_list.png)
 
 3. 单击 **确认**,则删除该 IP 地址。
+
+### 用户管理
+
+console后台支持管理用户,包括:用户注册、用户删除、修改用户信息、查看用户好友、查看用户黑名单、重置密码、发送REST消息、封禁、强制下线等操作.
+
+1. 在环信即时通讯云的左侧导航栏中,选择  **运营服务** > **用户管理**。
+
+2. 单击 **创建IM用户** 按钮,注册新用户。
+
+3. 在 **用户名单** 列表中,单击操作列的 **更多** 执行更多操作。
+
+![img](@static/images/privitization/deploy_user_manage.png)
diff --git a/docs/document/v2/privatization/uc_deploy.md b/docs/document/v2/privatization/uc_deploy.md
index 636cc6b5c..bb3152936 100644
--- a/docs/document/v2/privatization/uc_deploy.md
+++ b/docs/document/v2/privatization/uc_deploy.md
@@ -1,4 +1,4 @@
-# 私有化部署流程说明
+# 私有化服务部署
 
 <Toc />
 
@@ -58,7 +58,7 @@
 
 ## 3、集成测试
 
-当服务端验证完成后,可通过下载需要的客户端 SDK 及 Demo 进行集成体验。环信客户端 SDK 已对 IM 核心服务完成封装, 通过调用 SDK API 接口,即可快速获得消息收发 、会话管理 、群组 、好友 、聊天室等功能。目前客户端 SDK 已覆盖 Windows 、Linux 、MacOS 、Android 、iOS 、Web 、小程序等多种平台,服务器端 SDK 已覆盖 Java 、PHP 等平台,[下载私有化客户端 SDK](http://docs-im-beta.easemob.com/private/im/uc_private.html#私有化-sdk-下载)。
+当服务端验证完成后,可通过下载需要的客户端 SDK 及 Demo 进行集成体验。环信客户端 SDK 已对 IM 核心服务完成封装, 通过调用 SDK API 接口,即可快速获得消息收发 、会话管理 、群组 、好友 、聊天室等功能。目前客户端 SDK 已覆盖 Windows 、Linux 、MacOS 、Android 、iOS 、Web 、小程序等多种平台,服务器端 SDK 已覆盖 Java 、PHP 等平台,[下载私有化客户端 SDK](uc_private.html#私有化-sdk-下载)。
 
 示例一:以 Android 端 demo 体验为例
 
@@ -96,13 +96,7 @@
 
 ![img](@static/images/privitization/deploy_wechat_code.png)
 
-2. 提交工单
-
-登录[环信通讯云管理后台](https://console.easemob.com/user/login),点击“服务支持-工单支持”,点击“进入工单系统”
-
-![img](@static/images/privitization/deploy_ticket.png)
-
-3. Geek 社区
+2. Geek 社区
 
 [Geek 开发者社区](http://www.imgeek.org/)里面的环信专区/环信技术交流板块提供了很多常见问题的讨论和解答,您也可以发帖提问,我们的技术和服务人员会尽力解答您的疑问!
 
diff --git a/docs/document/v2/privatization/uc_glossary.md b/docs/document/v2/privatization/uc_glossary.md
new file mode 100644
index 000000000..470d70f9d
--- /dev/null
+++ b/docs/document/v2/privatization/uc_glossary.md
@@ -0,0 +1,201 @@
+# 术语表
+
+<Toc />
+
+## 环信即时通讯 IM SDK
+
+环信即时通讯 IM SDK 是环信提供的用于实现即时通讯,比如:单聊、群聊、聊天室的 SDK。
+
+### 环信即时通讯 IMKit
+
+IMKit 是环信即时通讯 IM SDK 的一个开源 UI 组件,提供应用内聊天的常用页面和 UI 组件,帮助开发者快速构建应用的 UI。
+
+## 环信即时通讯 CallKit
+
+CallKit 提供应用内聊天中音视频通话的页面和 UI 组件,帮助开发者快速构建音视频通话功能。 
+
+### 环信通讯云控制台(Easemob Console)
+
+[环信通讯云控制台](uc_configure.md)是环信提供给开发者管理环信各项服务的工具。
+
+## Demo
+
+环信即时通讯 IM 示例开源项目,目前支持 Android、iOS 和 Web 平台。
+
+## 会话和消息
+
+### 会话
+
+会话是一个单聊、群聊、聊天室或者子区所有消息的集合。用户需在会话中发送消息或查看历史消息或清空历史消息等操作。
+
+### 会话列表
+
+会话列表是指会话依照一定顺序排列的列表,会话的排列顺序依赖于会话中最近一条消息的接收时间等因素。
+
+### 广播消息
+
+广播消息是指通过 RESTful API 对应用内的所有用户发送消息。当用户离线时,消息会自动转换为系统离线推送。
+
+### 离线消息
+
+当接收方不在线时,环信即时通讯 IM 服务器会暂时保存消息,用户上线时,会接收到服务器保存的离线消息。私有部署即时通讯服务离线消息保存时长可支持自定义。单聊和群聊支持离线消息,聊天室不支持离线消息。
+
+### 历史消息
+
+环信即时通讯 IM 服务器会保存历史消息以供查询。开发者可以通过 RESTful API 下载历史消息压缩包文件。
+
+### 漫游消息
+
+多端登录时,用户在其中一端发送的消息会同步到所有其他客户端,此类消息称为漫游消息。
+
+### 文本消息
+
+消息内容是普通文本,其中可以包括超链接,客户端收到消息后存入数据库、计入未读消息数。表情消息为开发者自定义。实质上是发文本消息。接收方收到文本消息后,首先查询文本消息是否是表情消息,如果是,则显示该文本消息为对应的表情图片。
+
+### 图片消息
+
+图片消息内容属于附件类型消息,内容图片 URL 地址、尺寸、图片大小等信息。最大支持 10 MB。
+
+### 位置消息
+
+消息内容为地理位置标题、经度和纬度信息。
+
+### 语音消息
+
+语音数据属于附件类型,需要提供时长信息,以秒为单位。最大支持 10 MB。
+
+### 视频消息
+
+消息内容为视频文件的 URL 地址、时长、大小、格式等信息,默认支持 10 MB。
+
+### 文件消息
+
+消息内容为文件的 URL 地址、大小、格式等信息,格式不限,默认支持 10 MB。
+
+### 透传消息
+
+透传消息可视为一条指令,通过发送这条指令给对方,通知对方要执行的操作,对方收到消息可自定义处理。透传消息不会存入本地数据库中,在 UI 上不显示,也不计入未读消息。具体功能可以根据自身业务需求自定义,例如实现头像或昵称的更新等。
+
+### 消息自定义扩展
+
+当基础的消息类型不满足需求时,可以使用消息自定义扩展增强基础消息类型,例如消息中需要携带被回复的消息内容等场景。
+
+使用扩展后,消息大小不能超过原类型消息的大小。消息自定义扩展作为消息内容会存入本地数据库。
+
+### 自定义消息
+
+发者自定义的消息类型,例如红包消息、石头剪刀布等形式的消息。
+
+### 消息回调
+
+消息回调,即聊天服务器会在事件发生之前或之后,向客户的应用服务器发送请求,应用服务器可据此进行必要的数据同步,或者根据业务需求干预事件的后续处理流程。
+
+### 消息云存储
+
+将用户发送的单聊、群聊、聊天室消息存储到聊天服务器,方便用户在更换设备或删除本地消息后,通过服务端获取历史消息。私有部署即时通讯服务消息存储时间可支持自定义。
+
+## 用户相关
+
+### 用户 ID
+
+用户 ID 即用户名,是 App Key 内用户的唯一标识,不同于即时通讯系统服务器为用户创建的 UUID。
+
+### UUID
+
+即时通讯服务器为 App Key 内用户创建的唯一 ID,不同于用户 ID。
+
+### 用户属性
+
+用户属性指用户的信息,如用户昵称、头像、邮箱、电话、性别、签名、生日等。例如,在招聘场景下,利用用户属性功能,可以存储性别、邮箱、用户类型(面试者)、职位类型(Web 研发)等。当查看用户信息时,可以直接查询服务器存储的用户属性信息。
+
+### 离线
+
+离线是指用户成功登出环信即时通讯 IM 系统或与即时通讯 IM 系统断开连接后的状态。用户登出即时通讯 IM 系统之后,无法发送和接受消息,在下次登录后可以接收到离线消息。
+
+## 封禁用户
+
+禁止用户使用即时通讯 IM 服务。封禁后,用户无法连接即时通讯 IM 服务器。
+
+### 用户黑名单
+
+用户将不会接收黑名单中用户发送的消息。
+
+## 单聊
+
+单聊即一对一聊天,支持全类型消息。参与聊天的双方可以是好友也可以是陌生人。
+
+## 群组
+
+群组是支持多人沟通的即时通讯系统,成员关系相对稳定。所有群成员可在群中收发送消息。当群成员离线时,可以收到推送消息。群组分为公开群和私有群,公开群可以被搜索到,非群成员可以加入;私有群不能被搜索到,需要群主或群管理员添加用户进入。群组成员支持多种角色:群主、群管理员、群成员。群组提供丰富的管理能力,例如,群组禁言、黑名单和白名单等。
+
+### 群主
+
+群主即群组的创建者,在群中拥有最高权限,可以指定管理员、解散群组、更改群组信息以及对群组成员进行管理。
+
+群主也可以将群主权限转移给群组其他成员。
+
+### 群管理员
+
+由群主授权,协助进行管理,拥有一定管理权限。可以对群组成员进行管理。
+
+### 群成员
+
+群组的普通成员,可以收发消息和查看群组描述信息,不具备群组管理权限。
+
+### 群组黑名单
+
+群主和管理员可以将群组成员加入黑名单,加入群黑名单的用户不能在群中发送消息。
+
+### 群组白名单
+
+群主和管理员可以将群组成员加入白名单。群组开启全局禁言时,只有白名单中的用户可以在群组中发送消息。
+
+## 聊天室
+
+聊天室是支持多人加入的组织。聊天室中的成员没有固定关系,用户离线后,超过 2 分钟会自动退出聊天室。聊天室成员在离线后,不会收到推送消息。聊天室可以应用于直播、消息广播等。
+
+### 聊天室黑名单
+
+聊天室创建者和管理员可以将聊天室成员加入黑名单,被加入聊天室黑名单的用户不能在聊天室中发送消息。
+
+### 聊天室白名单
+
+聊天室创建者和管理员可以将聊天室成员加入白名单,聊天室开启全局禁言时,只有白名单中的用户可以在聊天室中发送消息。
+
+### 聊天室创建者
+
+聊天室的创建者,在聊天室中拥有最高权限。可以指定管理员、解散聊天室、更改聊天室信息、对聊天室成员进行管理。
+
+### 聊天室管理员
+
+由聊天室所有者授权,协助进行管理,拥有一定管理权限。可以对聊天室成员进行管理。
+
+### 聊天室成员
+
+聊天室的普通成员,不具备聊天室管理权限。
+
+## RESTful 接口
+
+环信即时通讯 IM 的服务器端接口都是通过 RESTful 服务方式提供的,RESTful API 基于最简单的 HTTP 协议,在各个编程语言中都提供了良好的支持。
+
+环信即时通讯 IM RESTful 平台提供一个多租户用户体系,以集合(Collection)的形式的形式管理资源,一个集合包括数据库、企业、应用、用户、群组、消息和文件等。
+
+## 离线推送
+
+离线推送是指当应用被杀死时,通过厂商推送接收消息。iOS 设备使用苹果推送通知服务(APNs),Android 设备为谷歌云消息传递服务(FCM)、华为推送、小米推送、魅族推送、OPPO 推送和 vivo 推送。
+
+## 在线状态订阅
+
+用户在线状态(即 Presence)包含用户的在线、离线以及自定义状态。环信即时通讯 IM 提供发布、订阅和查询用户的在线状态的功能。
+
+## 消息表情回复 Reaction
+
+在单聊和群聊中对消息添加、删除表情。表情可以直观地表达情绪,利用 Reaction 可以提升用户的使用体验。同时在群组中,利用 Reaction 可以发起投票,根据不同表情的追加数量来确认投票。
+
+## 子区
+
+子区是建立在群组内一条消息上的支持多人沟通的即时通讯系统,子区成员是群组成员的子集。
+
+## 子区消息
+
+子区消息是子区内发送和接收的消息。
\ No newline at end of file
diff --git a/docs/document/v2/privatization/uc_introduction.md b/docs/document/v2/privatization/uc_introduction.md
new file mode 100644
index 000000000..d0e363a1e
--- /dev/null
+++ b/docs/document/v2/privatization/uc_introduction.md
@@ -0,0 +1,130 @@
+# 产品概述
+
+<Toc />
+
+环信即时通讯私有化服务是基于 IM 核心技术实现的可私有化部署解决方案。本方案可适配内网物理服务器集群、公有云以及私有云等任意部署环境,提供功能完备、安全可靠、易于扩展的即时通讯平台。整体通讯平台架构主要由三部分组成,分别为客户端、服务端、Web 控制台。
+
+- **客户端**:采用 SDK 形式,对核心通信模块进行封装,提供场景功能接口,覆盖多种平台(包括:Android、iOS、Web、小程序、 Windows/Mac OS、Linux),支持快速集成终端用户应用。
+- **服务端**:采用 Java 和 Erlang 语言编写,可支持用户高并发连接和系统动态调配,高效处理用户长连接相关的服务和用户管理、推送等无状态服务。同时提供服务端 REST API 和 Java Server SDK 接口,便于完成即时通讯软件中服务的控制、数据的转发存储工作。
+- **Web 控制台**:是基于 B/S 模式的可视化操作平台,可支持开通与配置应用功能,查询各类 IM 服务情况,管理与维护用户体系(增、删、改、查),满足系统管理员、开发者等多种业务角色使用需求,提升业务集成与运营管理效率。
+
+
+## 平台架构
+
+![环信 IM 后台](@static/images/privitization/framework.jpg?w=50)
+
+
+## 集成概述
+
+当私有化服务部署后,开发者主要需要了解服务器端集成和客户端集成内容。
+
+![img](@static/images/product/integration-overview.png)
+
+服务端集成请看:[环信即时通讯 REST API 概览](/document/v2/server-side/overview.html)。
+
+客户端 Demo 体验请查看:
+
+[Android Demo(EaseIM App)体验](/document/v2/android/demo.html)
+
+[iOS Demo(EaseIM App)体验](/document/v2/ios/demo.html)
+
+客户端集成请查看相应的环信 SDK 开发文档:
+
+[环信即时通讯 IM Android 快速开始](/document/v2/android/quickstart.html);
+
+[环信即时通讯 IM iOS 快速开始](/document/v2/ios/quickstart.html);
+
+[环信即时通讯 IM Web 快速开始](/document/v2/web/quickstart.html)。
+
+## 功能概述
+
+用环信即时通讯能实现以下功能:
+
+### 单聊
+
+环信单聊,支持丰富的消息类型,以及离线消息、漫游消息等功能。
+
+### 群聊
+
+环信群聊,支持丰富的消息类型,支持完整的群组管理能力,包含发布群公告、设置群角色等。
+
+### 用户管理
+
+提供用户体系管理能力,如:好友管理、黑名单管理等。支持用户资料存储,包括:头像、昵称、自定义用户信息等。
+
+### 丰富的消息类型
+
+支持单聊/群聊中,发送文本、表情、图片、语音、视频、地理位置、文件,以及红包和礼物等的自定义消息。
+
+### 第三方消息推送
+
+消息推送指当应用在后台运行,或进程被杀时,用户处于离线状态,新消息在发送至环信服务器后,会被转发至第三方推送服务器进行推送,以确保该消息依然可以送达客户端。推送消息在安卓端是使用 Firebase Cloud Message(FCM) 实现,在 iOS 端使用 Apple Push Notification service(APNs) 实现。
+
+### 多端消息同步
+
+环信支持一个账号同时登录多台设备,可实现终端用户的消息通过服务器保存和同步,保证各端均能收发消息同步。
+
+### 消息撤回
+
+消息发出后可以进行消息撤回,提供 SDK 和 REST API 端两种撤回方式。
+
+## 适用场景
+
+环信适用于端到端实时消息沟通的场景:
+
+- 应用内聊天(如:陌生人社交、相亲等)
+  - 支持丰富的消息类型、好友关系管理
+  - 支持群管理能力、群公告设置、群角色设置等
+- 应用内通知
+  - 支持广播消息、自定义通知消息等
+  - 支持用户管理,包括储存用户信息、用户封禁等
+- 视频/语音直播
+  - 支持聊天室管理能力
+  - 支持丰富类型的聊天室消息,包括弹幕、红包、礼物等
+- 企业协作
+  - 支持用户管理,设置企业组织架构、好友关系管理
+  - 支持群管理能力、群公告设置、群附件发送、群角色设置等
+- 买家卖家沟通
+  - 支持订单通知、问候语设置、自定义消息发送
+  - 支持卖家内部管理、公告设置、成员管理等
+- 线上问诊
+  - 支持丰富的消息类型,图文病情描述、语音消息等
+  - 支持用户信息存储、用户身份管理等
+
+## 产品优势
+
+环信主要有以下优势:
+
+### 部署多样化
+
+环信即时通讯系统支持 Linux 裸系统、容器化等多种部署方式。不仅可以提供更灵活、更便捷、更稳定的平台性能,同时容器化部署可实现自动部署,具备服务自动发现、服务自动负载均衡等特点。
+
+### 高可用
+
+环信即时通讯系统具备高可用特性,当系统内某一个节点或主机出现宕机后,该故障节点上的所有服务会自动转移到其他节点上而不会引发服务中断,保障系统可用性。
+
+### 易扩展
+
+环信即时通讯系统服务架构支持弹性扩展,系统内所有资源可在各节点之间实现灵活调度,当 CPU、内存等计算资源利用率较高时,可通过横向添加 node 实现平滑扩容。
+
+### 安全性
+
+环信即时通讯系统实现通讯全流程安全加密,支持客户端敏感信息加密存储、服务器密钥权限管理、消息传输过程私有协议加密以及用户信息隐私保护等措施。
+
+### 国产化
+
+环信即时通讯系统严格遵循国家法律法规和技术标准规范,积极响应国内自主可控、安全可控要求,从 IT 基础设置、操作系统、数据库等方面进行国产化升级,满足信创环境部署要求。
+
+### 多平台
+
+环信即时通讯 IM 支持 Android、iOS、Web 等平台,而且各平台之间可互通。下表为即时通讯支持的各平台版本:
+
+| 平台     | 支持的版本                                   |
+| ------------ | ------------------------------------------------------------ |
+| Android      | Android 5.0 或以上版本(API 级别 21 或以上)   |
+| iOS          | iOS 10.0 或以上版本                                            |
+| Web          | <br/> - Internet Explorer 9 或以上 <br/> - FireFox 10 或以上 <br/> - Chrome 54 或以上 Safari 6 或以上<br/> - Edge 12 或以上 <br/> - Opera 58 或以上<br/> - iOS Safari 7 或以上<br/> - Android Browser 4.4 (KitKat) 或以上 |
+| Unity        | Unity 2017 或以上版本                                         |
+| Windows      | Windows 10 或以上版本                                       |
+| React Native | React Native 0.63.4 或以上版本                              |
+| Flutter      | Flutter 2.10                                                 |
\ No newline at end of file
diff --git a/docs/document/v2/privatization/uc_limitation.md b/docs/document/v2/privatization/uc_limitation.md
new file mode 100644
index 000000000..e09779593
--- /dev/null
+++ b/docs/document/v2/privatization/uc_limitation.md
@@ -0,0 +1,88 @@
+# 限制条件
+
+<Toc />
+
+本文简要介绍环信即时通讯 IM 的使用限制条件,包括调用频率、字符串大小和编码格式等。
+
+## 用户注册
+
+- 用户 ID:长度不能超过 64 字节,支持以下字符集:
+    - 26 个小写英文字母 a-z;
+    - 26 个大写英文字母 A-Z;
+    - 10 个数字 0-9;
+    - “_”, “-”, “.”。
+
+:::notice
+- 该参数不区分大小写,因此 Aa 和 aa 为相同用户名;
+- 请确保同一个 app 下,用户 ID 唯一;
+- 用户 ID 是会公开的信息,请勿使用 UUID、邮箱地址、手机号等敏感信息。
+:::
+- 批量注册每次最多 60 个用户 ID。
+
+## 好友数限制
+
+私有部署用户好友数无上限
+
+## 消息存储时长限制
+
+私有部署消息存储时长支持自定义,默认配置14天,可在部署前约定存储时间:
+
+## 群组限制
+
+私有部署群组有如下限制:
+
+- 群组总数上限:100,000 个  
+- 群成员数:2000人/群,可支持调整至8000人/群
+- 用户可加入群组数:无限制
+
+
+群组属性和群成员属性的限制如下:
+- 群组名称,字符串类型,最大长度为 128 字符。
+- 群组描述,字符串类型,最大长度为 512 字符。
+- 群组扩展信息,例如可以给群组添加业务相关的标记,最大长度为 1,024 字符。
+- 单个群成员的自定义属性(key-value)总长度不能超过 4 KB。对于单个自定义属性,属性 key 不能超过 16 字节,value 不能超过 512 个字节。
+
+## 聊天室限制
+
+私有部署聊天室有如下限制:
+- 聊天室总数:无限制。
+- 聊天室名称,用户自定义,字符串类型,最大长度为 128 字符。
+- 聊天室描述,用户自定义,字符串类型,最大长度为 512 字符。
+
+### 聊天室自定义属性(key-value)
+
+每个聊天室最多可有 100 个自定义属性,每个应用的聊天室自定义属性总大小不超过 10 GB。
+
+聊天室自定义属性为键值对(key-value)结构,单个 key 不能超过 128 个字符,支持以下字符集:
+- 26 个小写英文字母 a-z;
+- 26 个大写英文字母 A-Z;
+- 10 个数字 0-9;
+- “_”, “-”, “.”。
+
+每个聊天室属性 value 不能超过 4096 个字符。
+
+## 调用频率限制
+
+私有部署Rest API 调用频率支持设置无限制。
+
+## 消息大小限制
+
+对于不同的消息类型,消息长度限制如下:
+
+| 消息类型       | 消息长度限制                         |
+| :------------- | :----------------------------------- |
+| 文本消息       | 3 KB                                 |
+| 图片消息       | 图片不能超过 10 MB,图片消息大小限制为 3 KB。      |
+| 语音消息       | 音频文件不能超过 10 MB,语音消息大小限制为 3 KB。    |
+| 视频消息       | 视频文件不能超过 10 MB,视频消息大小限制为 3 KB。      |
+| 文件消息       | 附件大小不能超过 10 MB,文件消息大小限制为 3 KB。          |
+| 透传消息       | 3 KB                                 |
+| 自定义消息     | 3 KB                                 |
+
+## 用户属性大小限制
+
+默认单一用户的属性总长不得超过 2 KB。默认一个 app 下所有用户的属性总长度不得超过 10 GB。
+
+## 消息撤回
+
+默认撤回时限为 2 分钟,可根据 App Key 在环信即时通讯云管理后台单独设置。
diff --git a/docs/document/v2/privatization/uc_private.md b/docs/document/v2/privatization/uc_private.md
index 468bb6df4..5d5cbe6bc 100644
--- a/docs/document/v2/privatization/uc_private.md
+++ b/docs/document/v2/privatization/uc_private.md
@@ -1,46 +1,14 @@
-# 私有化即时通讯
+# 私有化 SDK 下载
 
-<Toc />
 
-[下载私有化 SDK >>](#私有化-sdk-下载)。
 
-环信即时通讯私有化服务是基于 IM 核心技术实现的可私有化部署解决方案。本方案可适配内网物理服务器集群、公有云以及私有云等任意部署环境,提供功能完备、安全可靠、易于扩展的即时通讯平台。整体通讯平台架构主要由三部分组成,分别为客户端、服务端、Web 控制台。
-
-- **客户端**:采用 SDK 形式,对核心通信模块进行封装,提供场景功能接口,覆盖多种平台(包括:Android、iOS、Web、小程序、 Windows/Mac OS、Linux),支持快速集成终端用户应用。
-- **服务端**:采用 Java 和 Erlang 语言编写,可支持用户高并发连接和系统动态调配,高效处理用户长连接相关的服务和用户管理、推送等无状态服务。同时提供服务端 REST API 和 Java Server SDK 接口,便于完成即时通讯软件中服务的控制、数据的转发存储工作。
-- **Web 控制台**:是基于 B/S 模式的可视化操作平台,可支持开通与配置应用功能,查询各类 IM 服务情况,管理与维护用户体系(增、删、改、查),满足系统管理员、开发者等多种业务角色使用需求,提升业务集成与运营管理效率。
-
-## 私有化服务优势
-
-### 部署多样化
-
-环信即时通讯系统支持 Linux 裸系统、容器化等多种部署方式。不仅可以提供更灵活、更便捷、更稳定的平台性能,同时容器化部署可实现自动部署,具备服务自动发现、服务自动负载均衡等特点。
-
-### 高可用
-
-环信即时通讯系统具备高可用特性,当系统内某一个节点或主机出现宕机后,该故障节点上的所有服务会自动转移到其他节点上而不会引发服务中断,保障系统可用性。
-
-### 易扩展
-
-环信即时通讯系统服务架构支持弹性扩展,系统内所有资源可在各节点之间实现灵活调度,当 CPU、内存等计算资源利用率较高时,可通过横向添加 node 实现平滑扩容。
-
-### 安全性
-
-环信即时通讯系统实现通讯全流程安全加密,支持客户端敏感信息加密存储、服务器密钥权限管理、消息传输过程私有协议加密以及用户信息隐私保护等措施。
-
-### 国产化
-
-环信即时通讯系统严格遵循国家法律法规和技术标准规范,积极响应国内自主可控、安全可控要求,从 IT 基础设置、操作系统、数据库等方面进行国产化升级,满足信创环境部署要求。
-
-## 私有化 SDK 下载
 
 环信客户端及服务端 SDK 已对 IM 核心服务完成封装,通过调用 SDK API 接口,即可快速获得消息收发、会话管理、群组、好友、聊天室等功能,目前客户端 SDK 已覆盖 Windows、Linux、MacOS、Android、iOS、Web、小程序等多种平台,服务器端 SDK 已覆盖 Java、PHP 等平台,各端 SDK 下载及开发指南如下所示。
 
 :::tip
 
-1. 若要体验环信即时通讯 IM 的功能,可下载[公有云 Demo](https://www.easemob.com/download/demo)。
-2. 若要体验私有化 Demo,需下载下表中对应平台的 Demo,然后在登录页面的**服务器配置**区域完成配置。
-3. 若要集成,需选择下表中的 SDK 及 Demo 版本,按照下表中**开发指南**一列的文档配置私有化环境信息。
+1. 若要体验私有化 Demo,需下载下表中对应平台的 Demo,然后在登录页面的**服务器配置**区域完成配置。
+2. 若要集成,需选择下表中的 SDK 及 Demo 版本,按照下表中**开发指南**一列的文档配置私有化环境信息。
    :::
 
 <table>
@@ -73,41 +41,41 @@
 <p>Android</p>
 </td>
 <td>
-<p><a href="http://docs-im-beta.easemob.com/document/android/releasenote.html#%E7%89%88%E6%9C%AC-v3-9-1-2022-4-19">3.9.1</a></p>
+<p><a href="/document/v2/android/releasenote.html#版本-v4-1-2-dev-2023-9-5-开发版">4.1.2</a></p>
 </td>
 <td>
-<p><a href="https://downloadsdk.easemob.com/downloads/easemob-sdk-3.9.1.zip">下载 SDK 及 Demo</a>&nbsp;<a href="https://downloadsdk.easemob.com/downloads/imsdkdemo_android-3.9.1.apk">体验 Demo</a></p>
+<p><a href="https://downloadsdk.easemob.com/downloads/easemob-sdk-4.1.2.zip">下载 SDK 及 Demo</a>&nbsp;<a href="https://downloadsdk.easemob.com/mp/downloads/sdk/imsdkdemo_android-4.1.2.apk">体验 Demo</a></p>
 </td>
 <td>
-<p><a href="http://docs-im-beta.easemob.com/document/android/privatecloud.html">查看</a></p>
+<p><a href="/document/v2/android/privatecloud.html">查看</a></p>
 </td>
 </tr>
 <tr>
 <td width="97">
-<p>Web</p>
+<p>iOS</p>
 </td>
 <td>
-<p><a href="http://docs-im-beta.easemob.com/document/web/releasenote.html#%E7%89%88%E6%9C%AC-v4-0-4-2022-4-19">4.0.4</a></p>
+<p><a href="/document/v2/ios/releasenote.html#版本-v4-1-1-dev-2023-8-03-开发版">4.1.1</a></p>
 </td>
 <td>
-<p>&bull; React:&nbsp;<a href="https://download-sdk.oss-cn-beijing.aliyuncs.com/zq/private-demo-20230104.zip">下载 SDK 及 Demo</a>&nbsp;<a href="https://zq-im-management-hsb.easemob.com/">体验 Demo</a><br /> &bull; Vue 2:&nbsp;<a href="https://download-sdk.oss-cn-beijing.aliyuncs.com/zq/private-vue2-20230104.zip">下载 SDK 及 Demo</a><br /> &bull; Vue 3:&nbsp;<a href="https://download-sdk.oss-cn-beijing.aliyuncs.com/zq/private-vue3-20230104.zip">下载 SDK 及 Demo</a></p>
+<p><a href="https://downloadsdk.easemob.com/downloads/iOS_IM_SDK_V4.1.1.zip">下载 SDK 及 Demo</a>&nbsp;<!-- <a href="https://www.pgyer.com/2XKY">体验 Demo</a>--></p>
 </td>
 <td>
-<p><a href="http://docs-im-beta.easemob.com/document/web/privatecloud.html">查看</a></p>
+<p><a href="/document/v2/ios/privatecloud.html">查看</a></p>
 </td>
 </tr>
 <tr>
 <td width="97">
-<p>iOS</p>
+<p>Web</p>
 </td>
 <td>
-<p><a href="http://docs-im-beta.easemob.com/document/ios/releasenote.html#%E7%89%88%E6%9C%AC-v3-9-1-2022-4-19">3.9.1</a></p>
+<p><a href="/document/v2/web/releasenote.html#版本-v4-2-0-dev-2023-07-27-开发版">4.2.0</a></p>
 </td>
 <td>
-<p><a href="https://downloadsdk.easemob.com/downloads/iOS_IM_SDK_V3.9.1.zip">下载 SDK 及 Demo</a>&nbsp;<!-- <a href="https://www.pgyer.com/2XKY">体验 Demo</a>--></p>
+<p>&bull; React:&nbsp;<a href="https://downloadsdk.easemob.com/mp/downloads/sdk/private-react-20230918.zip">下载 SDK 及 Demo</a>&nbsp;<a href="https://zq-im-management-hsb.easemob.com/">体验 Demo</a><br /> &bull; Vue 2:&nbsp;<a href="https://downloadsdk.easemob.com/mp/downloads/sdk/private-vue2-20230918.zip">下载 SDK 及 Demo</a><br /> &bull; Vue 3:&nbsp;<a href="">下载 SDK 及 Demo</a></p>
 </td>
 <td>
-<p><a href="http://docs-im-beta.easemob.com/document/ios/privatecloud.html">查看</a></p>
+<p><a href="/document/v2/web/privatecloud.html">查看</a></p>
 </td>
 </tr>
 <tr>
@@ -129,13 +97,13 @@
 <p>Windows(C#)</p>
 </td>
 <td>
-<p><a href="http://docs-im-beta.easemob.com/document/windows/releasenote.html#%E7%89%88%E6%9C%AC-v1-0-2-1-2022-06-22">1.0.2</a></p>
+<p><a href="/document/v2/windows/releasenote.html#版本-v1-2-0-dev-2023-8-30-开发版">1.2.0</a></p>
 </td>
 <td>
-<p><a href="https://downloadsdk.easemob.com/downloads/SDK/WinSDK/agora_chat_sdk.1.0.2-beta.nupkg">下载 SDK</a></p>
+<p><a href="https://downloadsdk.easemob.com/downloads/SDK/WinSDK/agora_chat_sdk.1.2.0.nupkg">下载 SDK</a></p>
 </td>
 <td>
-<p><a href="http://docs-im-beta.easemob.com/document/windows/quickstart.html">查看</a></p>
+<p><a href="/document/v2/windows/quickstart.html">查看</a></p>
 </td>
 </tr>
 <tr>
@@ -149,7 +117,7 @@
 <p><a href="https://downloadsdk.easemob.com/downloads/linux_IM_SDK_V3.1.0_r1.zip">下载 SDK</a></p>
 </td>
 <td>
-<p><a href="https://docs-im.easemob.com/im/linux/integration">查看</a></p>
+<p><a href="/document/v2/linux/overview.html">查看</a></p>
 </td>
 </tr>
 <tr>
@@ -163,7 +131,7 @@
 <p><a href="https://download-sdk.oss-cn-beijing.aliyuncs.com/downloads/Desktop_IM_SDK_3.8.4.zip">下载 SDK</a></p>
 </td>
 <td>
-<p><a href="https://docs-im.easemob.com/im/pc/intro/integration">查看</a></p>
+<p><a href="/document/v2/electron/overview.html">查看</a></p>
 </td>
 </tr>
 <tr>
@@ -171,13 +139,13 @@
 <p>uni-app</p>
 </td>
 <td>
-<p><a href="https://docs-im.easemob.com/im/applet/releasenote#%E7%89%88%E6%9C%AC_v404_dev_2022-4-19">4.0.4</a></p>
+<p><a href="/document/v2/applet/releasenote.html#版本-v4-2-0-dev-2023-07-27-开发版">4.2.0</a></p>
 </td>
 <td>
-<p><a href="https://github.com/easemob/webim-uniapp-demo/releases/tag/4.0.4">下载 SDK 及 Demo</a></p>
+<p><a href="https://downloadsdk.easemob.com/mp/downloads/sdk/private-uniapp-20230918.zip">下载 SDK 及 Demo</a></p>
 </td>
 <td>
-<p><a href="https://docs-im.easemob.com/im/applet/uniapp">查看</a></p>
+<p><a href="/document/v2/applet/uniapp.html">查看</a></p>
 </td>
 </tr>
 <tr>
@@ -185,13 +153,13 @@
 <p>小程序</p>
 </td>
 <td>
-<p><a href="https://docs-im.easemob.com/im/applet/releasenote#%E7%89%88%E6%9C%AC_v404_dev_2022-4-19">4.0.4</a></p>
+<p><a href="/document/v2/applet/releasenote.html#版本-v4-2-0-dev-2023-07-27-开发版">4.2.0</a></p>
 </td>
 <td>
-<p><a href="https://github.com/easemob/webim-uniapp-demo/releases/tag/4.0.4">下载 SDK 及 Demo</a></p>
+<p><a href="https://github.com/easemob/webim-weixin-xcx">下载 SDK 及 Demo</a></p>
 </td>
 <td>
-<p><a href="https://docs-im.easemob.com/im/applet/wechat">查看</a></p>
+<p><a href="/document/v2/applet/wechat.html">查看</a></p>
 </td>
 </tr>
 <tr>
@@ -199,25 +167,27 @@
 <p>Unity</p>
 </td>
 <td>
-<p>3.9.0</p>
+<p><a href="/document/v2/unity/releasenote.html#版本-v1-2-0-dev-2023-8-30-开发版">1.2.0</a></p>
+</td>
+<td>
+<p><a href="https://downloadsdk.easemob.com/downloads/SDK/Unity/agora_chat_unity_sdk1.2.0.unitypackage">下载 SDK</a></p>
 </td>
 <td>
-<p><a href="https://downloadsdk.easemob.com/downloads/SDK/Unity/im_unity_sdk_3_9_0.unitypackage">下载 SDK</a></p>
+<p><a href="/document/v2/unity/quickstart.html">查看</a></p>
 </td>
-<td>&nbsp;</td>
 </tr>
 <tr>
 <td width="97">
 <p>Flutter</p>
 </td>
 <td>
-<p><a href="https://pub.flutter-io.cn/packages/im_flutter_sdk/changelog#3902">3.9.0+2</a></p>
+<p><a href="/document/v2/flutter/releasenote.html#版本-4-1-0-2023-8-16">4.1.0</a></p>
 </td>
 <td>
-<p><a href="https://pub.flutter-io.cn/packages/im_flutter_sdk/versions/3.9.0+2">下载 SDK</a></p>
+<p><a href="https://pub-web.flutter-io.cn/packages/im_flutter_sdk/versions/4.1.0">下载 SDK</a></p>
 </td>
 <td>
-<p><a href="http://docs-im-beta.easemob.com/document/flutter/quickstart.html">查看</a></p>
+<p><a href="/document/v2/flutter/quickstart.html">查看</a></p>
 </td>
 </tr>
 <tr>
@@ -229,13 +199,13 @@
 <p>Java</p>
 </td>
 <td>
-<p><a href="https://docs-im.easemob.com/im/server/ready/releasenote">0.6.3</a></p>
+<p><a href="/document/v2/server-side/java_server_sdk.html#v0-7-5-2023-08-24">0.7.5</a></p>
 </td>
 <td>
-<p><a href="https://github.com/easemob/easemob-im-server-sdk">下载 SDK</a></p>
+<p><a href="https://github.com/easemob/easemob-im-server-sdk/tree/v0.7.5">下载 SDK</a></p>
 </td>
 <td>
-<p><a href="http://docs-im-beta.easemob.com/document/server-side/java_server_sdk.html">查看</a></p>
+<p><a href="/document/v2/server-side/java_server_sdk.html">查看</a></p>
 </td>
 </tr>
 <tr>
@@ -249,7 +219,7 @@
 <p><a href="https://github.com/easemob/im-php-server-sdk">下载 SDK</a></p>
 </td>
 <td>
-<p><a href="http://docs-im-beta.easemob.com/document/server-side/php_server_sdk.html">查看</a></p>
+<p><a href="/document/v2/server-side/php_server_sdk.html">查看</a></p>
 </td>
 </tr>
 </tbody>
diff --git a/docs/document/v2/react-native/error.md b/docs/document/v2/react-native/error.md
index d5b27ef51..4d9526bf8 100644
--- a/docs/document/v2/react-native/error.md
+++ b/docs/document/v2/react-native/error.md
@@ -2,6 +2,6 @@
 
 <Toc />
 
-[Android 平台](/document/android/error.html)
+[Android 平台](/document/v2/android/error.html)
 
-[iOS 平台](/document/ios/error.html)  
\ No newline at end of file
+[iOS 平台](/document/v2/ios/error.html)  
\ No newline at end of file
diff --git a/docs/document/v2/react-native/group_attributes.md b/docs/document/v2/react-native/group_attributes.md
index 0faf432de..4ad815e8f 100644
--- a/docs/document/v2/react-native/group_attributes.md
+++ b/docs/document/v2/react-native/group_attributes.md
@@ -18,8 +18,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html) 及 [SDK 集成概述](overview.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
-- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
+
 
 ## 实现方法
 
diff --git a/docs/document/v2/react-native/group_manage.md b/docs/document/v2/react-native/group_manage.md
index d72c6622f..09cb98036 100644
--- a/docs/document/v2/react-native/group_manage.md
+++ b/docs/document/v2/react-native/group_manage.md
@@ -21,8 +21,7 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html) 及 [SDK 集成概述](overview.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
-- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
diff --git a/docs/document/v2/react-native/group_members.md b/docs/document/v2/react-native/group_members.md
index 04e17703a..a61ed3a86 100644
--- a/docs/document/v2/react-native/group_members.md
+++ b/docs/document/v2/react-native/group_members.md
@@ -22,9 +22,9 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html) 及 [SDK 集成概述](overview.html);
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html);
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html);
 - 了解群成员角色,详见 [群组概述](group_overview.html);
-- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。
+
 
 ## 实现方法
 
diff --git a/docs/document/v2/react-native/message_manage.md b/docs/document/v2/react-native/message_manage.md
index f92db62dd..d8fdab424 100644
--- a/docs/document/v2/react-native/message_manage.md
+++ b/docs/document/v2/react-native/message_manage.md
@@ -18,7 +18,7 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html) 及 [SDK 集成概述](overview.html)。
-- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
@@ -120,7 +120,7 @@ ChatClient.getInstance()
 
 环信即时通讯 IM 提供消息漫游功能,即将用户的所有会话的历史消息保存在消息服务器,用户在任何一个终端设备上都能获取到历史信息,使用户在多个设备切换使用的情况下也能保持一致的会话场景。
 
-你可以调用 `fetchHistoryMessages` 方法从服务器分页获取指定会话的历史消息。该功能需在[环信即时通讯 IM 管理后台](https://console.easemob.com/user/login)开通。
+你可以调用 `fetchHistoryMessages` 方法从服务器分页获取指定会话的历史消息。
 
 为确保数据可靠,我们建议你多次调用该方法,且每次获取的消息数小于 50 条。获取到数据后,SDK 会自动将消息更新到本地数据库。
 
@@ -202,8 +202,7 @@ ChatClient.getInstance()
 
 #### 单向删除服务端会话及其历史消息
 
-你可以调用 `removeConversationFromServer` 方法删除服务器端会话和历史消息。会话和消息删除后,当前用户无法从服务器获取该会话和消息,对本地的会话无影响,但会删除本地消息,而其他用户不受影响。该功能需在[环信即时通讯 IM 管理后台](https://console.easemob.com/user/login)开通。
-
+你可以调用 `removeConversationFromServer` 方法删除服务器端会话和历史消息。会话和消息删除后,当前用户无法从服务器获取该会话和消息,对本地的会话无影响,但会删除本地消息,而其他用户不受影响。
 示例代码如下:
 
 ```typescript
diff --git a/docs/document/v2/react-native/message_modify.md b/docs/document/v2/react-native/message_modify.md
index f3e972259..b5fd7429f 100644
--- a/docs/document/v2/react-native/message_modify.md
+++ b/docs/document/v2/react-native/message_modify.md
@@ -9,7 +9,7 @@
 若使用该功能,需将 SDK 升级至 1.2.0 或以上版本。
 :::
 
-你可以调用 `modifyMessageBody` 方法修改已经发送成功的消息。一条消息默认最多可修改 10 次,若要提升修改次数,需联系商务。
+你可以调用 `modifyMessageBody` 方法修改已经发送成功的消息。一条消息默认最多可修改 10 次。
 
 示例代码如下:
 
diff --git a/docs/document/v2/react-native/message_receipt.md b/docs/document/v2/react-native/message_receipt.md
index 24dbd0ea2..fffdf339c 100644
--- a/docs/document/v2/react-native/message_receipt.md
+++ b/docs/document/v2/react-native/message_receipt.md
@@ -3,7 +3,7 @@
 <Toc />
 单聊会话支持消息送达回执、会话已读回执和消息已读回执,发送方发送消息后可及时了解接收方是否及时收到并阅读了信息,也可以了解整个会话是否已读。
 
-群聊会话只支持消息已读回执。群主和群管理员在发送消息时,可以设置该消息是否需要已读回执。仅旗舰版及以上版本支持群消息已读回执功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。
+群聊会话只支持消息已读回执。群主和群管理员在发送消息时,可以设置该消息是否需要已读回执,私有部署即时通讯服务默认支持并开通该功能。
 
 本文介绍如何使用环信即时通讯 IM Android SDK 实现单聊和群聊的消息回执功能。
 
@@ -36,8 +36,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html) 及 [SDK 集成概述](overview.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
-- 群消息已读回执功能仅在环信 IM 旗舰版及以上版本支持该功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
+
 
 ## 实现方法
 
@@ -230,7 +230,7 @@ ChatClient.getInstance()
 
 对于群聊,群主和群管理员发送消息时,可以设置该消息是否需要已读回执。若需要,每个群成员在阅读消息后,SDK 均会发送已读回执,即阅读该消息的群成员数量即为已读回执的数量。
 
-仅旗舰版及以上版本支持群消息已读回执功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。
+私有部署即时通讯服务默认支持并开通群消息已读回执功能。
 
 1. 消息发送方需要知道群组消息是否已读,需要监听 `onGroupMessageRead` 事件。
 
diff --git a/docs/document/v2/react-native/message_send_receive.md b/docs/document/v2/react-native/message_send_receive.md
index a947c2f99..9c82fa32b 100644
--- a/docs/document/v2/react-native/message_send_receive.md
+++ b/docs/document/v2/react-native/message_send_receive.md
@@ -39,7 +39,7 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
@@ -135,7 +135,7 @@ ChatClient.getInstance().chatManager.removeAllMessageListener();
 
 ### 撤回消息
 
-发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信即时通讯云控制台](https://console.easemob.com/user/login)的**功能配置** > **功能配置总览** > **基础功能** 页面设置消息撤回时长,该时长不超过 7 天。
+发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在 环信即时通讯云控制台的**服务管理** > **服务概览** 页面设置消息撤回时长,该时长不超过 7 天。
 
 ```typescript
 ChatClient.getInstance()
diff --git a/docs/document/v2/react-native/message_translation.md b/docs/document/v2/react-native/message_translation.md
index 1cc48d951..aabe0029e 100644
--- a/docs/document/v2/react-native/message_translation.md
+++ b/docs/document/v2/react-native/message_translation.md
@@ -12,7 +12,7 @@
 开始前,请确保满足以下条件:
 
 1. 完成 SDK 初始化,详见 [快速开始](quickstart.html) 及 [SDK 集成概述](overview.html)。
-2. 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。
+2. 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。
 3. 已在 [环信即时通讯云控制台](https://console.easemob.com/user/login) 开通翻译功能。
 4. 该功能由 Microsoft Azure Translation API 提供,因此开始前请确保你了解该功能支持的目标语言。详见 [翻译语言支持](https://docs.microsoft.com/en-us/azure/cognitive-services/translator/language-support)。
 
diff --git a/docs/document/v2/react-native/multi_device.md b/docs/document/v2/react-native/multi_device.md
index 78baee4a0..f227112ef 100644
--- a/docs/document/v2/react-native/multi_device.md
+++ b/docs/document/v2/react-native/multi_device.md
@@ -11,7 +11,7 @@
 
 多端登录时,即时通讯 IM 每端默认最多支持 4 个设备同时在线。如需增加支持的设备数量,可以联系环信即时通讯 IM 的商务经理。
 
-你可以在环信控制台的**功能配置** > **功能配置总览**页面的**基础功能**页签下点击**多端多设备在线**操作栏中的**设置**,在弹出的对话框中设置设置各端设备的数量:
+你可以在环信控制台的**服务管理** > **服务概览**页面的下点击**多端多设备在线**操作栏中的**设置**,在弹出的对话框中设置设置各端设备的数量:
 
 ![img](@static/images/common/multidevice_device_count.png)
 
@@ -24,7 +24,7 @@
 </head>
 
 <body>
-<table width="815" height="195" border="1">
+<table width="815" height="" border="1">
   <tbody>
     <tr>
       <td width="127" height="49">单端/多端登录</td>
@@ -38,7 +38,7 @@
     </tr>
     <tr>
       <td height="84">多端登录</td>
-      <td>若一端的登录设备数量达到了上限,最新登录的设备会将该端最早登录的设备踢下线。&lt;br/&gt;即时通讯 IM 仅支持同端互踢,不支持各端之间互踢。</td>
+      <td>若一端的登录设备数量达到了上限,最新登录的设备会将该端最早登录的设备踢下线。<br>即时通讯 IM 仅支持同端互踢,不支持各端之间互踢。</td>
     </tr>
   </tbody>
 </table>
@@ -62,8 +62,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html) 及 [SDK 集成概述](overview.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
-- 了解环信即时通讯 IM 的套餐包,详见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
+
 
 ## 实现方法
 
@@ -151,7 +151,7 @@ ChatClient.getInstance()
 
 你可以按照以下步骤设置登录设备所属的平台:
 
-1. 在环信控制台的**功能配置** > **功能配置总览**页面,点击**基础功能**页签,然后点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击 **新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台**和**设备数量**。
+1. 在环信控制台的**服务管理** > **服务概览**页面,点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击 **新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台**和**设备数量**。
 
 **设备平台**的取值范围为 [1,100],**设备数量**的取值范围为 [0,4]。
 
diff --git a/docs/document/v2/react-native/overview.md b/docs/document/v2/react-native/overview.md
index 413769d64..bbc0c2eed 100644
--- a/docs/document/v2/react-native/overview.md
+++ b/docs/document/v2/react-native/overview.md
@@ -6,7 +6,7 @@
 
 ## 前提条件
 
-开始前,请注册有效的环信即时通讯 IM 开发者账号和取得 App key,见 [环信即时通讯云管理后台](https://console.easemob.com/user/login)。
+开始前,请注册有效的环信即时通讯 IM 开发者账号和取得 App key,见 [环信即时通讯云管理后台](/document/v2/privatization/uc_configure.html)。
 
 ## 集成环境
 
@@ -71,15 +71,15 @@ ChatClient.getInstance()
 
 - 通过控制台注册。
 - 通过 REST API 接口注册。
-- 调用 SDK 接口注册。该方法需在 [控制台](https://console.easemob.com/app/im-service/detail) 设置允许 **开放注册**。
+- 调用 SDK 接口注册。该方法需在 [控制台](/document/v2/privatization/uc_configure.html) 设置允许 **开放注册**。
 
 ### 控制台注册
 
-控制台的注册请到 [这里](https://console.easemob.com/app/im-service/operative-service/user)。
+控制台的注册请到 **运营服务->用户管理** 页面下进行注册。
 
 ### REST API 注册
 
-请参考 [注册用户](/document/server-side/account_system.html#注册用户)。
+请参考 [注册用户](/document/v2/server-side/account_system.html#注册用户)。
 
 ### SDK 注册
 
@@ -101,7 +101,7 @@ ChatClient.getInstance()
 - 用户 ID + 密码
 - 用户 ID + token
 
-手动登录时传入的用户 ID 必须为 String 类型,支持的字符集详见[用户注册的 RESTful 接口](/document/server-side/account_system.html#注册用户)。
+手动登录时传入的用户 ID 必须为 String 类型,支持的字符集详见[用户注册的 RESTful 接口](/document/v2/server-side/account_system.html#注册用户)。
 
 调用登录接口后,收到 `onConnected` 回调表明 SDK 与环信服务器连接成功。
 
@@ -120,7 +120,7 @@ ChatClient.getInstance()
   });
 ```
 
-**用户 ID + token** 是更加安全的登录方式。token 可以通过调用 REST API 获取。 详见 [环信用户 token 的获取](/document/server-side/easemob_user_token.html)。
+**用户 ID + token** 是更加安全的登录方式。token 可以通过调用 REST API 获取。 详见 [环信用户 token 的获取](/document/v2/server-side/easemob_user_token.html)。
 
 :::notice
 使用 token 登录时需要处理 token 过期的问题,比如在每次登录时更新 token 等机制。
diff --git a/docs/document/v2/react-native/presence.md b/docs/document/v2/react-native/presence.md
index 6bae9d171..ae84dda05 100644
--- a/docs/document/v2/react-native/presence.md
+++ b/docs/document/v2/react-native/presence.md
@@ -35,8 +35,8 @@
 使用在线状态功能前,请确保满足以下条件:
 
 1. 完成 `1.0.5 或以上版本` SDK 初始化,详见 [快速开始](quickstart.html) 及 [SDK 集成概述](overview.html)。
-2. 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。
-3. 已联系商务开通在线状态订阅功能。
+2. 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。
+3. 私有部署已开通在线状态订阅功能。
 
 ## 实现方法
 
diff --git a/docs/document/v2/react-native/quickstart.md b/docs/document/v2/react-native/quickstart.md
index b242004a2..7542e8107 100644
--- a/docs/document/v2/react-native/quickstart.md
+++ b/docs/document/v2/react-native/quickstart.md
@@ -41,7 +41,7 @@
 
 ### 其他要求
 
-有效的环信即时通讯 IM 开发者账号和 App key,见 [环信即时通讯云管理后台](https://console.easemob.com/user/login)。
+有效的环信即时通讯 IM 开发者账号和 App key,见 [环信即时通讯云管理后台](/document/v2/privatization/uc_configure.html)。
 
 ## 项目设置
 
@@ -494,4 +494,4 @@ demo 的界面:
 
 ## 更多操作
 
-为了保证安全性,我们推荐使用 `username + password + token` 方式创建用户,token 在你的 app server 生成供客户端获取,当 token 过期时你需要重新获取。详见 [获取 user token](/product/easemob_user_token)。
+为了保证安全性,我们推荐使用 `username + password + token` 方式创建用户,token 在你的 app server 生成供客户端获取,当 token 过期时你需要重新获取。详见 [获取 user token](/document/v2/server-side/easemob_user_token.html)。
diff --git a/docs/document/v2/react-native/reaction.md b/docs/document/v2/react-native/reaction.md
index 17e7b40fe..7fa2a7210 100644
--- a/docs/document/v2/react-native/reaction.md
+++ b/docs/document/v2/react-native/reaction.md
@@ -24,8 +24,8 @@ Reaction 场景示例如下:
 开始前,请确保满足以下条件:
 
 1. 完成 `1.0.5 或以上版本` SDK 初始化,详见 [快速开始](quickstart.html) 及 [SDK 集成概述](overview.html)。
-2. 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。
-3. 已联系商务开通 Reaction 功能。
+2. 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。
+3. 私有部署已开通 Reaction 功能。
 
 ## 实现方法
 
diff --git a/docs/document/v2/react-native/releasenote.md b/docs/document/v2/react-native/releasenote.md
index 2bf6c4f2a..92a76f9a7 100644
--- a/docs/document/v2/react-native/releasenote.md
+++ b/docs/document/v2/react-native/releasenote.md
@@ -240,11 +240,10 @@
 - 消息表情回复;
 - 管理子区等。
 
-关于详细功能概述请参见: [产品概述](/product/introduction.html).
 
 具体集成请参考以下文档:
 
-- [开通配置环信即时通讯 IM 服务](/product/enable_and_configure_IM.html)
+- [开通配置环信即时通讯 IM 服务](/document/v2/privatization/uc_configure.html)
 - [环信即时通讯 IM React-Native 快速开始](quickstart.html)
 - [消息管理 React Native](message_overview.html)
 - [群组](group_overview.html)
diff --git a/docs/document/v2/react-native/room_attributes.md b/docs/document/v2/react-native/room_attributes.md
index 0fb77c77d..3bbc574c9 100644
--- a/docs/document/v2/react-native/room_attributes.md
+++ b/docs/document/v2/react-native/room_attributes.md
@@ -20,8 +20,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html) 及 [SDK 集成概述](overview.html)。
-- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html)。
-- 了解聊天室的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。
+- 了解环信即时通讯 IM 的 [使用限制](/document/v2/privatization/uc_limitation.html)。
+
 
 ## 实现方法
 
diff --git a/docs/document/v2/react-native/room_manage.md b/docs/document/v2/react-native/room_manage.md
index 43b101b8c..0a4466072 100644
--- a/docs/document/v2/react-native/room_manage.md
+++ b/docs/document/v2/react-native/room_manage.md
@@ -24,9 +24,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html) 及 [SDK 集成概述](overview.html)。
-- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html)。
-- 了解环信即时通讯 IM 不同版本的聊天室相关数量限制,详见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im)。
-- 只有超级管理员才有创建聊天室的权限,因此你还需要确保已调用 RESTful API 添加了超级管理员,详见 [添加聊天室超级管理员](/document/server-side/chatroom.html#添加超级管理员)。
+- 了解环信即时通讯 IM 的 [使用限制](/document/v2/privatization/uc_limitation.html)。
+- 只有超级管理员才有创建聊天室的权限,因此你还需要确保已调用 RESTful API 添加了超级管理员,详见 [添加聊天室超级管理员](/document/v2/server-side/chatroom.html#添加超级管理员)。
 - 聊天室创建者和管理员的数量之和不能超过 100,即管理员最多可添加 99 个。
 
 ## 实现方法
@@ -35,9 +34,9 @@
 
 ### 创建聊天室
 
-仅 [超级管理员](/document/server-side/chatroom.html#管理超级管理员) 可以调用 `createChatRoom` 方法创建聊天室,并设置聊天室的名称、描述、最大成员数等信息。成功创建聊天室后,该超级管理员为该聊天室的所有者。
+仅 [超级管理员](/document/v2/server-side/chatroom.html#管理超级管理员) 可以调用 `createChatRoom` 方法创建聊天室,并设置聊天室的名称、描述、最大成员数等信息。成功创建聊天室后,该超级管理员为该聊天室的所有者。
 
-你也可以直接调用 REST API [从服务端创建聊天室](/document/server-side/chatroom.html#创建聊天室)。
+你也可以直接调用 REST API [从服务端创建聊天室](/document/v2/server-side/chatroom.html#创建聊天室)。
 
 示例代码如下:
 
diff --git a/docs/document/v2/react-native/room_members.md b/docs/document/v2/react-native/room_members.md
index 7eedeec75..71daeb3c6 100644
--- a/docs/document/v2/react-native/room_members.md
+++ b/docs/document/v2/react-native/room_members.md
@@ -21,8 +21,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html) 及 [SDK 集成概述](overview.html)。
-- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html)。
-- 了解环信即时通讯 IM 聊天室相关限制,详见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im)。
+- 了解环信即时通讯 IM 的 [使用限制](/document/v2/privatization/uc_limitation.html)。
+
 
 ## 实现方法
 
diff --git a/docs/document/v2/react-native/thread.md b/docs/document/v2/react-native/thread.md
index 857516fe8..772c3cbca 100644
--- a/docs/document/v2/react-native/thread.md
+++ b/docs/document/v2/react-native/thread.md
@@ -23,9 +23,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 `1.0.5 或以上版本` SDK 初始化,详见 [快速开始](quickstart.html) 及 [SDK 集成概述](overview.html)。
-- 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。
-- 了解子区和子区成员数量限制,详见 [使用限制](/product/limitation.html)。
-- 联系商务开通子区功能。
+- 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。
+- 私有部署已开通子区功能。
 
 ## 实现方法
 
diff --git a/docs/document/v2/react-native/thread_message.md b/docs/document/v2/react-native/thread_message.md
index 455dc7de6..b7754e0ae 100644
--- a/docs/document/v2/react-native/thread_message.md
+++ b/docs/document/v2/react-native/thread_message.md
@@ -30,7 +30,7 @@
 开始前,请确保满足以下条件:
 
 - 已集成 `1.0.5 或以上版本` SDK 的基本功能,完成 SDK 初始化,详见 [快速开始](quickstart.html) 及 [SDK 集成概述](overview.html)。
-- 了解即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 了解即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 - 联系商务开通子区功能。
 
 ## 实现方法
diff --git a/docs/document/v2/react-native/user_relationship.md b/docs/document/v2/react-native/user_relationship.md
index f4300bc18..4ab823af2 100644
--- a/docs/document/v2/react-native/user_relationship.md
+++ b/docs/document/v2/react-native/user_relationship.md
@@ -30,7 +30,7 @@ SDK 提供用户关系管理功能,包括好友列表管理和黑名单管理
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html) 及 [SDK 集成概述](overview.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
diff --git a/docs/document/v2/react-native/userprofile.md b/docs/document/v2/react-native/userprofile.md
index 7d955d214..bb87a3a0f 100644
--- a/docs/document/v2/react-native/userprofile.md
+++ b/docs/document/v2/react-native/userprofile.md
@@ -25,7 +25,7 @@
 设置用户属性前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html) 及 [SDK 集成概述](overview.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
@@ -60,7 +60,7 @@ ChatClient.getInstance()
   });
 ```
 
-若[调用 RESTful 的接口设置](/document/server-side/userprofile.html#设置用户属性)或[删除用户属性](/document/server-side/userprofile.html#删除用户属性),请求中必须传以下字段各客户端才能获取到。
+若[调用 RESTful 的接口设置](/document/v2/server-side/userprofile.html#设置用户属性)或[删除用户属性](/document/v2/server-side/userprofile.html#删除用户属性),请求中必须传以下字段各客户端才能获取到。
 
 | 字段        | 类型   | 描述                                                         |
 | :---------- | :----- | :----------------------------------------------------------- |
diff --git a/docs/document/v2/server-side/account_system.md b/docs/document/v2/server-side/account_system.md
index 575c1979e..30ffb47a7 100644
--- a/docs/document/v2/server-side/account_system.md
+++ b/docs/document/v2/server-side/account_system.md
@@ -12,9 +12,9 @@
 
 | 参数       | 类型   | 是否必需 | 描述         |
 | :--------- | :----- | :------- | :------------------------- |
-| `host`     | String | 是       | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 |
-| `org_name` | String | 是       | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。  |
-| `app_name` | String | 是       | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。  |
+| `host`     | String | 是       | 访问 RESTful API 的域名或服务器信息。<br/>-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。 <br/> -私有化集成为部署后 `服务器地址:端口`。 |
+| `org_name` | String | 是       | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。  |
+| `app_name` | String | 是       | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。   |
 
 ### 响应参数
 
@@ -43,7 +43,7 @@
 
 - 已在环信即时通讯云控制台 [开通配置环信即时通讯 IM 服务](enable_and_configure_IM.html)。
 - 已从服务端获取 app token,详见 [使用 App Token 鉴权](easemob_app_token.html)。
-- 了解环信 IM API 的调用频率限制,详见 [接口频率限制](limitationapi.html)。
+
 
 ## 认证方式
 
@@ -57,7 +57,7 @@
 
 ### 开放注册单个用户
 
-开放注册指用户可以在登录客户端 SDK 后自行通过账号密码注册账号。一般在体验 Demo 和测试开发环境时使用,使用前需先在[环信即时通讯云控制后台](https://console.easemob.com/user/login)打开相应应用的开放注册开关,即在控制台首页的 **应用列表** 下点击目标应用的 **操作** 一栏中的 **查看**,然后选择 **即时通讯** > **服务概览**,在页面的 **设置** 区域中将 **用户注册模式** 设置为 **开放注册**。
+开放注册指用户可以在登录客户端 SDK 后自行通过账号密码注册账号。一般在体验 Demo 和测试开发环境时使用,使用前需先在环信即时通讯云控制后台打开相应应用的开放注册开关,即在控制台首页的 **应用列表** 下点击目标应用的 **操作** 一栏中的 **管理**,然后选择 **应用概览** > **应用详情**,在页面的 **应用设置** 区域中将 **用户注册模式** 设置为 **开放注册**。
 
 #### HTTP 请求
 
@@ -136,7 +136,7 @@ curl -X POST -i "https://XXXX.com/XXXX-demo/XXXX/users" -d '{"username":"user1",
 
 要使用该注册方式,你需要在环信控制台进行如下配置:
 
-在控制台首页的 **应用列表** 下点击目标应用的 **操作** 一栏中的 **查看**,然后选择 **即时通讯** > **服务概览**,在页面的 **设置** 区域中将**用户注册模式**设置**授权注册**,然后单击**保存**。
+即在控制台首页的 **应用列表** 下点击目标应用的 **操作** 一栏中的 **管理**,然后选择 **应用概览** > **应用详情**,在页面的 **应用设置** 区域中将 **用户注册模式** 设置**授权注册**,然后单击**保存**。
 
 推荐使用该模式,因为该模式较为安全,可防止已获取了注册 URL 和了解注册流程的某些人恶意向服务器大量注册垃圾用户。
 
@@ -1051,7 +1051,7 @@ curl --location 'http://XXXX/XXXX/XXXX/users/XXXX/resources' \
 
 该功能可广泛用于实时互动 app 中,例如发现某用户频繁向多个聊天室发送违规广告,则可以对该用户开启全局聊天室禁言 15 天;发现某用户发表触犯红线的政治言论,则可以全局永久禁言,用户申诉通过后可以解禁。
 
-使用该功能前,你需先查看你的 IM 套餐版本是否开通了该功能。该功能与 IM 套餐包版本之间的开通关系,详见[产品计费](introduction.html#增值服务费用)。
+
 
 ### 设置用户全局禁言
 
diff --git a/docs/document/v2/server-side/callback.md b/docs/document/v2/server-side/callback.md
index 4805fa2ee..a245524e6 100644
--- a/docs/document/v2/server-side/callback.md
+++ b/docs/document/v2/server-side/callback.md
@@ -36,7 +36,7 @@
 
 - 回调的方向是环信 IM 服务器向应用服务器发起 HTTP/HTTPS POST 请求。
 - 若同时设置了消息发送前和发送后两种回调,且消息发送前回调返回拒绝,则消息发送后回调将不会被触发。
-- 对同一个 app,可以针对不同类型的消息(“TEXT”,“IMAGE”,“VIDEO”,“LOCATION”,“VOICE” 和 ”FILE”)做配置;规则支持选择两种以上消息类型同时回调至一个指定服务器地址,接收到消息后,你可以区分消息的类型以便进行分类处理(详见 [消息管理 REST API](message.html))。
+- 对同一个 app,可以针对不同类型的消息(“TEXT”,“IMAGE”,“VIDEO”,“LOCATION”,“VOICE” 和 ”FILE”)做配置;规则支持选择两种以上消息类型同时回调至一个指定服务器地址,接收到消息后,你可以区分消息的类型以便进行分类处理(详见 [消息管理 REST API](message_single.html))。
 - 环信 IM 服务器执行发送前回调后,如果你的应用服务器没有返回 valid 状态或者返回其他错误码,该条消息会根据默认设置(console 后台发送前回调中 ”调用失败时默认策略”)处理,不会再重试;后续消息依然正常执行回调。
 - 消息发送到你的应用服务器后,应用服务器需返回 HTTP 响应码 200 和 valid 属性,根据 valid 状态决定是否进行下发。
 
@@ -85,7 +85,7 @@
 | `msg_id`          | 消息的 ID。                                                                                                                        |
 | `payload`         | 消息内容,与通过 REST API 发送过来的一致,查看 [消息格式文档](message_historical.html#历史消息记录的内容)。                                   |
 | `securityVersion` | 安全校验版本,目前为 1.0.0。忽略此参数,以后会改成 Console 后台做设置。                                                            |
-| `security`        | 签名,格式如下: MD5(callId+Secret+timestamp)。Secret 见 [环信即时通讯云控制台](https://console.easemob.com/user/login)回调规则。 |
+| `security`        | 签名,格式如下: MD5(callId+Secret+timestamp)。Secret 见 环信即时通讯云控制台 回调规则。 |
 
 #### 响应 body
 
@@ -148,7 +148,7 @@
 
 以下是需要了解的发送后回调功能说明,包括在高并发可用性的基础上的使用限制说明,请按照此限制正确使用回调。
 
-- 消息回调属于增值服务,需要开通相应版本后才能使用,具体见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im)。
+- 开通消息回调服务。
 - 消息回调规则设置成功即可正常使用。最多支持 4 个回调规则(包含发送前回调和发送后回调),如果需要再增加回调规则,需要联系商务经理开通。
 - 发送后回调范围,所有上行消息有效(包含 REST 发送的消息),包含单聊/群聊;如果 app 开通了反垃圾/敏感词过滤,被识别的消息会在服务器被拦截并禁止发送,将不会回调。
 - 发送后回调接收延时,是指消息服务器接收到客户端上行消息、再将消息成功回调至客户指定服务器地址的时间间隔。消息接收延时保障是 99.95% 的消息在 30s 内。
@@ -165,7 +165,7 @@
 
 具体如下:
 
-1. App Key 可以配置回调规则的数据格式,可以配置多个回调规则(默认最多开通 4 个规则),开通服务后才允许用户配置,前往 [环信即时通讯云控制台](https://console.easemob.com/) 配置:
+1. App Key 可以配置回调规则的数据格式,可以配置多个回调规则(默认最多开通 4 个规则),开通服务后才允许用户配置,前往 [环信即时通讯云控制台](enable_and_configure_IM.html#配置消息回调) 配置:
 
 | 参数<div style="width: 80px;"></div> | 说明                                                                                                                                                                                                   |
 | :----------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
@@ -265,8 +265,8 @@ app 的响应内容不能超过 1,000 个字符,否则环信服务器会认为
 
 | 参数       | 类型   | 是否必需 | 描述                                                                                                                                           |
 | :--------- | :----- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------- |
-| `org_name` | String | 是       | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 |
-| `app_name` | String | 是       | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 |
+| `org_name` | String | 是       | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。  |
+| `app_name` | String | 是       | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。   |
 
 #### 请求 header
 
@@ -339,8 +339,8 @@ curl -X GET 'https://a1.easemob.com/easemob-demo/easeim/callbacks/storage/info'
 
 | 参数       | 类型   | 是否必需 | 描述                                                                                                                                           |
 | :--------- | :----- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------- |
-| `org_name` | String | 是       | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 |
-| `app_name` | String | 是       | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 |
+| `org_name` | String | 是       | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。  |
+| `app_name` | String | 是       | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。   |
 
 #### 请求 header
 
diff --git a/docs/document/v2/server-side/chatroom.md b/docs/document/v2/server-side/chatroom.md
index 7db2119f0..17f377676 100644
--- a/docs/document/v2/server-side/chatroom.md
+++ b/docs/document/v2/server-side/chatroom.md
@@ -13,7 +13,7 @@
 要调用环信即时通讯 RESTful API,请确保满足以下要求:
 
 - 已在环信即时通讯控制台 [开通配置环信即时通讯 IM 服务](enable_and_configure_IM.html)。
-- 了解环信 IM REST API 的调用频率限制,详见[接口频率限制](limitationapi.html)。
+
 
 ## 聊天室成员角色
 
@@ -29,9 +29,9 @@
 
 | 参数          | 类型   | 是否必需 | 描述                                                                                                                                            |
 | :------------ | :----- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------- |
-| `host`        | String | 是       | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 |
-| `org_name`    | String | 是       | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。  |
-| `app_name`    | String | 是       | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。  |
+| `host`     | String | 是       | 访问 RESTful API 的域名或服务器信息。<br/>-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。 <br/> -私有化集成为部署后 `服务器地址:端口`。 |
+| `org_name` | String | 是       | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。  |
+| `app_name` | String | 是       | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。   |
 | `chatroom_id` | String | 是       | 聊天室 ID。                                                                                                                                     |
 | `username`    | String | 是       | 用户 ID。                                                                                                                                       |
 | `name`        | String | 是       | 聊天室名称,最大长度为 128 个字符。                                                                                                             |
diff --git a/docs/document/v2/server-side/easemob_app_token.md b/docs/document/v2/server-side/easemob_app_token.md
index d517b3cb1..9ffb2c42c 100644
--- a/docs/document/v2/server-side/easemob_app_token.md
+++ b/docs/document/v2/server-side/easemob_app_token.md
@@ -1,6 +1,6 @@
 ---
 {
-    pageUri: "/product/easemob_app_token.html",
+    pageUri: "/document/v2/privatization/easemob_app_token.html",
     title: "使用环信 App Token 鉴权"
 }
 ---
\ No newline at end of file
diff --git a/docs/document/v2/server-side/easemob_user_token.md b/docs/document/v2/server-side/easemob_user_token.md
index cb2a72c95..c5302333f 100644
--- a/docs/document/v2/server-side/easemob_user_token.md
+++ b/docs/document/v2/server-side/easemob_user_token.md
@@ -1,6 +1,6 @@
 ---
 {
-    pageUri: "/product/easemob_user_token.html",
+    pageUri: "/document/v2/privatization/easemob_user_token.html",
     title: "使用环信用户 token 鉴权"
 }
 ---
\ No newline at end of file
diff --git a/docs/document/v2/server-side/enable_and_configure_IM.md b/docs/document/v2/server-side/enable_and_configure_IM.md
index f94b58f39..3102c72b7 100644
--- a/docs/document/v2/server-side/enable_and_configure_IM.md
+++ b/docs/document/v2/server-side/enable_and_configure_IM.md
@@ -1,6 +1,6 @@
 ---
 {
-    pageUri: "/product/enable_and_configure_IM.html",
+    pageUri: "/document/v2/privatization/uc_configure.html",
     title: "开通配置环信即时通讯 IM 服务"
 }
 ---
\ No newline at end of file
diff --git a/docs/document/v2/server-side/error.md b/docs/document/v2/server-side/error.md
index c6e434831..99032da2d 100644
--- a/docs/document/v2/server-side/error.md
+++ b/docs/document/v2/server-side/error.md
@@ -53,7 +53,7 @@
 | 400              | illegal_argument                   | “target_type can only be 'users' or 'chatgroups' or 'chatrooms'” | 发送消息时,对象类型(`target_type`)只能传入 `users`、`chatgroups` 或 `chatrooms`。若传入其他值,提示该错误。 |
 | 400              | illegal_argument                   | “username is not legal”                                      | 注册用户时传入的 username 不合法,详见 [用户体系集成](account_system.html#注册用户) |
 | 400              | illegal_argument                   | “This chatmessage request is not supported”                  | 查询历史消息时传入的时间格式不正确,正确的格式为 YYYYMMDDHH。例如,要获取 2018 年 02 月 09 日 12 点到 13 点的历史消息,传入的时间为 `2018020912`。 |
-| 400              | illegal_argument                   | “illegal arguments: appkey: easemob-demo#chatdemoui, time: 2018020918, maybe chat message history is expired or unstored” | 查询的历史消息未生成或已过期。消息的保留时间取决于产品套餐,详见[消息存储时长限制](limitation.html#消息存储时长限制)。 |
+| 400              | illegal_argument                   | “illegal arguments: appkey: easemob-demo#chatdemoui, time: 2018020918, maybe chat message history is expired or unstored” | 查询的历史消息未生成或已过期。消息的保留时间取决于初始设置。 |
 | 400              | invalid_parameter                  | “some of [groupid] are not valid fields”                     | 修改的群组信息时,传入的参数不支持,例如修改 `groupid`。修改群信息目前只支持修改“群名称”、“群描述” 和 “群最大人数”。 |
 | 400              | required_property_not_found        | “Entity user requires a property named username”             | 修改用户密码请求未提供用户 ID(`username`)。    |
 | 400              | duplicate_unique_property_exists   | “Application null Entity user requires that property named username be unique, value of hxtest1 exists” | 注册用户时,用户 ID 已存在,请更换用户 ID 重新注册。 注:如果是批量注册,若一次调用返回一个 ID 已存在,则此次调用注册的其他不存在的 ID 不会注册,需将已存在的 ID 从数组中移除重新调用注册。 |
@@ -69,7 +69,7 @@
 | 401              | unauthorized                       | “registration is not open, please contact the app admin”     | 授权注册模式下,调用[注册单个用户](account_system.html#授权注册单个用户)和[批量注册用户](account_system.html#批量注册用户)的 RESTful 接口时,未传入 App Token 或传入了错误的 App Token 时提示该错误,例如 Token 已过期或格式不正确。 |
 | 401              | unauthorized                       | “Unable to authenticate due to expired access token”         | 调用 RESTful 接口发送请求时使用的 App Token 过期或未传入 App Token。<br/>该错误码针对除[注册单个用户](account_system.html#授权注册单个用户)和[批量注册用户](account_system.html#批量注册用户)之外的 RESTful 接口有效。     |
 | 401              | auth_bad_access_token              | “Unable to authenticate due to corrupt access token”         | 调用 RESTful 接口发送请求时使用的 App Token 格式错误。<br/>该错误码针对除[注册单个用户](account_system.html#授权注册单个用户)和[批量注册用户](account_system.html#批量注册用户)之外的 RESTful 接口有效。      |
-| 401              | auth_bad_access_token              | “Unable to authenticate”                                     | 调用 RESTful 接口发送请求时使用的 App Token 无效。App Token 的格式正确,但不是由接收请求的服务器生成的,导致服务器无法识别该 Token。<br/>该错误码针对除[注册单个用户](./agora_chat_restful_regiration#注册单个用户)和[批量注册用户](./agora_chat_restful_regiration#注册单个用户)两个 RESTful 接口之外的接口有效。 |
+| 401              | auth_bad_access_token              | “Unable to authenticate”                                     | 调用 RESTful 接口发送请求时使用的 App Token 无效。App Token 的格式正确,但不是由接收请求的服务器生成的,导致服务器无法识别该 Token。<br/>该错误码针对除[注册单个用户](account_system.html#授权注册单个用户)和[批量注册用户](account_system.html#批量注册用户)两个 RESTful 接口之外的接口有效。 |
 | 403              | forbidden_op                       | “can not join this group, reason:user: hxtest1 already in group: 40659491815425\n” | 添加群组或聊天室成员时,被添加用户已在群组或聊天室内。                       |
 | 403              | forbidden_op                       | “users [hxtest100] are not members of this group!”           | 踢除群组或聊天室成员时,被踢除的用户不在群组或聊天室内。              |
 | 403              | forbidden_op                       | “user: username1 doesn't exist in group: 40659491815425”     | 转让群组时,被转让的用户不是群组内成员。 |
@@ -85,7 +85,7 @@
 | 413              | Request Entity Too Large           | “Request Entity Too Large”                                   | 请求体过大,如上传文件时文件过大,需要拆成几个更小的请求体重试。 |
 | 415              | web_application                    | “Unsupported Media Type”                                     | 请求体的类型不支持,请检查请求头是否添加了 `Content-Type`: `application/json`,请求包体是否符合标准的 JSON 格式,以及请求头中是否有接口不需要的参数。 |
 | 429              | resource_limited                   | “You have exceeded the limit of the Free edition. Please upgrade to higher edition.” | 超过免费版套餐包限制。如需开通其他版本套餐包,需联系环信商务。               |
-| 429              | reach_limit                        | “This request has reached api limit”                         | 超过即时通讯 RESTful API 的[调用频率限制](/product/limitation.html)。如果限制条件无法满足你的实际业务需求,需联系请联系环信商务。 |
+| 429              | reach_limit                        | “This request has reached api limit”                         | 超过即时通讯 RESTful API 的调用频率限制。 |
 | 500              | no_full_text_index                 | “Entity ‘user’ with property named ‘username’ is not full text indexed. You cannot use the ‘contains’ operand on this field” | username 不支持全文索引,不可以对该字段进行 `contains` 操作。  |
 | 500              | unsupported_service_operation      | “Service operation not supported”                            | 请求 URL 不支持该请求方式。                            |
 | 500              | web_application                    | “javax.ws.rs.WebApplicationException”                        | 请求 URL 错误。 |
\ No newline at end of file
diff --git a/docs/document/v2/server-side/group.md b/docs/document/v2/server-side/group.md
index 1192f7902..3ed15bc66 100644
--- a/docs/document/v2/server-side/group.md
+++ b/docs/document/v2/server-side/group.md
@@ -4,14 +4,14 @@
 
 环信即时通讯 IM 提供了 RESTful API 管理 App 中的群组。
 
-单个 App 创建群组数量有限制,而且单个用户可加入群组的数量视版本而定,详见 [使用限制](limitation.html#群组限制)。
+单个 App 创建群组数量有限制,而且单个用户可加入群组的数量视版本而定,详见 [使用限制](/document/v2/privatization/uc_limitation.html#群组限制)。
 
 ## 前提条件
 
 要调用环信即时通讯 RESTful API,请确保满足以下要求:
 
 - 已在环信即时通讯 IM 管理后台 [开通配置环信即时通讯 IM 服务](enable_and_configure_IM.html)。
-- 了解环信 IM RESTful API 的调用频率限制,详见 [接口频率限制](limitationapi.html)。
+
 
 ## 公共参数
 
@@ -19,9 +19,9 @@
 
 | 参数       | 类型   | 是否必需 | 描述        |
 | :--------- | :----- | :------- | :--------------- |
-| `host`     | String | 是       | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 |
-| `org_name` | String | 是       | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。  |
-| `app_name` | String | 是       | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。  |
+| `host`     | String | 是       | 访问 RESTful API 的域名或服务器信息。<br/>-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。 <br/> -私有化集成为部署后 `服务器地址:端口`。 |
+| `org_name` | String | 是       | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。  |
+| `app_name` | String | 是       | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。   |
 | `group_id` | String | 是       | 群组 ID。    |
 | `username` | String | 是       | 用户 ID。             |
 
@@ -91,7 +91,7 @@ POST https://{host}/{org_name}/{app_name}/chatgroups
 | `description`         | String | 是       | 群组描述,最大长度为 512 字符。|
 | `public`              | Bool   | 是       | 是否是公开群。公开群可以被搜索到,用户可以申请加入公开群;私有群无法被搜索到,因此需要群主或群管理员添加,用户才可以加入。<br/> - `true`:公开群;<br/> - `false`:私有群。   |
 | `scale`           | String | 否      | 群组规模,取决于群成员总数 `maxusers` 参数。<br/> - (默认)`normal`:普通群,即群成员总数不超过 3000。<br/> - `large`:大型群,群成员总数超过 3000。**创建大型群时,该参数必传。**大型群不支持离线推送。如需默认创建大型群,请联系环信商务。|
-| `maxusers`            | Int    | 否       | 群组最大成员数(包括群主),值为数值类型,默认值 200。不同套餐支持的人数上限不同,详见 [产品价格](https://www.easemob.com/pricing/im)。    |
+| `maxusers`            | Int    | 否       | 群组最大成员数(包括群主),值为数值类型,默认值 2000。不同套餐支持的人数上限不同,详见[使用限制](/document/v2/privatization/uc_limitation.html#群组限制)。    |
 | `allowinvites`        | Bool   | 是       | 是否允许群成员邀请用户加入群组:<br/> - `true`:群成员可拉人入群;<br/> - (默认)`false`:只有群主或者管理员才可以拉人入群。<br/> 注:该参数仅对私有群有效,因为公开群不允许群成员邀请其他用户入群。 |
 | `membersonly`         | Bool   | 否       | 用户申请入群是否需要群主或者群管理员审批。 <br/> - `true`:需要; <br/> - (默认)`false`:不需要,用户直接进群。     |
 | `invite_need_confirm` | Bool   | 否       | 邀请用户入群时是否需要被邀用户同意。<br/> - (默认)`true`:是;<br/> - `false`:否。   |
diff --git a/docs/document/v2/server-side/java_server_sdk.md b/docs/document/v2/server-side/java_server_sdk.md
index 63aa05071..7b235f73e 100644
--- a/docs/document/v2/server-side/java_server_sdk.md
+++ b/docs/document/v2/server-side/java_server_sdk.md
@@ -12,7 +12,7 @@ Server SDK 提供了用户、消息、群组、聊天室等资源的操作管理
 
 - Java 1.8
 - [Reactor](https://projectreactor.io/)(io.projectreactor:reactor-bom:2020.0.4)
-- 有效的环信即时通讯 IM 开发者账号和 App Key、Client ID、ClientSecret,登录 [环信管理后台](https://console.easemob.com/user/login) 到“应用列表” → 点击“查看”即可获取到 App Key、Client ID、ClientSecret。
+- 有效的环信即时通讯 IM 开发者账号和 App Key、Client ID、ClientSecret,登录 [环信管理后台](enable_and_configure_IM.html) 到“应用列表” → 点击“管理”即可获取到 App Key、Client ID、ClientSecret。
 
 ## 实现方法
 
@@ -128,7 +128,7 @@ public class Config {
 ## 参考
 
 - [Server SDK 的 API 文档](https://easemob.github.io/easemob-im-server-sdk/)。
-- [Server SDK 开源地址](https://github.com/easemob/easemob-im-server-sdk)。
+- [Server SDK 开源地址](https://github.com/easemob/easemob-im-server-sdk/tree/v0.7.5)。
 
 ## 常见问题
 
diff --git a/docs/document/v2/server-side/limitation.md b/docs/document/v2/server-side/limitation.md
index c65aa2812..d60f70cf7 100644
--- a/docs/document/v2/server-side/limitation.md
+++ b/docs/document/v2/server-side/limitation.md
@@ -1,6 +1,6 @@
 ---
 {
-    pageUri: "/product/limitation.html",
+    pageUri: "/document/v2/privatization/uc_limitation.html",
     title: "限制条件"
 }
 ---
\ No newline at end of file
diff --git a/docs/document/v2/server-side/message_chatroom.md b/docs/document/v2/server-side/message_chatroom.md
index 4eed22ad0..0492a75e1 100644
--- a/docs/document/v2/server-side/message_chatroom.md
+++ b/docs/document/v2/server-side/message_chatroom.md
@@ -18,7 +18,6 @@
 要调用环信即时通讯 REST API,请确保满足以下要求:
 
 - 已在环信即时通讯控制台 [开通配置环信即时通讯 IM 服务](enable_and_configure_IM.html)。
-- 了解环信 IM REST API 的调用频率限制,详见 [接口频率限制](limitationapi.html)。
 
 ## 公共参数 
 
@@ -26,9 +25,9 @@
 
 | 参数       | 类型   | 是否必需 | 描述        |
 | :--------- | :----- | :------- | :----------------------- |
-| `host`     | String | 是       | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 |
-| `org_name` | String | 是       | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。  |
-| `app_name` | String | 是       | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。  |
+| `host`     | String | 是       | 访问 RESTful API 的域名或服务器信息。<br/>-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。 <br/> -私有化集成为部署后 `服务器地址:端口`。 |
+| `org_name` | String | 是       | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。  |
+| `app_name` | String | 是       | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。   |
 
 ### 响应参数
 
@@ -88,7 +87,7 @@ POST https://{host}/{org_name}/{app_name}/messages/chatrooms
 | `body`          | JSON   | 是       | 消息内容。body 包含的字段见下表说明。       |
 | `sync_device`   | Bool   | 否       | 消息发送成功后,是否将消息同步到发送方。<br/> - `true`:是;<br/> - (默认)`false`:否。      |
 | `routetype`     | String | 否       | 若传入该参数,其值为 `ROUTE_ONLINE`,表示接收方只有在线时才能收到消息,若接收方离线则无法收到消息。若不传入该参数,无论接收方在线还是离线都能收到消息。  |
-| `ext`           | JSON   | 否       | 消息支持扩展字段,可添加自定义信息。不能对该参数传入 `null`。同时,推送通知也支持自定义扩展字段,详见 [APNs 自定义显示](/document/ios/push.html#自定义显示) 和 [Android 推送字段说明](/document/android/push.html#自定义显示)。 |
+| `ext`           | JSON   | 否       | 消息支持扩展字段,可添加自定义信息。不能对该参数传入 `null`。同时,推送通知也支持自定义扩展字段,详见 [APNs 自定义显示](/document/v2/ios/push.html#自定义显示) 和 [Android 推送字段说明](/document/v2/android/push.html#自定义显示)。 |
 
 请求体中的 `body` 字段说明详见下表。
 
@@ -823,7 +822,7 @@ POST https://{host}/{org_name}/{app_name}/messages/chatrooms/users
 | `type`          | String | 是       | 消息类型:<br/> - `txt`:文本消息;<br/> - `img`:图片消息;<br/> - `audio`:语音消息;<br/> - `video`:视频消息;<br/> - `file`:文件消息;<br/> - `loc`:位置消息;<br/> - `cmd`:透传消息;<br/> - `custom`:自定义消息。    |
 | `body`          | JSON   | 是       | 消息内容。body 包含的字段见下表说明。       |
 | `sync_device`   | Bool   | 否       | 消息发送成功后,是否将消息同步到发送方。<br/> - `true`:是;<br/> - (默认)`false`:否。      |
-| `ext`           | JSON   | 否       | 消息支持扩展字段,可添加自定义信息。不能对该参数传入 `null`。同时,推送通知也支持自定义扩展字段,详见 [APNs 自定义显示](/document/ios/push.html#自定义显示) 和 [Android 推送字段说明](/document/android/push.html#自定义显示)。 |
+| `ext`           | JSON   | 否       | 消息支持扩展字段,可添加自定义信息。不能对该参数传入 `null`。同时,推送通知也支持自定义扩展字段,详见 [APNs 自定义显示](/document/v2/ios/push.html#自定义显示) 和 [Android 推送字段说明](/document/v2/android/push.html#自定义显示)。 |
 | `users`         | Array  | 是       |接收消息的聊天室成员的用户 ID 数组。每次最多可传 20 个用户 ID。|
 
 请求体中的 `body` 字段说明详见下表。
diff --git a/docs/document/v2/server-side/message_download.md b/docs/document/v2/server-side/message_download.md
index a265c6706..cadd9e9ca 100644
--- a/docs/document/v2/server-side/message_download.md
+++ b/docs/document/v2/server-side/message_download.md
@@ -14,7 +14,7 @@
 要调用环信即时通讯 REST API,请确保满足以下要求:
 
 - 已在环信即时通讯控制台 [开通配置环信即时通讯 IM 服务](enable_and_configure_IM.html)。
-- 了解环信 IM REST API 的调用频率限制,详见 [接口频率限制](limitationapi.html)。
+
 
 ## 公共参数 
 
@@ -22,9 +22,9 @@
 
 | 参数       | 类型   | 是否必需 | 描述        |
 | :--------- | :----- | :------- | :----------------------- |
-| `host`     | String | 是       | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 |
-| `org_name` | String | 是       | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。  |
-| `app_name` | String | 是       | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。  |
+| `host`     | String | 是       | 访问 RESTful API 的域名或服务器信息。<br/>-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。 <br/> -私有化集成为部署后 `服务器地址:端口`。 |
+| `org_name` | String | 是       | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。  |
+| `app_name` | String | 是       | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。   |
 
 ### 响应参数
 
@@ -83,8 +83,8 @@ POST https://{host}/{org_name}/{app_name}/chatfiles
 | 参数               | 类型   | 是否必需 | 描述        |
 | :----------------- | :----- | :------- | :--------------- |
 | `file`             | String | 是       | 文件本地路径。    |
-| `thumbnail-height` | Int    | 否       | 缩略图的高度,单位为像素。<br/> - 若上传的原图或视频缩略图小于 10 KB,上传的图片即为缩略图。<br/> - 若上传的图片超过 10 KB,缩略图的高度取决于该参数的设置。<br/> - 若不传该参数,缩略图的高度默认为 170 像素。你也可以在 [环信即时通讯控制台](https://console.easemob.com/user/login)的 `服务概览` 页面的 `设置` 区域修改该默认值。 |
-| `thumbnail-width`  | Int    | 否       | 缩略图的宽度,单位为像素。<br/> - 若上传的原图或视频缩略图小于 10 KB,图片原图即为缩略图。<br/> - 若上传的图片超过 10 KB,缩略图的宽度取决于该参数的设置。<br/> - 若不传该参数,缩略图的宽度默认为 170 像素。你也可以在 [环信即时通讯控制台](https://console.easemob.com/user/login)的 `服务概览` 页面的 `设置` 区域修改该默认值。   |
+| `thumbnail-height` | Int    | 否       | 缩略图的高度,单位为像素。<br/> - 若上传的原图或视频缩略图小于 10 KB,上传的图片即为缩略图。<br/> - 若上传的图片超过 10 KB,缩略图的高度取决于该参数的设置。<br/> - 若不传该参数,缩略图的高度默认为 170 像素。你也可以在 环信即时通讯控制台的 `应用概览>应用详情` 页面的 `应用设置` 区域修改该默认值。 |
+| `thumbnail-width`  | Int    | 否       | 缩略图的宽度,单位为像素。<br/> - 若上传的原图或视频缩略图小于 10 KB,图片原图即为缩略图。<br/> - 若上传的图片超过 10 KB,缩略图的宽度取决于该参数的设置。<br/> - 若不传该参数,缩略图的宽度默认为 170 像素。你也可以在 环信即时通讯控制台的 `应用概览>应用详情` 页面的 `应用设置` 区域修改该默认值。   |
 
 ### HTTP 响应
 
diff --git a/docs/document/v2/server-side/message_group.md b/docs/document/v2/server-side/message_group.md
index 9a899112d..d29cd8c75 100644
--- a/docs/document/v2/server-side/message_group.md
+++ b/docs/document/v2/server-side/message_group.md
@@ -17,7 +17,7 @@
 要调用环信即时通讯 REST API,请确保满足以下要求:
 
 - 已在环信即时通讯控制台 [开通配置环信即时通讯 IM 服务](enable_and_configure_IM.html)。
-- 了解环信 IM REST API 的调用频率限制,详见 [接口频率限制](limitationapi.html)。
+
 
 ## 公共参数 
 
@@ -25,9 +25,9 @@
 
 | 参数       | 类型   | 是否必需 | 描述        |
 | :--------- | :----- | :------- | :----------------------- |
-| `host`     | String | 是       | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 |
-| `org_name` | String | 是       | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。  |
-| `app_name` | String | 是       | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。  |
+| `host`     | String | 是       | 访问 RESTful API 的域名或服务器信息。<br/>-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。 <br/> -私有化集成为部署后 `服务器地址:端口`。 |
+| `org_name` | String | 是       | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。  |
+| `app_name` | String | 是       | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。   |
 
 ### 响应参数
 
@@ -86,7 +86,7 @@ POST https://{host}/{org_name}/{app_name}/messages/chatgroups
 | `body`          | JSON   | 是       | 消息内容。body 包含的字段见下表说明。       |
 | `sync_device`   | Bool   | 否       | 消息发送成功后,是否将消息同步到发送方。<br/> - `true`:是;<br/> - (默认)`false`:否。      |
 | `routetype`     | String | 否       | 若传入该参数,其值为 `ROUTE_ONLINE`,表示接收方只有在线时才能收到消息,若接收方离线则无法收到消息。若不传入该参数,无论接收方在线还是离线都能收到消息。  |
-| `ext`           | JSON   | 否       | 消息支持扩展字段,可添加自定义信息。不能对该参数传入 `null`。同时,推送通知也支持自定义扩展字段,详见 [APNs 自定义显示](/document/ios/push.html#自定义显示) 和 [Android 推送字段说明](/document/android/push.html#自定义显示)。 |
+| `ext`           | JSON   | 否       | 消息支持扩展字段,可添加自定义信息。不能对该参数传入 `null`。同时,推送通知也支持自定义扩展字段,详见 [APNs 自定义显示](/document/v2/ios/push.html#自定义显示) 和 [Android 推送字段说明](/document/v2/android/push.html#自定义显示)。 |
 | `ext.em_ignore_notification` | Bool   | 否 | 是否发送静默消息:<br/> - `true`:是;<br/> - (默认)`false`:否。<br/> 发送静默消息指用户离线时,环信即时通讯 IM 服务不会通过第三方厂商的消息推送服务向该用户的设备推送消息通知。因此,用户不会收到消息推送通知。当用户再次上线时,会收到离线期间的所有消息。发送静默消息和免打扰模式下均为不推送消息,区别在于发送静默消息为发送方设置不推送消息,而免打扰模式为接收方设置在指定时间段内不接收推送通知。| 
 
 请求体中的 `body` 字段说明详见下表。
@@ -829,7 +829,7 @@ POST https://{host}/{org_name}/{app_name}/messages/chatgroups/users
 | `type`          | String | 是       | 消息类型:<br/> - `txt`:文本消息;<br/> - `img`:图片消息;<br/> - `audio`:语音消息;<br/> - `video`:视频消息;<br/> - `file`:文件消息;<br/> - `loc`:位置消息;<br/> - `cmd`:透传消息;<br/> - `custom`:自定义消息。    |
 | `body`          | JSON   | 是       | 消息内容。body 包含的字段见下表说明。       |
 | `sync_device`   | Bool   | 否       | 消息发送成功后,是否将消息同步到发送方。<br/> - `true`:是;<br/> - (默认)`false`:否。      |
-| `ext`           | JSON   | 否       | 消息支持扩展字段,可添加自定义信息。不能对该参数传入 `null`。同时,推送通知也支持自定义扩展字段,详见 [APNs 自定义显示](/document/ios/push.html#自定义显示) 和 [Android 推送字段说明](/document/android/push.html#自定义显示)。 |
+| `ext`           | JSON   | 否       | 消息支持扩展字段,可添加自定义信息。不能对该参数传入 `null`。同时,推送通知也支持自定义扩展字段,详见 [APNs 自定义显示](/document/v2/ios/push.html#自定义显示) 和 [Android 推送字段说明](/document/v2/android/push.html#自定义显示)。 |
 | `ext.em_ignore_notification` | Bool   | 否 | 是否发送静默消息:<br/> - `true`:是;<br/> - (默认)`false`:否。<br/> 发送静默消息指用户离线时,环信即时通讯 IM 服务不会通过第三方厂商的消息推送服务向该用户的设备推送消息通知。因此,用户不会收到消息推送通知。当用户再次上线时,会收到离线期间的所有消息。发送静默消息和免打扰模式下均为不推送消息,区别在于发送静默消息为发送方设置不推送消息,而免打扰模式为接收方设置在指定时间段内不接收推送通知。|
 | `users`         | Array  | 是       |接收消息的群成员的用户 ID 数组。每次最多可传 20 个用户 ID。|
 
diff --git a/docs/document/v2/server-side/message_historical.md b/docs/document/v2/server-side/message_historical.md
index 4926b27d1..99d26ee40 100644
--- a/docs/document/v2/server-side/message_historical.md
+++ b/docs/document/v2/server-side/message_historical.md
@@ -6,14 +6,14 @@
 
 - 单次请求获取从指定起始时间开始一小时内的发送的历史消息记录。
 - 查询历史消息记录时存在一定延时,无法实时获取。
-- 过期的历史消息记录无法获取。对于不同的套餐版本,历史消息记录的默认存储时间不同,详见 [套餐包详情](https://www.easemob.com/pricing/im)。
+- 过期的历史消息记录无法获取。历史消息记录的默认存储时间14天,支持联系商务调整。
 
 ## 前提条件
 
 要调用环信即时通讯 REST API,请确保满足以下要求:
 
 - 已在环信即时通讯控制台 [开通配置环信即时通讯 IM 服务](enable_and_configure_IM.html)。
-- 了解环信 IM REST API 的调用频率限制,详见 [接口频率限制](limitationapi.html)。
+
 
 ## 公共参数
 
@@ -21,9 +21,9 @@
 
 | 参数       | 类型   | 是否必需 | 描述      |
 | :--------- | :----- | :------- | :------------- |
-| `host`  | String | 是  | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 |
-| `org_name` | String | 是   | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 |
-| `app_name` | String | 是   | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。|
+| `host`     | String | 是       | 访问 RESTful API 的域名或服务器信息。<br/>-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。 <br/> -私有化集成为部署后 `服务器地址:端口`。 |
+| `org_name` | String | 是       | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。  |
+| `app_name` | String | 是       | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。   |
 
 ### 响应参数
 
diff --git a/docs/document/v2/server-side/message_import.md b/docs/document/v2/server-side/message_import.md
index 421792bea..a5341d84e 100644
--- a/docs/document/v2/server-side/message_import.md
+++ b/docs/document/v2/server-side/message_import.md
@@ -9,7 +9,7 @@
 要调用环信即时通讯 REST API,请确保满足以下要求:
 
 - 已在环信即时通讯控制台 [开通配置环信即时通讯 IM 服务](enable_and_configure_IM.html)。
-- 了解环信 IM REST API 的调用频率限制,详见 [接口频率限制](limitationapi.html)。
+
 
 ## 公共参数
 
@@ -17,9 +17,10 @@
 
 | 参数       | 类型   | 是否必需 | 描述        |
 | :--------- | :----- | :------- | :----------------- |
-| `host`     | String | 是       | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 |
-| `org_name` | String | 是       | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。  |
-| `app_name` | String | 是       | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。  |
+| `host`     | String | 是       | 访问 RESTful API 的域名或服务器信息。<br/>-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。 <br/> -私有化集成为部署后 `服务器地址:端口`。 |
+| `org_name` | String | 是       | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。  |
+| `app_name` | String | 是       | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。   |
+
 
 ### 响应参数
 
diff --git a/docs/document/v2/server-side/message_recall.md b/docs/document/v2/server-side/message_recall.md
index c15710421..2d32c0c9e 100644
--- a/docs/document/v2/server-side/message_recall.md
+++ b/docs/document/v2/server-side/message_recall.md
@@ -8,7 +8,7 @@
 
 ## 撤回消息
 
-发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信即时通讯云控制台](https://console.easemob.com/user/login)的**功能配置** > **功能配置总览** > **基础功能** 页面设置消息撤回时长,该时长不超过 7 天。
+发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在 环信即时通讯云控制台的**服务管理** > **服务概览** 页面设置消息撤回时长,该时长不超过 7 天。
 
 ### HTTP 请求
 
@@ -36,7 +36,7 @@ POST https://{host}/{org_name}/{app_name}/messages/msg_recall
 | `to`        | String | 是       | 要撤回消息的接收方。<br/> - 单聊为接收方用户 ID;<br/> - 群聊为群组 ID;<br/> - 聊天室聊天为聊天室 ID。<br/> 若不传入该参数,请求失败。        |
 | `chat_type` | String | 是       | 要撤回消息的会话类型:<br/> - `chat`:单聊;<br/> - `groupchat`:群聊 ;<br/> - `chatroom`:聊天室 。  |
 | `from`      | String | 否       | 消息撤回方的用户 ID。若不传该参数,默认为 `admin`。    |
-| `force`     | Bool   | 是       | 是否支持撤回超过服务器存储时长的消息。服务器存储时长详见[服务器消息保存时长](/product/limitation.html#消息存储时长限制)。<br/> - `true`:是。这种情况下,你可以撤回在撤回时长内的消息,也可以撤回超过服务器存储时长的消息。对于后者,该接口会撤回接收方在本地保存的消息。若消息发送的时间介于你的撤回时长和服务器存储时长之间,则撤回失败。例如,如果消息的撤回时长为 2 分钟,在服务器上的存储时长为 7 天,你可以撤回 2 分钟以内发送的消息或发送时间超过 7 天的消息;若消息发送了 3 分钟,则撤回失败。<br/> - `false`:否,不支持撤回超过服务器存储时长的消息。如果你采用默认的 2 分钟撤回时长或联系了商务设置了撤回时长,服务器只能撤回指定时长内发送的消息,超过该时长的消息无法撤回。例如,你设置的撤回时长为 3 分钟,若消息发送了 4 分钟,则撤回失败。  |
+| `force`     | Bool   | 是       | 是否支持撤回超过服务器存储时长的消息。<br/> - `true`:是。这种情况下,你可以撤回在撤回时长内的消息,也可以撤回超过服务器存储时长的消息。对于后者,该接口会撤回接收方在本地保存的消息。若消息发送的时间介于你的撤回时长和服务器存储时长之间,则撤回失败。例如,如果消息的撤回时长为 2 分钟,在服务器上的存储时长为 7 天,你可以撤回 2 分钟以内发送的消息或发送时间超过 7 天的消息;若消息发送了 3 分钟,则撤回失败。<br/> - `false`:否,不支持撤回超过服务器存储时长的消息。如果你采用默认的 2 分钟撤回时长或联系了商务设置了撤回时长,服务器只能撤回指定时长内发送的消息,超过该时长的消息无法撤回。例如,你设置的撤回时长为 3 分钟,若消息发送了 4 分钟,则撤回失败。  |
 
 ### HTTP 响应
 
diff --git a/docs/document/v2/server-side/message_single.md b/docs/document/v2/server-side/message_single.md
index 18bbd74db..e4ed0dffc 100644
--- a/docs/document/v2/server-side/message_single.md
+++ b/docs/document/v2/server-side/message_single.md
@@ -28,7 +28,7 @@
 </td>
 <td rowspan="2" width="279">
 <p>1.发送消息时,可选的 `from` 字段用于指定发送方。</p>
-<p>2. 消息支持扩展属性 `ext`,可添加自定义信息。同时,推送通知也支持自定义扩展字段,详见 <a href="https://docs-im-beta.easemob.com/document/ios/push.html#%E8%87%AA%E5%AE%9A%E4%B9%89%E6%98%BE%E7%A4%BA">APNs 自定义显示</a>和 <a href="https://docs-im-beta.easemob.com/document/android/push.html#%E8%87%AA%E5%AE%9A%E4%B9%89%E6%98%BE%E7%A4%BA">Android 推送字段说明</a>。</p>
+<p>2. 消息支持扩展属性 `ext`,可添加自定义信息。同时,推送通知也支持自定义扩展字段,详见 <a href="/document/v2/ios/push.html#%E8%87%AA%E5%AE%9A%E4%B9%89%E6%98%BE%E7%A4%BA">APNs 自定义显示</a>和 <a href="/document/v2/android/push.html#%E8%87%AA%E5%AE%9A%E4%B9%89%E6%98%BE%E7%A4%BA">Android 推送字段说明</a>。</p>
 </td>
 </tr>
 <tr>
@@ -36,7 +36,7 @@
 <p>图片/语音/视频/文件消息</p>
 </td>
 <td width="189">
-<p>1. 调用<a href="https://docs-im-beta.easemob.com/document/server-side/message_download.html#%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0">文件上传</a>方法上传图片、语音、视频或其他类型文件,并从响应 body 中获取文件 UUID。</p>
+<p>1. 调用<a href="message_download.html#%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0">文件上传</a>方法上传图片、语音、视频或其他类型文件,并从响应 body 中获取文件 UUID。</p>
 <p>2. 调用发送消息方法,在请求 body 中传入该 UUID。</p>
 </td>
 </tr>
@@ -57,7 +57,7 @@
 要调用环信即时通讯 REST API,请确保满足以下要求:
 
 - 已在环信即时通讯控制台 [开通配置环信即时通讯 IM 服务](enable_and_configure_IM.html)。
-- 了解环信 IM REST API 的调用频率限制,详见 [接口频率限制](limitationapi.html)。
+
 
 ## 公共参数 
 
@@ -65,9 +65,9 @@
 
 | 参数       | 类型   | 是否必需 | 描述        |
 | :--------- | :----- | :------- | :----------------------- |
-| `host`     | String | 是       | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 |
-| `org_name` | String | 是       | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。  |
-| `app_name` | String | 是       | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。  |
+| `host`     | String | 是       | 访问 RESTful API 的域名或服务器信息。<br/>-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。 <br/> -私有化集成为部署后 `服务器地址:端口`。 |
+| `org_name` | String | 是       | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。  |
+| `app_name` | String | 是       | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。   |
 | `username` | String | 是       | 用户 ID。              |
 
 ### 响应参数
@@ -123,7 +123,7 @@ POST https://{host}/{org_name}/{app_name}/messages/users
 | `body`          | JSON   | 是       | 消息内容。body 包含的字段见下表说明。     |
 | `sync_device`   | Bool   | 否       | 消息发送成功后,是否将消息同步到发送方。<br/> - `true`:是;<br/> - (默认)`false`:否。   |
 | `routetype`     | String | 否       | 若传入该参数,其值为 `ROUTE_ONLINE`,表示接收方只有在线时才能收到消息,若接收方离线则无法收到消息。若不传入该参数,无论接收方在线还是离线都能收到消息。 |
-| `ext`   | JSON   | 否       | 消息支持扩展字段,可添加自定义信息。不能对该参数传入 `null`。同时,推送通知也支持自定义扩展字段,详见 [APNs 自定义显示](/document/ios/push.html#自定义显示) 和 [Android 推送字段说明](/document/android/push.html#自定义显示)。 |
+| `ext`   | JSON   | 否       | 消息支持扩展字段,可添加自定义信息。不能对该参数传入 `null`。同时,推送通知也支持自定义扩展字段,详见 [APNs 自定义显示](/document/v2/ios/push.html#自定义显示) 和 [Android 推送字段说明](/document/v2/android/push.html#自定义显示)。 |
 | `ext.em_ignore_notification` | Bool   | 否 | 是否发送静默消息:<br/> - `true`:是;<br/> - (默认)`false`:否。<br/> 发送静默消息指用户离线时,环信即时通讯 IM 服务不会通过第三方厂商的消息推送服务向该用户的设备推送消息通知。因此,用户不会收到消息推送通知。当用户再次上线时,会收到离线期间的所有消息。发送静默消息和免打扰模式下均为不推送消息,区别在于发送静默消息为发送方设置不推送消息,而免打扰模式为接收方设置在指定时间段内不接收推送通知。| 
 
 请求体中的 `body` 字段说明详见下表。
diff --git a/docs/document/v2/server-side/overview.md b/docs/document/v2/server-side/overview.md
index fe83cd8c7..f67713ad5 100644
--- a/docs/document/v2/server-side/overview.md
+++ b/docs/document/v2/server-side/overview.md
@@ -41,7 +41,8 @@
 
 ## 请求域名
 
-环信不同数据中心的 REST API 请求域名 {host}:
+请参照私有化部署文档 **5.2应用信息** 章节获取REST API请求信息。
+<!--环信不同数据中心的 REST API 请求域名 {host}:
 
 应用所在数据中心可以在环信用户管理后台 > 应用列表找到对应的 App Key 点击 **查看** > **即时通讯** > **服务概览** 中查看:
 
@@ -52,7 +53,7 @@
 2. 国内 VIP 区、客服专区客户请联系商务经理索要 REST API 请求地址。
 3. 支持 HTTP 和 HTTPS。
 :::
-
+-->
 ### 通信协议
 
 环信即时通讯 REST API 支持 HTTP 和 HTTPS 协议。
diff --git a/docs/document/v2/server-side/php_server_sdk.md b/docs/document/v2/server-side/php_server_sdk.md
index 3e64193d6..911179e49 100644
--- a/docs/document/v2/server-side/php_server_sdk.md
+++ b/docs/document/v2/server-side/php_server_sdk.md
@@ -33,9 +33,7 @@ composer require maniac/easemob-php
 
 使用 PHP SDK 之前,需准备环信 App Key、Client ID 和 Client Secret。
 
-如果你有环信管理后台账号并创建过应用,请先登录环信管理后台,点击 [这里](https://console.easemob.com/user/login),然后在 “应用列表” 中点击 “查看” 即可获取 appkey、Client ID 和 ClientSecret。
-
-如果你没有环信管理后台账号,请先注册账号,点击 [这里](https://console.easemob.com/user/register),注册成功后请登录,然后点击 “添加应用”,添加成功后点击 “查看” 即可获取 appkey、Client ID 和 ClientSecret。
+- 有效的环信即时通讯 IM 开发者账号和 App Key、Client ID、ClientSecret,登录 [环信管理后台](enable_and_configure_IM.html) 到“应用列表” → 点击“管理”即可获取到 App Key、Client ID、ClientSecret。
 
 ## 使用
 
@@ -107,7 +105,7 @@ $user->create($data);
 ## 参考
 
 - PHP SDK 的 API 文档在 [这里](https://easemob.github.io/im-php-server-sdk/annotated.html)
-- PHP SDK 开源地址在 [这里](https://github.com/easemob/im-php-server-sdk)
+- PHP SDK 开源地址在 [这里](https://github.com/easemob/im-php-server-sdk/tree/1.0.0)
 
 ## 常见问题
 
diff --git a/docs/document/v2/server-side/presence.md b/docs/document/v2/server-side/presence.md
index 687f85380..9b052fce4 100644
--- a/docs/document/v2/server-side/presence.md
+++ b/docs/document/v2/server-side/presence.md
@@ -4,9 +4,6 @@
 
 在线状态(Presence)表示用户的当前状态信息。除了环信 IM 内置的在线和离线状态,你还可以添加自定义在线状态,例如忙碌、马上回来、离开、接听电话、外出就餐等。本文展示如何调用环信即时通讯 RESTful API 实现用户在线状态(Presence)订阅,包括设置用户在线状态信息、批量订阅和获取在线状态、取消订阅以及查询订阅列表。
 
-:::notice
-使用该特性前,你需要联系商务开通。
-:::
 
 ## 前提条件
 
@@ -14,7 +11,7 @@
 
 - 已在环信即时通讯云控制台 [开通配置环信即时通讯 IM 服务](enable_and_configure_IM.html)。
 - 已从服务端获取 app token,详见 [使用 App Token 鉴权](easemob_app_token.html)。
-- 了解环信 IM API 的调用频率限制,详见 [接口频率限制](limitationapi.html)。
+
 
 ## 公共参数
 
@@ -24,9 +21,9 @@
 
 | 参数    | 类型   | 是否必需 | 描述         |
 | :------------ | :----- | :------ | :---------------- |
-| `host`| String | 是    | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。|
-| `org_name` | String | 是     | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。  |
-| `app_name` | String | 是    | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。|
+| `host`     | String | 是       | 访问 RESTful API 的域名或服务器信息。<br/>-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。 <br/> -私有化集成为部署后 `服务器地址:端口`。 |
+| `org_name` | String | 是       | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。  |
+| `app_name` | String | 是       | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。   |
 | `username`      | String | 是 |用户在即时通讯服务器上的唯一 ID。                            | 
 
 ## 认证方式
diff --git a/docs/document/v2/server-side/push.md b/docs/document/v2/server-side/push.md
index 1c95425c6..b85295230 100644
--- a/docs/document/v2/server-side/push.md
+++ b/docs/document/v2/server-side/push.md
@@ -2,10 +2,10 @@
 
 <Toc />
 
-本文展示如何调用环信即时通讯 RESTful API 实现离线推送,包括设置离线推送通知显示的昵称、推送通知方式及免打扰模式。调用以下方法前,请先参考 [接口频率限制](limitationapi.html) 了解即时通讯 RESTful API 的调用频率限制。
+本文展示如何调用环信即时通讯 RESTful API 实现离线推送,包括设置离线推送通知显示的昵称、推送通知方式及免打扰模式。
 
 :::tip
-若要使用离线推送的高级功能,即设置推送通知模式、免打扰模式和自定义推送模板,你需要在[环信即时通讯云控制后台](https://console.easemob.com/user/login)中点击你的应用后选择 **即时通讯** > **功能配置** > **功能配置总览** 开通离线推送高级功能。
+若要使用离线推送的高级功能,即设置推送通知模式、免打扰模式和自定义推送模板,你需要在环信即时通讯云控制后台中点击你的应用后选择 **服务管理** > **服务概览** 开通离线推送高级功能。
 :::
 
 ## 公共参数
@@ -16,9 +16,9 @@
 
 | 参数       | 类型   | 是否必需 | 描述                                                                                                                                            |
 | :--------- | :----- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------- |
-| `host`     | String | 是       | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 |
-| `org_name` | String | 是       | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。  |
-| `app_name` | String | 是       | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。  |
+| `host`     | String | 是       | 访问 RESTful API 的域名或服务器信息。<br/>-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。 <br/> -私有化集成为部署后 `服务器地址:端口`。 |
+| `org_name` | String | 是       | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。  |
+| `app_name` | String | 是       | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。   |
 | `username` | String | 是       | 环信用户 ID。                                                                                                                                   |
 
 ### 响应参数
@@ -258,7 +258,7 @@ PUT https://{host}/{org_name}/{app_name}/users/{username}
 | `entities.created`   | Number  | 用户注册的 Unix 时间戳,单位为毫秒。                                                                                                                                                                           |
 | `entities.modified`  | Number  | 最近一次修改用户信息的 Unix 时间戳,单位为毫秒。                                                                                                                                                               |
 | `entities.username`  | String  | 用户 ID。用户登录的唯一账号。                                                                                                                                                                                  |
-| `entities.activated` | Boolean | 用户是否为活跃状态:<ul><li>`true`:用户为活跃状态。</li><li>`false`:用户为封禁状态。如要使用已被封禁的用户账户,你需要调用[解禁用户](/document/server-side/account_system.html#账号封禁)解除封禁。</li></ul> |
+| `entities.activated` | Boolean | 用户是否为活跃状态:<ul><li>`true`:用户为活跃状态。</li><li>`false`:用户为封禁状态。如要使用已被封禁的用户账户,你需要调用[解禁用户](account_system.html#账号解禁)解除封禁。</li></ul> |
 | `entities.nickname`  | String  | 推送通知中显示的昵称。                                                                                                                                                                                         |
 
 其他参数及说明详见 [公共参数](#公共参数)。
@@ -340,7 +340,7 @@ PUT https://{host}/{org_name}/{app_name}/users/{username}
 | `entities.created`                          | Long    | 用户创建的 Unix 时间戳,单位为毫秒。                                                                                                                                                                           |
 | `entities.modified`                         | Long    | 最近一次修改用户信息的 Unix 时间戳,单位为毫秒。                                                                                                                                                               |
 | `entities.username`                         | String  | 用户 ID。用户登录的唯一账号。                                                                                                                                                                                  |
-| `entities.activated`                        | Boolean | 用户是否为活跃状态:<ul><li>`true`:用户为活跃状态。</li><li>`false`:用户为封禁状态。如要使用已被封禁的用户账户,你需要调用[解禁用户](/document/server-side/account_system.html#账号封禁)解除封禁。</li></ul> |
+| `entities.activated`                        | Boolean | 用户是否为活跃状态:<ul><li>`true`:用户为活跃状态。</li><li>`false`:用户为封禁状态。如要使用已被封禁的用户账户,你需要调用[解禁用户](account_system.html#账号封禁)解除封禁。</li></ul> |
 | `entities.notification_no_disturbing`       | Boolean | 是否设置为免打扰模式:<ul><li>`true`:是;</li><li>`false`:否。</li></ul>                                                                                                                                     |
 | `entities.notification_no_disturbing_start` | Int     | 免打扰时间段的开始时间。                                                                                                                                                                                       |
 | `entities.notification_no_disturbing_end`   | Int     | 免打扰时间段的结束时间。                                                                                                                                                                                       |
@@ -446,7 +446,7 @@ PUT https://{host}/{org_name}/{app_name}/users/{username}
 | `entities.created`                          | Long    | 用户创建的 Unix 时间戳,单位为毫秒。                                                                                                                                                                           |
 | `entities.modified`                         | Long    | 最近一次修改用户信息的 Unix 时间戳,单位为毫秒。                                                                                                                                                               |
 | `entities.username`                         | String  | 用户 ID。用户登录的唯一账号。                                                                                                                                                                                  |
-| `entities.activated`                        | Boolean | 用户是否为活跃状态:<ul><li>`true`:用户为活跃状态。</li><li>`false`:用户为封禁状态。如要使用已被封禁的用户账户,你需要调用[解禁用户](/document/server-side/account_system.html#账号封禁)解除封禁。</li></ul> |
+| `entities.activated`                        | Boolean | 用户是否为活跃状态:<ul><li>`true`:用户为活跃状态。</li><li>`false`:用户为封禁状态。如要使用已被封禁的用户账户,你需要调用[解禁用户](account_system.html#账号封禁)解除封禁。</li></ul> |
 | `entities.notification_no_disturbing`       | Boolean | 是否设置为免打扰模式:<ul><li>`true`:是;</li><li>`false`:否。</li></ul>                                                                                                                                     |
 | `entities.notification_no_disturbing_start` | Int     | 免打扰时间段的开始时间。                                                                                                                                                                                       |
 | `entities.notification_no_disturbing_end`   | Int     | 免打扰时间段的结束时间。                                                                                                                                                                                       |
diff --git a/docs/document/v2/server-side/reaction.md b/docs/document/v2/server-side/reaction.md
index 47bb3b360..a03c7ac32 100644
--- a/docs/document/v2/server-side/reaction.md
+++ b/docs/document/v2/server-side/reaction.md
@@ -2,7 +2,7 @@
 
 <Toc />
 
-消息表情回复(“Reaction”)指用户在单聊和群聊场景中对单条消息回复表情,可丰富用户聊天时的互动方式。对于单个消息,一个消息表情即为一个 Reaction,若不同用户重复添加同一消息表情,Reaction 数量计为 1。每条消息默认可添加 20 个 Reaction,若需提升该上限,需联系环信商务。
+消息表情回复(“Reaction”)指用户在单聊和群聊场景中对单条消息回复表情,可丰富用户聊天时的互动方式。对于单个消息,一个消息表情即为一个 Reaction,若不同用户重复添加同一消息表情,Reaction 数量计为 1。每条消息默认可添加 20 个 Reaction。
 
 本页介绍如何使用即时通讯 IM RESTful API 实现 Reaction 功能。
 
@@ -12,7 +12,7 @@
 
 - 已在环信即时通讯云控制台 [开通配置环信即时通讯 IM 服务](enable_and_configure_IM.html)。
 - 已从服务端获取 app token,详见 [使用 App Token 鉴权](easemob_app_token.html)。
-- 了解环信 IM RESTful API 的调用频率限制,详见 [接口频率限制](limitationapi.html)。
+
 
 ## 公共参数
 
@@ -20,9 +20,9 @@
 
 | 参数       | 类型   | 是否必需 | 描述                                                                                                                                            |
 | :--------- | :----- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------- |
-| `host`     | String | 是       | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 |
-| `org_name` | String | 是       | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。  |
-| `app_name` | String | 是       | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。  |
+| `host`     | String | 是       | 访问 RESTful API 的域名或服务器信息。<br/>-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。 <br/> -私有化集成为部署后 `服务器地址:端口`。 |
+| `org_name` | String | 是       | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。  |
+| `app_name` | String | 是       | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。   |
 | `username` | String | 是       | 用户 ID。                                                                                                                                       |
 
 ## 认证方式
diff --git a/docs/document/v2/server-side/user_relationship.md b/docs/document/v2/server-side/user_relationship.md
index 140504478..7effe8ec9 100644
--- a/docs/document/v2/server-side/user_relationship.md
+++ b/docs/document/v2/server-side/user_relationship.md
@@ -9,7 +9,7 @@
 要调用环信即时通讯 RESTful API,请确保满足以下要求:
 
 - 已在环信即时通讯控制台 [开通配置环信即时通讯 IM 服务](enable_and_configure_IM.html)。
-- 了解环信 IM REST API 的调用频率限制,详见 [接口频率限制](limitationapi.html)。
+
 
 ## 认证方式
 
@@ -25,9 +25,9 @@
 
 | 参数       | 类型   | 是否必需 | 描述                                                                                                                                            |
 | :--------- | :----- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------- |
-| `host`     | String | 是       | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 |
-| `org_name` | String | 是       | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。  |
-| `app_name` | String | 是       | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。  |
+| `host`     | String | 是       | 访问 RESTful API 的域名或服务器信息。<br/>-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。 <br/> -私有化集成为部署后 `服务器地址:端口`。 |
+| `org_name` | String | 是       | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。  |
+| `app_name` | String | 是       | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。   |
 | `username` | String | 是       | 用户 ID。                                                                                                                                       |
 
 ### 响应参数
@@ -55,7 +55,7 @@
 
 添加好友,好友必须是和当前用户在一个 App Key 下的用户。
 
-对于免费版即时通讯服务,单个 App Key 下的每个用户的好友数量上限为 1000,不同服务版本的 App Key 的该数量上限不同,具体可参考[版本功能介绍](https://www.easemob.com/pricing/im)。
+对于免费版即时通讯服务,单个 App Key 下的每个用户的好友数量上限为 1000,私有部署用户好友数无上限。
 
 ### HTTP 请求
 
diff --git a/docs/document/v2/server-side/user_status_callback.md b/docs/document/v2/server-side/user_status_callback.md
index 2f49b2df8..25f719a2f 100644
--- a/docs/document/v2/server-side/user_status_callback.md
+++ b/docs/document/v2/server-side/user_status_callback.md
@@ -17,13 +17,12 @@
 
 ## 前提条件
 
-- 该服务为增值服务,需要开通相应版本后才能使用,具体见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im);
 - 服务开通后,若用户状态变更(在线、离线),环信即时通讯 IM 服务器会实时将状态同步到开发者设置的应用服务器地址,开发者接收到状态后自行进行业务处理。
 - 某些情况下,例如进入隧道等特殊网络情况,依赖心跳超时,用户进入离线状态最长会有 5 分钟延时。
 
 ## 实现方法
 
-直接在发送后回调添加规则页配置,具体见 [环信即时通讯云控制台](https://console.easemob.com/user/login)。
+直接在发送后回调添加规则页配置,具体见 [环信即时通讯云控制台](uc_configure.html#配置消息回调)。
 
 ## 应答要求
 
diff --git a/docs/document/v2/server-side/userprofile.md b/docs/document/v2/server-side/userprofile.md
index 4cfbe3437..92478b743 100644
--- a/docs/document/v2/server-side/userprofile.md
+++ b/docs/document/v2/server-side/userprofile.md
@@ -27,7 +27,7 @@
 要调用环信即时通讯 RESTful API,请确保满足以下条件:
 
 - 已在环信即时通讯云控制台 [开通配置环信即时通讯 IM 服务](enable_and_configure_IM.html)。
-- 了解环信 IM REST API 的调用频率限制,详见 [接口频率限制](limitationapi.html)。
+
 
 ## 公共参数
 
@@ -35,9 +35,9 @@
 
 | 参数       | 类型   | 是否必需 | 描述                                                                                                                                            |
 | :--------- | :----- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------- |
-| `host`     | String | 是       | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 |
-| `org_name` | String | 是       | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。  |
-| `app_name` | String | 是       | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。  |
+| `host`     | String | 是       | 访问 RESTful API 的域名或服务器信息。<br/>-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。 <br/> -私有化集成为部署后 `服务器地址:端口`。 |
+| `org_name` | String | 是       | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。  |
+| `app_name` | String | 是       | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。   |
 | `username` | String | 是       | 用户 ID。                                                                                                                                       |
 
 ### 响应参数
diff --git a/docs/document/v2/unity/group_attributes.md b/docs/document/v2/unity/group_attributes.md
index de194840a..af6412d3d 100644
--- a/docs/document/v2/unity/group_attributes.md
+++ b/docs/document/v2/unity/group_attributes.md
@@ -18,8 +18,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html);
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html);
-- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html);
+
 
 ## 实现方法
 
diff --git a/docs/document/v2/unity/group_manage.md b/docs/document/v2/unity/group_manage.md
index e1fd8e8de..79cff515d 100644
--- a/docs/document/v2/unity/group_manage.md
+++ b/docs/document/v2/unity/group_manage.md
@@ -23,8 +23,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html);
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html);
-- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html);
+
 
 ## 实现方法
 
diff --git a/docs/document/v2/unity/group_members.md b/docs/document/v2/unity/group_members.md
index 544edad31..4350830a0 100644
--- a/docs/document/v2/unity/group_members.md
+++ b/docs/document/v2/unity/group_members.md
@@ -21,9 +21,9 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html);
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html);
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html);
 - 了解群成员角色,详见 [群组概述](group_overview.html);
-- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。
+
 
 ## 实现方法
 
diff --git a/docs/document/v2/unity/message_manage.md b/docs/document/v2/unity/message_manage.md
index b016feda4..389a66a7d 100644
--- a/docs/document/v2/unity/message_manage.md
+++ b/docs/document/v2/unity/message_manage.md
@@ -31,7 +31,7 @@ SQLCipher 用于加密存储本地消息的数据库。即时通讯 IM SDK 使
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
diff --git a/docs/document/v2/unity/message_modify.md b/docs/document/v2/unity/message_modify.md
index a1a7433ec..7a7fcbe77 100644
--- a/docs/document/v2/unity/message_modify.md
+++ b/docs/document/v2/unity/message_modify.md
@@ -9,7 +9,7 @@
 若使用该功能,需将 SDK 升级至 1.2.0 或以上版本。
 :::
 
-你可以调用 `ChatManager#ModifyMessage` 方法修改已经发送成功的消息。一条消息默认最多可修改 10 次,若要提升修改次数,需联系商务。
+你可以调用 `ChatManager#ModifyMessage` 方法修改已经发送成功的消息。一条消息默认最多可修改 10 次。
 
 示例代码如下:
 
diff --git a/docs/document/v2/unity/message_receipt.md b/docs/document/v2/unity/message_receipt.md
index ca640e32f..e32adcb5e 100644
--- a/docs/document/v2/unity/message_receipt.md
+++ b/docs/document/v2/unity/message_receipt.md
@@ -4,7 +4,7 @@
 
 单聊会话支持消息送达回执、会话已读回执和消息已读回执,发送方发送消息后可及时了解接收方是否及时收到并阅读了信息,也可以了解整个会话是否已读。
 
-群聊会话只支持消息已读回执。群主和群管理员在发送消息时,可以设置该消息是否需要已读回执。仅旗舰版及以上版本支持群消息已读回执功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。
+群聊会话只支持消息已读回执。群主和群管理员在发送消息时,可以设置该消息是否需要已读回执,私有部署即时通讯服务默认支持并开通该功能。
 
 本文介绍如何使用环信即时通讯 IM Android SDK 实现单聊和群聊的消息回执功能。
 
@@ -40,8 +40,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html);
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html);
-- 群消息已读回执功能仅在环信 IM 旗舰版及以上版本支持该功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html);
+
 
 ## 实现方法
 
@@ -223,7 +223,7 @@ SDKClient.Instance.ChatManager.RemoveChatManagerDelegate(adelegate);
 
 对于群聊,群主和群管理员发送消息时,可以设置该消息是否需要已读回执。若需要,每个群成员在阅读消息后,SDK 均会发送已读回执,即阅读该消息的群成员数量即为已读回执的数量。
 
-仅旗舰版及以上版本支持群消息已读回执功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。
+私有部署即时通讯服务默认支持并开通群消息已读回执功能。
 
 1. 群主或群管理员发送消息时若需已读回执,需设置 `Message` 的 `IsNeedGroupAck` 为 `true`。
 
diff --git a/docs/document/v2/unity/message_retrieve.md b/docs/document/v2/unity/message_retrieve.md
index 8b70ded09..85b0fb35c 100644
--- a/docs/document/v2/unity/message_retrieve.md
+++ b/docs/document/v2/unity/message_retrieve.md
@@ -4,9 +4,6 @@
 
 环信即时通讯 IM 提供消息漫游功能,即将用户的所有会话的历史消息保存在消息服务器,用户在任何一个终端设备上都能获取到历史信息,使用户在多个设备切换使用的情况下也能保持一致的会话场景。本文介绍用户如何从消息服务器获取和删除会话和消息。
 
-:::tip
-本文介绍的功能均为增值服务,需在[环信即时通讯 IM 管理后台](https://console.easemob.com/user/login)开通。
-:::
 
 ## 实现原理
 
@@ -24,7 +21,7 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
@@ -115,7 +112,7 @@ SDKClient.Instance.ChatManager.PinConversation(convId, isPinned, new CallBack(
 
 ### 分页获取指定会话的历史消息
 
-你可以调用 `FetchHistoryMessagesFromServer` 方法从服务器分页获取指定会话的历史消息,实现消息漫游。该功能需在[环信即时通讯 IM 管理后台](https://console.easemob.com/user/login)开通。
+你可以调用 `FetchHistoryMessagesFromServer` 方法从服务器分页获取指定会话的历史消息,实现消息漫游。
 
 为确保数据可靠,我们建议你多次调用该方法,且每次获取的消息数小于 50 条。获取到数据后,SDK 会自动将消息更新到本地数据库。
 
@@ -137,7 +134,7 @@ SDKClient.Instance.ChatManager.FetchHistoryMessagesFromServer(conversationId, ty
 你可以调用 `RemoveMessagesFromServer` 方法单向删除服务端的历史消息,每次最多可删除 50 条消息。消息删除后,该用户无法从服务端拉取到该消息。其他用户不受该操作影响。已删除的消息自动从设备本地移除。
 
 :::tip
-若使用该功能,需将 SDK 升级至 V1.1.0 或以上版本并联系商务。
+若使用该功能,需将 SDK 升级至 V1.1.0 或以上版本。
 :::
 
 ```csharp
diff --git a/docs/document/v2/unity/message_send_receive.md b/docs/document/v2/unity/message_send_receive.md
index 2e888bc58..66c0b0d95 100644
--- a/docs/document/v2/unity/message_send_receive.md
+++ b/docs/document/v2/unity/message_send_receive.md
@@ -31,7 +31,7 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
@@ -98,7 +98,7 @@ SDKClient.Instance.ChatManager.RemoveChatManagerDelegate(adelegate);
 
 ### 撤回消息
 
-发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信即时通讯云控制台](https://console.easemob.com/user/login)的**功能配置** > **功能配置总览** > **基础功能** 页面设置消息撤回时长,该时长不超过 7 天。
+发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在 环信即时通讯云控制台的**服务管理** > **服务概览** 页面设置消息撤回时长,该时长不超过 7 天。
 
 ```csharp
 SDKClient.Instance.ChatManager.RecallMessage("Message ID", new CallBack(
diff --git a/docs/document/v2/unity/multi_device.md b/docs/document/v2/unity/multi_device.md
index b39ab93b9..2f2ba508b 100644
--- a/docs/document/v2/unity/multi_device.md
+++ b/docs/document/v2/unity/multi_device.md
@@ -11,7 +11,7 @@
 
 多端登录时,即时通讯 IM 每端默认最多支持 4 个设备同时在线。如需增加支持的设备数量,可以联系环信即时通讯 IM 的商务经理。
 
-你可以在环信控制台的**功能配置** > **功能配置总览**页面的**基础功能**页签下点击**多端多设备在线**操作栏中的**设置**,在弹出的对话框中设置设置各端设备的数量:
+你可以在环信控制台的**服务管理** > **服务概览**页面的下点击**多端多设备在线**操作栏中的**设置**,在弹出的对话框中设置设置各端设备的数量:
 
 ![img](@static/images/common/multidevice_device_count.png)
 
@@ -24,7 +24,7 @@
 </head>
 
 <body>
-<table width="815" height="195" border="1">
+<table width="815" height="" border="1">
   <tbody>
     <tr>
       <td width="127" height="49">单端/多端登录</td>
@@ -38,7 +38,7 @@
     </tr>
     <tr>
       <td height="84">多端登录</td>
-      <td>若一端的登录设备数量达到了上限,最新登录的设备会将该端最早登录的设备踢下线。&lt;br/&gt;即时通讯 IM 仅支持同端互踢,不支持各端之间互踢。</td>
+      <td>若一端的登录设备数量达到了上限,最新登录的设备会将该端最早登录的设备踢下线。<br>即时通讯 IM 仅支持同端互踢,不支持各端之间互踢。</td>
     </tr>
   </tbody>
 </table>
@@ -177,7 +177,7 @@ SDKClient.Instance.ChatManager.RemoveChatManagerDelegate(adelegate);
 
 你可以按照以下步骤设置登录设备所属的平台:
 
-1. 在环信控制台的**功能配置** > **功能配置总览**页面,点击**基础功能**页签,然后点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击 **新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台**和**设备数量**。
+1. 在环信控制台的**服务管理** > **服务概览**页面,点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击 **新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台**和**设备数量**。
 
 **设备平台**的取值范围为 [1,100],**设备数量**的取值范围为 [0,4]。
 
diff --git a/docs/document/v2/unity/overview.md b/docs/document/v2/unity/overview.md
index c257f68d3..7989da077 100644
--- a/docs/document/v2/unity/overview.md
+++ b/docs/document/v2/unity/overview.md
@@ -6,7 +6,7 @@
 
 ## 前提条件
 
-开始前,请注册有效的环信即时通讯 IM 开发者账号和获取 App key,参见 [环信即时通讯云管理后台](https://console.easemob.com/user/login)。
+开始前,请注册有效的环信即时通讯 IM 开发者账号和获取 App key,参见 [环信即时通讯云管理后台](/document/v2/privatization/uc_configure.html)。
 
 ## 集成环境
 
@@ -49,15 +49,15 @@ SDKClient.Instance.InitWithOptions(options);
 目前注册的方式有以下几种:
 - 通过控制台注册。
 - 通过 REST API 接口注册。
-- 调用 SDK 接口注册。该方法需在 [控制台](https://console.easemob.com/app/im-service/detail) 设置允许 **开放注册**。
+- 调用 SDK 接口注册。该方法需在 [控制台](/document/v2/privatization/uc_configure.html) 设置允许 **开放注册**。
 
 ### 控制台注册
 
-控制台的注册请到 [这里](https://console.easemob.com/app/im-service/operative-service/user)。
+控制台的注册请到 **运营服务->用户管理** 页面下进行注册。
 
 ### REST API 注册
 
-请参考 [注册用户](/document/server-side/account_system.html#注册用户)。
+请参考 [注册用户](/document/v2/server-side/account_system.html#注册用户)。
 
 ### SDK 注册
 
@@ -83,7 +83,7 @@ SDK 不支持自动登录,只支持通过以下方式手动登录:
 - 用户 ID + 密码
 - 用户 ID + token
 
-登录时传入的用户 ID 必须为 String 类型,支持的字符集详见[用户注册的 RESTful 接口](/document/server-side/account_system.html#注册用户)。
+登录时传入的用户 ID 必须为 String 类型,支持的字符集详见[用户注册的 RESTful 接口](/document/v2/server-side/account_system.html#注册用户)。
 
 调用登录接口后,收到 `OnConnected` 回调表明 SDK 与环信服务器连接成功。
 
@@ -113,7 +113,7 @@ SDKClient.Instance.Login(username, password,
 );
 ```
 
-2. **用户 ID + token** 是更加安全的登录方式。token 可以通过调用 REST API 获取,详见 [环信用户 token 的获取](/document/server-side/easemob_user_token.html)。
+2. **用户 ID + token** 是更加安全的登录方式。token 可以通过调用 REST API 获取,详见 [环信用户 token 的获取](/document/v2/server-side/easemob_user_token.html)。
 
 :::notice
 使用 token 登录时需要处理 token 过期的问题,比如在每次登录时更新 token 等机制。
diff --git a/docs/document/v2/unity/presence.md b/docs/document/v2/unity/presence.md
index d1c776212..f40d19bce 100644
--- a/docs/document/v2/unity/presence.md
+++ b/docs/document/v2/unity/presence.md
@@ -6,9 +6,6 @@
 
 本文介绍如何在即时通讯应用中发布、订阅和查询用户的在线状态。
 
-:::notice
-私有化版本不支持在线状态订阅。
-:::
 
 ## 技术原理
 
@@ -41,8 +38,8 @@
 使用在线状态功能前,请确保满足以下条件:
 
 1. 完成 `1.0.5 或以上版本` SDK 初始化,详见 [快速开始](quickstart.html)。
-2. 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。
-3. 已联系商务开通在线状态订阅功能。
+2. 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。
+3. 私有部署已开通在线状态订阅功能。
 
 ## 实现方法
 
diff --git a/docs/document/v2/unity/quickstart.md b/docs/document/v2/unity/quickstart.md
index ff2b1e652..3d51d6a4e 100644
--- a/docs/document/v2/unity/quickstart.md
+++ b/docs/document/v2/unity/quickstart.md
@@ -33,14 +33,14 @@
 | macOS        | macOS 10.0 或以上  |  Xcode 9.0 或以上,Visual Studio for Mac 2019 或以上   |
 | Windows              | Windows 10 或以上 | Microsoft Visual Studio 2019 或以上            |
 
-- 有效的环信即时通讯 IM 开发者账号和 App Key,见 [环信即时通讯云管理后台](https://console.easemob.com/user/login)。
+- 有效的环信即时通讯 IM 开发者账号和 App Key,见 [环信即时通讯云管理后台](/document/v2/privatization/uc_configure.html)。
 - 如果你的网络环境部署了防火墙,请联系环信技术支持设置白名单。
 
 ## 项目设置
 
 实现发送和接收单聊文本消息之前,参考以下步骤设置你的项目。
 
-### 1. 下载并设置 Unity Demo 项目
+<!--### 1. 下载并设置 Unity Demo 项目
 
 参考以下步骤:
 
@@ -66,8 +66,8 @@
 ### 2. 集成环信即时通讯 SDK
 
 你可以参考以下步骤集成 SDK:
-
-1. [下载 Unity SDK](https://downloadsdk.easemob.com/downloads/SDK/Unity/agora_chat_unity_sdk1.0.9.unitypackage)。
+-->
+1. [下载 Unity SDK](https://downloadsdk.easemob.com/downloads/SDK/Unity/agora_chat_unity_sdk1.2.0.unitypackage)。
 2. 在 Unity Editor 中,选择 **Assets > Import Package > Custom Package...**,然后选择刚下载的 unitypackage 导入。
 3. 在弹出的 **Import Unity Package** 页面,点击右下角的 **Import**。
 
@@ -119,7 +119,7 @@ SDKClient.Instance.CreateAccount(username: Username.text, Password.text, callbac
 ```
 
 :::notice
-该注册模式在客户端实现,简单方便,主要用于测试,但不推荐在正式环境中使用。正式环境中应使用服务器端调用 Restful API 进行注册,详见 [注册单个用户](/document/server-side/account_system.html#注册单个用户)。
+该注册模式在客户端实现,简单方便,主要用于测试,但不推荐在正式环境中使用。正式环境中应使用服务器端调用 Restful API 进行注册,详见 [注册单个用户](/document/v2/server-side/account_system.html#注册单个用户)。
 :::
 
 ### 5. 登录账号
diff --git a/docs/document/v2/unity/reaction.md b/docs/document/v2/unity/reaction.md
index 0040d9157..fc1af1e6d 100644
--- a/docs/document/v2/unity/reaction.md
+++ b/docs/document/v2/unity/reaction.md
@@ -7,7 +7,6 @@
 :::notice
 
 1. 目前 Reaction 仅适用于单聊和群组。聊天室暂不支持 Reaction 功能。
-2. 私有化版本不支持 Reaction 功能。
    :::
 
 ## 技术原理
@@ -31,8 +30,8 @@ Reaction 场景示例如下:
 开始前,请确保满足以下条件:
 
 1. 完成 `1.0.5 或 以上版本` SDK 初始化,详见 [快速开始](quickstart.html)。
-2. 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。
-3. 已联系商务开通 Reaction 功能。
+2. 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。
+3. 私有部署已开通 Reaction 功能。
 
 ## 实现方法
 
diff --git a/docs/document/v2/unity/releasenote.md b/docs/document/v2/unity/releasenote.md
index 5f9040a0b..fd2c53dba 100644
--- a/docs/document/v2/unity/releasenote.md
+++ b/docs/document/v2/unity/releasenote.md
@@ -212,11 +212,9 @@
 - 消息表情回复;
 - 管理子区等。
 
-关于详细功能概述,请参见[产品概述](https://docs-im-beta.easemob.com/product/introduction.html)。
-
 具体集成请参考以下文档:
 
-- [开通配置环信即时通讯 IM 服务](/product/enable_and_configure_IM.html)
+- [开通配置环信即时通讯 IM 服务](/document/v2/privatization/uc_configure.html)
 - [环信即时通讯 IM Unity 快速入门](quickstart.html)
 - [消息管理 Unity](message_overview.html)
 - [群组 Unity](group_overview.html)
diff --git a/docs/document/v2/unity/room_attributes.md b/docs/document/v2/unity/room_attributes.md
index 5f883c454..3dbbce75b 100644
--- a/docs/document/v2/unity/room_attributes.md
+++ b/docs/document/v2/unity/room_attributes.md
@@ -20,8 +20,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html);
-- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html);
-- 了解聊天室的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。
+- 了解环信即时通讯 IM 的 [使用限制](/document/v2/privatization/uc_limitation.html);
+
 
 ## 实现方法
 
diff --git a/docs/document/v2/unity/room_manage.md b/docs/document/v2/unity/room_manage.md
index de8dd6e1b..63bc44afa 100644
--- a/docs/document/v2/unity/room_manage.md
+++ b/docs/document/v2/unity/room_manage.md
@@ -25,9 +25,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html);
-- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html)。
-- 了解环信即时通讯 IM 不同版本的聊天室相关数量限制,详见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im)。
-- 只有超级管理员才有创建聊天室的权限,因此你还需要确保已调用 RESTful API 添加了超级管理员,详见 [添加聊天室超级管理员](/document/server-side/chatroom.html#添加超级管理员)。
+- 了解环信即时通讯 IM 的 [使用限制](/document/v2/privatization/uc_limitation.html)。
+- 只有超级管理员才有创建聊天室的权限,因此你还需要确保已调用 RESTful API 添加了超级管理员,详见 [添加聊天室超级管理员](/document/v2/server-side/chatroom.html#添加超级管理员)。
 - 聊天室创建者和管理员的数量之和不能超过 100,即管理员最多可添加 99 个。
 
 ## 实现方法
@@ -36,9 +35,9 @@
 
 ### 创建聊天室
 
-仅 [超级管理员](/document/server-side/chatroom.html#管理超级管理员) 可以调用 `CreateRoom` 方法创建聊天室,并设置聊天室的名称、描述、最大成员数等信息。成功创建聊天室后,该超级管理员为该聊天室的所有者。
+仅 [超级管理员](/document/v2/server-side/chatroom.html#管理超级管理员) 可以调用 `CreateRoom` 方法创建聊天室,并设置聊天室的名称、描述、最大成员数等信息。成功创建聊天室后,该超级管理员为该聊天室的所有者。
 
-你也可以直接调用 REST API [从服务端创建聊天室](/document/server-side/chatroom.html#创建聊天室)。
+你也可以直接调用 REST API [从服务端创建聊天室](/document/v2/server-side/chatroom.html#创建聊天室)。
 
 示例代码如下:
 
diff --git a/docs/document/v2/unity/room_members.md b/docs/document/v2/unity/room_members.md
index 221968878..3fb02759f 100644
--- a/docs/document/v2/unity/room_members.md
+++ b/docs/document/v2/unity/room_members.md
@@ -21,8 +21,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html);
-- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html);
-- 了解环信即时通讯 IM 聊天室相关限制,详见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im)。
+- 了解环信即时通讯 IM 的 [使用限制](/document/v2/privatization/uc_limitation.html);
+
 
 ## 实现方法
 
diff --git a/docs/document/v2/unity/thread.md b/docs/document/v2/unity/thread.md
index 8f1682ef9..178c45f40 100644
--- a/docs/document/v2/unity/thread.md
+++ b/docs/document/v2/unity/thread.md
@@ -6,9 +6,6 @@
 
 如需查看消息相关内容,参见 [子区消息管理](thread_message.html)。
 
-:::notice
-私有化版本不支持子区功能。
-:::
 
 ## 技术原理
 
@@ -29,9 +26,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 `1.0.5 或以上版本` SDK 初始化,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。
-- 了解子区和子区成员数量限制,详见 [使用限制](/product/limitation.html)。
-- 联系商务开通子区功能。
+- 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。
+- 私有部署已开通子区功能。
 
 ## 实现方法
 
diff --git a/docs/document/v2/unity/thread_message.md b/docs/document/v2/unity/thread_message.md
index fd0fc4341..1c9777ba8 100644
--- a/docs/document/v2/unity/thread_message.md
+++ b/docs/document/v2/unity/thread_message.md
@@ -31,8 +31,8 @@
 
 - 已集成环信 IM `(1.0.5 或以上版本)` 的基本功能,账户登录成功。
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
-- 联系商务开通子区功能。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
+- 私有部署已开通子区功能。
 
 ## 实现方法
 
diff --git a/docs/document/v2/unity/user_relationship.md b/docs/document/v2/unity/user_relationship.md
index e3e8cc7f5..91cd1bc06 100644
--- a/docs/document/v2/unity/user_relationship.md
+++ b/docs/document/v2/unity/user_relationship.md
@@ -29,7 +29,7 @@ SDK 提供用户关系管理功能,包括好友列表管理和黑名单管理
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
diff --git a/docs/document/v2/unity/userprofile.md b/docs/document/v2/unity/userprofile.md
index 747acc08f..a9f9247f7 100644
--- a/docs/document/v2/unity/userprofile.md
+++ b/docs/document/v2/unity/userprofile.md
@@ -24,7 +24,7 @@
 设置用户属性前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
@@ -56,7 +56,7 @@ SDKClient.Instance.UserInfoManager.UpdateOwnInfo(userInfo, new CallBack(
 ));
 ```
 
-若[调用 RESTful 的接口设置](/document/server-side/userprofile.html#设置用户属性)或[删除用户属性](/document/server-side/userprofile.html#删除用户属性),请求中必须传以下字段各客户端才能获取到。
+若[调用 RESTful 的接口设置](/document/v2/server-side/userprofile.html#设置用户属性)或[删除用户属性](/document/v2/server-side/userprofile.html#删除用户属性),请求中必须传以下字段各客户端才能获取到。
 
 | 字段        | 类型   | 描述                                                                                              |
 | :---------- | :----- | :------------------------------------------------------------------------------------------------ |
diff --git a/docs/document/v2/web/demo_react.md b/docs/document/v2/web/demo_react.md
index d0c6aff9a..d8d873ef4 100644
--- a/docs/document/v2/web/demo_react.md
+++ b/docs/document/v2/web/demo_react.md
@@ -4,23 +4,23 @@
 
 环信即时通讯 Web 端提供示例应用可供体验。你可以按以下步骤体验:
 
-1. [登录 Demo](https://webim-h5.easemob.com/#/login)。
+1. [登录 Demo](https://zq-im-management-hsb.easemob.com/)。
 
-![img](@static/images/demo/web_react_login.png)
+<!--![img](@static/images/demo/web_react_login.png)-->
 
-2. 输入你的手机号,获取验证码,然后输入。
+2. 输入你的登录账号和密码,然后输入。
 
 3. 点击 **登录** 登录 Demo。
 
 ## 代码下载
 
-下载源代码:[github 源码地址](https://github.com/easemob/webim)
+下载源代码:[源码地址](https://downloadsdk.easemob.com/mp/downloads/sdk/private-react-20230918.zip)
 
 欢迎大家提交 PR 改进和修复 Web IM 中的问题。
 
 ## 运行 Web IM 项目
 
-从 [IM SDK 及 Demo 下载](https://www.easemob.com/download/im) 下载 Web SDK 压缩包,然后解压。解压后在 `demo` 文件夹即为 Web IM 的项目目录。
+下载 Web SDK 压缩包,然后解压。解压后在 `demo` 文件夹即为 Web IM 的项目目录。
 
 1. 安装 Demo 所需的依赖:在终端中运行 `cd demo` 和 `npm install` 命令。
 
diff --git a/docs/document/v2/web/demo_vue.md b/docs/document/v2/web/demo_vue.md
index a63796147..f627af04d 100644
--- a/docs/document/v2/web/demo_vue.md
+++ b/docs/document/v2/web/demo_vue.md
@@ -2,7 +2,7 @@
 
 <Toc />
 
-环信即时通讯 Web 端提供示例应用可供体验。你可以按以下步骤体验:
+<!--环信即时通讯 Web 端提供示例应用可供体验。你可以按以下步骤体验:
 
 1. 登录 Demo。
 
@@ -17,17 +17,18 @@
 2. 输入你的手机号,获取验证码,然后输入。
 
 3. 点击 **登录** 登录 Demo。
+-->
 
 ## 代码下载
 
-- Vue 2 下载源代码:[github 源码地址](https://github.com/easemob/webim-vue-demo/tree/dev-4.0)
-- Vue 3 下载源代码:[github 源码地址](https://github.com/easemob/webim-vue-demo/tree/demo-vue3)
+- Vue 2 下载源代码:[github 源码地址](https://downloadsdk.easemob.com/mp/downloads/sdk/private-vue2-20230918.zip)
+- Vue 3 下载源代码:[github 源码地址]()
 
 欢迎大家提交 PR 改进和修复 Web IM 中的问题。
 
 ## 运行 Web IM 项目
 
-从 [github 下载](https://github.com/easemob/webim-vue-demo/tree/dev-4.0) 下载项目代码压缩包,然后解压。解压后,`webim-vue-demo` 文件夹即为 Web IM 的项目目录。
+下载项目代码压缩包,然后解压。解压后,`webim-vue-demo` 文件夹即为 Web IM 的项目目录。
 
 1. 安装 Demo 所需的依赖:在终端中运行 `cd demo` 和 `npm install` 命令。
 
diff --git a/docs/document/v2/web/group_attributes.md b/docs/document/v2/web/group_attributes.md
index 0bde21297..bcf561123 100644
--- a/docs/document/v2/web/group_attributes.md
+++ b/docs/document/v2/web/group_attributes.md
@@ -15,7 +15,7 @@
 ## 前提条件
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM API 的接口调用频率限制,详见 [使用限制](/product/limitation.html)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
diff --git a/docs/document/v2/web/group_manage.md b/docs/document/v2/web/group_manage.md
index a402d071d..5fa105009 100644
--- a/docs/document/v2/web/group_manage.md
+++ b/docs/document/v2/web/group_manage.md
@@ -22,8 +22,7 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM API 的接口调用频率限制,详见 [使用限制](/product/limitation.html)。
-- 了解群组和群成员数量限制,详见 [使用限制](/product/limitation.html)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
diff --git a/docs/document/v2/web/group_members.md b/docs/document/v2/web/group_members.md
index e9c6a123e..46a4dd90b 100644
--- a/docs/document/v2/web/group_members.md
+++ b/docs/document/v2/web/group_members.md
@@ -20,7 +20,7 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 - 了解群成员角色,详见 [群组概述](group_overview.html)。
 
 ## 实现方法
diff --git a/docs/document/v2/web/message_receipt.md b/docs/document/v2/web/message_receipt.md
index 3f0694747..03fa7ba54 100644
--- a/docs/document/v2/web/message_receipt.md
+++ b/docs/document/v2/web/message_receipt.md
@@ -4,7 +4,7 @@
 
 单聊会话支持消息送达回执、会话已读回执和消息已读回执,发送方发送消息后可及时了解接收方是否及时收到并阅读了信息,也可以了解整个会话是否已读。
 
-群聊会话只支持消息已读回执。群主和群管理员在发送消息时,可以设置该消息是否需要已读回执。仅旗舰版及以上版本支持群消息已读回执功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。
+群聊会话只支持消息已读回执。群主和群管理员在发送消息时,可以设置该消息是否需要已读回执,私有部署即时通讯服务默认支持并开通该功能。
 
 本文介绍如何使用环信即时通讯 IM Android SDK 实现单聊和群聊的消息回执功能。
 
@@ -35,9 +35,8 @@
 
 开始前,请确保满足以下要求:
 
-- 已经集成和初始化环信 IM SDK,并实现了注册账号和登录功能。详情请参见 [快速开始](quickstart.html)。
-- 了解 [使用限制](/product/limitation.html) 中的 API 调用频率限制。
-- 群消息已读回执功能仅在环信 IM 旗舰版及以上版本支持该功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。
+- 完成 SDK 初始化,详见 [快速开始](quickstart.html)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
@@ -147,7 +146,7 @@ conn.addEventHandler("customEvent", {
 
 对于群聊,群主和群管理员发送消息时,可以设置该消息是否需要已读回执。若需要,每个群成员在阅读消息后,SDK 均会发送已读回执,即阅读该消息的群成员数量即为已读回执的数量。
 
-仅旗舰版及以上版本支持群消息已读回执功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。
+私有部署即时通讯服务默认支持并开通群消息已读回执功能。
 
 1. 群主或群管理员发送消息时若需已读回执,需设置 `allowGroupAck` 为 `true`:
 
diff --git a/docs/document/v2/web/message_retrieve.md b/docs/document/v2/web/message_retrieve.md
index e1fc11af0..b3ece5808 100644
--- a/docs/document/v2/web/message_retrieve.md
+++ b/docs/document/v2/web/message_retrieve.md
@@ -4,10 +4,6 @@
 
 环信即时通讯 IM 提供消息漫游功能,即将用户的所有会话的历史消息保存在消息服务器,用户在任何一个终端设备上都能获取到历史信息,使用户在多个设备切换使用的情况下也能保持一致的会话场景。本文介绍如何实现用户从消息服务器获取会话和消息。
 
-:::tip
-本文介绍的功能均为增值服务,需在[环信即时通讯 IM 管理后台](https://console.easemob.com/user/login)开通。
-
-:::
 
 ## 技术原理
 
@@ -134,7 +130,7 @@ WebIM.conn
 你可以调用 `removeHistoryMessages` 方法按照时间或消息 ID 单向删除服务端的历史消息。每次最多可删除 50 条消息。消息删除后,该账号无法从服务端拉取到该消息。其他用户不受该操作影响。多端多设备登录时,删除成功后会触发 `onMultiDeviceEvent#deleteRoaming` 回调。
 
 :::tip
-若使用该功能,需将 SDK 升级至 V4.1.2 或以上版本并联系商务开通。
+若使用该功能,需将 SDK 升级至 V4.1.2 或以上版本。
 :::
 
 示例代码如下:
diff --git a/docs/document/v2/web/message_send_receive.md b/docs/document/v2/web/message_send_receive.md
index 6b38471a7..77e617d9c 100644
--- a/docs/document/v2/web/message_send_receive.md
+++ b/docs/document/v2/web/message_send_receive.md
@@ -42,7 +42,7 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
@@ -162,7 +162,7 @@ conn.addEventHandler("eventName", {
 
 ### 撤回消息
 
-发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信即时通讯云控制台](https://console.easemob.com/user/login)的**功能配置** > **功能配置总览** > **基础功能** 页面设置消息撤回时长,该时长不超过 7 天。
+发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在环信即时通讯云控制台的**服务管理** > **服务概览** 页面设置消息撤回时长,该时长不超过 7 天。
 
 ```javascript
 let option = {
@@ -267,7 +267,7 @@ function sendPrivateAudio() {
 
 #### 发送图片消息
 
-对于图片消息,服务器会根据用户设置的 `thumbnailHeight` 和 `thumbnailWidth` 参数自动生成图片的缩略图。若这两个参数未传,则图片的高度和宽度均默认为 170 像素。你也可以在 [环信即时通讯控制台](https://console.easemob.com/user/login)的 `服务概览` 页面的 `设置` 区域修改该默认值。
+对于图片消息,服务器会根据用户设置的 `thumbnailHeight` 和 `thumbnailWidth` 参数自动生成图片的缩略图。若这两个参数未传,则图片的高度和宽度均默认为 170 像素。你也可以在 环信即时通讯控制台的 **应用概览>应用详情** 页面的 `应用设置` 区域修改该默认值。
 
 请参考以下代码示例创建和发送图片消息:
 
diff --git a/docs/document/v2/web/multi_device.md b/docs/document/v2/web/multi_device.md
index 6c1399035..6779a73c6 100644
--- a/docs/document/v2/web/multi_device.md
+++ b/docs/document/v2/web/multi_device.md
@@ -9,11 +9,11 @@
 - 子区相关操作;
 - 会话相关操作。
 
-环信服务器提供 RESTful 接口[查询每个账号已登录设备列表](account_system.html#获取指定账号的在线登录设备列表)以及[将账号从已登录设备强制下线](account_system.html#强制下线)。
+环信服务器提供 RESTful 接口[查询每个账号已登录设备列表](/document/v2/server-side/account_system.html#获取指定账号的在线登录设备列表)以及[将账号从已登录设备强制下线](/document/v2/server-side/account_system.html#强制下线)。
 
 多端登录时,即时通讯 IM 每端默认最多支持 4 个设备同时在线。如需增加支持的设备数量,可以联系环信即时通讯 IM 的商务经理。
 
-你可以在环信控制台的**功能配置** > **功能配置总览**页面的**基础功能**页签下点击**多端多设备在线**操作栏中的**设置**,在弹出的对话框中设置设置各端设备的数量:
+在环信控制台的**服务管理** > **服务概览**页面,点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击 **新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台**和**设备数量**。
 
 ![img](@static/images/common/multidevice_device_count.png)
 
@@ -26,7 +26,7 @@
 </head>
 
 <body>
-<table width="815" height="195" border="1">
+<table width="815" height="" border="1">
   <tbody>
     <tr>
       <td width="127" height="49">单端/多端登录</td>
@@ -40,7 +40,7 @@
     </tr>
     <tr>
       <td height="84">多端登录</td>
-      <td>若一端的登录设备数量达到了上限,最新登录的设备会将该端最早登录的设备踢下线。&lt;br/&gt;即时通讯 IM 仅支持同端互踢,不支持各端之间互踢。</td>
+      <td>若一端的登录设备数量达到了上限,最新登录的设备会将该端最早登录的设备踢下线。<br>即时通讯 IM 仅支持同端互踢,不支持各端之间互踢。</td>
     </tr>
   </tbody>
 </table>
diff --git a/docs/document/v2/web/overview.md b/docs/document/v2/web/overview.md
index cd422d54c..d35986d41 100644
--- a/docs/document/v2/web/overview.md
+++ b/docs/document/v2/web/overview.md
@@ -6,7 +6,7 @@
 
 ## 前提条件
 
-开始前,请注册有效的环信即时通讯 IM 开发者账号且获得 App key,见 [环信即时通讯云管理后台](https://console.easemob.com/user/login)。
+开始前,请注册有效的环信即时通讯 IM 开发者账号且获得 App key,见 [环信即时通讯云管理后台](/document/v2/privatization/uc_configure.html)。
 
 ## 集成环境
 
@@ -94,15 +94,15 @@ const conn = new EC.connection({
 
 ### 控制台注册
 
-登录[环信即时通讯云控制台](https://console.easemob.com/user/login),选择**即时通讯** > **运营服务** > **用户管理**,创建 IM 用户。
+登录[环信即时通讯云控制台](/document/v2/privatization/uc_configure.html),选择 **运营服务** > **用户管理**,创建 IM 用户。
 
 ### REST API 注册
 
-请参考 [注册用户](/document/server-side/account_system.html#注册用户)。
+请参考 [注册用户](/document/v2/server-side/account_system.html#注册用户)。
 
 ### SDK 注册
 
-若支持 SDK 注册,需登录[环信即时通讯云控制台](https://console.easemob.com/user/login),选择 **即时通讯** > **服务概览**,将 **设置**下的 **用户注册模式** 设置为 **开放注册**。
+若支持 SDK 注册,需登录[环信即时通讯云控制台](/document/v2/privatization/uc_configure.html),选择 **应用概览** > **应用详情**,将 **设置**下的 **用户注册模式** 设置为 **开放注册**。
 
 ```javascript
 conn
@@ -126,7 +126,7 @@ SDK 不支持自动登录,只支持通过以下方式手动登录:
 - 用户 ID + 密码
 - 用户 ID + token
 
-登录时传入的用户 ID 必须为 String 类型,支持的字符集详见[用户注册的 RESTful 接口](/document/server-side/account_system.html#注册用户)。
+登录时传入的用户 ID 必须为 String 类型,支持的字符集详见[用户注册的 RESTful 接口](/document/v2/server-side/account_system.html#注册用户)。
 
 调用登录接口后,收到 `onConnected` 回调表明 SDK 与环信服务器连接成功。
 
@@ -146,7 +146,7 @@ conn
   });
 ```
 
-2. **用户 ID + token** 是更加安全的登录方式。token 可以通过调用 REST API 获取,详见 [环信用户 token 的获取](/product/easemob_user_token.html)。
+2. **用户 ID + token** 是更加安全的登录方式。token 可以通过调用 REST API 获取,详见 [环信用户 token 的获取](/document/v2/privatization/easemob_user_token.html)。
 
 :::notice
 使用 token 登录时需要处理 token 过期的问题,比如在每次登录时更新 token 等机制。
diff --git a/docs/document/v2/web/presence.md b/docs/document/v2/web/presence.md
index 195aa7a7f..59f1c386c 100644
--- a/docs/document/v2/web/presence.md
+++ b/docs/document/v2/web/presence.md
@@ -35,8 +35,8 @@
 使用在线状态功能前,请确保满足以下条件:
 
 1. 完成 `4.0.4 及以上版本` SDK 初始化,详见 [快速开始](quickstart.html)。
-2. 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。
-3. 已联系商务开通在线状态订阅功能。
+2. 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。
+3. 私有部署已开通在线状态订阅功能。
 
 ## 实现方法
 
diff --git a/docs/document/v2/web/privatecloud.md b/docs/document/v2/web/privatecloud.md
index e8fbdf50f..f019cbf12 100644
--- a/docs/document/v2/web/privatecloud.md
+++ b/docs/document/v2/web/privatecloud.md
@@ -2,7 +2,7 @@
 
 ## Web Vue 2 Demo
 
-对于 Web Vue Demo,进行私有化配置需在 [Vue 2 Demo 源代码](https://download-sdk.oss-cn-beijing.aliyuncs.com/zq/private-vue2-20230104.zip)中进行修改。
+对于 Web Vue Demo,进行私有化配置需在 [Vue 2 Demo 源代码](https://downloadsdk.easemob.com/mp/downloads/sdk/private-vue2-20230918.zip)中进行修改。
 
 ### 修改环境配置
 
@@ -43,7 +43,7 @@ const DEFAULT_APIURL = "https://xxx.xxxxx.com"; // 私有化的 RESTful 服务
 
 ## Web React Demo
 
-对于 Web React Demo,进行私有化配置需在 [React Demo 源代码](https://download-sdk.oss-cn-beijing.aliyuncs.com/zq/private-demo-20230104.zip)中进行修改。
+对于 Web React Demo,进行私有化配置需在 [React Demo 源代码](https://downloadsdk.easemob.com/mp/downloads/sdk/private-react-20230918.zip)中进行修改。
 
 修改配置如下:
 
diff --git a/docs/document/v2/web/push.md b/docs/document/v2/web/push.md
index 87e41fc3d..a0f5c2a0a 100644
--- a/docs/document/v2/web/push.md
+++ b/docs/document/v2/web/push.md
@@ -15,7 +15,6 @@
 环信 IM Web SDK 本身不支持离线推送,只支持对移动端离线推送进行如下配置:
 
 - 设置推送通知,包含设置推送通知方式和免打扰模式。设置推送通知为推送的高级功能,使用前需要在环信控制台开启该功能。
-- 设置推送翻译。
 
 ## 技术原理
 
@@ -33,7 +32,7 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html);
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 - 你已在环信即时通讯云管理后台中激活推送高级功能。推送高级功能包括设置推送通知模式和免打扰模式。
 
 ![image](@static/images/web/push_web_enable_push.png)
@@ -258,7 +257,7 @@ WebIM.conn.clearRemindTypeForConversation(params)
 
 ### 设置推送翻译
 
-如果用户启用[自动翻译](message_translation.html) 功能并发送消息,SDK 会同时发送原始消息和翻译后的消息。
+如果用户启用自动翻译功能并发送消息,SDK 会同时发送原始消息和翻译后的消息。
 
 推送通知与翻译功能协同工作。作为接收方,你可以设置你在离线时希望接收的推送通知的首选语言。如果翻译消息的语言符合你的设置,则翻译消息显示在推送通知中;否则,将显示原始消息。
 
diff --git a/docs/document/v2/web/quickstart.md b/docs/document/v2/web/quickstart.md
index 97337a0f2..e46ce13bc 100644
--- a/docs/document/v2/web/quickstart.md
+++ b/docs/document/v2/web/quickstart.md
@@ -13,7 +13,7 @@
 ## 前提条件
 
 - 有效的环信即时通讯 IM 开发者账号;
-- [创建环信即时通讯 IM 项目并获取 App Key](/product/enable_and_configure_IM.html);
+- [创建环信即时通讯 IM 项目并获取 App Key](/document/v2/privatization/uc_configure.html);
 - [npm](https://www.npmjs.com/get-npm);
 - SDK 支持 IE 9+、Firefox 10+、Chrome 54+ 和 Safari 6+。
 
@@ -324,9 +324,9 @@ $ npm run start:dev
 import WebIM from 'easemob-websdk'
 ```
 
-#### 方法二:从官网获取并导入 SDK
+#### 方法二:下载Demo并导入 SDK
 
-1. 下载 [Easemob Chat SDK for Web](https://www.easemob.com/download/im)。将 `demo/src/config` 中的 Easemob-chat 文件保存到你的项目下。
+1. 下载 [Easemob Chat SDK for Web](https://downloadsdk.easemob.com/mp/downloads/sdk/private-react-20230918.zip)。将 `demo/src/config` 中的 Easemob-chat 文件保存到你的项目下。
 
 2. 在 `index.html` 文件中,对 `index.js` 文件进行引用。
 
diff --git a/docs/document/v2/web/reaction.md b/docs/document/v2/web/reaction.md
index b37978ccb..c2136e4b1 100644
--- a/docs/document/v2/web/reaction.md
+++ b/docs/document/v2/web/reaction.md
@@ -6,7 +6,6 @@
 
 :::notice
 1. 目前 Reaction 仅适用于单聊和群组。聊天室暂不支持 Reaction 功能。
-2. 私有化版本不支持 Reaction 功能。
 :::
 
 ## 技术原理
@@ -32,8 +31,8 @@
 开始前,请确保满足以下条件:
 
 1. 完成 `4.0.5 及以上版本` SDK 初始化,详见 [快速开始](quickstart.html)。
-2. 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。
-3. 已联系商务开通 Reaction 功能。
+2. 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。
+3. 私有部署已开通 Reaction 功能。
 
 ## 实现方法
 
diff --git a/docs/document/v2/web/releasenote.md b/docs/document/v2/web/releasenote.md
index e677d3db4..415c6bff8 100644
--- a/docs/document/v2/web/releasenote.md
+++ b/docs/document/v2/web/releasenote.md
@@ -168,7 +168,6 @@
 ### 新增特性:
 
 - [IM SDK] 新增 [消息 Reaction](reaction.html) 功能,可以对消息进行不同的响应;
-- [IM SDK] 新增 [举报 API](moderation.html) 用于内容审核;
 - [IM SDK] 新增推送设置 API,支持不同的推送配置;
 - [IM SDK] 增加数据上报功能;
 
@@ -184,14 +183,10 @@
 
 ## 版本 V4.0.4 2022-4-19
 
-:::tip
-仅 V4.0.4 及以下版本支持私有化部署。
-:::
 
 ### 新增特性:
 
 - [IM SDK] 增加 [用户在线状态(Presence)](presence.html) 订阅功能。
-- [IM SDK] [翻译功能](message_translation.html):增加自动翻译接口。实现用户按需翻译和发消息自动翻译。
 
 ### 优化:
 
diff --git a/docs/document/v2/web/room_attributes.md b/docs/document/v2/web/room_attributes.md
index 043e38b15..3643d78a6 100644
--- a/docs/document/v2/web/room_attributes.md
+++ b/docs/document/v2/web/room_attributes.md
@@ -20,8 +20,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html);
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html);
-- 了解聊天室的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html);
+
 
 ## 实现方法
 
diff --git a/docs/document/v2/web/room_manage.md b/docs/document/v2/web/room_manage.md
index d987e4db2..4df2ad74f 100644
--- a/docs/document/v2/web/room_manage.md
+++ b/docs/document/v2/web/room_manage.md
@@ -24,9 +24,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html);
-- 了解环信即时通讯 IM 的 API 使用限制,详见 [使用限制](/product/limitation);
-- 了解环信即时通讯 IM 聊天室不同版本的数量限制,详见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im);
-- 仅 [超级管理员](/document/server-side/chatroom.html#管理超级管理员) 可以创建聊天室;
+- 了解环信即时通讯 IM 的 API 使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html);
+- 仅 [超级管理员](/document/v2/server-side/chatroom.html#管理超级管理员) 可以创建聊天室;
 - 聊天室创建者和管理员的数量之和不能超过 100 ,即管理员最多可添加 99 个。
 
 ## 实现方法
@@ -35,9 +34,9 @@
 
 ### 创建聊天室
 
-仅 [超级管理员](/document/server-side/chatroom.html#管理超级管理员) 可以调用 `createChatRoom` 方法创建聊天室,并设置聊天室的名称、描述、最大成员数等信息。成功创建聊天室后,该超级管理员为该聊天室的所有者。
+仅 [超级管理员](/document/v2/server-side/chatroom.html#管理超级管理员) 可以调用 `createChatRoom` 方法创建聊天室,并设置聊天室的名称、描述、最大成员数等信息。成功创建聊天室后,该超级管理员为该聊天室的所有者。
 
-你也可以直接调用 REST API [从服务端创建聊天室](/document/server-side/chatroom.html#创建聊天室)。
+你也可以直接调用 REST API [从服务端创建聊天室](/document/v2/server-side/chatroom.html#创建聊天室)。
 
 示例代码如下:
 
diff --git a/docs/document/v2/web/room_members.md b/docs/document/v2/web/room_members.md
index 052410c33..11ae5cec1 100644
--- a/docs/document/v2/web/room_members.md
+++ b/docs/document/v2/web/room_members.md
@@ -20,8 +20,7 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html);
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation);
-- 了解环信即时通讯 IM 聊天室不同套餐相关限制,详见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html);
 
 ## 实现方法
 
diff --git a/docs/document/v2/web/room_overview.md b/docs/document/v2/web/room_overview.md
index 89a425e04..2d90f2aeb 100644
--- a/docs/document/v2/web/room_overview.md
+++ b/docs/document/v2/web/room_overview.md
@@ -6,9 +6,9 @@
 
 聊天室是支持多人加入的类似 Twitch 的组织。聊天室中的成员没有固定关系,用户离线后,超过 2 分钟会自动退出聊天室。聊天室成员在离线后,不会收到推送消息。聊天室可以应用于直播、消息广播等。若需调整该时间,需联系环信商务经理。
 
-聊天室的使用限制视不同套餐版本而定,请参见 使用限制。
+聊天室的使用限制请参见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
-本文以及接下来几篇主要介绍聊天室管理功能,如需查看消息相关内容,参见 消息管理。
+本文以及接下来几篇主要介绍聊天室管理功能,如需查看消息相关内容,参见 <Link title="消息管理" to="message_overview.html" />。
 
 ### 群组与聊天室的区别
 
@@ -32,7 +32,7 @@
 
 | 功能           | 描述                                                         |
 | :------------- | :----------------------------------------------------------- |
-| 创建聊天室     | 只有被赋予 [超级管理员](/document/server-side/chatroom.html#管理超级管理员) 权限的用户有权限创建聊天室。聊天室成员数会受到版本指定聊天室最大成员数的限制。 |
+| 创建聊天室     | 只有被赋予 [超级管理员](/document/v2/server-side/chatroom.html#管理超级管理员) 权限的用户有权限创建聊天室。聊天室成员数会受到版本指定聊天室最大成员数的限制。 |
 | 加入聊天室     | 没有被加入黑名单的所有 app 用户可自由加入聊天室。                                   |
 | 离开聊天室     | 所有聊天室成员都可以自由退出聊天室;也可能被动离开聊天室,原因分为:被管理员移出聊天室、聊天室解散和用户账号离线。   |
 | 销毁聊天室     | 需要聊天室所有者权限。                                       |
diff --git a/docs/document/v2/web/thread.md b/docs/document/v2/web/thread.md
index ad3e45ecb..362531ff1 100644
--- a/docs/document/v2/web/thread.md
+++ b/docs/document/v2/web/thread.md
@@ -4,9 +4,6 @@
 
 子区是群组成员的子集,是支持多人沟通的即时通讯系统,本文介绍如何使用环信即时通讯 IM SDK 在实时互动 app 中创建和管理子区,并实现子区相关功能。
 
-:::notice
-私有化版本不支持子区功能。
-:::
 
 ## 技术原理
 
@@ -25,9 +22,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 4.0.7 或以上版本 SDK 初始化,详见 [快速开始](quickstart.html);
-- 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。
-- 了解子区和子区成员数量限制,详见 [使用限制](/product/limitation.html)。
-- 联系商务开通子区功能。
+- 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。
+- 私有部署已开通子区功能。
 
 ## 实现方法
 
diff --git a/docs/document/v2/web/thread_message.md b/docs/document/v2/web/thread_message.md
index ecf271a27..ccf9c1027 100644
--- a/docs/document/v2/web/thread_message.md
+++ b/docs/document/v2/web/thread_message.md
@@ -32,9 +32,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 4.0.7 及以上版本 SDK 初始化,详见 [快速开始](quickstart.html);
-- 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。
-- 了解子区和子区成员数量限制,详见 [使用限制](/product/limitation.html)。
-- 联系商务开通子区功能。
+- 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。
+- 私有部署已开通子区功能。
 
 ## 实现方法
 
diff --git a/docs/document/v2/web/user_relationship.md b/docs/document/v2/web/user_relationship.md
index c9512245c..8cb4ac4a6 100644
--- a/docs/document/v2/web/user_relationship.md
+++ b/docs/document/v2/web/user_relationship.md
@@ -20,8 +20,8 @@ SDK 提供用户关系管理功能,包括好友列表管理和黑名单管理
 ## 前提条件
 
 开始前,请确保满足以下条件:
-- 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html);
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 完成 SDK 初始化,详见 [快速开始](quickstart.html)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
diff --git a/docs/document/v2/web/userprofile.md b/docs/document/v2/web/userprofile.md
index ae33c3add..1534a2a5e 100644
--- a/docs/document/v2/web/userprofile.md
+++ b/docs/document/v2/web/userprofile.md
@@ -27,7 +27,7 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
@@ -68,7 +68,7 @@ conn.updateUserInfo("nickname", "Your nickname").then((res) => {
 });
 ```
 
-若[调用 RESTful 的接口设置](/document/server-side/userprofile.html#设置用户属性)或[删除用户属性](/document/server-side/userprofile.html#删除用户属性),请求中必须传以下字段各客户端才能获取到。
+若[调用 RESTful 的接口设置](/document/v2/server-side/userprofile.html#设置用户属性)或[删除用户属性](/document/v2/server-side/userprofile.html#删除用户属性),请求中必须传以下字段各客户端才能获取到。
 
 | 字段        | 类型   | 备注                                                                                               |
 | :---------- | :----- | :------------------------------------------------------------------------------------------------- |
@@ -177,4 +177,4 @@ conn
 
 如果需要在名片中展示更丰富的信息,可以在 `ext` 中添加更多字段。
 
-可参考 [示例项目](https://github.com/easemob/webim/tree/dev_3.0/demo) 中 src/components/contact/ 下 UserInfoModal 组件。
+可参考 Demo 中 src/components/contact/ 下 UserInfoModal 组件。
diff --git a/docs/document/v2/windows/group_attributes.md b/docs/document/v2/windows/group_attributes.md
index de194840a..af6412d3d 100644
--- a/docs/document/v2/windows/group_attributes.md
+++ b/docs/document/v2/windows/group_attributes.md
@@ -18,8 +18,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html);
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html);
-- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html);
+
 
 ## 实现方法
 
diff --git a/docs/document/v2/windows/group_manage.md b/docs/document/v2/windows/group_manage.md
index e1fd8e8de..669df3295 100644
--- a/docs/document/v2/windows/group_manage.md
+++ b/docs/document/v2/windows/group_manage.md
@@ -23,8 +23,7 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html);
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html);
-- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html);
 
 ## 实现方法
 
@@ -129,7 +128,7 @@ SDKClient.Instance.GroupManager.DestroyGroup(groupId, new CallBack(
 
 ### 退出群组
 
-群成员可以调用 `LeaveGroup` 方法退出群组,其他成员收到 `IGroupManagerDelegate#OnMemberExitedFromGroup` 回调。退出群组后,该用户将不再收到群消息。群主不能调用该接口退出群组,只能调用 [DestroyGroup](https://docs-im.easemob.com/ccim/unity/group2#解散群组) 方法解散群组。
+群成员可以调用 `LeaveGroup` 方法退出群组,其他成员收到 `IGroupManagerDelegate#OnMemberExitedFromGroup` 回调。退出群组后,该用户将不再收到群消息。群主不能调用该接口退出群组,只能调用 [DestroyGroup](group_manage#解散群组) 方法解散群组。
 
 示例代码如下:
 
diff --git a/docs/document/v2/windows/group_members.md b/docs/document/v2/windows/group_members.md
index 544edad31..4350830a0 100644
--- a/docs/document/v2/windows/group_members.md
+++ b/docs/document/v2/windows/group_members.md
@@ -21,9 +21,9 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html);
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html);
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html);
 - 了解群成员角色,详见 [群组概述](group_overview.html);
-- 了解群组和群成员的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。
+
 
 ## 实现方法
 
diff --git a/docs/document/v2/windows/message_manage.md b/docs/document/v2/windows/message_manage.md
index b016feda4..389a66a7d 100644
--- a/docs/document/v2/windows/message_manage.md
+++ b/docs/document/v2/windows/message_manage.md
@@ -31,7 +31,7 @@ SQLCipher 用于加密存储本地消息的数据库。即时通讯 IM SDK 使
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
diff --git a/docs/document/v2/windows/message_modify.md b/docs/document/v2/windows/message_modify.md
index a1a7433ec..7a7fcbe77 100644
--- a/docs/document/v2/windows/message_modify.md
+++ b/docs/document/v2/windows/message_modify.md
@@ -9,7 +9,7 @@
 若使用该功能,需将 SDK 升级至 1.2.0 或以上版本。
 :::
 
-你可以调用 `ChatManager#ModifyMessage` 方法修改已经发送成功的消息。一条消息默认最多可修改 10 次,若要提升修改次数,需联系商务。
+你可以调用 `ChatManager#ModifyMessage` 方法修改已经发送成功的消息。一条消息默认最多可修改 10 次。
 
 示例代码如下:
 
diff --git a/docs/document/v2/windows/message_receipt.md b/docs/document/v2/windows/message_receipt.md
index b13109547..77687bbb4 100644
--- a/docs/document/v2/windows/message_receipt.md
+++ b/docs/document/v2/windows/message_receipt.md
@@ -4,7 +4,7 @@
 
 单聊会话支持消息送达回执、会话已读回执和消息已读回执,发送方发送消息后可及时了解接收方是否及时收到并阅读了信息,也可以了解整个会话是否已读。
 
-群聊会话只支持消息已读回执。群主和群管理员在发送消息时,可以设置该消息是否需要已读回执。仅旗舰版及以上版本支持群消息已读回执功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。
+群聊会话只支持消息已读回执。群主和群管理员在发送消息时,可以设置该消息是否需要已读回执,私有部署即时通讯服务默认支持并开通该功能。
 
 本文介绍如何使用环信即时通讯 IM Android SDK 实现单聊和群聊的消息回执功能。
 
@@ -40,8 +40,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html);
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html);
-- 群消息已读回执功能仅在环信 IM 旗舰版及以上版本支持该功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html);
+
 
 ## 实现方法
 
@@ -223,7 +223,7 @@ SDKClient.Instance.ChatManager.RemoveChatManagerDelegate(adelegate);
 
 对于群聊,群主和群管理员发送消息时,可以设置该消息是否需要已读回执。若需要,每个群成员在阅读消息后,SDK 均会发送已读回执,即阅读该消息的群成员数量即为已读回执的数量。
 
-仅旗舰版及以上版本支持群消息已读回执功能。若要使用该功能,需在[环信即时通讯云控制台](https://console.easemob.com/user/login)开通。
+私有部署即时通讯服务默认支持并开通群消息已读回执功能。
 
 1. 群主或群管理员发送消息时若需已读回执,需设置 `Message` 的 `IsNeedGroupAck` 为 `true`。
 
diff --git a/docs/document/v2/windows/message_retrieve.md b/docs/document/v2/windows/message_retrieve.md
index 8b70ded09..e3d434adf 100644
--- a/docs/document/v2/windows/message_retrieve.md
+++ b/docs/document/v2/windows/message_retrieve.md
@@ -4,9 +4,6 @@
 
 环信即时通讯 IM 提供消息漫游功能,即将用户的所有会话的历史消息保存在消息服务器,用户在任何一个终端设备上都能获取到历史信息,使用户在多个设备切换使用的情况下也能保持一致的会话场景。本文介绍用户如何从消息服务器获取和删除会话和消息。
 
-:::tip
-本文介绍的功能均为增值服务,需在[环信即时通讯 IM 管理后台](https://console.easemob.com/user/login)开通。
-:::
 
 ## 实现原理
 
@@ -24,7 +21,7 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
@@ -115,10 +112,11 @@ SDKClient.Instance.ChatManager.PinConversation(convId, isPinned, new CallBack(
 
 ### 分页获取指定会话的历史消息
 
-你可以调用 `FetchHistoryMessagesFromServer` 方法从服务器分页获取指定会话的历史消息,实现消息漫游。该功能需在[环信即时通讯 IM 管理后台](https://console.easemob.com/user/login)开通。
+你可以调用 `FetchHistoryMessagesFromServer` 方法从服务器分页获取指定会话的历史消息,实现消息漫游。
 
 为确保数据可靠,我们建议你多次调用该方法,且每次获取的消息数小于 50 条。获取到数据后,SDK 会自动将消息更新到本地数据库。
 
+
 ```csharp
 SDKClient.Instance.ChatManager.FetchHistoryMessagesFromServer(conversationId, type, startId, pageSize, new ValueCallBack<CursorResult<Message>>(
     // 获取历史消息成功。
diff --git a/docs/document/v2/windows/message_send_receive.md b/docs/document/v2/windows/message_send_receive.md
index 91a9f94ed..f07581809 100644
--- a/docs/document/v2/windows/message_send_receive.md
+++ b/docs/document/v2/windows/message_send_receive.md
@@ -31,7 +31,7 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
@@ -98,7 +98,7 @@ SDKClient.Instance.ChatManager.RemoveChatManagerDelegate(adelegate);
 
 ### 撤回消息
 
-发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信即时通讯云控制台](https://console.easemob.com/user/login)的**功能配置** > **功能配置总览** > **基础功能** 页面设置消息撤回时长,该时长不超过 7 天。
+发送方可以撤回一条发送成功的消息。默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在 环信即时通讯云控制台的**服务管理** > **服务概览** 页面设置消息撤回时长,该时长不超过 7 天。
 
 ```csharp
 SDKClient.Instance.ChatManager.RecallMessage("Message ID", new CallBack(
diff --git a/docs/document/v2/windows/multi_device.md b/docs/document/v2/windows/multi_device.md
index d1dd57849..6f8b5d398 100644
--- a/docs/document/v2/windows/multi_device.md
+++ b/docs/document/v2/windows/multi_device.md
@@ -11,7 +11,7 @@
 
 多端登录时,即时通讯 IM 每端默认最多支持 4 个设备同时在线。如需增加支持的设备数量,可以联系环信即时通讯 IM 的商务经理。
 
-你可以在环信控制台的**功能配置** > **功能配置总览**页面的**基础功能**页签下点击**多端多设备在线**操作栏中的**设置**,在弹出的对话框中设置设置各端设备的数量:
+你可以在环信控制台的**服务管理** > **服务概览**页面的下点击**多端多设备在线**操作栏中的**设置**,在弹出的对话框中设置设置各端设备的数量:
 
 ![img](@static/images/common/multidevice_device_count.png)
 
@@ -24,7 +24,7 @@
 </head>
 
 <body>
-<table width="815" height="195" border="1">
+<table width="815" height="" border="1">
   <tbody>
     <tr>
       <td width="127" height="49">单端/多端登录</td>
@@ -38,7 +38,7 @@
     </tr>
     <tr>
       <td height="84">多端登录</td>
-      <td>若一端的登录设备数量达到了上限,最新登录的设备会将该端最早登录的设备踢下线。&lt;br/&gt;即时通讯 IM 仅支持同端互踢,不支持各端之间互踢。</td>
+      <td>若一端的登录设备数量达到了上限,最新登录的设备会将该端最早登录的设备踢下线。<br>即时通讯 IM 仅支持同端互踢,不支持各端之间互踢。</td>
     </tr>
   </tbody>
 </table>
@@ -176,7 +176,7 @@ SDKClient.Instance.ChatManager.RemoveChatManagerDelegate(adelegate);
 
 你可以按照以下步骤设置登录设备所属的平台:
 
-1. 在环信控制台的**功能配置** > **功能配置总览**页面,点击**基础功能**页签,然后点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击 **新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台**和**设备数量**。
+1. 在环信控制台的**服务管理** > **服务概览**页面,点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击 **新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台**和**设备数量**。
 
 **设备平台**的取值范围为 [1,100],**设备数量**的取值范围为 [0,4]。
 
diff --git a/docs/document/v2/windows/overview.md b/docs/document/v2/windows/overview.md
index ad8605484..13a4f6b3d 100644
--- a/docs/document/v2/windows/overview.md
+++ b/docs/document/v2/windows/overview.md
@@ -6,7 +6,7 @@
 
 ## 前提条件
 
-开始前,请注册有效的环信即时通讯 IM 开发者账号和获取 App key,参见 [环信即时通讯云管理后台](https://console.easemob.com/user/login)。
+开始前,请注册有效的环信即时通讯 IM 开发者账号和获取 App key,参见 [环信即时通讯云管理后台](/document/v2/privatization/uc_configure.html)。
 
 ## 集成环境
 
@@ -49,15 +49,15 @@ SDKClient.Instance.InitWithOptions(options);
 目前注册的方式有以下几种:
 - 通过控制台注册。
 - 通过 REST API 接口注册。
-- 调用 SDK 接口注册。该方法需在 [控制台](https://console.easemob.com/app/im-service/detail) 设置允许 **开放注册**。
+- 调用 SDK 接口注册。该方法需在 [控制台](/document/v2/privatization/uc_configure.html) 设置允许 **开放注册**。
 
 ### 控制台注册
 
-控制台的注册请到 [这里](https://console.easemob.com/app/im-service/operative-service/user)。
+控制台的注册请到 **运营服务->用户管理** 页面下进行注册。
 
 ### REST API 注册
 
-请参考 [注册用户](/document/server-side/account_system.html#注册用户)。
+请参考 [注册用户](/document/v2/server-side/account_system.html#注册用户)。
 
 ### SDK 注册
 
@@ -83,7 +83,7 @@ SDK 不支持自动登录,只支持通过以下方式手动登录:
 - 用户 ID + 密码
 - 用户 ID + token
 
-登录时传入的用户 ID 必须为 String 类型,支持的字符集详见[用户注册的 RESTful 接口](/document/server-side/account_system.html#注册用户)。
+登录时传入的用户 ID 必须为 String 类型,支持的字符集详见[用户注册的 RESTful 接口](/document/v2/server-side/account_system.html#注册用户)。
 
 调用登录接口后,收到 `OnConnected` 回调表明 SDK 与环信服务器连接成功。
 
@@ -113,7 +113,7 @@ SDKClient.Instance.Login(username, password,
 );
 ```
 
-2. **用户 ID + token** 是更加安全的登录方式。token 可以通过调用 REST API 获取,详见 [环信用户 token 的获取](/document/server-side/easemob_user_token.html)。
+2. **用户 ID + token** 是更加安全的登录方式。token 可以通过调用 REST API 获取,详见 [环信用户 token 的获取](/document/v2/server-side/easemob_user_token.html)。
 
 :::notice
 使用 token 登录时需要处理 token 过期的问题,比如在每次登录时更新 token 等机制。
diff --git a/docs/document/v2/windows/presence.md b/docs/document/v2/windows/presence.md
index 24535c2cb..01dd28002 100644
--- a/docs/document/v2/windows/presence.md
+++ b/docs/document/v2/windows/presence.md
@@ -6,9 +6,6 @@
 
 本文介绍如何在即时通讯应用中发布、订阅和查询用户的在线状态。
 
-:::notice
-私有化版本不支持在线状态订阅。
-:::
 
 ## 技术原理
 
@@ -41,8 +38,8 @@
 使用在线状态功能前,请确保满足以下条件:
 
 1. 完成 `1.0.5 或以上版本` SDK 初始化,详见 [快速开始](quickstart.html)。
-2. 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。
-3. 已联系商务开通在线状态订阅功能。
+2. 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。
+3. 私有部署已开通在线状态订阅功能。
 
 ## 实现方法
 
diff --git a/docs/document/v2/windows/quickstart.md b/docs/document/v2/windows/quickstart.md
index 0456a8735..eb7bacf87 100644
--- a/docs/document/v2/windows/quickstart.md
+++ b/docs/document/v2/windows/quickstart.md
@@ -25,12 +25,12 @@
 - Visual Studio IDE 2019 或以上;
 - .Net Framework 4.5.2 或以上;
 - 目前 Windows SDK 仅支持 64 位运行模式;
-- 有效的环信即时通讯 IM 开发者账号和 App Key,见 [环信即时通讯云控制台](https://console.easemob.com/user/login)。
+- 有效的环信即时通讯 IM 开发者账号和 App Key,见 [环信即时通讯云控制台](/document/v2/privatization/uc_configure.html)。
 
 ## 项目设置
 
 实现发送和接收单聊文本消息之前,参考以下步骤设置你的项目。
-
+<!--
 ### 1. 下载并设置 Windows Demo 项目
 
 参考以下步骤:
@@ -43,8 +43,8 @@
 ### 2. 集成环信即时通讯 SDK
 
 你可以参考以下步骤集成 SDK:
-
-1. 下载:点击 [Windows SDK](https://downloadsdk.easemob.com/downloads/SDK/WinSDK/agora_chat_sdk.1.0.9.nupkg) 进行下载,下载的 `NuGet` 包一般存放在 `C:\Users\XXX\Downloads` (`XXX` 为本机用户名);
+-->
+1. 下载:点击 [Windows SDK](https://downloadsdk.easemob.com/downloads/SDK/WinSDK/agora_chat_sdk.1.2.0.nupkg) 进行下载,下载的 `NuGet` 包一般存放在 `C:\Users\XXX\Downloads` (`XXX` 为本机用户名);
 2. 将下载的 `NuGet` 包拷贝到自己的工作目录,比如 `D:\workspace\WinSDK` 下,以下说明以此目录举例;
 3. 在 Visual Studio 开发环境里,右键点击 `windows-example` 项目,选择 **管理 NuGet 程序包 (N)...**;
 4. 在弹出的 `NuGet:windows-example` tab 页面里,点击右上角的小齿轮会弹出 NuGet 程序包源的设置窗体,点击窗体右上角的 **+** 按钮,在 **包源** 的文本框内会出现 **Package source** 这一栏,点击选中,并修改文本框下的 **名称** 和 **源**。例如 **名称** 可以设置为 `Local Package source`,**源** 则设置为第 2 步中的目录, `D:\workspace\WinSDK`,点击确定;
@@ -99,7 +99,7 @@ SDKClient.Instance.CreateAccount(username, password, callback: new CallBack(
 ```
 
 :::notice
-该注册模式为在客户端注册,主要用于测试,简单方便,但不推荐在正式环境中使用;正式环境中应使用服务器端调用 Restful API 注册,具体见:[注册单个用户](https://docs-im.easemob.com/ccim/rest/accountsystem#注册单个用户)。
+该注册模式为在客户端注册,主要用于测试,简单方便,但不推荐在正式环境中使用;正式环境中应使用服务器端调用 Restful API 注册,具体见:[注册单个用户](/document/v2/server-side/account_system.html#注册用户)。
 :::
 
 ### 5. 登录账号
diff --git a/docs/document/v2/windows/reaction.md b/docs/document/v2/windows/reaction.md
index 5321aa96d..ee88e9ad5 100644
--- a/docs/document/v2/windows/reaction.md
+++ b/docs/document/v2/windows/reaction.md
@@ -7,7 +7,6 @@
 :::notice
 
 1. 目前 Reaction 仅适用于单聊和群组。聊天室暂不支持 Reaction 功能。
-2. 私有化版本不支持 Reaction 功能。
    :::
 
 ## 技术原理
@@ -31,8 +30,8 @@ Reaction 场景示例如下:
 开始前,请确保满足以下条件:
 
 1. 完成 `1.0.5 或 以上版本` SDK 初始化,详见 [快速开始](quickstart.html)。
-2. 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。
-3. 已联系商务开通 Reaction 功能。
+2. 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。
+3. 私有部署已开通 Reaction 功能。
 
 ## 实现方法
 
diff --git a/docs/document/v2/windows/releasenote.md b/docs/document/v2/windows/releasenote.md
index d8e2c66ff..9a6367530 100644
--- a/docs/document/v2/windows/releasenote.md
+++ b/docs/document/v2/windows/releasenote.md
@@ -181,7 +181,6 @@
 - [在线状态订阅](presence.html)
 - [消息表情回复](reaction.html)
 - [管理子区](thread.html)
-- [内容举报](moderation.html)
 
 ## 版本 V1.0.2.1 2022-06-22
 
@@ -190,11 +189,10 @@
 - 在单聊、群聊、聊天室中发送和接收消息;
 - 管理会话和消息;
 - 管理群组和聊天室;
-- 关于详细功能概述请参见:[产品概述](/product/introduction.html)
 
 具体集成请参考以下文档:
 
-- [开通配置环信即时通讯 IM 服务](/product/enable_and_configure_IM.html)
+- [开通配置环信即时通讯 IM 服务](/document/v2/privatization/uc_configure.html)
 - [环信即时通讯 IM Windows 快速入门](quickstart.html)
 - [消息管理 Windows](message_overview.html)
 - [群组 Windows](group_overview.html)
diff --git a/docs/document/v2/windows/room_attributes.md b/docs/document/v2/windows/room_attributes.md
index 5f883c454..3dbbce75b 100644
--- a/docs/document/v2/windows/room_attributes.md
+++ b/docs/document/v2/windows/room_attributes.md
@@ -20,8 +20,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html);
-- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html);
-- 了解聊天室的数量限制,详见 [套餐包详情](https://www.easemob.com/pricing/im)。
+- 了解环信即时通讯 IM 的 [使用限制](/document/v2/privatization/uc_limitation.html);
+
 
 ## 实现方法
 
diff --git a/docs/document/v2/windows/room_manage.md b/docs/document/v2/windows/room_manage.md
index de8dd6e1b..63bc44afa 100644
--- a/docs/document/v2/windows/room_manage.md
+++ b/docs/document/v2/windows/room_manage.md
@@ -25,9 +25,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html);
-- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html)。
-- 了解环信即时通讯 IM 不同版本的聊天室相关数量限制,详见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im)。
-- 只有超级管理员才有创建聊天室的权限,因此你还需要确保已调用 RESTful API 添加了超级管理员,详见 [添加聊天室超级管理员](/document/server-side/chatroom.html#添加超级管理员)。
+- 了解环信即时通讯 IM 的 [使用限制](/document/v2/privatization/uc_limitation.html)。
+- 只有超级管理员才有创建聊天室的权限,因此你还需要确保已调用 RESTful API 添加了超级管理员,详见 [添加聊天室超级管理员](/document/v2/server-side/chatroom.html#添加超级管理员)。
 - 聊天室创建者和管理员的数量之和不能超过 100,即管理员最多可添加 99 个。
 
 ## 实现方法
@@ -36,9 +35,9 @@
 
 ### 创建聊天室
 
-仅 [超级管理员](/document/server-side/chatroom.html#管理超级管理员) 可以调用 `CreateRoom` 方法创建聊天室,并设置聊天室的名称、描述、最大成员数等信息。成功创建聊天室后,该超级管理员为该聊天室的所有者。
+仅 [超级管理员](/document/v2/server-side/chatroom.html#管理超级管理员) 可以调用 `CreateRoom` 方法创建聊天室,并设置聊天室的名称、描述、最大成员数等信息。成功创建聊天室后,该超级管理员为该聊天室的所有者。
 
-你也可以直接调用 REST API [从服务端创建聊天室](/document/server-side/chatroom.html#创建聊天室)。
+你也可以直接调用 REST API [从服务端创建聊天室](/document/v2/server-side/chatroom.html#创建聊天室)。
 
 示例代码如下:
 
diff --git a/docs/document/v2/windows/room_members.md b/docs/document/v2/windows/room_members.md
index 221968878..8cfc9ed9c 100644
--- a/docs/document/v2/windows/room_members.md
+++ b/docs/document/v2/windows/room_members.md
@@ -21,8 +21,7 @@
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html);
-- 了解环信即时通讯 IM 的 [使用限制](/product/limitation.html);
-- 了解环信即时通讯 IM 聊天室相关限制,详见 [环信即时通讯 IM 价格](https://www.easemob.com/pricing/im)。
+- 了解环信即时通讯 IM 的 [使用限制](/document/v2/privatization/uc_limitation.html);
 
 ## 实现方法
 
diff --git a/docs/document/v2/windows/thread.md b/docs/document/v2/windows/thread.md
index 0d4813c3e..9b424912e 100644
--- a/docs/document/v2/windows/thread.md
+++ b/docs/document/v2/windows/thread.md
@@ -6,9 +6,6 @@
 
 如需查看消息相关内容,参见 [子区消息管理](thread_message.html)。
 
-:::notice
-私有化版本不支持子区功能。
-:::
 
 ## 技术原理
 
@@ -29,9 +26,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 `1.0.5 或以上版本` SDK 初始化,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM API 的 [使用限制](/product/limitation.html)。
-- 了解子区和子区成员数量限制,详见 [使用限制](/product/limitation.html)。
-- 联系商务开通子区功能。
+- 了解环信即时通讯 IM API 的 [使用限制](/document/v2/privatization/uc_limitation.html)。
+- 私有部署已开通子区功能。
 
 ## 实现方法
 
diff --git a/docs/document/v2/windows/thread_message.md b/docs/document/v2/windows/thread_message.md
index c0dc074a8..9517d47e8 100644
--- a/docs/document/v2/windows/thread_message.md
+++ b/docs/document/v2/windows/thread_message.md
@@ -30,8 +30,8 @@
 开始前,请确保满足以下条件:
 
 - 完成 1.0.6 以上版本 SDK 初始化,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
-- 联系商务开通子区功能。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
+- 私有部署已开通子区功能。
 
 ## 实现方法
 
diff --git a/docs/document/v2/windows/user_relationship.md b/docs/document/v2/windows/user_relationship.md
index 00ab02db7..31326c2ff 100644
--- a/docs/document/v2/windows/user_relationship.md
+++ b/docs/document/v2/windows/user_relationship.md
@@ -29,7 +29,7 @@ SDK 提供用户关系管理功能,包括好友列表管理和黑名单管理
 开始前,请确保满足以下条件:
 
 - 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
diff --git a/docs/document/v2/windows/userprofile.md b/docs/document/v2/windows/userprofile.md
index 28cbd8cc6..e29fa15b2 100644
--- a/docs/document/v2/windows/userprofile.md
+++ b/docs/document/v2/windows/userprofile.md
@@ -24,7 +24,7 @@
 设置用户属性前,请确保满足以下条件:
 
 - 完成 SDK 初始化,详见 [快速开始](quickstart.html)。
-- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)。
+- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/document/v2/privatization/uc_limitation.html)。
 
 ## 实现方法
 
@@ -56,7 +56,7 @@ SDKClient.Instance.UserInfoManager.UpdateOwnInfo(userInfo, new CallBack(
 ));
 ```
 
-若[调用 RESTful 的接口设置](/document/server-side/userprofile.html#设置用户属性)或[删除用户属性](/document/server-side/userprofile.html#删除用户属性),请求中必须传以下字段各客户端才能获取到。
+若[调用 RESTful 的接口设置](/document/v2/server-side/userprofile.html#设置用户属性)或[删除用户属性](/document/v2/server-side/userprofile.html#删除用户属性),请求中必须传以下字段各客户端才能获取到。
 
 | 字段        | 类型   | 描述                                                                                              |
 | :---------- | :----- | :------------------------------------------------------------------------------------------------ |
diff --git a/docs/private/media/conference_android.md b/docs/private/media/conference_android.md
index 316262041..aebc7b2b6 100644
--- a/docs/private/media/conference_android.md
+++ b/docs/private/media/conference_android.md
@@ -70,7 +70,7 @@ dependencies {
 
 环信为管理者与开发者提供了方便易用的App工作台– **环信管理后台**。<br>
 通过环信管理后台可以完成应用创建、服务配置、企业信息修改基础功能;同时,管理后台也提供了发送消息、用户管理、群组管理、聊天室管理和数据统计等管理监控功能。<br>
-在开始集成前,你需要注册环信开发者账号并在后台创建应用,参见[创建应用](../im/uc_configure.html#创建应用) 。
+在开始集成前,你需要注册环信开发者账号并在后台创建应用,参见[创建应用](/document/v2/privatization/uc_configure.html#创建应用) 。
 
 ### 2. 创建项目
 
@@ -255,8 +255,8 @@ EMConferenceListener listener = new EMConferenceListener() {
 
 ### 8. 加入会议
 
-在进行音视频通话前,需要首先登录IM账户,登录过程参见[账号登录](http://docs-im-beta.easemob.com/document/android/overview.html#%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95)。<br>
-若您还没有IM账户,需要先注册账户,注册过程参见[账号注册](http://docs-im-beta.easemob.com/document/android/overview.html#%E6%B3%A8%E5%86%8C%E7%94%A8%E6%88%B7)。<br>
+在进行音视频通话前,需要首先登录IM账户,登录过程参见[账号登录](/document/v2/android/overview.html#%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95)。<br>
+若您还没有IM账户,需要先注册账户,注册过程参见[账号注册](/document/v2/android/overview.html#%E6%B3%A8%E5%86%8C%E7%94%A8%E6%88%B7)。<br>
 登录环信ID以后,可以加入会议了,通过 [EMConferenceManager#joinRoom](http://sdkdocs.easemob.com/apidoc/android/chat3.0/classcom_1_1hyphenate_1_1chat_1_1_e_m_conference_manager.html#a8940f54febf2086ccd978d75980c7763) API加入房间。<br>
 - 创建会议成功以后,默认超时时间为三分钟,超过三分钟没有人加入,会议会自动销毁;
 - 另外当会议中所有人离开2分钟后,会议也会被销毁;
@@ -1175,7 +1175,7 @@ public void onAttributesUpdated(EMConferenceAttribute[] attributes) {}
 
 #### **私有部署**
 
-私有部署设置方法参见[私有云 Android SDK集成配置](../im/uc_android_private.md)。
+私有部署设置方法参见[私有云 Android SDK集成配置](/document/v2/android/privatecloud.html)。
 
 ### 音视频管理
 
diff --git a/docs/private/media/conference_ios.md b/docs/private/media/conference_ios.md
index 4bf4035f8..1c8f3cbc5 100644
--- a/docs/private/media/conference_ios.md
+++ b/docs/private/media/conference_ios.md
@@ -112,7 +112,7 @@ EMConferenceManagerDelegate.h
 
 ### 1. 环信后台注册appkey
 
-在开始集成前,你需要注册环信开发者账号并在后台创建应用,参见[创建应用](../im/uc_configure.html#创建应用) 。
+在开始集成前,你需要注册环信开发者账号并在后台创建应用,参见[创建应用](/document/v2/privatization/uc_configure.html#创建应用) 。
 
 ### 2. 创建项目
 
@@ -185,8 +185,8 @@ retOpt.enableConsoleLog = YES;
 
 ### 7. 环信ID注册、登录
 
-在进行音视频通话前,需要首先登录IM账户,登录过程参见[账号登录](http://docs-im-beta.easemob.com/document/android/overview.html#%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95)。<br>
-若您还没有IM账户,需要先注册账户,注册过程参见[账号注册](http://docs-im-beta.easemob.com/document/android/overview.html#%E6%B3%A8%E5%86%8C%E7%94%A8%E6%88%B7)。<br>
+在进行音视频通话前,需要首先登录IM账户,登录过程参见[账号登录](/document/v2/android/overview.html#%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95)。<br>
+若您还没有IM账户,需要先注册账户,注册过程参见[账号注册](/document/v2/android/overview.html#%E6%B3%A8%E5%86%8C%E7%94%A8%E6%88%B7)。<br>
 
 ### 8. 音视频功能初始化
 
@@ -834,7 +834,7 @@ region.z = 9;
 
 #### 私有部署
 
-私有部署设置方法参见[私有云sdk集成配置](../im/uc_iOS_private.md)
+私有部署设置方法参见[私有云sdk集成配置](/document/v2/ios/privatecloud.html)
 
 ### 音视频管理
 
diff --git a/docs/private/media/conference_web.md b/docs/private/media/conference_web.md
index 56f54527d..ebdb7527b 100644
--- a/docs/private/media/conference_web.md
+++ b/docs/private/media/conference_web.md
@@ -35,7 +35,7 @@ HTTPS=true npm start
 
 ### 1. 环信后台注册 appkey
 
-在开始集成前,你需要注册环信开发者账号并在后台创建应用,参见[创建应用](../im/uc_configure.html#创建应用) 。
+在开始集成前,你需要注册环信开发者账号并在后台创建应用,参见[创建应用](/document/v2/privatization/uc_configure.html#创建应用) 。
 
 ### 2. 创建项目
 
@@ -86,8 +86,8 @@ emedia.config({
 
 ### 5. 环信ID注册、登录
 
-在进行音视频通话前,需要首先登录IM账户,登录过程参见[账号登录](http://docs-im-beta.easemob.com/document/web/overview.html#%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95)。<br>
-若您还没有IM账户,需要先注册账户,注册过程参见[账号注册](http://docs-im-beta.easemob.com/document/web/overview.html#%E6%B3%A8%E5%86%8C%E7%94%A8%E6%88%B7)。<br>
+在进行音视频通话前,需要首先登录IM账户,登录过程参见[账号登录](/document/v2/web/overview.html#%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95)。<br>
+若您还没有IM账户,需要先注册账户,注册过程参见[账号注册](/document/v2/web/overview.html#%E6%B3%A8%E5%86%8C%E7%94%A8%E6%88%B7)。<br>
 
 ### 6. 进入会议
 
@@ -604,7 +604,7 @@ emedia.fileReport() //无参数
 
 #### **11. 私有部署**
 
-私有部署设置方法参见[私有云sdk集成配置](../im/uc_Web_private.md)。
+私有部署设置方法参见[私有云sdk集成配置](/document/v2/web/privatecloud.html)。
 
 ### 音视频管理
 
diff --git a/docs/private/media/one2one_android.md b/docs/private/media/one2one_android.md
index d69970715..c4355c8d4 100644
--- a/docs/private/media/one2one_android.md
+++ b/docs/private/media/one2one_android.md
@@ -70,7 +70,7 @@ dependencies {
 
 环信为管理者与开发者提供了方便易用的App工作台– **环信管理后台**。<br>
 通过环信管理后台可以完成应用创建、服务配置、企业信息修改基础功能;同时,管理后台也提供了发送消息、用户管理、群组管理、聊天室管理和数据统计等管理监控功能。<br>
-在开始集成前,你需要注册环信开发者账号并在后台创建应用,参见[创建应用](../im/uc_configure.html#创建应用) 。
+在开始集成前,你需要注册环信开发者账号并在后台创建应用,参见[创建应用](/document/v2/privatization/uc_configure.html#创建应用) 。
 
 ### 2. 创建项目
 
@@ -192,9 +192,9 @@ public void init(Context context) {
 
 ### 8. 环信ID注册登录
 
-在进行音视频通话前,需要首先登录IM账户,登录过程参见[账号登录](http://docs-im-beta.easemob.com/document/android/overview.html#%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95)。
+在进行音视频通话前,需要首先登录IM账户,登录过程参见[账号登录](/document/v2/android/overview.html#%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95)。
 
-若您还没有IM账户,需要先注册账户,注册过程参见[账号注册](http://docs-im-beta.easemob.com/document/android/overview.html#%E6%B3%A8%E5%86%8C%E7%94%A8%E6%88%B7)
+若您还没有IM账户,需要先注册账户,注册过程参见[账号注册](/document/v2/android/overview.html#%E6%B3%A8%E5%86%8C%E7%94%A8%E6%88%B7)
 
 ### 9. 音视频功能初始化
 
@@ -555,7 +555,7 @@ EMClient.getInstance().callManager().setWaterMark(watermark);
 
 ### 私有部署
 
-私有部署设置方法参见[私有云 Android SDK集成配置](../im/uc_android_private.md)。
+私有部署设置方法参见[私有云 Android SDK集成配置](/document/v2/android/privatecloud.html)。
 
 ## 客户端API
 
diff --git a/docs/private/media/one2one_ios.md b/docs/private/media/one2one_ios.md
index 4b2bcf299..a83dd55c1 100644
--- a/docs/private/media/one2one_ios.md
+++ b/docs/private/media/one2one_ios.md
@@ -49,7 +49,7 @@
 
 ### 1. 环信后台注册appkey
 
-在开始集成前,你需要注册环信开发者账号并在后台创建应用,参见[创建应用](../im/uc_configure.html#创建应用) 。
+在开始集成前,你需要注册环信开发者账号并在后台创建应用,参见[创建应用](/document/v2/privatization/uc_configure.html#创建应用) 。
 
 ### 2. 创建项目
 
@@ -133,9 +133,9 @@ retOpt.enableConsoleLog = YES;
 
 ### 7. 环信ID注册、登录
 
-在进行音视频通话前,需要首先登录IM账户,登录过程参见[账号登录](http://docs-im-beta.easemob.com/document/ios/overview.html#%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95)。
+在进行音视频通话前,需要首先登录IM账户,登录过程参见[账号登录](/document/v2/ios/overview.html#%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95)。
 
-若您还没有IM账户,需要先注册账户,注册过程参见[账号注册](http://docs-im-beta.easemob.com/document/ios/overview.html#%E6%B3%A8%E5%86%8C%E7%94%A8%E6%88%B7)
+若您还没有IM账户,需要先注册账户,注册过程参见[账号注册](/document/v2/ios/overview.html#%E6%B3%A8%E5%86%8C%E7%94%A8%E6%88%B7)
 
 ### 8. 音视频功能初始化
 
@@ -591,7 +591,7 @@ options.enableCustomizeVideoData = YES;
 
 ### 私有部署
 
-私有部署设置方法参见[私有云sdk集成配置](../im/uc_iOS_private.md)
+私有部署设置方法参见[私有云sdk集成配置](/document/v2/ios/privatecloud.html)
 
 ## 客户端API
 
diff --git a/docs/private/media/one2one_web.md b/docs/private/media/one2one_web.md
index f4771f439..128bafb08 100644
--- a/docs/private/media/one2one_web.md
+++ b/docs/private/media/one2one_web.md
@@ -36,7 +36,7 @@ HTTPS=true npm start
 
 ### 1. 环信后台注册 appkey
 
-在开始集成前,你需要注册环信开发者账号并在后台创建应用,参见[创建应用](../im/uc_configure.html#创建应用) 。
+在开始集成前,你需要注册环信开发者账号并在后台创建应用,参见[创建应用](/document/v2/privatization/uc_configure.html#创建应用) 。
 
 ### 2. 创建项目
 
@@ -348,7 +348,7 @@ var rtcCall = new webrtc.Call({
 
 ### 私有部署
 
-私有部署设置方法参见[私有云sdk集成配置](../im/uc_Web_private.md)。
+私有部署设置方法参见[私有云sdk集成配置](/document/v2/web/privatecloud.html)。
 
 ## 客户端API
 
diff --git a/docs/private/media/rest_introduction.md b/docs/private/media/rest_introduction.md
index 6d980baee..8ea04a915 100644
--- a/docs/private/media/rest_introduction.md
+++ b/docs/private/media/rest_introduction.md
@@ -1,6 +1,6 @@
 # REST接口简介
 
 
-音视频云的REST接口规则与即时通讯的REST规则是一致的,参考[服务端集成](../../document/server-side/overview.md)
+音视频云的REST接口规则与即时通讯的REST规则是一致的,参考[服务端集成](/document/v2/server-side/overview.md)
 
-在调用音视频云的REST接口前,需获取token,参考 [获取管理员权限](../../document/server-side/easemob_app_token.html#获取管理员权限-token)
\ No newline at end of file
+在调用音视频云的REST接口前,需获取token,参考 [获取管理员权限](/document/v2/server-side/easemob_app_token.html#获取管理员权限-token)
\ No newline at end of file
diff --git a/docs/private/media/scenario_live.md b/docs/private/media/scenario_live.md
index 03b9c034b..907439311 100644
--- a/docs/private/media/scenario_live.md
+++ b/docs/private/media/scenario_live.md
@@ -56,17 +56,17 @@
 
 多人视频会议如果需要环信即时通讯云的文字聊天室实现IM沟通功能,请详见文档:
 
-服务器端: [聊天室管理](http://docs-im-beta.easemob.com/document/server-side/chatroom.html)
+服务器端:[服务端集成](/document/v2/server-side/overview.html)
 
-Android: [聊天室管理](http://docs-im-beta.easemob.com/document/android/room_overview.html)
+Android:[Android SDK 介绍及导入](/document/v2/android/quickstart.html)
 
-iOS: [聊天室管理](http://docs-im-beta.easemob.com/document/ios/room_overview.html)
+iOS:[iOS SDK 快速集成](/document/v2/ios/quickstart.html)
 
-web端: [聊天室管理](http://docs-im-beta.easemob.com/document/web/room_overview.html)
+web端: [Web IM 介绍](/document/v2/web/quickstart.html)
 
-微信小程序: [聊天室管理](http://docs-im-beta.easemob.com/document/applet/room_overview.html)
+微信小程序: [微信小程序SDK简介](/document/v2/applet/wechat.html)
 
-PC端: [聊天室管理](https://docs-im.easemob.com/im/pc/basics/chatroom)
+PC端: [桌面端集成说明](https://docs-im.easemob.com/im/pc/intro/integration)
 
 
 <!--如果需要互动白板高级功能,请详见文档:
diff --git a/docs/private/media/scenario_meeting.md b/docs/private/media/scenario_meeting.md
index 10d6a2bca..8f826708e 100644
--- a/docs/private/media/scenario_meeting.md
+++ b/docs/private/media/scenario_meeting.md
@@ -41,17 +41,17 @@
 
 2. 多人视频会议如果需要环信即时通讯云的文字聊天室实现IM沟通功能,请详见文档:
 
-服务器端: [聊天室管理](http://docs-im-beta.easemob.com/document/server-side/chatroom.html)
+服务器端:[服务端集成](/document/v2/server-side/overview.html)
 
-Android: [聊天室管理](http://docs-im-beta.easemob.com/document/android/room_overview.html)
+Android:[Android SDK 介绍及导入](/document/v2/android/quickstart.html)
 
-iOS: [聊天室管理](http://docs-im-beta.easemob.com/document/ios/room_overview.html)
+iOS:[iOS SDK 快速集成](/document/v2/ios/quickstart.html)
 
-web端: [聊天室管理](http://docs-im-beta.easemob.com/document/web/room_overview.html)
+web端: [Web IM 介绍](/document/v2/web/quickstart.html)
 
-微信小程序: [聊天室管理](http://docs-im-beta.easemob.com/document/applet/room_overview.html)
+微信小程序: [微信小程序SDK简介](/document/v2/applet/wechat.html)
 
-PC端: [聊天室管理](https://docs-im.easemob.com/im/pc/basics/chatroom)
+PC端: [桌面端集成说明](https://docs-im.easemob.com/im/pc/intro/integration)
 
 
 <!--3. 如果需要互动白板高级功能,请详见文档:
diff --git a/docs/private/media/scenario_one2one.md b/docs/private/media/scenario_one2one.md
index c1c5d98d3..1258d3fcb 100644
--- a/docs/private/media/scenario_one2one.md
+++ b/docs/private/media/scenario_one2one.md
@@ -31,14 +31,14 @@
 
 2. 一对一音视频还需要用到环信即时通讯云的基础IM功能,请详见文档:
 
-服务器端:[服务端集成](http://docs-im-beta.easemob.com/document/server-side/overview.html)
+服务器端:[服务端集成](/document/v2/server-side/overview.html)
 
-Android:[Android SDK 介绍及导入](http://docs-im-beta.easemob.com/document/android/quickstart.html)
+Android:[Android SDK 介绍及导入](/document/v2/android/quickstart.html)
 
-iOS:[iOS SDK 快速集成](http://docs-im-beta.easemob.com/document/ios/quickstart.html)
+iOS:[iOS SDK 快速集成](/document/v2/ios/quickstart.html)
 
-web端: [Web IM 介绍](http://docs-im-beta.easemob.com/document/web/quickstart.html)
+web端: [Web IM 介绍](/document/v2/web/quickstart.html)
 
-微信小程序: [微信小程序SDK简介](http://docs-im-beta.easemob.com/document/applet/wechat.html)
+微信小程序: [微信小程序SDK简介](/document/v2/applet/wechat.html)
 
 PC端: [桌面端集成说明](https://docs-im.easemob.com/im/pc/intro/integration)
\ No newline at end of file
diff --git a/docs/push/image.png b/docs/push/image.png
new file mode 100644
index 000000000..6fa29c1a1
Binary files /dev/null and b/docs/push/image.png differ
diff --git a/docs/push/push_androidvendor_statistics.md b/docs/push/push_androidvendor_statistics.md
index 9a6054342..e89c4e42d 100644
--- a/docs/push/push_androidvendor_statistics.md
+++ b/docs/push/push_androidvendor_statistics.md
@@ -20,14 +20,12 @@
 
 #### 1.3、设置回调地址
 
-根据所在集群设置回调地址(配置 http)
+根据所在集群设置回调地址(配置 http),私有化部署见部署手册提供的环信IM REST API信息。
 格式为:`http://域名/orgname/appname/push/report/meizu`。
 
 ![img](@static/images/instantpush/push_flyme_callbackaddr.png)
 
-您可以在环信后台,**即时通讯** → **服务概览** 中查看当前 Appkey 的 Rest API 域名地址,仅支持填写 `easemob.com` 类型。
 
-![img](@static/images/instantpush/push_domain_name.png)
 
 #### 1.4、开启送达回执
 
@@ -62,10 +60,8 @@
 ##### 2.4.1、回调地址
 
 根据所在集群设置回调地址(配置 https,注意:华为只支持https地址配置)
-格式为:`https://域名/orgname/appname/push/report/huawei`
-您可以在环信后台,**即时通讯** > **服务概览** 中查看当前 Appkey 的 Rest API 域名地址,仅支持填写 `easemob.com` 类型。 
+格式为:`https://域名/orgname/appname/push/report/huawei`,私有化部署见部署手册提供的环信IM REST API信息。
 
-![img](@static/images/instantpush/push_domain_name.png)
 
 ##### 2.4.2、证书内容
 
diff --git a/docs/push/push_by_tag.md b/docs/push/push_by_tag.md
index 538f0c215..667370ed2 100644
--- a/docs/push/push_by_tag.md
+++ b/docs/push/push_by_tag.md
@@ -4,7 +4,7 @@
 
 你可以通过环信即时通讯控制台创建和管理标签,也可以通过 REST API 进行标签管理。用户与标签是多对多的关系,即一个用户可以对应多个标签,一个标签也可以对应多个用户。
 
-本文档主要介绍如何调用即时推送 REST API 实现创建及管理推送标签。调用以下方法前,请先参考 [接口频率限制](/document/server-side/error.html/product/limitation.html)了解即时通讯 RESTful API 的调用频率限制。
+本文档主要介绍如何调用即时推送 REST API 实现创建及管理推送标签。
 
 ## 公共参数
 
@@ -12,9 +12,9 @@
 
 | 参数       | 类型   | 是否必需 | 描述                                                |
 | :--------- | :----- | :------- | :-------------------------------------------------- |
-| `host`     | String | 是       | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。 |
-| `org_name` | String | 是       | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。  |
-| `app_name` | String | 是       | 你在环信即时通讯云控制台创建应用时填入的应用名称。  |
+| `host`     | String | 是       | 访问 RESTful API 的域名或服务器信息。<br/>-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。 <br/> -私有化集成为部署后 `服务器地址:端口`。 |
+| `org_name` | String | 是       | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。  |
+| `app_name` | String | 是       | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。   |
 | `username` | String | 是       | 用户 ID。                                           |
 
 ### 响应参数
@@ -75,7 +75,7 @@ POST https://{host}/{org_name}/{app_name}/push/label
 
 其他参数及描述详见 [公共参数](#公共参数)。
 
-如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/server-side/error.html/document/server-side/error.html) 了解可能的原因。
+如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/v2/server-side/error.html) 了解可能的原因。
 
 ### 示例
 
@@ -145,7 +145,7 @@ GET https://{host}/{org_name}/{app_name}/push/label/{labelname}
 
 其他参数及描述详见 [公共参数](#公共参数)。
 
-如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/server-side/error.html/document/server-side/error.html)了解可能的原因。
+如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/v2/server-side/error.html)了解可能的原因。
 
 ### 示例
 
@@ -214,7 +214,7 @@ GET https://{host}/{org_name}/{app_name}/push/label
 
 其他参数及描述详见 [公共参数](#公共参数)。
 
-如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/server-side/error.html/document/server-side/error.html) 了解可能的原因。
+如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/v2/server-side/error.html) 了解可能的原因。
 
 ### 示例
 
@@ -284,7 +284,7 @@ DELETE https://{host}/{org_name}/{app_name}/push/label/{labelname}
 
 其他参数及描述详见 [公共参数](#公共参数)。
 
-如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/server-side/error.html/document/server-side/error.html) 了解可能的原因。
+如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/v2/server-side/error.html) 了解可能的原因。
 
 ### 示例
 
@@ -350,7 +350,7 @@ POST https://{host}/{org_name}/{app_name}/push/label/{labelname}/user
 
 其他参数及描述详见 [公共参数](#公共参数)。
 
-如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/server-side/error.html/document/server-side/error.html) 了解可能的原因。
+如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/v2/server-side/error.html) 了解可能的原因。
 
 ### 示例
 
@@ -421,7 +421,7 @@ GET https://{host}/{org_name}/{app_name}/push/label/{labelname}/user/{username}
 
 其他参数及描述详见 [公共参数](#公共参数)。
 
-如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/server-side/error.html/document/server-side/error.html) 了解可能的原因。
+如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/v2/server-side/error.html) 了解可能的原因。
 
 ### 示例
 
@@ -492,7 +492,7 @@ GET https://{host}/{org_name}/{app_name}/push/label/{labelname}/user
 
 其他参数及描述详见 [公共参数](#公共参数)。
 
-如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/server-side/error.html/document/server-side/error.html) 了解可能的原因。
+如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/v2/server-side/error.html) 了解可能的原因。
 
 ### 示例
 
@@ -564,7 +564,7 @@ DELETE https://{host}/{org_name}/{app_name}/push/label/{labelname}/user
 
 其他参数及描述详见 [公共参数](#公共参数)。
 
-如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/server-side/error.html/document/server-side/error.html) 了解可能的原因。
+如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/v2/server-side/error.html) 了解可能的原因。
 
 ### 示例
 
diff --git a/docs/push/push_certificate_config.md b/docs/push/push_certificate_config.md
index e4f67d18e..f09e01afd 100644
--- a/docs/push/push_certificate_config.md
+++ b/docs/push/push_certificate_config.md
@@ -1,6 +1,6 @@
 ## 证书配置
 
-环信推送与IM使用相同的SDK,SDK下载地址:[下载页](https://www.easemob.com/download/im)
+环信推送与IM使用相同的SDK,[SDK下载页](/document/v2/privatization/uc_private.html) 
 
 Android端推送集成:[Android 推送集成](push_integration_process_android.html)
 
diff --git a/docs/push/push_createproduct_app.md b/docs/push/push_createproduct_app.md
index 3f1865fae..543b09a1c 100644
--- a/docs/push/push_createproduct_app.md
+++ b/docs/push/push_createproduct_app.md
@@ -7,31 +7,26 @@
 
 ### 1、创建环信应用
 
-注册环信账号,并登录环信通讯云管理后台:[环信通讯云管理后台](https://console.easemob.com/user/login),点击【添加应用】,根据提示填写应用信息,创建您的第一个应用。
+注册环信账号,并登录环信通讯云管理后台:[环信通讯云管理后台](/document/v2/privatization/uc_configure.html#创建应用),点击【添加应用】,根据提示填写应用信息,创建您的第一个应用。
 
-![img](@static/images/instantpush/push_create_app.png)
+![img](@static/images/instantpush/push_create_app.jpg)
 
 ### 2、开通PUSH服务
 
-APP创建成功后,将显示至【应用列表】中,选中创建的APP,点击其【查看】按钮,为您的APP开通相应业务。 
+APP创建成功后,将显示至【应用列表】中,选中创建的APP,点击其【管理】按钮,为您的APP开通相应业务。 
 
-![img](@static/images/instantpush/push_view_app.jpg)
+左侧菜单栏为环信支持的私有化业务,这里选中【即时推送】→【服务概览】,**私有化服务默认开通PUSH业务**。
 
-左侧菜单栏为环信云支持的即时通讯、MQTT、短信服务、实时音视频以及PUSH等业务。
+![img](@static/images/instantpush/push_open_app.jpg)
 
-这里选中【即时推送】→【服务概览】,点击页面中【立即开通】按钮开通PUSH业务。
-
-![img](@static/images/instantpush/push_enable.png)
-
-默认开通PUSH免费版,不收取任何费用,如需开通更高版本套餐,请咨询商务经理。
 
 ### 3、集成环信PUSH服务
 
 #### 3.1 SDK下载
 
-环信推送与IM使用相同的SDK,SDK下载地址:[SDK下载页](https://www.easemob.com/download/im) 。
+环信推送与IM使用相同的SDK,SDK下载地址:[SDK下载页](/document/v2/privatization/uc_private.html) 。
 
-![img](@static/images/instantpush/push_sdk_download.png)
+![img](@static/images/instantpush/push_sdk_download.jpg)
 
 :::notice
 环信IM用户可直接使用,无需进行移动端集成。
@@ -53,6 +48,6 @@ APP创建成功后,将显示至【应用列表】中,选中创建的APP,
 
 未使用环信IM的用户,需要单独创建用户并进行用户体系集成。
 点击【应用概览】进入【用户认证】界面,点击【创建IM用户】可以在页面中添加用户,也可使用REST API进行用户配置。
-用户体系集成介绍参考文档:[用户体系集成](/document/server-side/account_system.html) 
+用户体系集成介绍参考文档:[用户体系集成](/document/v2/server-side/account_system.html) 
 
 ![img](@static/images/instantpush/push_bind_user.png)
diff --git a/docs/push/push_integration_note_android.md b/docs/push/push_integration_note_android.md
index 74f0ef35c..3f23dee05 100644
--- a/docs/push/push_integration_note_android.md
+++ b/docs/push/push_integration_note_android.md
@@ -6,9 +6,9 @@
 
 环信推送与环信 IM 使用相同的 SDK,你可以参考 IM 文档导入和集成 SDK, 然后注册登录。
 
-SDK 导入:[Android SDK 导入](/document/android/quickstart.html#_2-集成-sdk)
+SDK 导入:[Android SDK 导入](/document/v2/android/quickstart.html#_2-集成-sdk)
 
-注册登录:[注册登录](/document/android/overview.html#注册用户)
+注册登录:[注册登录](/document/v2/android/overview.html#注册用户)
 
 **手机权限**
 
@@ -57,4 +57,4 @@ public void onNotificationClick(Context context, EMNotificationMessage notificat
 
 ## 3、离线推送集成
 
-离线推送需参考环信 IM 的[第三方推送集成](/document/android/push.html),集成各个厂商的推送(如不需要离线推送,可忽略)。
\ No newline at end of file
+离线推送需参考环信 IM 的[第三方推送集成](/document/v2/android/push.html),集成各个厂商的推送(如不需要离线推送,可忽略)。
\ No newline at end of file
diff --git a/docs/push/push_integration_note_ios.md b/docs/push/push_integration_note_ios.md
index b3cfe4b2c..4e9706c64 100644
--- a/docs/push/push_integration_note_ios.md
+++ b/docs/push/push_integration_note_ios.md
@@ -4,9 +4,9 @@
 
 ## iOS SDK 使用须知
 
-使用 SDK 之前,你需先创建应用,获取应用的唯一标识 App Key,请参见[创建应用](/product/enable_and_configure_IM.html#创建应用)。
+使用 SDK 之前,你需先创建应用,获取应用的唯一标识 App Key,请参见[创建应用](/document/v2/privatization/uc_configure.html#创建应用)。
 
-环信推送分为在线推送和远程推送,远程推送时通过 APNS 下发,所以你需要配置应用对应的证书,请参见[APNS 推送配置](/document/ios/push.html#开启推送权限并上传推送证书)。
+环信推送分为在线推送和远程推送,远程推送时通过 APNS 下发,所以你需要配置应用对应的证书,请参见[APNS 推送配置](/document/v2/ios/push.html#开启推送权限并上传推送证书)。
 
 ## 集成 SDK
 
@@ -41,7 +41,7 @@ pod install --repo-update
 
 ### 手动导入
 
-[下载环信 demo](https://www.easemob.com/download/demo)。
+[下载环信 demo](https://downloadsdk.easemob.com/downloads/iOS_IM_SDK_V4.1.1.zip)。
 
 开发者最开始集成,如果选择手动导入文件集成的方式,只需要向工程中添 HyphenateChat 就可以,下面会介绍具体的集成方式。
 
@@ -94,7 +94,7 @@ demo 中的 SDK 文件夹为 **Hyphenate SDK**,将 SDK 文件夹拖入到工
 }
 ```
 
-调用的 SDK 接口参数解释如下:\ App Key: 区别 APP 的标识,请参考[开发者注册及管理后台](https://docs-im.easemob.com/im/quickstart/guide/experience#注册并创建应用)。 \ apnsCertName: iOS 中推送证书名称,请参考[制作与上传推送证书](https://docs-im.easemob.com/im/ios/apns/deploy)。
+调用的 SDK 接口参数解释如下:\ App Key: 区别 APP 的标识,请参考[开发者注册及管理后台](/document/v2/privatization/uc_configure.html#创建应用)。 \ apnsCertName: iOS 中推送证书名称,请参考[制作与上传推送证书](https://docs-im.easemob.com/im/ios/apns/deploy)。
 
 ### SDK 登录流程
 
@@ -110,7 +110,7 @@ demo 中的 SDK 文件夹为 **Hyphenate SDK**,将 SDK 文件夹拖入到工
 }];
 ```
 
-有关更多注册登录等基础功能,请参考[iOS SDK基础功能](https://docs-im.easemob.com/im/ios/sdk/basic)。
+有关更多注册登录等基础功能,请参考[iOS SDK基础功能](/document/v2/ios/overview.html)。
 
 ## SDK 推送集成
 
diff --git a/docs/push/push_send_notification.md b/docs/push/push_send_notification.md
index 2d48add80..ae108d6d8 100644
--- a/docs/push/push_send_notification.md
+++ b/docs/push/push_send_notification.md
@@ -19,9 +19,9 @@
 
 | 参数       | 类型   | 是否必需 | 描述                                                |
 | :--------- | :----- | :------- | :-------------------------------------------------- |
-| `host`     | String | 是       | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。 |
-| `org_name` | String | 是       | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。  |
-| `app_name` | String | 是       | 你在环信即时通讯云控制台创建应用时填入的应用名称。  |
+| `host`     | String | 是       | 访问 RESTful API 的域名或服务器信息。<br/>-公有云集成为 环信即时通讯控制台的 `即时通讯->服务概览`页面下的 `域名配置- Rest Api`。 <br/> -私有化集成为部署后 `服务器地址:端口`。 |
+| `org_name` | String | 是       | 每个公司(组织)分配的唯一标识。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Orgname`。  |
+| `app_name` | String | 是       | 创建应用时填入的应用名称。详见 环信即时通讯控制台的 `应用概览->应用详情`页面下的 `应用信息-Appname`。   |
 | `username` | String | 是       | 用户 ID。                                           |
 
 ### 响应参数
@@ -37,7 +37,7 @@
 
 Authorization:`Bearer ${YourAppToken}`
 
-为提高项目的安全性,环信使用 Token(动态密钥)对即将登录即时通讯系统的用户进行鉴权。即时通讯 RESTful API 推荐使用 app token 的鉴权方式,详见 [使用 app token 鉴权](/document/server-side/easemob_app_token.html)。
+为提高项目的安全性,环信使用 Token(动态密钥)对即将登录即时通讯系统的用户进行鉴权。即时通讯 RESTful API 推荐使用 app token 的鉴权方式,详见 [使用 app token 鉴权](/document/v2/server-side/easemob_app_token.html)。
 
 ## 以同步方式发送推送通知
 
@@ -89,7 +89,7 @@ POST https://{host}/{org_name}/{app_name}/push/sync/{target}
 
 其他参数及说明详见 [公共参数](#公共参数)。
 
-如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/server-side/error.html) 了解可能的原因。
+如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/v2/server-side/error.html) 了解可能的原因。
 
 ### 示例
 
@@ -210,7 +210,7 @@ POST https://{host}/{org_name}/{app_name}/push/single
 
 其他参数及说明详见 [公共参数](#公共参数)。
 
-如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/server-side/error.html) 了解可能的原因。
+如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/v2/server-side/error.html) 了解可能的原因。
 
 ### 示例
 
@@ -291,7 +291,7 @@ POST https://{host}/{org_name}/{app_name}/push/list/label
 
 其他参数及说明详见 [公共参数](#公共参数)。
 
-如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/server-side/error.html) 了解可能的原因。
+如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/v2/server-side/error.html) 了解可能的原因。
 
 ### 示例
 
@@ -366,7 +366,7 @@ POST https://{host}/{org_name}/{app_name}/push/task
 
 其他参数及说明详见 [公共参数](#公共参数)。
 
-如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/server-side/error.html) 了解可能的原因。
+如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/v2/server-side/error.html) 了解可能的原因。
 
 ### 示例
 
@@ -437,7 +437,7 @@ POST https://{host}/{org_name}/{app_name}/push/message
 
 其他参数及说明详见 [公共参数](#公共参数)。
 
-如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/server-side/error.html) 了解可能的原因。
+如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/v2/server-side/error.html) 了解可能的原因。
 
 #### 示例
 
@@ -501,7 +501,7 @@ POST https://{host}/{org_name}/{app_name}/push/message/{messageId}
 
 其他参数及说明详见 [公共参数](#公共参数)。
 
-如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/server-side/error.html) 了解可能的原因。
+如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/v2/server-side/error.html) 了解可能的原因。
 
 #### 示例
 
@@ -569,7 +569,7 @@ POST https://{host}/{org_name}/{app_name}/push/task/broadcast
 
 其他参数及说明详见 [公共参数](#公共参数)。
 
-如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/server-side/error.html) 了解可能的原因。
+如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](/document/v2/server-side/error.html) 了解可能的原因。
 
 #### 示例
 
diff --git a/static/images/instantpush/push_create_app.jpg b/static/images/instantpush/push_create_app.jpg
new file mode 100644
index 000000000..996edd240
Binary files /dev/null and b/static/images/instantpush/push_create_app.jpg differ
diff --git a/static/images/instantpush/push_open_app.jpg b/static/images/instantpush/push_open_app.jpg
new file mode 100644
index 000000000..3cb824cfe
Binary files /dev/null and b/static/images/instantpush/push_open_app.jpg differ
diff --git a/static/images/instantpush/push_sdk_download.jpg b/static/images/instantpush/push_sdk_download.jpg
new file mode 100644
index 000000000..d096333ad
Binary files /dev/null and b/static/images/instantpush/push_sdk_download.jpg differ
diff --git a/static/images/privitization/deploy_user_manage.png b/static/images/privitization/deploy_user_manage.png
new file mode 100644
index 000000000..247892ae1
Binary files /dev/null and b/static/images/privitization/deploy_user_manage.png differ
diff --git a/static/images/privitization/faq-msgdeliveryquery.jpg b/static/images/privitization/faq-msgdeliveryquery.jpg
new file mode 100644
index 000000000..c5b0b6e3d
Binary files /dev/null and b/static/images/privitization/faq-msgdeliveryquery.jpg differ
diff --git a/static/images/privitization/faq-userconnectionstatus.jpg b/static/images/privitization/faq-userconnectionstatus.jpg
new file mode 100644
index 000000000..5de5029ec
Binary files /dev/null and b/static/images/privitization/faq-userconnectionstatus.jpg differ
diff --git a/static/images/privitization/framework.jpg b/static/images/privitization/framework.jpg
new file mode 100644
index 000000000..6738f5f7b
Binary files /dev/null and b/static/images/privitization/framework.jpg differ