@tencent-rtc/mcp 1.4.7 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (553) hide show
  1. package/cursor-setting.png +0 -0
  2. package/index.js +0 -1
  3. package/knowledge/bm25-cache.js +73 -0
  4. package/knowledge/bm25.js +147 -0
  5. package/knowledge/build-index.js +69 -0
  6. package/knowledge/chunker.js +167 -0
  7. package/knowledge/content-loader.js +39 -0
  8. package/knowledge/doc-url-resolver.js +142 -0
  9. package/knowledge/extractors.js +25 -0
  10. package/knowledge/path-meta.js +184 -0
  11. package/knowledge/search/exact-lookup.js +497 -0
  12. package/knowledge/search/filter-pool.js +104 -0
  13. package/knowledge/search/product-scope-intent.js +40 -0
  14. package/knowledge/search/requires-framework.js +81 -0
  15. package/knowledge/search/search-knowledge.js +229 -0
  16. package/mcp-server-prompt.png +0 -0
  17. package/package.json +1 -1
  18. package/resource/_schema/feature-aliases.yaml +10 -0
  19. package/resource/_schema/goal-tags.yaml +72 -0
  20. package/resource/_schema/products.yaml +19 -0
  21. package/resource/_schema/trtc-intents.yaml +27 -0
  22. package/resource/_schema/types.yaml +43 -0
  23. package/resource/index/component-slugs.json +1 -0
  24. package/resource/index/doc-source-urls.json +1 -0
  25. package/resource/index/manifest.json +1 -0
  26. package/resource/{doc → integration}/callkit/preset/android/integration.md +34 -28
  27. package/resource/integration/callkit/preset/flutter/integration.md +346 -0
  28. package/resource/integration/callkit/preset/ios/integration.md +408 -0
  29. package/resource/integration/callkit/preset/react/integration.md +362 -0
  30. package/resource/integration/callkit/preset/vue/integration.md +356 -0
  31. package/resource/integration/chat/preset/android/integration.md +500 -0
  32. package/resource/integration/chat/preset/flutter/integration.md +370 -0
  33. package/resource/integration/chat/preset/ios/integration.md +566 -0
  34. package/resource/integration/chat/preset/react/integration.md +490 -0
  35. package/resource/integration/chat/preset/vue/integration.md +504 -0
  36. package/resource/{doc → integration}/livekit/preset/live/vue/live-list-integration.md +26 -22
  37. package/resource/{doc → integration}/livekit/preset/live/vue/live-player-desk-integration.md +22 -18
  38. package/resource/integration/livekit/preset/live/vue/live-player-h5-integration.md +309 -0
  39. package/resource/{doc → integration}/livekit/preset/live/vue/live-pusher-integration.md +47 -39
  40. package/resource/integration/roomkit/preset/vue/integration.md +562 -0
  41. package/resource/knowledge/callkit/core-sdk/android/answer-call.md +828 -0
  42. package/resource/knowledge/callkit/core-sdk/android/make-call.md +897 -0
  43. package/resource/knowledge/callkit/core-sdk/android/offline-push.md +363 -0
  44. package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +1111 -0
  45. package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +1132 -0
  46. package/resource/{doc → knowledge}/callkit/core-sdk/flutter/offline-push.md +174 -151
  47. package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +1084 -0
  48. package/resource/knowledge/callkit/core-sdk/ios/make-call.md +1252 -0
  49. package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +534 -0
  50. package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +953 -0
  51. package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +1061 -0
  52. package/resource/knowledge/callkit/faq/android.md +92 -0
  53. package/resource/{doc/callkit/faq/android-faq.md → knowledge/callkit/faq/common.md} +11 -12
  54. package/resource/knowledge/callkit/faq/error-code.md +67 -0
  55. package/resource/knowledge/callkit/faq/flutter.md +52 -0
  56. package/resource/knowledge/callkit/faq/ios.md +104 -0
  57. package/resource/knowledge/callkit/faq/web.md +74 -0
  58. package/resource/knowledge/callkit/preset/android/api.md +412 -0
  59. package/resource/knowledge/callkit/preset/flutter/api.md +22 -0
  60. package/resource/knowledge/callkit/preset/ios/api.md +234 -0
  61. package/resource/knowledge/callkit/preset/web/api.md +83 -0
  62. package/resource/knowledge/chat/preset/android/features/chat-setting.md +74 -0
  63. package/resource/knowledge/chat/preset/android/features/contact-list.md +43 -0
  64. package/resource/knowledge/chat/preset/android/features/conversation-list.md +117 -0
  65. package/resource/knowledge/chat/preset/android/features/language.md +136 -0
  66. package/resource/knowledge/chat/preset/android/features/message-input.md +57 -0
  67. package/resource/knowledge/chat/preset/android/features/message-list.md +142 -0
  68. package/resource/knowledge/chat/preset/android/features/search.md +64 -0
  69. package/resource/knowledge/chat/preset/android/features/theme.md +222 -0
  70. package/resource/knowledge/chat/preset/android-view/integration.md +300 -0
  71. package/resource/knowledge/chat/preset/flutter/features/chat-setting.md +64 -0
  72. package/resource/knowledge/chat/preset/flutter/features/contact-list.md +40 -0
  73. package/resource/knowledge/chat/preset/flutter/features/conversation-list.md +129 -0
  74. package/resource/knowledge/chat/preset/flutter/features/language.md +104 -0
  75. package/resource/knowledge/chat/preset/flutter/features/message-input.md +54 -0
  76. package/resource/knowledge/chat/preset/flutter/features/message-list.md +158 -0
  77. package/resource/knowledge/chat/preset/flutter/features/search.md +59 -0
  78. package/resource/knowledge/chat/preset/flutter/features/theme.md +261 -0
  79. package/resource/knowledge/chat/preset/ios/features/chat-setting.md +94 -0
  80. package/resource/knowledge/chat/preset/ios/features/contact-list.md +119 -0
  81. package/resource/knowledge/chat/preset/ios/features/conversation-list.md +134 -0
  82. package/resource/knowledge/chat/preset/ios/features/language.md +125 -0
  83. package/resource/knowledge/chat/preset/ios/features/message-input.md +69 -0
  84. package/resource/knowledge/chat/preset/ios/features/message-list.md +162 -0
  85. package/resource/knowledge/chat/preset/ios/features/search.md +93 -0
  86. package/resource/knowledge/chat/preset/ios/features/theme.md +270 -0
  87. package/resource/{doc/chatkit/ios → knowledge/chat/preset/ios-uikit}/integration.md +160 -158
  88. package/resource/knowledge/chat/preset/react/features/chat-setting.md +101 -0
  89. package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/contact-list.md +43 -41
  90. package/resource/knowledge/chat/preset/react/features/conversation-actions.md +215 -0
  91. package/resource/knowledge/chat/preset/react/features/conversation-list.md +339 -0
  92. package/resource/knowledge/chat/preset/react/features/conversation-preview.md +101 -0
  93. package/resource/knowledge/chat/preset/react/features/conversation-search.md +61 -0
  94. package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/message-input.md +117 -156
  95. package/resource/knowledge/chat/preset/react/features/message-list.md +297 -0
  96. package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/search.md +65 -59
  97. package/resource/knowledge/chat/preset/react/features/theme.md +93 -0
  98. package/resource/knowledge/chat/preset/vue/features/chat-header.md +331 -0
  99. package/resource/knowledge/chat/preset/vue/features/chat-setting.md +79 -0
  100. package/resource/knowledge/chat/preset/vue/features/contact-list.md +277 -0
  101. package/resource/knowledge/chat/preset/vue/features/conversation-actions.md +234 -0
  102. package/resource/knowledge/chat/preset/vue/features/conversation-list.md +331 -0
  103. package/resource/knowledge/chat/preset/vue/features/conversation-preview.md +216 -0
  104. package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/conversation-search.md +13 -13
  105. package/resource/knowledge/chat/preset/vue/features/message-input.md +551 -0
  106. package/resource/knowledge/chat/preset/vue/features/message-list.md +350 -0
  107. package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/search.md +79 -73
  108. package/resource/knowledge/chat/preset/vue/features/theme.md +136 -0
  109. package/resource/knowledge/chat/urls/error-code.md +17 -0
  110. package/resource/knowledge/chat/urls/product.md +43 -0
  111. package/resource/knowledge/chat/urls/restapi.md +204 -0
  112. package/resource/knowledge/chat/urls/sdk/android.md +80 -0
  113. package/resource/knowledge/chat/urls/sdk/flutter.md +71 -0
  114. package/resource/knowledge/chat/urls/sdk/ios.md +80 -0
  115. package/resource/knowledge/chat/urls/sdk/web.md +80 -0
  116. package/resource/knowledge/chat/urls/webhook.md +68 -0
  117. package/resource/knowledge/livekit/core-sdk/api-reference/android/AudioEffectStore.md +286 -0
  118. package/resource/knowledge/livekit/core-sdk/api-reference/android/BarrageStore.md +174 -0
  119. package/resource/knowledge/livekit/core-sdk/api-reference/android/BattleStore.md +329 -0
  120. package/resource/knowledge/livekit/core-sdk/api-reference/android/CameraView.md +55 -0
  121. package/resource/knowledge/livekit/core-sdk/api-reference/android/CoGuestStore.md +434 -0
  122. package/resource/knowledge/livekit/core-sdk/api-reference/android/CoHostStore.md +362 -0
  123. package/resource/knowledge/livekit/core-sdk/api-reference/android/DeviceStore.md +466 -0
  124. package/resource/knowledge/livekit/core-sdk/api-reference/android/GiftStore.md +173 -0
  125. package/resource/knowledge/livekit/core-sdk/api-reference/android/LikeStore.md +51 -0
  126. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveAudienceStore.md +291 -0
  127. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveCoreView.md +78 -0
  128. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveSeatStore.md +488 -0
  129. package/resource/knowledge/livekit/core-sdk/api-reference/android/LoginStore.md +219 -0
  130. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/AudioEffectStore.md +282 -0
  131. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BarrageStore.md +212 -0
  132. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BaseBeautyStore.md +153 -0
  133. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BattleStore.md +312 -0
  134. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoGuestStore.md +404 -0
  135. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoHostStore.md +334 -0
  136. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/DeviceStore.md +426 -0
  137. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/GiftStore.md +166 -0
  138. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LikeStore.md +52 -0
  139. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveAudienceStore.md +281 -0
  140. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveCoreView.md +150 -0
  141. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveSeatStore.md +438 -0
  142. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LoginStore.md +190 -0
  143. package/resource/knowledge/livekit/core-sdk/api-reference/ios/AudioEffectStore.md +291 -0
  144. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BarrageStore.md +192 -0
  145. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BaseBeautyStore.md +146 -0
  146. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BattleStore.md +309 -0
  147. package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoGuestStore.md +370 -0
  148. package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoHostStore.md +339 -0
  149. package/resource/knowledge/livekit/core-sdk/api-reference/ios/DeviceStore.md +503 -0
  150. package/resource/knowledge/livekit/core-sdk/api-reference/ios/GiftStore.md +188 -0
  151. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LikeStore.md +51 -0
  152. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveAudienceStore.md +289 -0
  153. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveCoreView.md +78 -0
  154. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveSeatStore.md +487 -0
  155. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LoginStore.md +183 -0
  156. package/resource/knowledge/livekit/core-sdk/api-reference/web/index.md +736 -0
  157. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-audience-list.md +53 -47
  158. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-audio-effect.md +28 -24
  159. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-barrage.md +22 -18
  160. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-base-beauty.md +17 -15
  161. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-co-guest-interaction.md +19 -18
  162. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-gift.md +102 -89
  163. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-host-interaction.md +41 -37
  164. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-integration.md +45 -43
  165. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-live-list.md +23 -20
  166. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-audience-list.md +41 -41
  167. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-audio-effect.md +70 -69
  168. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-barrage.md +68 -71
  169. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-base-beauty.md +43 -47
  170. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-co-guest-interaction.md +59 -56
  171. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-gift.md +103 -105
  172. package/resource/knowledge/livekit/core-sdk/live/flutter/live-host-interaction.md +869 -0
  173. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-integration.md +84 -87
  174. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-live-list.md +43 -40
  175. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-audience-list.md +11 -10
  176. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-audio-effect.md +28 -24
  177. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-barrage.md +22 -18
  178. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-base-beauty.md +15 -14
  179. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-co-guest-interaction.md +19 -18
  180. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-gift.md +54 -50
  181. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-host-interaction.md +41 -37
  182. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-integration.md +40 -40
  183. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-live-list.md +19 -18
  184. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-audience-list.md +53 -47
  185. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-audio-effect.md +28 -24
  186. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-barrage.md +22 -18
  187. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-co-guest-interaction.md +41 -33
  188. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-gift.md +94 -81
  189. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-host-interaction.md +35 -30
  190. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-integration.md +45 -42
  191. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-room-list.md +23 -20
  192. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audience-list.md +260 -0
  193. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audio-effect.md +598 -0
  194. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-barrage.md +490 -0
  195. package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-co-guest-interaction.md +65 -59
  196. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-gift.md +424 -0
  197. package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-integration.md +69 -76
  198. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-room-list.md +726 -0
  199. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-audience-list.md +11 -10
  200. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-audio-effect.md +28 -24
  201. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-barrage.md +22 -18
  202. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-co-guest-interaction.md +41 -33
  203. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-gift.md +54 -50
  204. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-host-interaction.md +35 -30
  205. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-integration.md +49 -46
  206. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-room-list.md +19 -18
  207. package/resource/knowledge/livekit/faq/error-code.md +193 -0
  208. package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/barrage.md +56 -53
  209. package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/live-audience-list.md +22 -21
  210. package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/live-view.md +34 -32
  211. package/resource/knowledge/push/config/android.md +92 -0
  212. package/resource/knowledge/push/config/harmonyos.md +83 -0
  213. package/resource/knowledge/push/config/ios.md +254 -0
  214. package/resource/knowledge/push/config/react-native.md +254 -0
  215. package/resource/knowledge/push/config/unity.md +209 -0
  216. package/resource/knowledge/push/config/unreal-engine.md +194 -0
  217. package/resource/knowledge/push/integration/android.md +404 -0
  218. package/resource/knowledge/push/integration/flutter.md +465 -0
  219. package/resource/knowledge/push/integration/harmonyos.md +63 -0
  220. package/resource/knowledge/push/integration/ios.md +246 -0
  221. package/resource/knowledge/push/integration/react-native.md +366 -0
  222. package/resource/knowledge/push/integration/uni-app.md +208 -0
  223. package/resource/knowledge/push/integration/unity.md +389 -0
  224. package/resource/knowledge/push/integration/unreal-engine.md +390 -0
  225. package/resource/knowledge/push/overview/prepare.md +60 -0
  226. package/resource/knowledge/roomkit/core-sdk/android/call-user-to-room.md +241 -0
  227. package/resource/knowledge/roomkit/core-sdk/android/room-participant-state.md +588 -0
  228. package/resource/knowledge/roomkit/core-sdk/android/room-state.md +364 -0
  229. package/resource/knowledge/roomkit/core-sdk/android/schedule-room.md +340 -0
  230. package/resource/knowledge/roomkit/core-sdk/flutter/call-user-to-room.md +230 -0
  231. package/resource/knowledge/roomkit/core-sdk/flutter/room-participant-state.md +797 -0
  232. package/resource/knowledge/roomkit/core-sdk/flutter/room-state.md +325 -0
  233. package/resource/knowledge/roomkit/core-sdk/flutter/schedule-room.md +325 -0
  234. package/resource/knowledge/roomkit/core-sdk/ios/call-user-to-room.md +233 -0
  235. package/resource/knowledge/roomkit/core-sdk/ios/room-participant-state.md +569 -0
  236. package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +325 -0
  237. package/resource/knowledge/roomkit/core-sdk/ios/schedule-room.md +322 -0
  238. package/resource/knowledge/roomkit/core-sdk/vue/call-user-to-room.md +221 -0
  239. package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/device-detection.md +49 -48
  240. package/resource/knowledge/roomkit/core-sdk/vue/device-state.md +461 -0
  241. package/resource/knowledge/roomkit/core-sdk/vue/free-beauty-panel.md +216 -0
  242. package/resource/knowledge/roomkit/core-sdk/vue/room-chat.md +370 -0
  243. package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/room-participant-state.md +61 -60
  244. package/resource/knowledge/roomkit/core-sdk/vue/room-state.md +280 -0
  245. package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/room-view.md +57 -56
  246. package/resource/knowledge/roomkit/core-sdk/vue/schedule-room.md +319 -0
  247. package/resource/knowledge/roomkit/core-sdk/vue/screen-share.md +267 -0
  248. package/resource/knowledge/roomkit/core-sdk/vue/virtual-background.md +261 -0
  249. package/resource/knowledge/roomkit/preset/android/integration.md +396 -0
  250. package/resource/knowledge/roomkit/preset/flutter/integration.md +404 -0
  251. package/resource/knowledge/roomkit/preset/ios/integration.md +369 -0
  252. package/resource/knowledge/roomkit/preset/react/integration.md +576 -0
  253. package/resource/knowledge/rtcengine/web/how_to_run_web_sdk_demo.md +44 -0
  254. package/resource/{doc → knowledge}/rtcengine/web/plugin/21-advanced-auto-play-policy.md +8 -2
  255. package/resource/{doc → knowledge}/rtcengine/web/plugin/22-advanced-audio-mixer.md +19 -1
  256. package/resource/{doc → knowledge}/rtcengine/web/plugin/23-advanced-support-detection.md +1 -1
  257. package/resource/{doc → knowledge}/rtcengine/web/plugin/24-advanced-network-quality.md +8 -8
  258. package/resource/{doc → knowledge}/rtcengine/web/plugin/25-advanced-device-change.md +1 -1
  259. package/resource/{doc → knowledge}/rtcengine/web/plugin/26-advanced-publish-cdn-stream.md +6 -6
  260. package/resource/{doc → knowledge}/rtcengine/web/plugin/27-advanced-small-stream.md +3 -3
  261. package/resource/{doc → knowledge}/rtcengine/web/plugin/29-advanced-water-mark.md +18 -0
  262. package/resource/{doc → knowledge}/rtcengine/web/plugin/31-advanced-plugins-overview.md +1 -1
  263. package/resource/{doc → knowledge}/rtcengine/web/plugin/34-advanced-proxy.md +2 -2
  264. package/resource/{doc → knowledge}/rtcengine/web/plugin/35-advanced-ai-denoiser.md +1 -1
  265. package/resource/knowledge/trtc/android/TRTCCloud.md +1915 -0
  266. package/resource/knowledge/trtc/android/TRTCCloudDef.md +1029 -0
  267. package/resource/knowledge/trtc/android/TRTCCloudListener.md +1095 -0
  268. package/resource/knowledge/trtc/android/TRTCStatistics.md +68 -0
  269. package/resource/knowledge/trtc/android/TXAudioEffectManager.md +502 -0
  270. package/resource/knowledge/trtc/android/TXBeautyManager.md +415 -0
  271. package/resource/knowledge/trtc/android/TXDeviceManager.md +169 -0
  272. package/resource/knowledge/trtc/android/TXLiteAVCode.md +125 -0
  273. package/resource/knowledge/trtc/c++/ITRTCCloud.md +2069 -0
  274. package/resource/knowledge/trtc/c++/ITRTCStatistics.md +73 -0
  275. package/resource/knowledge/trtc/c++/ITXAudioEffectManager.md +502 -0
  276. package/resource/knowledge/trtc/c++/ITXDeviceManager.md +391 -0
  277. package/resource/knowledge/trtc/c++/TRTCCloudCallback.md +1191 -0
  278. package/resource/knowledge/trtc/c++/TRTCTypeDef.md +931 -0
  279. package/resource/knowledge/trtc/c++/TXLiteAVCode.md +127 -0
  280. package/resource/knowledge/trtc/ios/TRTCCloud.md +2118 -0
  281. package/resource/knowledge/trtc/ios/TRTCCloudDef.md +975 -0
  282. package/resource/knowledge/trtc/ios/TRTCCloudDelegate.md +1131 -0
  283. package/resource/knowledge/trtc/ios/TRTCStatistics.md +68 -0
  284. package/resource/knowledge/trtc/ios/TXAudioEffectManager.md +423 -0
  285. package/resource/knowledge/trtc/ios/TXBeautyManager.md +416 -0
  286. package/resource/knowledge/trtc/ios/TXDeviceManager.md +387 -0
  287. package/resource/knowledge/trtc/ios/TXLiteAVCode.md +127 -0
  288. package/server-config.js +0 -1
  289. package/server.js +35 -12
  290. package/streamable-http.js +0 -1
  291. package/tools/call/get_native_call_uikit_integration.js +2 -4
  292. package/tools/call/get_native_callkit_core_integration.js +2 -6
  293. package/tools/call/get_web_call_uikit_integration.js +2 -4
  294. package/tools/chat/get_native_chat_uikit_integration.js +2 -4
  295. package/tools/chat/get_web_chat_uikit_integration.js +2 -4
  296. package/tools/common/get_usersig.js +0 -1
  297. package/tools/common/present_framework_choice.js +19 -14
  298. package/tools/common/record_answer.js +19 -26
  299. package/tools/common/record_feedback.js +17 -31
  300. package/tools/common/search_trtc_knowledge.js +44 -0
  301. package/tools/definitions/get_native_call_uikit_integration_def.js +3 -2
  302. package/tools/definitions/get_native_callkit_core_integration_def.js +5 -4
  303. package/tools/definitions/get_native_chat_uikit_integration_def.js +5 -3
  304. package/tools/definitions/get_native_livekit_core_integration_def.js +6 -6
  305. package/tools/definitions/get_usersig_def.js +0 -1
  306. package/tools/definitions/get_web_call_uikit_integration_def.js +4 -3
  307. package/tools/definitions/get_web_chat_uikit_integration_def.js +2 -1
  308. package/tools/definitions/get_web_live_uikit_integration_def.js +5 -6
  309. package/tools/definitions/get_web_room_core_integration_def.js +49 -0
  310. package/tools/definitions/get_web_room_uikit_integration_def.js +5 -5
  311. package/tools/definitions/integration-boundary.js +5 -0
  312. package/tools/definitions/present_framework_choice_def.js +12 -11
  313. package/tools/definitions/record_answer_def.js +19 -18
  314. package/tools/definitions/record_feedback_def.js +14 -14
  315. package/tools/definitions/search_trtc_knowledge_def.js +39 -0
  316. package/tools/index.js +5 -37
  317. package/tools/live/get_native_livekit_core_integration.js +1 -4
  318. package/tools/live/get_web_live_uikit_integration.js +2 -5
  319. package/tools/room/get_web_room_core_integration.js +47 -0
  320. package/tools/room/get_web_room_uikit_integration.js +2 -4
  321. package/utils/generate-structured-result.js +24 -31
  322. package/utils/generate-usersig.js +0 -1
  323. package/utils/get-device-identifier.js +0 -1
  324. package/utils/get-doc-content.js +14 -9
  325. package/utils/http-get.js +0 -1
  326. package/utils/http-post.js +0 -1
  327. package/utils/report-cls-client.js +18 -21
  328. package/utils/report-es-client.js +1 -2
  329. package/index.js.map +0 -1
  330. package/resource/doc/callkit/core-sdk/.gitkeep +0 -0
  331. package/resource/doc/callkit/core-sdk/android/answer-call.md +0 -852
  332. package/resource/doc/callkit/core-sdk/android/make-call.md +0 -954
  333. package/resource/doc/callkit/core-sdk/android/offline-push.md +0 -361
  334. package/resource/doc/callkit/core-sdk/flutter/answer-call.md +0 -1160
  335. package/resource/doc/callkit/core-sdk/flutter/make-call.md +0 -1205
  336. package/resource/doc/callkit/core-sdk/ios/answer-call.md +0 -1090
  337. package/resource/doc/callkit/core-sdk/ios/make-call.md +0 -1248
  338. package/resource/doc/callkit/core-sdk/ios/offline-push.md +0 -485
  339. package/resource/doc/callkit/core-sdk/uni-app/answer-call.md +0 -950
  340. package/resource/doc/callkit/core-sdk/uni-app/make-call.md +0 -1052
  341. package/resource/doc/callkit/faq/common/error-code.md +0 -47
  342. package/resource/doc/callkit/faq/flutter-faq.md +0 -115
  343. package/resource/doc/callkit/faq/ios-faq.md +0 -115
  344. package/resource/doc/callkit/faq/web-faq.md +0 -36
  345. package/resource/doc/callkit/preset/android/api.md +0 -296
  346. package/resource/doc/callkit/preset/flutter/api.md +0 -410
  347. package/resource/doc/callkit/preset/flutter/integration.md +0 -164
  348. package/resource/doc/callkit/preset/ios/api.md +0 -80
  349. package/resource/doc/callkit/preset/ios/integration.md +0 -187
  350. package/resource/doc/callkit/preset/react/api.md +0 -501
  351. package/resource/doc/callkit/preset/react/integration.md +0 -86
  352. package/resource/doc/callkit/preset/vue/api.md +0 -501
  353. package/resource/doc/callkit/preset/vue/integration.md +0 -83
  354. package/resource/doc/chatkit/android/faq.md +0 -111
  355. package/resource/doc/chatkit/android/features/theme.md +0 -219
  356. package/resource/doc/chatkit/android/integration.md +0 -490
  357. package/resource/doc/chatkit/faq/android_sdk/client-api.md +0 -281
  358. package/resource/doc/chatkit/faq/common/product.md +0 -7
  359. package/resource/doc/chatkit/faq/common/server.md +0 -44
  360. package/resource/doc/chatkit/faq/common/server_error_code.md +0 -74
  361. package/resource/doc/chatkit/faq/flutter_sdk/client-api.md +0 -199
  362. package/resource/doc/chatkit/faq/flutter_sdk/faq.md +0 -53
  363. package/resource/doc/chatkit/faq/ios_sdk/client-api.md +0 -235
  364. package/resource/doc/chatkit/faq/web_sdk/error_code.md +0 -47
  365. package/resource/doc/chatkit/faq/web_sdk/faq.md +0 -287
  366. package/resource/doc/chatkit/flutter/faq.md +0 -23
  367. package/resource/doc/chatkit/flutter/features/theme.md +0 -235
  368. package/resource/doc/chatkit/flutter/integration.md +0 -344
  369. package/resource/doc/chatkit/ios/faq.md +0 -111
  370. package/resource/doc/chatkit/ios/features/theme.md +0 -267
  371. package/resource/doc/chatkit/react/components/avatar.md +0 -104
  372. package/resource/doc/chatkit/react/components/chat-header.md +0 -148
  373. package/resource/doc/chatkit/react/components/chat-setting.md +0 -57
  374. package/resource/doc/chatkit/react/components/chat.md +0 -38
  375. package/resource/doc/chatkit/react/components/component-list.md +0 -37
  376. package/resource/doc/chatkit/react/components/conversation-actions.md +0 -174
  377. package/resource/doc/chatkit/react/components/conversation-list.md +0 -333
  378. package/resource/doc/chatkit/react/components/conversation-preview.md +0 -118
  379. package/resource/doc/chatkit/react/components/conversation-search.md +0 -60
  380. package/resource/doc/chatkit/react/components/message-list.md +0 -293
  381. package/resource/doc/chatkit/react/components/tuikit.md +0 -34
  382. package/resource/doc/chatkit/react/faq.md +0 -26
  383. package/resource/doc/chatkit/react/integration.md +0 -416
  384. package/resource/doc/chatkit/vue/components/avatar.md +0 -104
  385. package/resource/doc/chatkit/vue/components/chat-header.md +0 -148
  386. package/resource/doc/chatkit/vue/components/chat-setting.md +0 -62
  387. package/resource/doc/chatkit/vue/components/chat.md +0 -45
  388. package/resource/doc/chatkit/vue/components/component-list.md +0 -87
  389. package/resource/doc/chatkit/vue/components/contact-list.md +0 -271
  390. package/resource/doc/chatkit/vue/components/conversation-actions.md +0 -228
  391. package/resource/doc/chatkit/vue/components/conversation-list.md +0 -320
  392. package/resource/doc/chatkit/vue/components/conversation-preview.md +0 -213
  393. package/resource/doc/chatkit/vue/components/message-input.md +0 -1054
  394. package/resource/doc/chatkit/vue/components/message-list.md +0 -433
  395. package/resource/doc/chatkit/vue/components/tuikit.md +0 -31
  396. package/resource/doc/chatkit/vue/components/userpicker.md +0 -256
  397. package/resource/doc/chatkit/vue/faq.md +0 -36
  398. package/resource/doc/chatkit/vue/integration.md +0 -428
  399. package/resource/doc/livekit/core-sdk/live/flutter/live-host-interaction.md +0 -866
  400. package/resource/doc/livekit/faq/common/error-code.md +0 -88
  401. package/resource/doc/livekit/preset/live/vue/api-reference/index.md +0 -780
  402. package/resource/doc/livekit/preset/live/vue/components/co-guest-panel.md +0 -91
  403. package/resource/doc/livekit/preset/live/vue/components/live-scene-panel.md +0 -112
  404. package/resource/doc/livekit/preset/live/vue/components/stream-mixer.md +0 -215
  405. package/resource/doc/livekit/preset/live/vue/live-player-h5-integration.md +0 -300
  406. package/resource/doc/roomkit/faq/common/error-code.md +0 -67
  407. package/resource/doc/roomkit/vue/features/call-user-to-room.md +0 -220
  408. package/resource/doc/roomkit/vue/features/device-state.md +0 -460
  409. package/resource/doc/roomkit/vue/features/free-beauty-panel.md +0 -215
  410. package/resource/doc/roomkit/vue/features/room-chat.md +0 -369
  411. package/resource/doc/roomkit/vue/features/room-state.md +0 -282
  412. package/resource/doc/roomkit/vue/features/schedule-room.md +0 -318
  413. package/resource/doc/roomkit/vue/features/screen-share.md +0 -265
  414. package/resource/doc/roomkit/vue/features/virtual-background.md +0 -271
  415. package/resource/doc/roomkit/vue/integration.md +0 -315
  416. package/resource/doc/rtcengine/faq/common/error_code.md +0 -1
  417. package/resource/doc/rtcengine/faq/web_sdk/.gitkeep +0 -0
  418. package/resource/doc/rtcengine/web/.gitkeep +0 -0
  419. package/resource/doc/rtcengine/web/how_to_run_web_sdk_demo.md +0 -59
  420. package/resource/doc/trtc/C++/ITRTCCloud.md +0 -1970
  421. package/resource/doc/trtc/C++/ITRTCStatistics.md +0 -70
  422. package/resource/doc/trtc/C++/ITXAudioEffectManager.md +0 -469
  423. package/resource/doc/trtc/C++/ITXDeviceManager.md +0 -387
  424. package/resource/doc/trtc/C++/TRTCCloudCallback.md +0 -1082
  425. package/resource/doc/trtc/C++/TRTCTypeDef.md +0 -925
  426. package/resource/doc/trtc/C++/TXLiteAVCode.md +0 -129
  427. package/resource/doc/trtc/android/TRTCCloud.md +0 -1815
  428. package/resource/doc/trtc/android/TRTCCloudDef.md +0 -992
  429. package/resource/doc/trtc/android/TRTCCloudListener.md +0 -1004
  430. package/resource/doc/trtc/android/TRTCStatistics.md +0 -65
  431. package/resource/doc/trtc/android/TXAudioEffectManager.md +0 -469
  432. package/resource/doc/trtc/android/TXBeautyManager.md +0 -402
  433. package/resource/doc/trtc/android/TXDeviceManager.md +0 -173
  434. package/resource/doc/trtc/android/TXLiteAVCode.md +0 -127
  435. package/resource/doc/trtc/iOS/TRTCCloud.md +0 -2028
  436. package/resource/doc/trtc/iOS/TRTCCloudDef.md +0 -958
  437. package/resource/doc/trtc/iOS/TRTCCloudDelegate.md +0 -1046
  438. package/resource/doc/trtc/iOS/TRTCStatistics.md +0 -65
  439. package/resource/doc/trtc/iOS/TXAudioEffectManager.md +0 -397
  440. package/resource/doc/trtc/iOS/TXBeautyManager.md +0 -403
  441. package/resource/doc/trtc/iOS/TXDeviceManager.md +0 -381
  442. package/resource/doc/trtc/iOS/TXLiteAVCode.md +0 -130
  443. package/server-config.js.map +0 -1
  444. package/server.js.map +0 -1
  445. package/streamable-http.js.map +0 -1
  446. package/tools/call/get_callkit_api.js +0 -33
  447. package/tools/call/get_callkit_api.js.map +0 -1
  448. package/tools/call/get_native_call_uikit_integration.js.map +0 -1
  449. package/tools/call/get_native_callkit_core_integration.js.map +0 -1
  450. package/tools/call/get_web_call_uikit_integration.js.map +0 -1
  451. package/tools/chat/get_native_chat_uikit_feature_detail.js +0 -35
  452. package/tools/chat/get_native_chat_uikit_feature_detail.js.map +0 -1
  453. package/tools/chat/get_native_chat_uikit_integration.js.map +0 -1
  454. package/tools/chat/get_web_chat_uikit_component_detail.js +0 -35
  455. package/tools/chat/get_web_chat_uikit_component_detail.js.map +0 -1
  456. package/tools/chat/get_web_chat_uikit_integration.js.map +0 -1
  457. package/tools/common/get_faq.js +0 -266
  458. package/tools/common/get_faq.js.map +0 -1
  459. package/tools/common/get_usersig.js.map +0 -1
  460. package/tools/common/present_framework_choice.js.map +0 -1
  461. package/tools/common/record_answer.js.map +0 -1
  462. package/tools/common/record_feedback.js.map +0 -1
  463. package/tools/common/record_skill_session.js +0 -69
  464. package/tools/common/record_skill_session.js.map +0 -1
  465. package/tools/definitions/get_callkit_api_def.js +0 -29
  466. package/tools/definitions/get_callkit_api_def.js.map +0 -1
  467. package/tools/definitions/get_faq_def.js +0 -47
  468. package/tools/definitions/get_faq_def.js.map +0 -1
  469. package/tools/definitions/get_native_call_uikit_integration_def.js.map +0 -1
  470. package/tools/definitions/get_native_callkit_core_integration_def.js.map +0 -1
  471. package/tools/definitions/get_native_chat_uikit_feature_detail_def.js +0 -31
  472. package/tools/definitions/get_native_chat_uikit_feature_detail_def.js.map +0 -1
  473. package/tools/definitions/get_native_chat_uikit_integration_def.js.map +0 -1
  474. package/tools/definitions/get_native_livekit_core_features_def.js +0 -34
  475. package/tools/definitions/get_native_livekit_core_features_def.js.map +0 -1
  476. package/tools/definitions/get_native_livekit_core_integration_def.js.map +0 -1
  477. package/tools/definitions/get_native_trtc_sdk_docs_def.js +0 -32
  478. package/tools/definitions/get_native_trtc_sdk_docs_def.js.map +0 -1
  479. package/tools/definitions/get_usersig_def.js.map +0 -1
  480. package/tools/definitions/get_web_call_uikit_integration_def.js.map +0 -1
  481. package/tools/definitions/get_web_chat_uikit_component_detail_def.js +0 -31
  482. package/tools/definitions/get_web_chat_uikit_component_detail_def.js.map +0 -1
  483. package/tools/definitions/get_web_chat_uikit_integration_def.js.map +0 -1
  484. package/tools/definitions/get_web_live_uikit_integration_def.js.map +0 -1
  485. package/tools/definitions/get_web_livekit_api_def.js +0 -30
  486. package/tools/definitions/get_web_livekit_api_def.js.map +0 -1
  487. package/tools/definitions/get_web_livekit_component_detail_def.js +0 -32
  488. package/tools/definitions/get_web_livekit_component_detail_def.js.map +0 -1
  489. package/tools/definitions/get_web_room_uikit_integration_def.js.map +0 -1
  490. package/tools/definitions/get_web_roomkit_feature_detail_def.js +0 -31
  491. package/tools/definitions/get_web_roomkit_feature_detail_def.js.map +0 -1
  492. package/tools/definitions/get_web_trtc_sdk_api_def.js +0 -27
  493. package/tools/definitions/get_web_trtc_sdk_api_def.js.map +0 -1
  494. package/tools/definitions/get_web_trtc_sdk_integration_def.js +0 -27
  495. package/tools/definitions/get_web_trtc_sdk_integration_def.js.map +0 -1
  496. package/tools/definitions/get_web_trtc_sdk_plugin_def.js +0 -27
  497. package/tools/definitions/get_web_trtc_sdk_plugin_def.js.map +0 -1
  498. package/tools/definitions/present_framework_choice_def.js.map +0 -1
  499. package/tools/definitions/record_answer_def.js.map +0 -1
  500. package/tools/definitions/record_feedback_def.js.map +0 -1
  501. package/tools/definitions/record_skill_session_def.js +0 -31
  502. package/tools/definitions/record_skill_session_def.js.map +0 -1
  503. package/tools/index.js.map +0 -1
  504. package/tools/live/get_native_livekit_core_features.js +0 -68
  505. package/tools/live/get_native_livekit_core_features.js.map +0 -1
  506. package/tools/live/get_native_livekit_core_integration.js.map +0 -1
  507. package/tools/live/get_web_live_uikit_integration.js.map +0 -1
  508. package/tools/live/get_web_livekit_api.js +0 -33
  509. package/tools/live/get_web_livekit_api.js.map +0 -1
  510. package/tools/live/get_web_livekit_component_detail.js +0 -35
  511. package/tools/live/get_web_livekit_component_detail.js.map +0 -1
  512. package/tools/room/get_web_room_uikit_integration.js.map +0 -1
  513. package/tools/room/get_web_roomkit_feature_detail.js +0 -69
  514. package/tools/room/get_web_roomkit_feature_detail.js.map +0 -1
  515. package/tools/rtcengine/get_web_trtc_sdk_api.js +0 -32
  516. package/tools/rtcengine/get_web_trtc_sdk_api.js.map +0 -1
  517. package/tools/rtcengine/get_web_trtc_sdk_integration.js +0 -32
  518. package/tools/rtcengine/get_web_trtc_sdk_integration.js.map +0 -1
  519. package/tools/rtcengine/get_web_trtc_sdk_plugin.js +0 -32
  520. package/tools/rtcengine/get_web_trtc_sdk_plugin.js.map +0 -1
  521. package/tools/trtc/get_native_trtc_sdk_docs.js +0 -74
  522. package/tools/trtc/get_native_trtc_sdk_docs.js.map +0 -1
  523. package/utils/build-session-directives.js +0 -120
  524. package/utils/build-session-directives.js.map +0 -1
  525. package/utils/generate-structured-result.js.map +0 -1
  526. package/utils/generate-usersig.js.map +0 -1
  527. package/utils/get-device-identifier.js.map +0 -1
  528. package/utils/get-doc-content.js.map +0 -1
  529. package/utils/handle-framework.js +0 -9
  530. package/utils/handle-framework.js.map +0 -1
  531. package/utils/handle-state-name.js +0 -29
  532. package/utils/handle-state-name.js.map +0 -1
  533. package/utils/http-get.js.map +0 -1
  534. package/utils/http-post.js.map +0 -1
  535. package/utils/report-cls-client.js.map +0 -1
  536. package/utils/report-es-client.js.map +0 -1
  537. package/utils/report-runtime-error-cls-client.js +0 -91
  538. package/utils/report-runtime-error-cls-client.js.map +0 -1
  539. /package/resource/{doc/livekit/preset/live/vue/faq.md → knowledge/push/config/donut.md} +0 -0
  540. /package/resource/{doc/roomkit/vue/faq.md → knowledge/push/integration/donut.md} +0 -0
  541. /package/resource/{doc → knowledge}/rtcengine/web/api.md +0 -0
  542. /package/resource/{doc/rtcengine/faq/web/web.md → knowledge/rtcengine/web/faq.md} +0 -0
  543. /package/resource/{doc → knowledge}/rtcengine/web/how_to_integrated_web_sdk.md +0 -0
  544. /package/resource/{doc → knowledge}/rtcengine/web/plugin/20-advanced-customized-capture-rendering.md +0 -0
  545. /package/resource/{doc → knowledge}/rtcengine/web/plugin/28-advanced-beauty.md +0 -0
  546. /package/resource/{doc → knowledge}/rtcengine/web/plugin/30-advanced-cross-room-link.md +0 -0
  547. /package/resource/{doc → knowledge}/rtcengine/web/plugin/36-advanced-virtual-background.md +0 -0
  548. /package/resource/{doc → knowledge}/rtcengine/web/plugin/37-advanced-voice-changer.md +0 -0
  549. /package/resource/{doc → knowledge}/rtcengine/web/plugin/39-advanced-video-decoder.md +0 -0
  550. /package/resource/{doc → knowledge}/rtcengine/web/plugin/40-advanced-video-mixer.md +0 -0
  551. /package/resource/{doc → knowledge}/rtcengine/web/plugin/41-advanced-small-stream-auto-switcher.md +0 -0
  552. /package/resource/{doc → knowledge}/rtcengine/web/plugin/42-advanced-realtime-transcriber.md +0 -0
  553. /package/resource/{doc → knowledge}/rtcengine/web/plugin/43-advanced-face-detection.md +0 -0
