@tencent-rtc/mcp 1.4.7 → 1.6.0-beta.1
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.
- package/cursor-setting.png +0 -0
- package/knowledge/bm25-cache.js +74 -0
- package/knowledge/bm25-cache.js.map +1 -0
- package/knowledge/bm25.js +148 -0
- package/knowledge/bm25.js.map +1 -0
- package/knowledge/build-index.js +70 -0
- package/knowledge/build-index.js.map +1 -0
- package/knowledge/chunker.js +168 -0
- package/knowledge/chunker.js.map +1 -0
- package/knowledge/content-loader.js +40 -0
- package/knowledge/content-loader.js.map +1 -0
- package/knowledge/doc-url-resolver.js +143 -0
- package/knowledge/doc-url-resolver.js.map +1 -0
- package/knowledge/extractors.js +26 -0
- package/knowledge/extractors.js.map +1 -0
- package/knowledge/path-meta.js +185 -0
- package/knowledge/path-meta.js.map +1 -0
- package/knowledge/search/exact-lookup.js +498 -0
- package/knowledge/search/exact-lookup.js.map +1 -0
- package/knowledge/search/filter-pool.js +105 -0
- package/knowledge/search/filter-pool.js.map +1 -0
- package/knowledge/search/product-scope-intent.js +41 -0
- package/knowledge/search/product-scope-intent.js.map +1 -0
- package/knowledge/search/requires-framework.js +82 -0
- package/knowledge/search/requires-framework.js.map +1 -0
- package/knowledge/search/search-knowledge.js +230 -0
- package/knowledge/search/search-knowledge.js.map +1 -0
- package/mcp-server-prompt.png +0 -0
- package/package.json +1 -1
- package/resource/_schema/feature-aliases.yaml +10 -0
- package/resource/_schema/goal-tags.yaml +72 -0
- package/resource/_schema/products.yaml +19 -0
- package/resource/_schema/trtc-intents.yaml +27 -0
- package/resource/_schema/types.yaml +43 -0
- package/resource/index/component-slugs.json +1 -0
- package/resource/index/doc-source-urls.json +1 -0
- package/resource/index/manifest.json +1 -0
- package/resource/{doc → integration}/callkit/preset/android/integration.md +34 -28
- package/resource/integration/callkit/preset/flutter/integration.md +346 -0
- package/resource/integration/callkit/preset/ios/integration.md +408 -0
- package/resource/integration/callkit/preset/react/integration.md +362 -0
- package/resource/integration/callkit/preset/vue/integration.md +356 -0
- package/resource/integration/chat/preset/android/integration.md +500 -0
- package/resource/integration/chat/preset/flutter/integration.md +370 -0
- package/resource/integration/chat/preset/ios/integration.md +566 -0
- package/resource/integration/chat/preset/react/integration.md +490 -0
- package/resource/integration/chat/preset/vue/integration.md +504 -0
- package/resource/{doc → integration}/livekit/preset/live/vue/live-list-integration.md +26 -22
- package/resource/{doc → integration}/livekit/preset/live/vue/live-player-desk-integration.md +22 -18
- package/resource/integration/livekit/preset/live/vue/live-player-h5-integration.md +309 -0
- package/resource/{doc → integration}/livekit/preset/live/vue/live-pusher-integration.md +47 -39
- package/resource/integration/roomkit/preset/vue/integration.md +562 -0
- package/resource/knowledge/callkit/core-sdk/android/answer-call.md +828 -0
- package/resource/knowledge/callkit/core-sdk/android/make-call.md +897 -0
- package/resource/knowledge/callkit/core-sdk/android/offline-push.md +363 -0
- package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +1111 -0
- package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +1132 -0
- package/resource/{doc → knowledge}/callkit/core-sdk/flutter/offline-push.md +174 -151
- package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +1084 -0
- package/resource/knowledge/callkit/core-sdk/ios/make-call.md +1252 -0
- package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +534 -0
- package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +953 -0
- package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +1061 -0
- package/resource/knowledge/callkit/faq/android.md +92 -0
- package/resource/{doc/callkit/faq/android-faq.md → knowledge/callkit/faq/common.md} +11 -12
- package/resource/knowledge/callkit/faq/error-code.md +67 -0
- package/resource/knowledge/callkit/faq/flutter.md +52 -0
- package/resource/knowledge/callkit/faq/ios.md +104 -0
- package/resource/knowledge/callkit/faq/web.md +74 -0
- package/resource/knowledge/callkit/preset/android/api.md +412 -0
- package/resource/knowledge/callkit/preset/flutter/api.md +22 -0
- package/resource/knowledge/callkit/preset/ios/api.md +234 -0
- package/resource/knowledge/callkit/preset/web/api.md +83 -0
- package/resource/knowledge/chat/preset/android/features/chat-setting.md +74 -0
- package/resource/knowledge/chat/preset/android/features/contact-list.md +43 -0
- package/resource/knowledge/chat/preset/android/features/conversation-list.md +117 -0
- package/resource/knowledge/chat/preset/android/features/language.md +136 -0
- package/resource/knowledge/chat/preset/android/features/message-input.md +57 -0
- package/resource/knowledge/chat/preset/android/features/message-list.md +142 -0
- package/resource/knowledge/chat/preset/android/features/search.md +64 -0
- package/resource/knowledge/chat/preset/android/features/theme.md +222 -0
- package/resource/knowledge/chat/preset/android-view/integration.md +300 -0
- package/resource/knowledge/chat/preset/flutter/features/chat-setting.md +64 -0
- package/resource/knowledge/chat/preset/flutter/features/contact-list.md +40 -0
- package/resource/knowledge/chat/preset/flutter/features/conversation-list.md +129 -0
- package/resource/knowledge/chat/preset/flutter/features/language.md +104 -0
- package/resource/knowledge/chat/preset/flutter/features/message-input.md +54 -0
- package/resource/knowledge/chat/preset/flutter/features/message-list.md +158 -0
- package/resource/knowledge/chat/preset/flutter/features/search.md +59 -0
- package/resource/knowledge/chat/preset/flutter/features/theme.md +261 -0
- package/resource/knowledge/chat/preset/ios/features/chat-setting.md +94 -0
- package/resource/knowledge/chat/preset/ios/features/contact-list.md +119 -0
- package/resource/knowledge/chat/preset/ios/features/conversation-list.md +134 -0
- package/resource/knowledge/chat/preset/ios/features/language.md +125 -0
- package/resource/knowledge/chat/preset/ios/features/message-input.md +69 -0
- package/resource/knowledge/chat/preset/ios/features/message-list.md +162 -0
- package/resource/knowledge/chat/preset/ios/features/search.md +93 -0
- package/resource/knowledge/chat/preset/ios/features/theme.md +270 -0
- package/resource/{doc/chatkit/ios → knowledge/chat/preset/ios-uikit}/integration.md +160 -158
- package/resource/knowledge/chat/preset/react/features/chat-setting.md +101 -0
- package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/contact-list.md +43 -41
- package/resource/knowledge/chat/preset/react/features/conversation-actions.md +215 -0
- package/resource/knowledge/chat/preset/react/features/conversation-list.md +339 -0
- package/resource/knowledge/chat/preset/react/features/conversation-preview.md +101 -0
- package/resource/knowledge/chat/preset/react/features/conversation-search.md +61 -0
- package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/message-input.md +117 -156
- package/resource/knowledge/chat/preset/react/features/message-list.md +297 -0
- package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/search.md +65 -59
- package/resource/knowledge/chat/preset/react/features/theme.md +93 -0
- package/resource/knowledge/chat/preset/vue/features/chat-header.md +331 -0
- package/resource/knowledge/chat/preset/vue/features/chat-setting.md +79 -0
- package/resource/knowledge/chat/preset/vue/features/contact-list.md +277 -0
- package/resource/knowledge/chat/preset/vue/features/conversation-actions.md +234 -0
- package/resource/knowledge/chat/preset/vue/features/conversation-list.md +331 -0
- package/resource/knowledge/chat/preset/vue/features/conversation-preview.md +216 -0
- package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/conversation-search.md +13 -13
- package/resource/knowledge/chat/preset/vue/features/message-input.md +551 -0
- package/resource/knowledge/chat/preset/vue/features/message-list.md +350 -0
- package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/search.md +79 -73
- package/resource/knowledge/chat/preset/vue/features/theme.md +136 -0
- package/resource/knowledge/chat/urls/error-code.md +17 -0
- package/resource/knowledge/chat/urls/product.md +43 -0
- package/resource/knowledge/chat/urls/restapi.md +204 -0
- package/resource/knowledge/chat/urls/sdk/android.md +80 -0
- package/resource/knowledge/chat/urls/sdk/flutter.md +71 -0
- package/resource/knowledge/chat/urls/sdk/ios.md +80 -0
- package/resource/knowledge/chat/urls/sdk/web.md +80 -0
- package/resource/knowledge/chat/urls/webhook.md +68 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/AudioEffectStore.md +286 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/BarrageStore.md +174 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/BattleStore.md +329 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CameraView.md +55 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CoGuestStore.md +434 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CoHostStore.md +362 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/DeviceStore.md +466 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/GiftStore.md +173 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LikeStore.md +51 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveAudienceStore.md +291 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveCoreView.md +78 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveSeatStore.md +488 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LoginStore.md +219 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/AudioEffectStore.md +282 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BarrageStore.md +212 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BaseBeautyStore.md +153 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BattleStore.md +312 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoGuestStore.md +404 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoHostStore.md +334 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/DeviceStore.md +426 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/GiftStore.md +166 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LikeStore.md +52 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveAudienceStore.md +281 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveCoreView.md +150 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveSeatStore.md +438 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LoginStore.md +190 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/AudioEffectStore.md +291 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BarrageStore.md +192 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BaseBeautyStore.md +146 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BattleStore.md +309 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoGuestStore.md +370 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoHostStore.md +339 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/DeviceStore.md +503 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/GiftStore.md +188 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LikeStore.md +51 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveAudienceStore.md +289 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveCoreView.md +78 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveSeatStore.md +487 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LoginStore.md +183 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/web/index.md +736 -0
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-audience-list.md +53 -47
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-audio-effect.md +28 -24
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-barrage.md +22 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-base-beauty.md +17 -15
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-co-guest-interaction.md +19 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-gift.md +102 -89
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-host-interaction.md +41 -37
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-integration.md +45 -43
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-live-list.md +23 -20
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-audience-list.md +41 -41
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-audio-effect.md +70 -69
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-barrage.md +68 -71
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-base-beauty.md +43 -47
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-co-guest-interaction.md +59 -56
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-gift.md +103 -105
- package/resource/knowledge/livekit/core-sdk/live/flutter/live-host-interaction.md +869 -0
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-integration.md +84 -87
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-live-list.md +43 -40
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-audience-list.md +11 -10
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-audio-effect.md +28 -24
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-barrage.md +22 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-base-beauty.md +15 -14
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-co-guest-interaction.md +19 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-gift.md +54 -50
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-host-interaction.md +41 -37
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-integration.md +40 -40
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-live-list.md +19 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-audience-list.md +53 -47
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-audio-effect.md +28 -24
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-barrage.md +22 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-co-guest-interaction.md +41 -33
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-gift.md +94 -81
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-host-interaction.md +35 -30
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-integration.md +45 -42
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-room-list.md +23 -20
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audience-list.md +260 -0
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audio-effect.md +598 -0
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-barrage.md +490 -0
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-co-guest-interaction.md +65 -59
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-gift.md +424 -0
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-integration.md +69 -76
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-room-list.md +726 -0
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-audience-list.md +11 -10
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-audio-effect.md +28 -24
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-barrage.md +22 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-co-guest-interaction.md +41 -33
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-gift.md +54 -50
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-host-interaction.md +35 -30
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-integration.md +49 -46
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-room-list.md +19 -18
- package/resource/knowledge/livekit/faq/error-code.md +193 -0
- package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/barrage.md +56 -53
- package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/live-audience-list.md +22 -21
- package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/live-view.md +34 -32
- package/resource/knowledge/push/config/android.md +92 -0
- package/resource/knowledge/push/config/harmonyos.md +83 -0
- package/resource/knowledge/push/config/ios.md +254 -0
- package/resource/knowledge/push/config/react-native.md +254 -0
- package/resource/knowledge/push/config/unity.md +209 -0
- package/resource/knowledge/push/config/unreal-engine.md +194 -0
- package/resource/knowledge/push/integration/android.md +404 -0
- package/resource/knowledge/push/integration/flutter.md +465 -0
- package/resource/knowledge/push/integration/harmonyos.md +63 -0
- package/resource/knowledge/push/integration/ios.md +246 -0
- package/resource/knowledge/push/integration/react-native.md +366 -0
- package/resource/knowledge/push/integration/uni-app.md +208 -0
- package/resource/knowledge/push/integration/unity.md +389 -0
- package/resource/knowledge/push/integration/unreal-engine.md +390 -0
- package/resource/knowledge/push/overview/prepare.md +60 -0
- package/resource/knowledge/roomkit/core-sdk/android/call-user-to-room.md +241 -0
- package/resource/knowledge/roomkit/core-sdk/android/room-participant-state.md +588 -0
- package/resource/knowledge/roomkit/core-sdk/android/room-state.md +364 -0
- package/resource/knowledge/roomkit/core-sdk/android/schedule-room.md +340 -0
- package/resource/knowledge/roomkit/core-sdk/flutter/call-user-to-room.md +230 -0
- package/resource/knowledge/roomkit/core-sdk/flutter/room-participant-state.md +797 -0
- package/resource/knowledge/roomkit/core-sdk/flutter/room-state.md +325 -0
- package/resource/knowledge/roomkit/core-sdk/flutter/schedule-room.md +325 -0
- package/resource/knowledge/roomkit/core-sdk/ios/call-user-to-room.md +233 -0
- package/resource/knowledge/roomkit/core-sdk/ios/room-participant-state.md +569 -0
- package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +325 -0
- package/resource/knowledge/roomkit/core-sdk/ios/schedule-room.md +322 -0
- package/resource/knowledge/roomkit/core-sdk/vue/call-user-to-room.md +221 -0
- package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/device-detection.md +49 -48
- package/resource/knowledge/roomkit/core-sdk/vue/device-state.md +461 -0
- package/resource/knowledge/roomkit/core-sdk/vue/free-beauty-panel.md +216 -0
- package/resource/knowledge/roomkit/core-sdk/vue/room-chat.md +370 -0
- package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/room-participant-state.md +61 -60
- package/resource/knowledge/roomkit/core-sdk/vue/room-state.md +280 -0
- package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/room-view.md +57 -56
- package/resource/knowledge/roomkit/core-sdk/vue/schedule-room.md +319 -0
- package/resource/knowledge/roomkit/core-sdk/vue/screen-share.md +267 -0
- package/resource/knowledge/roomkit/core-sdk/vue/virtual-background.md +261 -0
- package/resource/knowledge/roomkit/preset/android/integration.md +396 -0
- package/resource/knowledge/roomkit/preset/flutter/integration.md +404 -0
- package/resource/knowledge/roomkit/preset/ios/integration.md +369 -0
- package/resource/knowledge/roomkit/preset/react/integration.md +576 -0
- package/resource/knowledge/rtcengine/web/how_to_run_web_sdk_demo.md +44 -0
- package/resource/{doc → knowledge}/rtcengine/web/plugin/21-advanced-auto-play-policy.md +8 -2
- package/resource/{doc → knowledge}/rtcengine/web/plugin/22-advanced-audio-mixer.md +19 -1
- package/resource/{doc → knowledge}/rtcengine/web/plugin/23-advanced-support-detection.md +1 -1
- package/resource/{doc → knowledge}/rtcengine/web/plugin/24-advanced-network-quality.md +8 -8
- package/resource/{doc → knowledge}/rtcengine/web/plugin/25-advanced-device-change.md +1 -1
- package/resource/{doc → knowledge}/rtcengine/web/plugin/26-advanced-publish-cdn-stream.md +6 -6
- package/resource/{doc → knowledge}/rtcengine/web/plugin/27-advanced-small-stream.md +3 -3
- package/resource/{doc → knowledge}/rtcengine/web/plugin/29-advanced-water-mark.md +18 -0
- package/resource/{doc → knowledge}/rtcengine/web/plugin/31-advanced-plugins-overview.md +1 -1
- package/resource/{doc → knowledge}/rtcengine/web/plugin/34-advanced-proxy.md +2 -2
- package/resource/{doc → knowledge}/rtcengine/web/plugin/35-advanced-ai-denoiser.md +1 -1
- package/resource/knowledge/trtc/android/TRTCCloud.md +1915 -0
- package/resource/knowledge/trtc/android/TRTCCloudDef.md +1029 -0
- package/resource/knowledge/trtc/android/TRTCCloudListener.md +1095 -0
- package/resource/knowledge/trtc/android/TRTCStatistics.md +68 -0
- package/resource/knowledge/trtc/android/TXAudioEffectManager.md +502 -0
- package/resource/knowledge/trtc/android/TXBeautyManager.md +415 -0
- package/resource/knowledge/trtc/android/TXDeviceManager.md +169 -0
- package/resource/knowledge/trtc/android/TXLiteAVCode.md +125 -0
- package/resource/knowledge/trtc/c++/ITRTCCloud.md +2069 -0
- package/resource/knowledge/trtc/c++/ITRTCStatistics.md +73 -0
- package/resource/knowledge/trtc/c++/ITXAudioEffectManager.md +502 -0
- package/resource/knowledge/trtc/c++/ITXDeviceManager.md +391 -0
- package/resource/knowledge/trtc/c++/TRTCCloudCallback.md +1191 -0
- package/resource/knowledge/trtc/c++/TRTCTypeDef.md +931 -0
- package/resource/knowledge/trtc/c++/TXLiteAVCode.md +127 -0
- package/resource/knowledge/trtc/ios/TRTCCloud.md +2118 -0
- package/resource/knowledge/trtc/ios/TRTCCloudDef.md +975 -0
- package/resource/knowledge/trtc/ios/TRTCCloudDelegate.md +1131 -0
- package/resource/knowledge/trtc/ios/TRTCStatistics.md +68 -0
- package/resource/knowledge/trtc/ios/TXAudioEffectManager.md +423 -0
- package/resource/knowledge/trtc/ios/TXBeautyManager.md +416 -0
- package/resource/knowledge/trtc/ios/TXDeviceManager.md +387 -0
- package/resource/knowledge/trtc/ios/TXLiteAVCode.md +127 -0
- package/server.js +35 -11
- package/server.js.map +1 -1
- package/tools/call/get_native_call_uikit_integration.js +2 -3
- package/tools/call/get_native_call_uikit_integration.js.map +1 -1
- package/tools/call/get_native_callkit_core_integration.js +2 -5
- package/tools/call/get_native_callkit_core_integration.js.map +1 -1
- package/tools/call/get_web_call_uikit_integration.js +2 -3
- package/tools/call/get_web_call_uikit_integration.js.map +1 -1
- package/tools/chat/get_native_chat_uikit_integration.js +2 -3
- package/tools/chat/get_native_chat_uikit_integration.js.map +1 -1
- package/tools/chat/get_web_chat_uikit_integration.js +2 -3
- package/tools/chat/get_web_chat_uikit_integration.js.map +1 -1
- package/tools/common/present_framework_choice.js +19 -13
- package/tools/common/present_framework_choice.js.map +1 -1
- package/tools/common/record_answer.js +19 -25
- package/tools/common/record_answer.js.map +1 -1
- package/tools/common/record_feedback.js +17 -30
- package/tools/common/record_feedback.js.map +1 -1
- package/tools/common/search_trtc_knowledge.js +45 -0
- package/tools/common/search_trtc_knowledge.js.map +1 -0
- package/tools/definitions/get_native_call_uikit_integration_def.js +3 -1
- package/tools/definitions/get_native_call_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_native_callkit_core_integration_def.js +5 -3
- package/tools/definitions/get_native_callkit_core_integration_def.js.map +1 -1
- package/tools/definitions/get_native_chat_uikit_integration_def.js +5 -2
- package/tools/definitions/get_native_chat_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_native_livekit_core_integration_def.js +6 -5
- package/tools/definitions/get_native_livekit_core_integration_def.js.map +1 -1
- package/tools/definitions/get_web_call_uikit_integration_def.js +4 -2
- package/tools/definitions/get_web_call_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_web_chat_uikit_integration_def.js +2 -0
- package/tools/definitions/get_web_chat_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_web_live_uikit_integration_def.js +5 -5
- package/tools/definitions/get_web_live_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_web_room_core_integration_def.js +50 -0
- package/tools/definitions/get_web_room_core_integration_def.js.map +1 -0
- package/tools/definitions/get_web_room_uikit_integration_def.js +5 -4
- package/tools/definitions/get_web_room_uikit_integration_def.js.map +1 -1
- package/tools/definitions/integration-boundary.js +6 -0
- package/tools/definitions/integration-boundary.js.map +1 -0
- package/tools/definitions/present_framework_choice_def.js +12 -10
- package/tools/definitions/present_framework_choice_def.js.map +1 -1
- package/tools/definitions/record_answer_def.js +19 -17
- package/tools/definitions/record_answer_def.js.map +1 -1
- package/tools/definitions/record_feedback_def.js +14 -13
- package/tools/definitions/record_feedback_def.js.map +1 -1
- package/tools/definitions/search_trtc_knowledge_def.js +40 -0
- package/tools/definitions/search_trtc_knowledge_def.js.map +1 -0
- package/tools/index.js +5 -36
- package/tools/index.js.map +1 -1
- package/tools/live/get_native_livekit_core_integration.js +1 -3
- package/tools/live/get_native_livekit_core_integration.js.map +1 -1
- package/tools/live/get_web_live_uikit_integration.js +2 -4
- package/tools/live/get_web_live_uikit_integration.js.map +1 -1
- package/tools/room/get_web_room_core_integration.js +48 -0
- package/tools/room/get_web_room_core_integration.js.map +1 -0
- package/tools/room/get_web_room_uikit_integration.js +2 -3
- package/tools/room/get_web_room_uikit_integration.js.map +1 -1
- package/utils/generate-structured-result.js +24 -30
- package/utils/generate-structured-result.js.map +1 -1
- package/utils/get-doc-content.js +14 -8
- package/utils/get-doc-content.js.map +1 -1
- package/utils/report-cls-client.js +18 -20
- package/utils/report-cls-client.js.map +1 -1
- package/utils/report-es-client.js +1 -1
- package/resource/doc/callkit/core-sdk/.gitkeep +0 -0
- package/resource/doc/callkit/core-sdk/android/answer-call.md +0 -852
- package/resource/doc/callkit/core-sdk/android/make-call.md +0 -954
- package/resource/doc/callkit/core-sdk/android/offline-push.md +0 -361
- package/resource/doc/callkit/core-sdk/flutter/answer-call.md +0 -1160
- package/resource/doc/callkit/core-sdk/flutter/make-call.md +0 -1205
- package/resource/doc/callkit/core-sdk/ios/answer-call.md +0 -1090
- package/resource/doc/callkit/core-sdk/ios/make-call.md +0 -1248
- package/resource/doc/callkit/core-sdk/ios/offline-push.md +0 -485
- package/resource/doc/callkit/core-sdk/uni-app/answer-call.md +0 -950
- package/resource/doc/callkit/core-sdk/uni-app/make-call.md +0 -1052
- package/resource/doc/callkit/faq/common/error-code.md +0 -47
- package/resource/doc/callkit/faq/flutter-faq.md +0 -115
- package/resource/doc/callkit/faq/ios-faq.md +0 -115
- package/resource/doc/callkit/faq/web-faq.md +0 -36
- package/resource/doc/callkit/preset/android/api.md +0 -296
- package/resource/doc/callkit/preset/flutter/api.md +0 -410
- package/resource/doc/callkit/preset/flutter/integration.md +0 -164
- package/resource/doc/callkit/preset/ios/api.md +0 -80
- package/resource/doc/callkit/preset/ios/integration.md +0 -187
- package/resource/doc/callkit/preset/react/api.md +0 -501
- package/resource/doc/callkit/preset/react/integration.md +0 -86
- package/resource/doc/callkit/preset/vue/api.md +0 -501
- package/resource/doc/callkit/preset/vue/integration.md +0 -83
- package/resource/doc/chatkit/android/faq.md +0 -111
- package/resource/doc/chatkit/android/features/theme.md +0 -219
- package/resource/doc/chatkit/android/integration.md +0 -490
- package/resource/doc/chatkit/faq/android_sdk/client-api.md +0 -281
- package/resource/doc/chatkit/faq/common/product.md +0 -7
- package/resource/doc/chatkit/faq/common/server.md +0 -44
- package/resource/doc/chatkit/faq/common/server_error_code.md +0 -74
- package/resource/doc/chatkit/faq/flutter_sdk/client-api.md +0 -199
- package/resource/doc/chatkit/faq/flutter_sdk/faq.md +0 -53
- package/resource/doc/chatkit/faq/ios_sdk/client-api.md +0 -235
- package/resource/doc/chatkit/faq/web_sdk/error_code.md +0 -47
- package/resource/doc/chatkit/faq/web_sdk/faq.md +0 -287
- package/resource/doc/chatkit/flutter/faq.md +0 -23
- package/resource/doc/chatkit/flutter/features/theme.md +0 -235
- package/resource/doc/chatkit/flutter/integration.md +0 -344
- package/resource/doc/chatkit/ios/faq.md +0 -111
- package/resource/doc/chatkit/ios/features/theme.md +0 -267
- package/resource/doc/chatkit/react/components/avatar.md +0 -104
- package/resource/doc/chatkit/react/components/chat-header.md +0 -148
- package/resource/doc/chatkit/react/components/chat-setting.md +0 -57
- package/resource/doc/chatkit/react/components/chat.md +0 -38
- package/resource/doc/chatkit/react/components/component-list.md +0 -37
- package/resource/doc/chatkit/react/components/conversation-actions.md +0 -174
- package/resource/doc/chatkit/react/components/conversation-list.md +0 -333
- package/resource/doc/chatkit/react/components/conversation-preview.md +0 -118
- package/resource/doc/chatkit/react/components/conversation-search.md +0 -60
- package/resource/doc/chatkit/react/components/message-list.md +0 -293
- package/resource/doc/chatkit/react/components/tuikit.md +0 -34
- package/resource/doc/chatkit/react/faq.md +0 -26
- package/resource/doc/chatkit/react/integration.md +0 -416
- package/resource/doc/chatkit/vue/components/avatar.md +0 -104
- package/resource/doc/chatkit/vue/components/chat-header.md +0 -148
- package/resource/doc/chatkit/vue/components/chat-setting.md +0 -62
- package/resource/doc/chatkit/vue/components/chat.md +0 -45
- package/resource/doc/chatkit/vue/components/component-list.md +0 -87
- package/resource/doc/chatkit/vue/components/contact-list.md +0 -271
- package/resource/doc/chatkit/vue/components/conversation-actions.md +0 -228
- package/resource/doc/chatkit/vue/components/conversation-list.md +0 -320
- package/resource/doc/chatkit/vue/components/conversation-preview.md +0 -213
- package/resource/doc/chatkit/vue/components/message-input.md +0 -1054
- package/resource/doc/chatkit/vue/components/message-list.md +0 -433
- package/resource/doc/chatkit/vue/components/tuikit.md +0 -31
- package/resource/doc/chatkit/vue/components/userpicker.md +0 -256
- package/resource/doc/chatkit/vue/faq.md +0 -36
- package/resource/doc/chatkit/vue/integration.md +0 -428
- package/resource/doc/livekit/core-sdk/live/flutter/live-host-interaction.md +0 -866
- package/resource/doc/livekit/faq/common/error-code.md +0 -88
- package/resource/doc/livekit/preset/live/vue/api-reference/index.md +0 -780
- package/resource/doc/livekit/preset/live/vue/components/co-guest-panel.md +0 -91
- package/resource/doc/livekit/preset/live/vue/components/live-scene-panel.md +0 -112
- package/resource/doc/livekit/preset/live/vue/components/stream-mixer.md +0 -215
- package/resource/doc/livekit/preset/live/vue/live-player-h5-integration.md +0 -300
- package/resource/doc/roomkit/faq/common/error-code.md +0 -67
- package/resource/doc/roomkit/vue/features/call-user-to-room.md +0 -220
- package/resource/doc/roomkit/vue/features/device-state.md +0 -460
- package/resource/doc/roomkit/vue/features/free-beauty-panel.md +0 -215
- package/resource/doc/roomkit/vue/features/room-chat.md +0 -369
- package/resource/doc/roomkit/vue/features/room-state.md +0 -282
- package/resource/doc/roomkit/vue/features/schedule-room.md +0 -318
- package/resource/doc/roomkit/vue/features/screen-share.md +0 -265
- package/resource/doc/roomkit/vue/features/virtual-background.md +0 -271
- package/resource/doc/roomkit/vue/integration.md +0 -315
- package/resource/doc/rtcengine/faq/common/error_code.md +0 -1
- package/resource/doc/rtcengine/faq/web_sdk/.gitkeep +0 -0
- package/resource/doc/rtcengine/web/.gitkeep +0 -0
- package/resource/doc/rtcengine/web/how_to_run_web_sdk_demo.md +0 -59
- package/resource/doc/trtc/C++/ITRTCCloud.md +0 -1970
- package/resource/doc/trtc/C++/ITRTCStatistics.md +0 -70
- package/resource/doc/trtc/C++/ITXAudioEffectManager.md +0 -469
- package/resource/doc/trtc/C++/ITXDeviceManager.md +0 -387
- package/resource/doc/trtc/C++/TRTCCloudCallback.md +0 -1082
- package/resource/doc/trtc/C++/TRTCTypeDef.md +0 -925
- package/resource/doc/trtc/C++/TXLiteAVCode.md +0 -129
- package/resource/doc/trtc/android/TRTCCloud.md +0 -1815
- package/resource/doc/trtc/android/TRTCCloudDef.md +0 -992
- package/resource/doc/trtc/android/TRTCCloudListener.md +0 -1004
- package/resource/doc/trtc/android/TRTCStatistics.md +0 -65
- package/resource/doc/trtc/android/TXAudioEffectManager.md +0 -469
- package/resource/doc/trtc/android/TXBeautyManager.md +0 -402
- package/resource/doc/trtc/android/TXDeviceManager.md +0 -173
- package/resource/doc/trtc/android/TXLiteAVCode.md +0 -127
- package/resource/doc/trtc/iOS/TRTCCloud.md +0 -2028
- package/resource/doc/trtc/iOS/TRTCCloudDef.md +0 -958
- package/resource/doc/trtc/iOS/TRTCCloudDelegate.md +0 -1046
- package/resource/doc/trtc/iOS/TRTCStatistics.md +0 -65
- package/resource/doc/trtc/iOS/TXAudioEffectManager.md +0 -397
- package/resource/doc/trtc/iOS/TXBeautyManager.md +0 -403
- package/resource/doc/trtc/iOS/TXDeviceManager.md +0 -381
- package/resource/doc/trtc/iOS/TXLiteAVCode.md +0 -130
- package/tools/call/get_callkit_api.js +0 -33
- package/tools/call/get_callkit_api.js.map +0 -1
- package/tools/chat/get_native_chat_uikit_feature_detail.js +0 -35
- package/tools/chat/get_native_chat_uikit_feature_detail.js.map +0 -1
- package/tools/chat/get_web_chat_uikit_component_detail.js +0 -35
- package/tools/chat/get_web_chat_uikit_component_detail.js.map +0 -1
- package/tools/common/get_faq.js +0 -266
- package/tools/common/get_faq.js.map +0 -1
- package/tools/common/record_skill_session.js +0 -69
- package/tools/common/record_skill_session.js.map +0 -1
- package/tools/definitions/get_callkit_api_def.js +0 -29
- package/tools/definitions/get_callkit_api_def.js.map +0 -1
- package/tools/definitions/get_faq_def.js +0 -47
- package/tools/definitions/get_faq_def.js.map +0 -1
- package/tools/definitions/get_native_chat_uikit_feature_detail_def.js +0 -31
- package/tools/definitions/get_native_chat_uikit_feature_detail_def.js.map +0 -1
- package/tools/definitions/get_native_livekit_core_features_def.js +0 -34
- package/tools/definitions/get_native_livekit_core_features_def.js.map +0 -1
- package/tools/definitions/get_native_trtc_sdk_docs_def.js +0 -32
- package/tools/definitions/get_native_trtc_sdk_docs_def.js.map +0 -1
- package/tools/definitions/get_web_chat_uikit_component_detail_def.js +0 -31
- package/tools/definitions/get_web_chat_uikit_component_detail_def.js.map +0 -1
- package/tools/definitions/get_web_livekit_api_def.js +0 -30
- package/tools/definitions/get_web_livekit_api_def.js.map +0 -1
- package/tools/definitions/get_web_livekit_component_detail_def.js +0 -32
- package/tools/definitions/get_web_livekit_component_detail_def.js.map +0 -1
- package/tools/definitions/get_web_roomkit_feature_detail_def.js +0 -31
- package/tools/definitions/get_web_roomkit_feature_detail_def.js.map +0 -1
- package/tools/definitions/get_web_trtc_sdk_api_def.js +0 -27
- package/tools/definitions/get_web_trtc_sdk_api_def.js.map +0 -1
- package/tools/definitions/get_web_trtc_sdk_integration_def.js +0 -27
- package/tools/definitions/get_web_trtc_sdk_integration_def.js.map +0 -1
- package/tools/definitions/get_web_trtc_sdk_plugin_def.js +0 -27
- package/tools/definitions/get_web_trtc_sdk_plugin_def.js.map +0 -1
- package/tools/definitions/record_skill_session_def.js +0 -31
- package/tools/definitions/record_skill_session_def.js.map +0 -1
- package/tools/live/get_native_livekit_core_features.js +0 -68
- package/tools/live/get_native_livekit_core_features.js.map +0 -1
- package/tools/live/get_web_livekit_api.js +0 -33
- package/tools/live/get_web_livekit_api.js.map +0 -1
- package/tools/live/get_web_livekit_component_detail.js +0 -35
- package/tools/live/get_web_livekit_component_detail.js.map +0 -1
- package/tools/room/get_web_roomkit_feature_detail.js +0 -69
- package/tools/room/get_web_roomkit_feature_detail.js.map +0 -1
- package/tools/rtcengine/get_web_trtc_sdk_api.js +0 -32
- package/tools/rtcengine/get_web_trtc_sdk_api.js.map +0 -1
- package/tools/rtcengine/get_web_trtc_sdk_integration.js +0 -32
- package/tools/rtcengine/get_web_trtc_sdk_integration.js.map +0 -1
- package/tools/rtcengine/get_web_trtc_sdk_plugin.js +0 -32
- package/tools/rtcengine/get_web_trtc_sdk_plugin.js.map +0 -1
- package/tools/trtc/get_native_trtc_sdk_docs.js +0 -74
- package/tools/trtc/get_native_trtc_sdk_docs.js.map +0 -1
- package/utils/build-session-directives.js +0 -120
- package/utils/build-session-directives.js.map +0 -1
- package/utils/handle-framework.js +0 -9
- package/utils/handle-framework.js.map +0 -1
- package/utils/handle-state-name.js +0 -29
- package/utils/handle-state-name.js.map +0 -1
- package/utils/report-runtime-error-cls-client.js +0 -91
- package/utils/report-runtime-error-cls-client.js.map +0 -1
- /package/resource/{doc/livekit/preset/live/vue/faq.md → knowledge/push/config/donut.md} +0 -0
- /package/resource/{doc/roomkit/vue/faq.md → knowledge/push/integration/donut.md} +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/api.md +0 -0
- /package/resource/{doc/rtcengine/faq/web/web.md → knowledge/rtcengine/web/faq.md} +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/how_to_integrated_web_sdk.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/20-advanced-customized-capture-rendering.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/28-advanced-beauty.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/30-advanced-cross-room-link.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/36-advanced-virtual-background.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/37-advanced-voice-changer.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/39-advanced-video-decoder.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/40-advanced-video-mixer.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/41-advanced-small-stream-auto-switcher.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/42-advanced-realtime-transcriber.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/43-advanced-face-detection.md +0 -0
|
@@ -1,485 +0,0 @@
|
|
|
1
|
-
This guide walks you through integrating VoIP Push functionality using the TIMPush service, designed for headless (UI-less) scenarios with **AtomicXCore**.
|
|
2
|
-
|
|
3
|
-
> **Note:**
|
|
4
|
-
>
|
|
5
|
-
> - You must activate the TIMPush service before using VoIP Push.
|
|
6
|
-
> - **LiveCommunicationKit requires iOS 17.4 or later.**
|
|
7
|
-
> - VoIP Push requires a dedicated certificate. Standard APNs push certificates cannot be reused. You must apply for a VoIP Push certificate separately through the Apple Developer portal.
|
|
8
|
-
|
|
9
|
-
After following this guide to integrate Apple **LiveCommunicationKit**, your app will support native call experiences similar to WeChat. Even if your app is terminated or the device is locked, the system will present a full-screen incoming call interface automatically.
|
|
10
|
-
|
|
11
|
-
## Prerequisites
|
|
12
|
-
|
|
13
|
-
### Activate the Service
|
|
14
|
-
|
|
15
|
-
Go to the **Chat Console > Plugin Marketplace** and click **Purchase Now** or **Free Trial** (each app is eligible for a one-time, 7-day free trial).
|
|
16
|
-
|
|
17
|
-
> **Note:**
|
|
18
|
-
>
|
|
19
|
-
> The push plugin will stop providing push services (including offline message push and broadcast/tag push) when your trial or subscription expires. To prevent service interruption, please purchase or renew your subscription in advance.
|
|
20
|
-
|
|
21
|
-
### Configure Vendors
|
|
22
|
-
|
|
23
|
-
#### Step 1: Apply for a VoIP Push Certificate
|
|
24
|
-
|
|
25
|
-
Before applying for a VoIP Push certificate, log in to the [Apple Developer Center](https://developer.apple.com/account/) and enable remote push notifications for your app. Once your AppID has Push Notification capability, follow these steps:
|
|
26
|
-
|
|
27
|
-
1. Log in to the [Apple Developer Center](https://developer.apple.com/account/) and click **Certificates, IDs & Profiles**.
|
|
28
|
-
2. Click the **+** button next to **Certificates**.
|
|
29
|
-
3. On the **Create a New Certificate** page, select **VoIP Services Certificate** and click **Continue**.
|
|
30
|
-
4. Select your app's Bundle ID and click **Continue**.
|
|
31
|
-
5. The system will prompt you to upload a Certificate Signing Request (CSR).
|
|
32
|
-
6. On your Mac, open **Keychain Access** and go to **Keychain Access > Certificate Assistant > Request a Certificate From a Certificate Authority**.
|
|
33
|
-
7. Enter your email address and common name (your name or company name), select **Save to disk**, then click **Continue**. This will generate a `*.certSigningRequest` file.
|
|
34
|
-
8. Return to the Apple Developer website (from Step 5), click **Choose File**, and upload the generated `*.certSigningRequest`. Click **Continue** to generate the certificate, then click **Download** to save it locally.
|
|
35
|
-
9. Double-click the downloaded `voip_services.cer` to import it into Keychain.
|
|
36
|
-
10. In Keychain, under **Login > My Certificates**, right-click the new VoIP Services certificate and export it as a `P12` file.
|
|
37
|
-
|
|
38
|
-
> **Note:**
|
|
39
|
-
>
|
|
40
|
-
> Be sure to set a password when saving the `P12` file.
|
|
41
|
-
|
|
42
|
-
#### Step 2: Upload the Certificate to the Chat Console
|
|
43
|
-
|
|
44
|
-
Open the Chat Console, select your Chat application, and upload the certificate as follows:
|
|
45
|
-
|
|
46
|
-
1. Select your Chat application and go to the **Access Settings** page of **Push**.
|
|
47
|
-
2. In **Manufacturer configuration**, switch to **iOS**, click **Add Certificate**, select the certificate type, upload the iOS certificate (`p12`), set the certificate password, and click **Confirm**.
|
|
48
|
-
3. After upload is complete, record the certificate IDs for the different environments.
|
|
49
|
-
|
|
50
|
-
> **Description:**
|
|
51
|
-
>
|
|
52
|
-
> - When adding certificates, the push type defaults to APNs, which does not affect the upload and use of VoIP certificates.
|
|
53
|
-
> - VoIP Push certificates do not distinguish between production and testing environments. Production and development environments use the same VoIP Push certificate; please upload it separately for each.
|
|
54
|
-
> - Certificate names should preferably use all English characters (avoid special characters like parentheses).
|
|
55
|
-
> - Uploaded certificates need a password set, otherwise push notifications cannot be received.
|
|
56
|
-
> - Certificates for App Store release need to be set to the production environment, otherwise push notifications cannot be received.
|
|
57
|
-
> - The uploaded `p12` certificate must be a real and valid certificate you applied for yourself.
|
|
58
|
-
> - Certificate IDs for development and production environments must be strictly distinguished; fill them in according to the actual environment.
|
|
59
|
-
|
|
60
|
-
## Feature Integration
|
|
61
|
-
|
|
62
|
-
### Step 1: Configure Project Capabilities
|
|
63
|
-
|
|
64
|
-
1. In your Xcode project, enable the **Push Notifications** capability under **Capabilities**.
|
|
65
|
-
2. Under **Background Modes**, enable the **Voice over IP** option.
|
|
66
|
-
|
|
67
|
-
### Step 2: Add Dependencies
|
|
68
|
-
|
|
69
|
-
1. **Add Pod Dependency:** Add `pod 'TUICore'` to your `Podfile`.
|
|
70
|
-
|
|
71
|
-
```ruby
|
|
72
|
-
pod 'TUICore'
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
2. **Install Component:** In your terminal, navigate to your project directory and run:
|
|
76
|
-
|
|
77
|
-
```bash
|
|
78
|
-
pod install --repo-update
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
### Step 3: Initialize PushKit and Set Certificate ID
|
|
82
|
-
|
|
83
|
-
1. Create a class to manage VoIP Push, and initialize `PushKit` to receive VoIP push notifications.
|
|
84
|
-
|
|
85
|
-
```swift
|
|
86
|
-
import PushKit
|
|
87
|
-
import ImSDK_Plus
|
|
88
|
-
import LiveCommunicationKit
|
|
89
|
-
|
|
90
|
-
class VoIPPushManager: NSObject {
|
|
91
|
-
private let pushRegistry: PKPushRegistry
|
|
92
|
-
private var certificateID: Int = 0
|
|
93
|
-
private var voipToken: Data? // Store token, report after TUILogin succeeds
|
|
94
|
-
|
|
95
|
-
// Store the current call UUID
|
|
96
|
-
private var currentCallUUID: UUID?
|
|
97
|
-
|
|
98
|
-
// ConversationManager for displaying the system call interface (Step 7)
|
|
99
|
-
private lazy var conversationManager: ConversationManager = {
|
|
100
|
-
let configuration = ConversationManager.Configuration(
|
|
101
|
-
ringtoneName: "phone_ringing.mp3", // Incoming call ringtone file name
|
|
102
|
-
iconTemplateImageData: nil, // Incoming call icon (optional)
|
|
103
|
-
supportsVideo: true // Whether video calls are supported
|
|
104
|
-
)
|
|
105
|
-
let manager = ConversationManager(configuration: configuration)
|
|
106
|
-
manager.delegate = self
|
|
107
|
-
return manager
|
|
108
|
-
}()
|
|
109
|
-
|
|
110
|
-
override init() {
|
|
111
|
-
pushRegistry = PKPushRegistry(queue: DispatchQueue.main)
|
|
112
|
-
super.init()
|
|
113
|
-
|
|
114
|
-
pushRegistry.delegate = self
|
|
115
|
-
pushRegistry.desiredPushTypes = [.voIP]
|
|
116
|
-
|
|
117
|
-
// Listen for TUILogin success notification
|
|
118
|
-
NotificationCenter.default.addObserver(
|
|
119
|
-
self,
|
|
120
|
-
selector: #selector(onTUILoginSuccess),
|
|
121
|
-
name: NSNotification.Name("TUILoginSuccess"),
|
|
122
|
-
object: nil
|
|
123
|
-
)
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
deinit {
|
|
127
|
-
NotificationCenter.default.removeObserver(self)
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
// Set certificate ID
|
|
131
|
-
func setCertificateID(_ certificateID: Int) {
|
|
132
|
-
self.certificateID = certificateID
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
// Report Token after TUILogin succeeds
|
|
136
|
-
@objc private func onTUILoginSuccess() {
|
|
137
|
-
// Received TUILogin success notification, start reporting VoIP Token
|
|
138
|
-
uploadVoIPToken()
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
// Report VoIP Token to Chat backend
|
|
142
|
-
private func uploadVoIPToken() {
|
|
143
|
-
guard let token = voipToken else {
|
|
144
|
-
// VoIP Token not yet obtained
|
|
145
|
-
return
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
guard certificateID != 0 else {
|
|
149
|
-
// Certificate ID not set
|
|
150
|
-
return
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
let config = V2TIMVOIPConfig()
|
|
154
|
-
config.certificateID = certificateID
|
|
155
|
-
config.token = token
|
|
156
|
-
|
|
157
|
-
V2TIMManager.sharedInstance().setVOIP(config: config, succ: {
|
|
158
|
-
// VoIP Token reported successfully
|
|
159
|
-
}, fail: { code, desc in
|
|
160
|
-
// VoIP Token report failed
|
|
161
|
-
})
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
2. Initialize and set the certificate ID in your `AppDelegate`:
|
|
167
|
-
|
|
168
|
-
```swift
|
|
169
|
-
class AppDelegate: UIResponder, UIApplicationDelegate {
|
|
170
|
-
private lazy var voipPushManager: VoIPPushManager = {
|
|
171
|
-
let manager = VoIPPushManager()
|
|
172
|
-
manager.setCertificateID(1234) // Replace with the certificate ID obtained from the Chat Console
|
|
173
|
-
return manager
|
|
174
|
-
}()
|
|
175
|
-
|
|
176
|
-
func application(_ application: UIApplication,
|
|
177
|
-
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
|
|
178
|
-
// Trigger the initialization of voipPushManager
|
|
179
|
-
_ = voipPushManager
|
|
180
|
-
return true
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
> **Note:**
|
|
186
|
-
>
|
|
187
|
-
> - `certificateID` is the ID you received after uploading your certificate in the Chat Console.
|
|
188
|
-
> - Always use the correct certificate ID for your development or production environment.
|
|
189
|
-
|
|
190
|
-
### Step 4: Obtain and Save VoIP Token
|
|
191
|
-
|
|
192
|
-
Implement the `PKPushRegistryDelegate` protocol. After obtaining the VoIP Token, save it first and report it only after `TUILogin` succeeds.
|
|
193
|
-
|
|
194
|
-
```swift
|
|
195
|
-
import PushKit
|
|
196
|
-
import ImSDK_Plus
|
|
197
|
-
|
|
198
|
-
extension VoIPPushManager: PKPushRegistryDelegate {
|
|
199
|
-
// Save VoIP Token after obtaining (do not report immediately)
|
|
200
|
-
func pushRegistry(_ registry: PKPushRegistry,
|
|
201
|
-
didUpdate pushCredentials: PKPushCredentials,
|
|
202
|
-
for type: PKPushType) {
|
|
203
|
-
guard type == .voIP else { return }
|
|
204
|
-
// Save token
|
|
205
|
-
voipToken = pushCredentials.token
|
|
206
|
-
// Convert token to string (for logging)
|
|
207
|
-
let tokenString = pushCredentials.token.map { String(format: "%02.2hhx", $0) }.joined()
|
|
208
|
-
// VoIP Token obtained
|
|
209
|
-
// If TUILogin is already completed, report immediately; otherwise, wait for TUILoginSuccess notification
|
|
210
|
-
uploadVoIPToken()
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
// Token invalidated
|
|
214
|
-
func pushRegistry(_ registry: PKPushRegistry,
|
|
215
|
-
didInvalidatePushTokenFor type: PKPushType) {
|
|
216
|
-
// VoIP Token invalidated
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
> **Note:**
|
|
222
|
-
>
|
|
223
|
-
> Only report the VoIP Token after the Chat SDK login is successful. Do not report immediately when the token is obtained.
|
|
224
|
-
|
|
225
|
-
### Step 5: Report Token
|
|
226
|
-
|
|
227
|
-
When a user logs in, first log in to the Chat SDK, then to `TUICore`. After `TUICore` login succeeds, a `TUILoginSuccess` notification is sent, and `VoIPPushManager` will automatically report the VoIP Token.
|
|
228
|
-
|
|
229
|
-
```swift
|
|
230
|
-
import TUICore
|
|
231
|
-
import AtomicXCore
|
|
232
|
-
|
|
233
|
-
// Step 1: Log in to Chat SDK (AtomicXCore -- LoginStore)
|
|
234
|
-
LoginStore.shared.login(
|
|
235
|
-
sdkAppID: sdkAppID,
|
|
236
|
-
userID: userID,
|
|
237
|
-
userSig: userSig
|
|
238
|
-
) { result in
|
|
239
|
-
switch result {
|
|
240
|
-
case .success:
|
|
241
|
-
// Chat SDK login succeeded
|
|
242
|
-
// Step 2: Log in to TUICore
|
|
243
|
-
TUILogin.login(
|
|
244
|
-
sdkAppID,
|
|
245
|
-
userID: userID,
|
|
246
|
-
userSig: userSig
|
|
247
|
-
) {
|
|
248
|
-
// TUICore login succeeded
|
|
249
|
-
// Send notification to trigger VoIP Token reporting
|
|
250
|
-
NotificationCenter.default.post(
|
|
251
|
-
name: NSNotification.Name("TUILoginSuccess"),
|
|
252
|
-
object: nil
|
|
253
|
-
)
|
|
254
|
-
} fail: { code, message in
|
|
255
|
-
// TUICore login failed
|
|
256
|
-
}
|
|
257
|
-
case .failure(let error):
|
|
258
|
-
// Chat SDK login failed
|
|
259
|
-
break
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
```
|
|
263
|
-
|
|
264
|
-
### Step 6: Receive VoIP Push Notifications
|
|
265
|
-
|
|
266
|
-
```swift
|
|
267
|
-
extension VoIPPushManager: PKPushRegistryDelegate {
|
|
268
|
-
// Receive VoIP Push
|
|
269
|
-
func pushRegistry(_ registry: PKPushRegistry,
|
|
270
|
-
didReceiveIncomingPushWith payload: PKPushPayload,
|
|
271
|
-
for type: PKPushType) {
|
|
272
|
-
guard type == .voIP else { return }
|
|
273
|
-
// You must report the incoming call to the system within 5 seconds, or the app will crash
|
|
274
|
-
showIncomingCall(with: payload) // Step 7
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
```
|
|
278
|
-
|
|
279
|
-
### Step 7: Display Incoming Call Notification
|
|
280
|
-
|
|
281
|
-
Use **LiveCommunicationKit** to report the incoming call to the system, which will automatically display the native incoming call UI.
|
|
282
|
-
|
|
283
|
-
```swift
|
|
284
|
-
import LiveCommunicationKit
|
|
285
|
-
|
|
286
|
-
extension VoIPPushManager {
|
|
287
|
-
// Report incoming call to the system
|
|
288
|
-
private func showIncomingCall(with payload: PKPushPayload) {
|
|
289
|
-
// Parse push data
|
|
290
|
-
let payloadDict = payload.dictionaryPayload
|
|
291
|
-
// 1. Get caller name (required field)
|
|
292
|
-
guard let callerName = payloadDict["voip_caller_name"] as? String else {
|
|
293
|
-
// Missing voip_caller_name field
|
|
294
|
-
return
|
|
295
|
-
}
|
|
296
|
-
// 2. Parse ext field to get call type (audio/video)
|
|
297
|
-
var isVideoCall = false
|
|
298
|
-
if let extString = payloadDict["ext"] as? String,
|
|
299
|
-
let extData = extString.data(using: .utf8),
|
|
300
|
-
let extDic = try? JSONSerialization.jsonObject(with: extData) as? [String: Any],
|
|
301
|
-
let voipExtDic = extDic["voip_ext"] as? [String: String],
|
|
302
|
-
let mediaType = voipExtDic["voip_media_type"] {
|
|
303
|
-
isVideoCall = (mediaType == "video")
|
|
304
|
-
}
|
|
305
|
-
// Create incoming call notification content
|
|
306
|
-
let uuid = UUID()
|
|
307
|
-
currentCallUUID = uuid // Save UUID for subsequent operations
|
|
308
|
-
var update = Conversation.Update(
|
|
309
|
-
members: [Handle(type: .generic, value: callerName, displayName: callerName)]
|
|
310
|
-
)
|
|
311
|
-
update.capabilities = isVideoCall ? .video : .playingTones
|
|
312
|
-
// Report incoming call to the system (system automatically displays native incoming call interface)
|
|
313
|
-
Task {
|
|
314
|
-
do {
|
|
315
|
-
try await conversationManager.reportNewIncomingConversation(uuid: uuid, update: update)
|
|
316
|
-
// Report succeeded
|
|
317
|
-
} catch {
|
|
318
|
-
// Report failed
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
// MARK: - ConversationManagerDelegate
|
|
325
|
-
extension VoIPPushManager: ConversationManagerDelegate {
|
|
326
|
-
func conversationManager(_ manager: ConversationManager, perform action: ConversationAction) {
|
|
327
|
-
if action is JoinConversationAction {
|
|
328
|
-
// User taps "Answer", call CallStore to accept the call
|
|
329
|
-
CallStore.shared.accept { result in
|
|
330
|
-
switch result {
|
|
331
|
-
case .success:
|
|
332
|
-
// Answer succeeded, navigate to your call page here
|
|
333
|
-
break
|
|
334
|
-
case .failure(let error):
|
|
335
|
-
break
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
} else if action is EndConversationAction {
|
|
339
|
-
// User taps "Hang Up", call CallStore to end the call
|
|
340
|
-
CallStore.shared.hangup { result in
|
|
341
|
-
switch result {
|
|
342
|
-
case .success:
|
|
343
|
-
break
|
|
344
|
-
case .failure(let error):
|
|
345
|
-
break
|
|
346
|
-
}
|
|
347
|
-
}
|
|
348
|
-
}
|
|
349
|
-
// You must call fulfill() to notify the system that the operation is complete
|
|
350
|
-
action.fulfill()
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
|
-
```
|
|
354
|
-
|
|
355
|
-
You can customize the caller information and call type shown on the incoming call screen by configuring the following parameters in `Conversation.Update`:
|
|
356
|
-
|
|
357
|
-
| **Parameter** | **Type** | **Required** | **Description** |
|
|
358
|
-
| --- | --- | --- | --- |
|
|
359
|
-
| `members` | `[Handle]` | Yes | Array of caller information; supports multi-party call scenarios. Each `Handle` includes:<br>- `type`: usually `.generic`.<br>- `value`: unique identifier of the caller (recommended to use user ID).<br>- `displayName`: name displayed on the incoming call interface. |
|
|
360
|
-
| `capabilities` | `Conversation.Capabilities` | Yes | Call type:<br>- `.video`: video call (shows video icon).<br>- `.playingTones`: audio call (shows audio icon). |
|
|
361
|
-
|
|
362
|
-
> **Note:**
|
|
363
|
-
>
|
|
364
|
-
> After the user taps "Answer" or "Hang Up", the system will invoke the [ConversationManagerDelegate](https://developer.apple.com/documentation/livecommunicationkit/conversationmanagerdelegate) callback. Implement your answer/hang up logic in this callback (e.g., navigate to your call page, call the [CallStore](https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore/callstore/) API, etc.).
|
|
365
|
-
>
|
|
366
|
-
> Reference: [Apple LiveCommunicationKit Official Documentation](https://developer.apple.com/documentation/livecommunicationkit).
|
|
367
|
-
|
|
368
|
-
## Create a VoIP Call
|
|
369
|
-
|
|
370
|
-
### Create Call
|
|
371
|
-
|
|
372
|
-
`CallStore` uses VoIP Push by default, so you do not need to manually set the `offlinePushInfo` parameter. `CallStore` will automatically set the following push information:
|
|
373
|
-
|
|
374
|
-
- **Push Type:** `.voIP`
|
|
375
|
-
- **Push Title:** current user ID
|
|
376
|
-
- **Push Description:** "You have a new call"
|
|
377
|
-
- **iOS Ringtone:** `phone_ringing.mp3`
|
|
378
|
-
|
|
379
|
-
```swift
|
|
380
|
-
import AtomicXCore
|
|
381
|
-
|
|
382
|
-
// Construct call parameters (no need to set offlinePushInfo)
|
|
383
|
-
var params = CallParams()
|
|
384
|
-
params.timeout = 30 // Timeout in seconds
|
|
385
|
-
params.userData = "custom data" // Extension info (optional)
|
|
386
|
-
|
|
387
|
-
// Create a call
|
|
388
|
-
let userIdList = ["callee's userID"]
|
|
389
|
-
let mediaType = CallMediaType.video // .video for video call, .audio for audio call
|
|
390
|
-
|
|
391
|
-
CallStore.shared.calls(
|
|
392
|
-
participantIds: userIdList,
|
|
393
|
-
callMediaType: mediaType,
|
|
394
|
-
params: params
|
|
395
|
-
) { result in
|
|
396
|
-
switch result {
|
|
397
|
-
case .success:
|
|
398
|
-
// Call initiated successfully; navigate to your call page
|
|
399
|
-
break
|
|
400
|
-
case .failure(let error):
|
|
401
|
-
// Handle call failure
|
|
402
|
-
break
|
|
403
|
-
}
|
|
404
|
-
}
|
|
405
|
-
```
|
|
406
|
-
|
|
407
|
-
> **Note:**
|
|
408
|
-
>
|
|
409
|
-
> **VoIP Push Downgrade Strategy:** When using VoIP Push, the backend intelligently selects the certificate type to ensure users receive push notifications.
|
|
410
|
-
>
|
|
411
|
-
> - If a VoIP certificate is uploaded: VoIP Push will be sent.
|
|
412
|
-
> - If only an APNs certificate is uploaded: the system will automatically downgrade to APNs Push.
|
|
413
|
-
|
|
414
|
-
### Answer a Call
|
|
415
|
-
|
|
416
|
-
When the callee is offline and receives a VoIP Push, tapping "Answer" will wake up your app. At this point, listen for call events and navigate to your call page.
|
|
417
|
-
|
|
418
|
-
```swift
|
|
419
|
-
import AtomicXCore
|
|
420
|
-
import Combine
|
|
421
|
-
|
|
422
|
-
class YourViewController: UIViewController {
|
|
423
|
-
private var cancellables = Set<AnyCancellable>()
|
|
424
|
-
|
|
425
|
-
override func viewDidLoad() {
|
|
426
|
-
super.viewDidLoad()
|
|
427
|
-
// Listen for incoming call events
|
|
428
|
-
CallStore.shared.callEventPublisher
|
|
429
|
-
.receive(on: DispatchQueue.main)
|
|
430
|
-
.sink { [weak self] event in
|
|
431
|
-
guard let self = self else { return }
|
|
432
|
-
switch event {
|
|
433
|
-
case .onCallReceived(let callId, let mediaType, let userData):
|
|
434
|
-
// Incoming call received, navigate to your call page
|
|
435
|
-
self.showCallViewController(callId: callId, mediaType: mediaType, userData: userData)
|
|
436
|
-
case .onCallEnded(let callId, let mediaType, let reason, let userId):
|
|
437
|
-
// Call ended, update or close UI
|
|
438
|
-
self.dismissCallViewController()
|
|
439
|
-
case .onCallStarted(let callId, let mediaType):
|
|
440
|
-
// Call started
|
|
441
|
-
break
|
|
442
|
-
}
|
|
443
|
-
}
|
|
444
|
-
.store(in: &cancellables)
|
|
445
|
-
}
|
|
446
|
-
|
|
447
|
-
private func showCallViewController(callId: String, mediaType: CallMediaType, userData: String) {
|
|
448
|
-
// Navigate to your call page
|
|
449
|
-
let callVC = YourCallViewController()
|
|
450
|
-
callVC.callId = callId
|
|
451
|
-
callVC.mediaType = mediaType
|
|
452
|
-
callVC.userData = userData
|
|
453
|
-
callVC.modalPresentationStyle = .fullScreen
|
|
454
|
-
present(callVC, animated: true)
|
|
455
|
-
}
|
|
456
|
-
|
|
457
|
-
private func dismissCallViewController() {
|
|
458
|
-
// Close call page
|
|
459
|
-
dismiss(animated: true)
|
|
460
|
-
}
|
|
461
|
-
}
|
|
462
|
-
```
|
|
463
|
-
|
|
464
|
-
## FAQs
|
|
465
|
-
|
|
466
|
-
### Why am I not receiving VoIP Push notifications?
|
|
467
|
-
|
|
468
|
-
1. **Check the login sequence:** You must log in to the Chat SDK first, then `TUICore`. Otherwise, the VoIP Token cannot be reported. See Step 5.
|
|
469
|
-
2. **Ensure your app's runtime environment, certificate environment, and certificate ID all match.** If not, push notifications will not be delivered.
|
|
470
|
-
3. **Make sure the logged-in account is offline:** either send the app to the background or kill the process after login. VoIP Push currently only supports push for offline users.
|
|
471
|
-
4. **Verify that your project configuration is correct.**
|
|
472
|
-
5. **Restart the test device** to clear system cache and memory (this is important).
|
|
473
|
-
6. **Use the Chat Console's Push Troubleshooting tool for diagnostics** (highly recommended).
|
|
474
|
-
|
|
475
|
-
### Why does the app crash after receiving a VoIP Push?
|
|
476
|
-
|
|
477
|
-
This usually happens if you do not report the incoming call to the system within 5 seconds. Make sure to call `reportNewIncomingConversation` immediately in the `didReceiveIncomingPushWith` callback.
|
|
478
|
-
|
|
479
|
-
### How can I customize the incoming call notification content?
|
|
480
|
-
|
|
481
|
-
You can customize the incoming call notification using `Conversation.Update`, including:
|
|
482
|
-
|
|
483
|
-
- Caller information (`displayName`).
|
|
484
|
-
- Call type (`capabilities`: `.video` or `.playingTones`).
|
|
485
|
-
- Other custom fields — for more details, refer to the [Apple LiveCommunicationKit official documentation](https://developer.apple.com/documentation/livecommunicationkit).
|