全平台

1. 拨打语音或视频通话时出现: [-100035]The package you purchased does not support this ability, Please purchase the package 提示,如何处理?

您需要开通我们的:Call 包月套餐,我们支持 7 天的免费体验,流程详见:开通服务(TUICallKit)

2. 消息发送方或接收方 UserID 无效或不存在,如何处理?

您呼叫的用户还没有登录过 Chat,导致呼叫失败,请尝试呼叫已经登录成功过的用户。

3. 报错 inviteID 无效或邀请已处理,如何处理?

该 inviteID 已经被主叫方取消,或者该邀请已经被接受。由于信令发送受网络带宽等诸多因素影响,在极端情况下(accept 与 reject 接口重复调用)可能会导致 inviteID 无效的错误。

4. 如何获取通话的房间号 RoomId?

通话接通后,您可以通过 onCallBegin 返回 roomid 字段进行获取。

5. TUICallKit 是否可以不引入 Chat SDK?

不可以,TUIKit 全系组件都使用了腾讯云 Chat SDK 做为通信的基础服务,比如通话拨打信令、通话忙线信令等核心逻辑,如果您已经购买有其他 Chat 产品,也可以参照 TUICallKit 逻辑进行适配。

6. 在 TUIChat + TUICallKit 融合场景下,升级 TUICallKit 版本后出现新版本呼叫旧版本,旧版本无法收到通话问题

TUICallKit 3.1 版本起,在 TUIChat + TUICallKit 融合场景下,通过 TUIChat 中的通话按钮发起通话默认使用 calls 新接口,所以如果您的业务已经上线,您可以通过高级接口将通话接口切换为 call、groupCall,用来保持与线上版本的用户互通。
您需要在登录成功后调用一次高级接口,各个平台的具体使用为:
iOS(Swift)
iOS(Objective-C)
Android(java)
Android(kotlin)
Flutter(Dart)
Web&小程序
let jsonParams: [String: Any] = ["api": "forceUseV2API",
"params": ["enable": true,],]
guard let data = try? JSONSerialization.data(withJSONObject: jsonParams, options: JSONSerialization.WritingOptions(rawValue: 0)) else { return }
guard let paramsString = NSString(data: data, encoding: String.Encoding.utf8.rawValue) as? String else { return }

TUICallKit.createInstance().callExperimentalAPI(jsonStr: paramsString)
NSDictionary *jsonParams = @{@"api": @"forceUseV2API",
@"params": @{@"enable": @YES}};
NSError *error = nil;
NSData *data = [NSJSONSerialization dataWithJSONObject:jsonParams options:0 error:&error];
if (error || !data) { return; }
NSString *paramsString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
if (!paramsString) { return;}
[[TUICallKit createInstance] callExperimentalAPIWithJsonStr:paramsString];


try {
JSONObject params = new JSONObject();
params.put("enable", true);
JSONObject jsonObject = new JSONObject();
jsonObject.put("api", "forceUseV2API");
jsonObject.put("params", params);
TUICallKit.createInstance(context).callExperimentalAPI(jsonObject.toString());
} catch (Exception e) {
e.printStackTrace();
}

try {
val params = JSONObject()
params.put("enable", true)

val jsonObject = JSONObject()
jsonObject.put("api", "forceUseV2API")
jsonObject.put("params", params)
TUICallKit.createInstance(context).callExperimentalAPI(jsonObject.toString())
} catch (e: Exception) {
e.printStackTrace()
}

final jsonParams = {'api': 'forceUseV2API',
'params': {'enable': true} };
try {
final jsonString = json.encode(jsonParams);
TUICallKit.instance.callExperimentalAPI(jsonStr: jsonString);
} catch (e) {
return;
}
const jsonObject = {
api: "forceUseV2API",
params: {
enable: true,
}
};
TUICallKitServer.getTUICallEngineInstance().callExperimentalAPI(JSON.stringfy(jsonObject));