@@ -0,0 +1,325 @@
1
+ `RoomStore` manages all aspects of room operations within `AtomicXCore`, providing a complete suite of APIs for room lifecycle control—from creation to dissolution. By leveraging RoomStore's interfaces (such as retrieving or updating room information), you can efficiently build robust room management features for your application.
2
+
3
+ ## Core Features
4
+ - **Create and Join a Room**: Room owners can create and immediately join a room using this API.
5
+
6
+ - **Join a Room**: Participants can join an existing room directly.
7
+
8
+ - **Leave a Room**: Participants can exit a room they have previously joined.
9
+
10
+ - **End a Room**: Room owners can end a room. If other participants are present, they will receive the `onRoomEnded` event.
11
+
12
+ - **Update the Room Information**: Room owners or administrators can update room properties (currently supports updating room name and password).
13
+
14
+ - **Get the Room Information**: Retrieve detailed information for a specific room.
15
+
16
+ ## Core Concepts
17
+
18
+ The core concepts about RoomStore is summarized as follows:
19
+ | Core Concept | Type | Core Responsibilities & Description |
20
+ | --- | --- | --- |
21
+ | <a href="https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore/roominfo">RoomInfo</a> | <code>struct</code> | Main data model for room details, encapsulating full room information and state.<br>Key features:<br>- Manages basic room info (Room ID, name, creator).<br>- Tracks real-time status (participant count, room status, creation time).<br>- Supports scheduling (scheduled time, participant list, reminders).<br>- Controls permissions (password protection, device management, message management). |
22
+ | <a href="https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore/roomstate">RoomState</a> | <code>struct</code> | Core state structure for user-related room information.<br>Key properties:<br>- <code>scheduledRoomList</code>: All scheduled rooms for the current account.<br>- <code>scheduledRoomListCursor</code>: Pagination snapshot for scheduled rooms.<br>- <code>currentRoom</code>: State of the room currently joined. |
23
+ | <a href="https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore/roomevent">RoomEvent</a> | <code>enum</code> | Defines real-time room events. Main categories: scheduled room events, room end events, room call events. |
24
+ | <a href="https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore/roomstore">RoomStore</a> | <code>class</code> | Central class for managing room lifecycles. Capabilities include fetching scheduled room snapshots, performing room operations, and subscribing to <code>roomEventPublisher</code> for real-time events. |
25
+
26
+ ## Implementation Steps
27
+
28
+ ### Step 1: Integrate the SDK
29
+
30
+ Follow the Integration Overview to integrate the AtomicXCore SDK. Make sure you have completed the Login Logic Implementation before proceeding.
31
+
32
+ ### Step 2: Create and Join a Room
33
+
34
+ #### Implementation
35
+ 1. **Configure Room Initialization Parameters**: Initialize `CreateRoomOptions` with the room name and password.
36
+
37
+ 2. **Preset Room Permissions**: Set permissions for all participants, such as muting, disabling cameras, etc.
38
+
39
+ 3. **Create and Join Room**: Call RoomStore's `createAndJoinRoom` API to handle room creation and entry.
40
+
41
+ #### Sample Code
42
+ ``` swift
43
+ import Foundation
44
+ import AtomicXCore
45
+
46
+ func createAndJoinRoom() {
47
+ // 1. Configure room creation parameters
48
+ // CreateRoomOptions defines basic room properties and initial permissions
49
+ var options = CreateRoomOptions()
50
+ options.roomName = "Team Meeting Room" // Room display name
51
+ options.password = "" // Room password (optional)
52
+
53
+ // 2. Preset room permissions
54
+ options.isAllCameraDisabled = false // Disable all member cameras
55
+ options.isAllMessageDisabled = false // Mute all members
56
+ options.isAllMicrophoneDisabled = false // Mute all microphones
57
+ options.isAllScreenShareDisabled = false // Disable screen sharing for all members
58
+
59
+ // 3. Create and join room
60
+ // Handles creation if room does not exist and joining logic
61
+ RoomStore.shared.createAndJoinRoom(roomID: "roomID", roomType: .standard, options: options) { result in
62
+ switch result {
63
+ case .success():
64
+ print("Room created and joined successfully")
65
+ case .failure(let error):
66
+ print("Failed to create and join room [Error Code: \(error.code)]: \(error.message)")
67
+ }
68
+ }
69
+ }
70
+ ```
71
+
72
+ #### createAndJoinRoom Interface Parameter Details
73
+ | Parameter Name | Type | Required | Description |
74
+ | --- | --- | --- | --- |
75
+ | <code>roomID</code> | <code>String</code> | Yes | - Unique room identifier.<br>- Length: 0–48 bytes.<br>- Use only numbers, English letters (case-sensitive), underscores (_), and hyphens (-). Avoid spaces and Chinese characters. |
76
+ | <code>roomType</code> | <code>RoomType</code> | Yes | Room type.<br>- <code>standard</code>: All members can freely participate in audio/video interactive.<br>- <code>webinar</code>: Large seminar room; distinguishes guest and audience roles. Audience has no audio/video permissions by default. |
77
+ | <code>options</code> | <code>CreateRoomOptions</code> | Yes | - Room creation configuration object.<br>- See CreateRoomOptions struct documentation for details. |
78
+ | <code>completion</code> | <code>CompletionClosure</code> | No | Completion callback. Returns result of room creation/join. If failed, returns error code and message. |
79
+
80
+ #### CreateRoomOptions Struct Details
81
+ | Parameter Name | Type | Required | Description |
82
+ | --- | --- | --- | --- |
83
+ | <code>roomName</code> | <code>String</code> | No | - Room name (optional; defaults to empty string).<br>- Length: 0–60 bytes.<br>- Supports Chinese, English, numbers, and special characters. |
84
+ | <code>password</code> | <code>String</code> | No | - Room password. Empty string means no password.<br>- Length: 0–32 bytes.<br>- Recommend 4–8 digits for easy mobile input. If set, other users must enter the password to join. Avoid storing sensitive information in plain text. |
85
+ | <code>isAllMicrophoneDisabled</code> | <code>Bool</code> | No | Disable microphones for all members.<br>- true: Disabled.<br>- false: Not disabled (default).<br>Only owner/administrator can unmute; regular participants are muted by default. |
86
+ | <code>isAllCameraDisabled</code> | <code>Bool</code> | No | Disable cameras for all members.<br>- true: Disabled.<br>- false: Not disabled (default).<br>Only owner/administrator can enable cameras; regular participants are disabled by default. |
87
+ | <code>isAllScreenShareDisabled</code> | <code>Bool</code> | No | Disable screen sharing for all members.<br>- true: Disabled.<br>- false: Not disabled (default).<br>Only owner/administrator can share screens. |
88
+ | <code>isAllMessageDisabled</code> | <code>Bool</code> | No | Mute all members (disable chat messages).<br>- true: Disabled.<br>- false: Not disabled (default).<br>Regular participants cannot send text messages in the room. |
89
+
90
+ ### Step 3: Join a Room
91
+
92
+ To join an existing room, call the `joinRoom` API from RoomStore. Other participants will receive a join event notification.
93
+ ``` swift
94
+ import Foundation
95
+ import AtomicXCore
96
+
97
+ func joinRoom() {
98
+ // 1. Prepare join room parameters
99
+ // joinRoom is used to join a known, ongoing room
100
+ let roomPassword = "" // Room password. Pass empty string or nil if no password.
101
+
102
+ // 2. Call RoomStore join room API
103
+ // Verifies room existence, user access, and password correctness
104
+ RoomStore.shared.joinRoom(roomID: "roomID", roomType: .standard, password: roomPassword) { result in
105
+ switch result {
106
+ case .success():
107
+ print("Joined room successfully")
108
+ case .failure(let error):
109
+ print("Failed to join room [Error Code: \(error.code)]: \(error.message)")
110
+ }
111
+ }
112
+ }
113
+ ```
114
+
115
+ #### joinRoom Interface Parameter Details
116
+ | Parameter Name | Type | Required | Description |
117
+ | --- | --- | --- | --- |
118
+ | <code>roomID</code> | <code>String</code> | Yes | - Unique room identifier.<br>- Length: 0–48 bytes.<br>- Use only numbers, English letters (case-sensitive), underscores (_), and hyphens (-). Avoid spaces and Chinese characters. |
119
+ | <code>roomType</code> | <code>RoomType</code> | Yes | Room type:<br>- standard: All members can freely participate in audio/video interactive.<br>- webinar: Large seminar room; distinguishes guest and audience roles. Audience has no audio/video permissions by default. |
120
+ | <code>password</code> | <code>String</code> | Yes | - Room password. Empty string means no password.<br>- Length: 0–32 bytes.<br>- Recommend 4–8 digits for easy mobile input. If set, other users must enter the password to join. Avoid storing sensitive information in plain text. |
121
+ | <code>completion</code> | <code>CompletionClosure</code> | No | Completion callback. Returns result of joining the room. If failed, returns error code and message. |
122
+
123
+ ### Step 4: Leave a Room
124
+
125
+ To exit a room, call RoomStore's `leaveRoom` API. Other participants will receive a leave event notification.
126
+ ``` swift
127
+ import Foundation
128
+ import AtomicXCore
129
+
130
+ func leaveRoom() {
131
+ // 1. Business logic
132
+ // leaveRoom is for regular members or owners to voluntarily exit the room.
133
+ // Unlike endRoom, if the owner calls leaveRoom, only they exit—the room remains active.
134
+
135
+ // 2. Call RoomStore leave room API
136
+ // Stops audio/video streams and notifies the server to remove the current user from the room
137
+ RoomStore.shared.leaveRoom { result in
138
+ switch result {
139
+ case .success():
140
+ print("Left room successfully")
141
+ case .failure(let error):
142
+ print("Failed to leave room [Error Code: \(error.code)]: \(error.message)")
143
+ }
144
+ }
145
+ }
146
+ ```
147
+
148
+ ### Step 5: End a Room
149
+
150
+ When the room owner wants to dissolve the room, call RoomStore's `endRoom` API. All participants will receive a room ended event.
151
+ ``` swift
152
+ import Foundation
153
+ import AtomicXCore
154
+
155
+ func endRoom() {
156
+ // 1. Business logic
157
+ // endRoom permanently dissolves the current room.
158
+ // Note: This is usually restricted to the owner. After dissolution, all members are forcibly exited.
159
+
160
+ // 2. Call RoomStore end room API
161
+ // Sends a dissolution command to the server and notifies all online participants
162
+ RoomStore.shared.endRoom { result in
163
+ switch result {
164
+ case .success():
165
+ print("Room dissolved successfully")
166
+ case .failure(let error):
167
+ print("Failed to dissolve room [Error Code: \(error.code)]: \(error.message)")
168
+ }
169
+ }
170
+ }
171
+ ```
172
+
173
+ ### Step 6: Update the Room Information
174
+
175
+ Room owners can update the room name or change the room password using RoomStore's `updateRoomInfo` API. After the update, all participants will receive a room state change notification.
176
+ ``` swift
177
+ import Foundation
178
+ import AtomicXCore
179
+
180
+ func updateRoomInfo() {
181
+ // 1. Configure room update parameters
182
+ // UpdateRoomOptions defines the properties to update
183
+ var options = UpdateRoomOptions()
184
+ options.roomName = "New Meeting Room Name" // Update room display name
185
+
186
+ // 2. Set modification flags
187
+ // ModifyFlag specifies which fields to update
188
+ var modifyFlag: UpdateRoomOptions.ModifyFlag = []
189
+ modifyFlag.insert(.roomName) // Flag to update room name
190
+
191
+ // 3. Call RoomStore update room info API
192
+ // Submits the update request to the server and synchronizes to all room members
193
+ RoomStore.shared.updateRoomInfo(roomID: "roomID", options: options, modifyFlag: modifyFlag) { result in
194
+ switch result {
195
+ case .success():
196
+ print("Room information updated successfully")
197
+ case .failure(let error):
198
+ print("Failed to update room information [Error Code: \(error.code)]: \(error.message)")
199
+ }
200
+ }
201
+ }
202
+ ```
203
+
204
+ #### updateRoomInfo Interface Parameter Details
205
+ | Parameter Name | Type | Required | Description |
206
+ | --- | --- | --- | --- |
207
+ | <code>roomID</code> | <code>String</code> | Yes | - Unique room identifier.<br>- Length: 0–48 bytes.<br>- Use only numbers, English letters (case-sensitive), underscores (_), and hyphens (-). Avoid spaces and Chinese characters. |
208
+ | <code>options</code> | <code>UpdateRoomOptions</code> | Yes | - Room property update configuration object.<br>- See UpdateRoomOptions struct documentation for details. |
209
+ | <code>modifyFlag</code> | <code>UpdateRoomOptions.ModifyFlag</code> | Yes | - Room property modification flag. Currently supports updating <strong>room name</strong> and <strong>room password</strong>.<br>- See UpdateRoomOptions.ModifyFlag documentation for details. |
210
+ | <code>completion</code> | <code>CompletionClosure</code> | No | Completion callback. Returns result of updating room information. If failed, returns error code and message. |
211
+
212
+ **UpdateRoomOptions Struct Details**
213
+ | Parameter Name | Type | Required | Description |
214
+ | --- | --- | --- | --- |
215
+ | <code>roomName</code> | <code>String</code> | No | - Room name (optional; defaults to empty string).<br>- Length: 0–60 bytes.<br>- Supports Chinese, English, numbers, and special characters. |
216
+ | <code>password</code> | <code>String</code> | No | - Room password. Empty string means no password.<br>- Length: 0–32 bytes.<br>- Recommend 4–8 digits for easy mobile input. If set, other users must enter the password to join. Avoid storing sensitive information in plain text. |
217
+
218
+ **UpdateRoomOptions.ModifyFlag Details**
219
+ | Parameter Name | Type | Required | Description |
220
+ | --- | --- | --- | --- |
221
+ | <code>roomName</code> | <code>UInt</code> | No | - Flag for modifying room name.<br>- When updating <code>roomName</code> in UpdateRoomOptions, also set the <code>roomName</code> flag in ModifyFlag. |
222
+ | <code>password</code> | <code>UInt</code> | No | - Flag for modifying room password.<br>- When updating <code>password</code> in UpdateRoomOptions, also set the <code>password</code> flag in ModifyFlag. |
223
+
224
+ ### Step 7: Get the Room Information
225
+
226
+ After joining a room, call RoomStore's `getRoomInfo` API to retrieve detailed information about the room.
227
+ ``` swift
228
+ import Foundation
229
+ import AtomicXCore
230
+
231
+ func getRoomInfo() {
232
+ // 1. Business logic
233
+ // getRoomInfo retrieves detailed information for a specified room,
234
+ // including room name, creator, participant count, permission settings, and more.
235
+
236
+ // 2. Call RoomStore get room info API
237
+ // Fetches the latest room status and configuration from the server
238
+ RoomStore.shared.getRoomInfo(roomID: "roomID") { result in
239
+ switch result {
240
+ case .success(let roomInfo):
241
+ print("Room information retrieved successfully, roomInfo: \(roomInfo)")
242
+ case .failure(let error):
243
+ print("Failed to retrieve room information [Error Code: \(error.code)]: \(error.message)")
244
+ }
245
+ }
246
+ }
247
+ ```
248
+
249
+ ### Step 8: Listen to Real-Time Room Events and State Changes
250
+
251
+ Subscribe to passive room events using RoomEvent. For example, to listen for a room-ended event:
252
+ ``` swift
253
+ import Foundation
254
+ import AtomicXCore
255
+ import Combine
256
+
257
+ private var cancellableSet = Set<AnyCancellable>()
258
+
259
+ // Set up room event listener
260
+ private func subscribeRoomEvent() {
261
+ RoomStore.shared.roomEventPublisher
262
+ .receive(on: DispatchQueue.main) // Ensure UI updates are handled on the main thread
263
+ .sink { event in
264
+ switch event {
265
+ case .onRoomEnded(let roomInfo):
266
+ print("The current room has ended")
267
+ default: break
268
+ }
269
+ }
270
+ .store(in: &cancellableSet)
271
+ }
272
+ ```
273
+
274
+ Subscribe to RoomState for changes to room properties. For example, to listen for updates to the current room information:
275
+ ``` swift
276
+ import Foundation
277
+ import AtomicXCore
278
+ import Combine
279
+
280
+ private var cancellableSet = Set<AnyCancellable>()
281
+
282
+ private func subscribeRoomState() {
283
+ // Set up current room state listener
284
+ RoomStore.shared.state
285
+ .subscribe(StatePublisherSelector(keyPath: \.currentRoom))
286
+ .receive(on: DispatchQueue.main) // Ensure UI updates are handled on the main thread
287
+ .sink { roomInfo in
288
+ if let newRoomInfo = roomInfo {
289
+ print("Room information updated. New room info: \(newRoomInfo)")
290
+ }
291
+ }
292
+ .store(in: &cancellableSet)
293
+ }
294
+ ```
295
+
296
+ ## API Documentation
297
+
298
+ |**Store/Component**|**Description**|**API Documentation**|
299
+ |---------|---------|---------|
300
+ |**RoomStore**|Room lifecycle management: create and join / join / leave / end room / update and retrieve room information / room scheduling / call members outside the room / listen to passive room events (such as room dissolution, room information updates, etc.).|[API Documentation](https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore/roomstore)|
301
+
302
+ ## FAQs
303
+
304
+ ### How is the participant count (`participantCount`) in `RoomInfo` updated? What are the timing and frequency?
305
+
306
+ `participantCount` is not always updated in real time. The update process works as follows:
307
+ - **Active Room Entry/Exit**: When a user joins or leaves a room normally, participant count changes are notified immediately. You will see changes reflected in `currentRoom` under `RoomState` almost instantly.
308
+
309
+ - **Unexpected Disconnections**: If a user disconnects due to network issues or app crashes, the system uses a heartbeat mechanism to determine their status. Only after 90 seconds without a heartbeat will the user be considered offline and the participant count updated.
310
+
311
+ - **Update Mechanism and Frequency Control**:
312
+
313
+ - All participant count updates—whether immediate or delayed—are sent as in-room messages.
314
+
315
+ - Each room is limited to 40 messages per second.
316
+
317
+ - **Important**: In high-traffic situations (such as a "live comments storm"), if the room exceeds 40 messages per second, participant count update messages may be dropped to prioritize core messages (such as live comments).
318
+
319
+ **What does this mean for developers?**
320
+
321
+ `participantCount` provides a highly accurate, near real-time estimate. However, during periods of extremely high concurrency, updates may be briefly delayed or lost. We recommend using it for **UI display** purposes only, not for billing, analytics, or other scenarios requiring absolute precision.
322
+
323
+ ## Contact Us
324
+
325
+ If you have questions or feedback during integration or usage, please email info_rtc@tencent.com.
@@ -0,0 +1,322 @@
1
+ `RoomStore` serves as the core room management module within `AtomicXCore`, providing comprehensive support for scheduled rooms. This section is a step-by-step guide to help you efficiently develop and integrate scheduled room features using `RoomStore`.
2
+
3
+ ## Core Features
4
+ - **Schedule and Cancel Room Reservations**: Any user can schedule a new room or cancel an existing scheduled room.
5
+
6
+ - **Update Scheduled Room Information**: Modify scheduled room details such as room name, start time, and end time.
7
+
8
+ - **Retrieve Scheduled Room List**: Obtain the list of all scheduled rooms associated with the current account.
9
+
10
+ - **Retrieve Scheduled Room Participant List**: Fetch the participant list for a specific scheduled room.
11
+
12
+ - **Add or Remove Scheduled Room Participants**: Add or remove users from an existing scheduled room.
13
+
14
+ ## Core Concepts
15
+
16
+ Core concepts in `RoomStore` are summarized in the table below:
17
+ | Core Concept | Type | Core Responsibility & Description |
18
+ | --- | --- | --- |
19
+ | <a href="https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore/roomstatus">RoomStatus</a> | <code>enum</code> | Indicates the current status of a room:<br>- scheduled (scheduled status).<br>- running (in progress). |
20
+ | <a href="https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore/scheduleroomoptions">ScheduleRoomOptions</a> | <code>struct</code> | Defines the main data structure for scheduled rooms, including start time, end time, participant list, and more. |
21
+ | <a href="https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore/roomstate">RoomState</a> | <code>struct</code> | Represents the main data structure for managing room state and tracking user-related room information.<br>Key properties:<br>- <code>scheduledRoomList</code>: Stores all scheduled rooms for the current account.<br>- <code>scheduledRoomListCursor</code>: Cursor for paginating the scheduled room list . |
22
+ | <a href="https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore/roomevent">RoomEvent</a> | <code>enum</code> | Represents real-time events related to room activity, including those for scheduled rooms. |
23
+ | <a href="https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore/roomstore">RoomStore</a> | <code>class</code> | Central class for managing the entire room lifecycle. Use it to schedule rooms, retrieve scheduled room lists, and subscribe to real-time scheduled room events via <code>roomEventPublisher</code>. |
24
+
25
+ ## Implementation Steps
26
+
27
+ ### Step 1: Integrate the SDK
28
+
29
+ Follow the Integration Overview to integrate the **AtomicXCore SDK** into your project. Make sure you have also completed Login Implementation.
30
+
31
+ ### Step 2: Scheduled Room Features
32
+
33
+ #### 1. Schedule a Room
34
+
35
+ ##### Implementation Workflow
36
+ 1. **Configure Scheduled Room Parameters**: Use `ScheduleRoomOptions` to set up the room name, password, start and end times, participant list, and other details.
37
+
38
+ 2. **Set Room Permissions**: Configure permissions for all members, such as muting all participants or disabling video by default.
39
+
40
+ 3. **Schedule the Room**: Call `RoomStore`'s `scheduleRoom` method to create the scheduled room.
41
+
42
+ ##### Sample Code
43
+ ``` swift
44
+ import AtomicXCore
45
+ import Foundation
46
+
47
+ // Schedule a room
48
+ func scheduleRoom() {
49
+ let startTime = Int(Date().timeIntervalSince1970) + 60 * 15 // Start 15 minutes from now
50
+ let endTime = startTime + 60 * 30 // 30-minute duration
51
+ let reminderSeconds = 60 * 5 // Reminder 5 minutes before start
52
+
53
+ // Create scheduled room options
54
+ var options = ScheduleRoomOptions()
55
+ options.roomName = "Room Name"
56
+ options.scheduleStartTime = startTime
57
+ options.scheduleEndTime = endTime
58
+ options.reminderSecondsBeforeStart = reminderSeconds
59
+ options.scheduleAttendees = ["user01", "user02", "user03"] // List of participant user IDs
60
+ options.password = "Room Password" // Optional; "" means no password
61
+ options.isAllMicrophoneDisabled = false // Allow microphones by default
62
+ options.isAllCameraDisabled = false // Allow cameras by default
63
+ options.isAllScreenShareDisabled = false // Allow screen sharing by default
64
+ options.isAllMessageDisabled = false // Allow messaging by default
65
+
66
+ RoomStore.shared.scheduleRoom(roomID: "roomID", options: options) { result in
67
+ switch result {
68
+ case .success:
69
+ print("Room scheduled successfully")
70
+ case .failure(let error):
71
+ print("Failed to schedule room: [Error Code: \(error.code)] \(error.message)")
72
+ }
73
+ }
74
+ }
75
+ ```
76
+
77
+ ##### `scheduleRoom` Method Parameters
78
+ | Parameter | Type | Required | Description |
79
+ | --- | --- | --- | --- |
80
+ | <code>roomID</code> | <code>String</code> | Yes | - Unique string identifier for the room.<br>- Length: 0–48 bytes.<br>- Use only numbers, English letters (case sensitive), underscores (_), and hyphens (-). Avoid spaces and Chinese characters. |
81
+ | <code>options</code> | <code>ScheduleRoomOptions</code> | Yes | Configuration object for the room.<br>See details in ScheduleRoomOptions struct. |
82
+ | <code>completion</code> | <code>CompletionClosure</code> | No | Callback that returns the scheduling result. Returns error code and message if scheduling fails. |
83
+
84
+ ##### ScheduleRoomOptions Struct Details
85
+ | Parameter | Type | Required | Description |
86
+ | --- | --- | --- | --- |
87
+ | <code>roomName</code> | <code>String</code> | No | - Room name (optional, defaults to "").<br>- Length: 0–60 bytes.<br>- Supports Chinese, English, numbers, and special characters. |
88
+ | <code>password</code> | <code>String</code> | No | - Room password ("" means no password).<br>- Length: 0–32 bytes.<br>- Recommend 4–8 digit numbers for easier input. If set, users must enter the password to join. Do not store sensitive info in plain text. |
89
+ | <code>scheduleStartTime</code> | <code>Int</code> | Yes | - Scheduled start time (Unix timestamp in seconds).<br>- Must be greater than the current time.<br>- We recommend aligning to a future minute. Example: 1736164800 (2025-01-06 20:00:00). |
90
+ | <code>scheduleEndTime</code> | <code>Int</code> | Yes | - Scheduled end time (Unix timestamp in seconds).<br>- Must be greater than <code>scheduleStartTime</code>.<br>- Set based on expected duration, e.g., <code>scheduleStartTime</code> + 3600 for one hour. |
91
+ | <code>reminderSecondsBeforeStart</code> | <code>Int</code> | No | - Reminder time before the scheduled start (seconds). Used for system-triggered notifications.<br>- Recommended: 300 (5 min) or 900 (15 min) for local app notifications. |
92
+ | <code>scheduleAttendees</code> | <code>[String]</code> | No | - List of participant user IDs. The system will send invitations to these users.<br>- For details, see retrieving the participant list for scheduled rooms. |
93
+ | <code>isAllMicrophoneDisabled</code> | <code>Bool</code> | No | Whether to mute all participants by default.<br>- true: Disabled.<br>- false: Not disabled (default). |
94
+ | <code>isAllCameraDisabled</code> | <code>Bool</code> | No | Whether to disable all participant cameras by default.<br>- true: Disabled.<br>- false: Not disabled (default). |
95
+ | <code>isAllScreenShareDisabled</code> | <code>Bool</code> | No | Whether to disable screen sharing for all participants.<br>- true: Disabled.<br>- false: Not disabled (default). |
96
+ | <code>isAllMessageDisabled</code> | <code>Bool</code> | No | Whether to mute chat messages for all participants.<br>- true: Disabled.<br>- false: Not disabled (default). |
97
+
98
+ #### 2. Cancel a Scheduled Room
99
+
100
+ To cancel a scheduled room, call the `cancelScheduledRoom` method on `RoomStore`:
101
+ ``` swift
102
+ import AtomicXCore
103
+ import Foundation
104
+
105
+ // Cancel scheduled room
106
+ func cancelScheduledRoom(roomID: String) {
107
+ RoomStore.shared.cancelScheduledRoom(roomID: roomID) { result in
108
+ switch result {
109
+ case .success:
110
+ print("Room reservation cancelled successfully")
111
+ case .failure(let error):
112
+ print("Failed to cancel room reservation: [Error Code: \(error.code)] \(error.message)")
113
+ }
114
+ }
115
+ }
116
+ ```
117
+
118
+ #### 3. Updating a Scheduled Room
119
+
120
+ To update a scheduled room’s name, start time, or end time, use `updateScheduledRoom` on `RoomStore`:
121
+ ``` swift
122
+ import AtomicXCore
123
+ import Foundation
124
+
125
+ // Update scheduled room
126
+ func updateScheduledRoom() {
127
+ let newStartTime = Int(Date().timeIntervalSince1970) + 60 * 30 // New start: 30 min from now
128
+ let newEndTime = newStartTime + 60 * 45 // New end: 45 min after start
129
+
130
+ var options = ScheduleRoomOptions()
131
+ options.roomName = "Room Name"
132
+ options.scheduleStartTime = newStartTime
133
+ options.scheduleEndTime = newEndTime
134
+
135
+ var modifyFlag: ScheduleRoomOptions.ModifyFlag = []
136
+ modifyFlag.insert(.roomName)
137
+ modifyFlag.insert(.scheduleStartTime)
138
+ modifyFlag.insert(.scheduleEndTime)
139
+
140
+ RoomStore.shared.updateScheduledRoom(roomID: "roomID", options: options, modifyFlag: modifyFlag) { result in
141
+ switch result {
142
+ case .success:
143
+ print("Scheduled room updated successfully")
144
+ case .failure(let error):
145
+ print("Failed to update scheduled room: [Error Code: \(error.code)] \(error.message)")
146
+ }
147
+ }
148
+ }
149
+ ```
150
+
151
+ ##### `updateScheduledRoom` Method Parameters
152
+ | Parameter | Type | Required | Description |
153
+ | --- | --- | --- | --- |
154
+ | <code>roomID</code> | <code>String</code> | Yes | - Unique string identifier for the room.<br>- Length: 0–48 bytes.<br>- Use only numbers, English letters (case sensitive), underscores (_), and hyphens (-). Avoid spaces and Chinese characters. |
155
+ | <code>options</code> | <code>ScheduleRoomOptions</code> | Yes | - Configuration object for the scheduled room.<br>- See details in ScheduleRoomOptions struct. |
156
+ | <code>modifyFlag</code> | <code>ScheduleRoomOptions.ModifyFlag</code> | Yes | - Flags indicating which room properties to update. Only supports updating <strong>room name</strong>, <strong>start time</strong>, and <strong>end time</strong>.<br>- See details in ScheduleRoomOptions.ModifyFlag. |
157
+ | <code>completion</code> | <code>CompletionClosure</code> | No | Callback that returns the result of the update. Returns error code and message if the update fails. |
158
+
159
+ **ScheduleRoomOptions.ModifyFlag Details**
160
+ | Parameter | Type | Description |
161
+ | --- | --- | --- |
162
+ | <code>roomName</code> | <code>UInt</code> | - Use this flag when updating the scheduled room name.<br>- You must also set the <code>roomName</code> field in <code>ScheduleRoomOptions</code>. |
163
+ | <code>scheduleStartTime</code> | <code>UInt</code> | - Use this flag when updating the scheduled room start time.<br>- You must also set the <code>scheduleStartTime</code> field in <code>ScheduleRoomOptions</code>. |
164
+ | <code>scheduleEndTime</code> | <code>UInt</code> | - Use this flag when updating the scheduled room end time.<br>- You must also set the <code>scheduleEndTime</code> field in <code>ScheduleRoomOptions</code>. |
165
+
166
+ #### 4. Add or Remove Participants
167
+
168
+ To add or remove participants from a scheduled room, use the `addScheduledAttendees` or `removeScheduledAttendees` methods on `RoomStore`:
169
+ ``` swift
170
+ import AtomicXCore
171
+ import Foundation
172
+
173
+ // Add participants
174
+ func addScheduledAttendees(roomID: String, userIDList: [String]) {
175
+ RoomStore.shared.addScheduledAttendees(roomID: roomID, userIDList: userIDList) { result in
176
+ guard let self = self else { return }
177
+ switch result {
178
+ case .success:
179
+ print("Scheduled participants added successfully")
180
+ case .failure(let error):
181
+ print("Failed to add scheduled participants: [Error Code: \(error.code)] \(error.message)")
182
+ }
183
+ }
184
+ }
185
+
186
+ // Remove participants
187
+ func removeScheduledAttendees(roomID: String, userIDList: [String]) {
188
+ RoomStore.shared.removeScheduledAttendees(roomID: roomID, userIDList: userIDList) { result in
189
+ switch result {
190
+ case .success:
191
+ print("Scheduled participants removed successfully")
192
+ case .failure(let error):
193
+ print("Failed to remove scheduled participants: [Error Code: \(error.code)] \(error.message)")
194
+ }
195
+ }
196
+ }
197
+ ```
198
+
199
+ ### Step 3: Retrieving the Scheduled Room List
200
+
201
+ To obtain all scheduled rooms for the current account, call the `getScheduledRoomList` method. Paging is supported via the `cursor` parameter.
202
+ ``` swift
203
+ import AtomicXCore
204
+ import Foundation
205
+
206
+ // Retrieve scheduled room list
207
+ func getScheduledRoomList(cursor: String? = nil) {
208
+ // 'cursor' is a pagination cursor. Pass nil for the first call; use the previous nextCursor for subsequent pages.
209
+ RoomStore.shared.getScheduledRoomList(cursor: cursor) { result in
210
+ switch result {
211
+ case .success(let (roomList, nextCursor)):
212
+ print("Scheduled room list retrieved successfully")
213
+ case .failure(let error):
214
+ print("Failed to retrieve scheduled room list: [Error Code: \(error.code)] \(error.message)")
215
+ }
216
+ }
217
+ }
218
+ ```
219
+
220
+ ### Step 4: Retrieve Participants for a Scheduled Room
221
+
222
+ To retrieve the participant list for a specific scheduled room, use the `getScheduledAttendees` method. Paging is supported via the `cursor` parameter.
223
+ ``` swift
224
+ import AtomicXCore
225
+ import Foundation
226
+
227
+ // Retrieve participant list for a scheduled room
228
+ func getScheduledAttendees(roomID: String, cursor: String? = nil) {
229
+ // 'cursor' is a pagination cursor. Pass nil for the first call; use the previous nextCursor for subsequent pages.
230
+ RoomStore.shared.getScheduledAttendees(roomID: roomID, cursor: cursor) { result in
231
+ switch result {
232
+ case .success(let (attendees, nextCursor)):
233
+ print("Scheduled room participants retrieved successfully")
234
+ case .failure(let error):
235
+ print("Failed to retrieve scheduled room participants: [Error Code: \(error.code)] \(error.message)")
236
+ }
237
+ }
238
+ }
239
+ ```
240
+
241
+ ### Step 5: Subscribe to Real-Time Scheduled Room Events and State Changes
242
+
243
+ Subscribe to passive events related to scheduled rooms using `RoomEvent`:
244
+ ``` swift
245
+ import AtomicXCore
246
+ import Foundation
247
+ import Combine
248
+
249
+ private var cancellableSet = Set<AnyCancellable>()
250
+
251
+ /// Subscribe to scheduled room events
252
+ private func subscribeScheduledRoomEvents() {
253
+ RoomStore.shared.roomEventPublisher
254
+ .receive(on: DispatchQueue.main)
255
+ .sink { event in
256
+ switch event {
257
+ case .onAddedToScheduledRoom(let roomInfo):
258
+ print("Added to scheduled room. Room info: \(roomInfo)")
259
+ case .onRemovedFromScheduledRoom(let roomInfo, let operatorUser):
260
+ print("Removed from scheduled room. Room info: \(roomInfo), removed by: \(operatorUser)")
261
+ case .onScheduledRoomCancelled(let roomInfo, let operatorUser):
262
+ print("Scheduled room cancelled. Room info: \(roomInfo), cancelled by: \(operatorUser)")
263
+ case .onScheduledRoomStartingSoon(let roomInfo):
264
+ print("Scheduled room starting soon. Room info: \(roomInfo)")
265
+ default:
266
+ // Handle other non-scheduled room events
267
+ break
268
+ }
269
+ }
270
+ .store(in: &cancellableSet)
271
+ }
272
+ ```
273
+
274
+ Subscribe to changes in the scheduled room list state using `RoomState`:
275
+ ``` swift
276
+ import AtomicXCore
277
+ import Foundation
278
+ import Combine
279
+
280
+ private var cancellableSet = Set<AnyCancellable>()
281
+
282
+ /// Subscribe to scheduled room list state changes
283
+ private func subscribeScheduledRoomListState() {
284
+ RoomStore.shared.state.subscribe(StatePublisherSelector(keyPath: \.scheduledRoomList))
285
+ .receive(on: DispatchQueue.main)
286
+ .sink { scheduledRoomList in
287
+ print("Scheduled room list changed. Room list info: \(scheduledRoomList)")
288
+ }
289
+ .store(in: &cancellableSet)
290
+ }
291
+ ```
292
+
293
+ ## API Documentation
294
+
295
+ |**Store/Component**|**Feature Description**|**API Documentation**|
296
+ |---------|---------|---------|
297
+ |**RoomStore**|Complete room lifecycle management: create & join / join / leave / end room / update & retrieve room info / schedule rooms / invite users outside the room / listen for passive in-room events (such as room deletion, info updates, etc.)|[API Documentation](https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore/roomstore)|
298
+
299
+ ## FAQs
300
+
301
+ ### Why am I not receiving the `onScheduledRoomStartingSoon` event from `RoomEvent` after scheduling a room?
302
+
303
+ If you are not receiving a "room starting soon" notification after scheduling, check the following:
304
+ 1. **Verify Reminder Parameter (**`reminderSecondsBeforeStart`**)**
305
+
306
+ - The `onScheduledRoomStartingSoon` event depends on the `reminderSecondsBeforeStart` property in `ScheduleRoomOptions`.
307
+
308
+ - By default, this property is 0, which disables the reminder.
309
+
310
+ - To enable reminders, set this parameter explicitly when scheduling the room. The value is in **seconds** and determines how long before the start time the event is triggered.
311
+
312
+ 2. **Check the Scheduling Logic**
313
+
314
+ - The event will only be triggered if the following condition is met: scheduled start time (`scheduleStartTime`) - current time > reminder offset (`reminderSecondsBeforeStart`).
315
+
316
+ - If the room's start time is too close (e.g., 5 minutes away) and the reminder is set too far in advance (e.g., 10 minutes before), the event will not trigger.
317
+
318
+ - Make sure the scheduled start time is at least as far in the future as the reminder value you set.
319
+
320
+ ## Contact Us
321
+
322
+ For questions or feedback during integration or usage, contact info_rtc@tencent.com.