API | 描述 |
sharedInstance | 创建 ITCCCWorkstation 实例(单例模式)。 |
destroySharedInstance | 销毁 ITCCCWorkstation 实例(单例模式)。 |
addTcccListener | 添加 ITCCCWorkstation 事件回调。 |
removeTCCCListener | 移除 ITCCCWorkstation 事件回调。 |
import TCCCSDKlet tcccSDK: TCCCWorkstation = {// 创建实例return TCCCWorkstation.sharedInstance()}()// 设置TCCC事件回调tcccSDK.addTcccListener(self)// 移除TCCC事件回调tcccSDK.removeTCCCListener(self)// 销毁实例TCCCWorkstation.destroySharedIntance()
// 引入 OC 头文件#import "TCCCSDK/tccc/platform/apple/TCCCWorkstation.h"@property (strong, nonatomic) TCCCWorkstation *tcccSDK;- (TCCCWorkstation*)tcccSDK {if (!_tcccSDK) {// 创建实例_tcccSDK = [TCCCWorkstation sharedInstance];}return _tcccSDK;}// 设置TCCC事件回调[self.tcccSDK addTcccListener:self];// 移除TCCC事件回调[self.tcccSDK removeTCCCListener:self];// 销毁实例[TCCCWorkstation destroySharedIntance];_tcccSDK = nil;
#include "TCCCSDK/tccc/include/ITCCCWorkstation.h"using namespace tccc;// 创建实例和设置事件回调ITCCCWorkstation* tcccSDK = getTCCCShareInstance();// 设置回调,TCCCCallbackImpl 需要继承 ITCCCCallbackclass TCCCCallbackImpl:public ITCCCCallback {public:TCCCCallbackImpl() {}~TCCCCallbackImpl() {}void onError(TCCCError errCode, const char* errMsg, void* extraInfo) {}void onWarning(TCCCCWarning warningCode, const char* warningMsg, void* extraInfo) {}void onNewSession(TCCCSessionInfo info) {}void onEnded(EndedReason reason, const char* reasonMessage, const char* sessionId) {}};TCCCCallbackImpl* tcccCallback = new TCCCCallbackImpl();tcccSDK->addCallback(tcccCallback);// 销毁实例destroyTCCCShareInstance();tcccSDK = nullptr;
API | 描述 |
login | SDK 登录。 |
checkLogin | 检查 SDK 是否已登录。 |
logout | SDK 退出登录。 |
import TCCCSDKlet param = TXLoginParams()// 登录的坐席ID,通常为邮箱地址param.userId = "";// 登录票据,在登录模式为Agent必填。更多详情请参见[创建 SDK 登录// Token](https://www.tencentcloud.com/document/product/679/49227?from_cn_redirect=1)param.token = "";// 腾讯云联络中心应用ID,通常为1400开头param.sdkAppId = 0;// 设置为坐席模式param.type = .Agent;// 登录tcccSDK.login(param) { info in// 登录成功} fail: { code, message in// 登录失败}// 检查登录状态tcccSDK.checkLogin {// 已登录} fail: { code, message in// 未登录或者被T了}// 退出登录tcccSDK.logout {// 退出成功} fail: { code, message in// 退出异常}
// 引入 OC 头文件#import "TCCCSDK/tccc/platform/apple/TCCCWorkstation.h"TXLoginParams *param = [[TXLoginParams alloc] init];// 登录的坐席ID,通常为邮箱地址param.userId = @"";// 登录票据,在登录模式为Agent必填。更多详情请参见[创建 SDK 登录// Token](https://www.tencentcloud.com/document/product/679/49227?from_cn_redirect=1)param.token = @"";// 腾讯云联络中心应用ID,通常为1400开头param.sdkAppId = 0;// 设置为坐席模式param.type = Agent;[self.tcccSDK login:param succ:^(TXLoginInfo * _Nonnull info) {// 登录成功} fail:^(int code, NSString * _Nonnull desc) {// 登录失败}];// 检查登录状态[self.tcccSDK checkLogin:^{// 已登录} fail:^(int code, NSString * _Nonnull desc) {// 未登录或者被T了}];// 退出登录[self.tcccSDK logout:^{// 退出成功} fail:^(int code, NSString * _Nonnull desc) {// 退出异常}];
#include "TCCCSDK/tccc/include/ITCCCWorkstation.h"using namespace tccc;// 登录回调类class TCCCLoginCallbackImpl : public ITXValueCallback<TCCCLoginInfo> {public:TCCCLoginCallbackImpl() {}~TCCCLoginCallbackImpl() override {}void OnSuccess(const TCCCLoginInfo &value) override {// 登录成功}void OnError(TCCCError error_code, const char *error_message) override {// 登录失败}};TCCCLoginCallbackImpl* loginCallBackImpl = nullptr;if (nullptr == loginCallBackImpl) {loginCallBackImpl = new TCCCLoginCallbackImpl();}TCCCLoginParams param;/// 登录的坐席ID,通常为邮箱地址param.userId = "";/// 登录票据,在登录模式为Agent必填。更多详情请参见[创建 SDK 登录/// Token](https://www.tencentcloud.com/document/product/679/49227?from_cn_redirect=1)param.token = "";/// 腾讯云联络中心应用ID,通常为1400开头param.sdkAppId = 0;// 设置为坐席模式param.type = TCCCLoginType::Agent;// 登录tcccSDK->login(param,loginCallBackImpl);// 退出登录tcccSDK->logout(nullptr);
API | 描述 |
call | 发起通话。 |
answer | 接听来电。 |
terminate | 结束通话。 |
sendDTMF | 发送 DTMF(双音多频信号)。 |
mute | 静音。 |
unmute | 取消静音。 |
import TCCCSDKlet callParams = TXStartCallParams()// 呼叫的手机号callParams.to = "";// 号码备注,在通话条中会替代号码显示(可选)callParams.remark = "";// 发起外呼tcccSDK.call(callParams) {// 发起呼叫成功} fail: { code, message in// 发起呼叫失败}// 结束通话tcccSDK.terminate()
// 引入 OC 头文件#import "TCCCSDK/tccc/platform/apple/TCCCWorkstation.h"TXStartCallParams *callParams = [[TXStartCallParams alloc] init];// 呼叫的手机号callParams.to = TO;// 号码备注,在通话条中会替代号码显示(可选)callParams.remark = @"testByIos";// 发起外呼[self.tcccSDK call:callParams succ:^{// 发起呼叫成功} fail:^(int code, NSString * _Nonnull desc) {// 发起呼叫失败}];// 结束通话[self.tcccSDK terminate];
#include "TCCCSDK/tccc/include/ITCCCWorkstation.h"using namespace tccc;class TCCCCommonCallback : public ITXCallback {private:NSString* mFunName;public:TCCCCommonCallback(NSString* funName) {mFunName = funName;}~TCCCCommonCallback() override {}void OnSuccess() override {// 成功}void OnError(TCCCError error_code, const char *error_message) override {std::string copyErrMsg = makeString(error_message);// 失败}};TCCCCommonCallback* startCallCallbackImpl = nullptr;if (nullptr == startCallCallbackImpl) {startCallCallbackImpl = new TCCCCommonCallback(@"startCall");}TCCCStartCallParams callParams;//呼叫的手机号callParams.to = "";// 发起外呼tcccSDK->call(callParams, startCallCallbackImpl);// 结束通话tcccSDK->terminate();
API | 描述 |
setAudioCaptureVolume | 设定本地音频的采集音量。 |
getAudioCaptureVolume | 获取本地音频的采集音量。 |
setAudioPlayoutVolume | 设定远端音频的播放音量。 |
getAudioPlayoutVolume | 获取远端音频的播放音量。 |
setAudioRoute | 设置音频路由。 |
import TCCCSDK// 切换为扬声器tcccSDK.getDeviceManager().setAudioRoute(.TCCCAudioRouteSpeakerphone)// 静音tcccSDK.mute()// 取消静音tcccSDK.unmute()
// 引入 OC 头文件#import "TCCCSDK/tccc/platform/apple/TCCCWorkstation.h"// 切换为扬声器[[self.tcccSDK getDeviceManager] setAudioRoute:TCCCAudioRouteSpeakerphone];// 静音[self.tcccSDK mute];// 取消静音[self.tcccSDK unmute];
#include "TCCCSDK/tccc/include/ITCCCWorkstation.h"using namespace tccc;// 切换为扬声器tcccSDK->getDeviceManager()->setAudioRoute(TCCCAudioRoute::TCCCAudioRouteSpeakerphone);// 静音tcccSDK->mute();// 取消静音tcccSDK->unmute();
API | 描述 |
getSDKVersion | 获取 SDK 版本信息。 |
setLogLevel | 设置 Log 输出级别。 |
setConsoleEnabled | 启用/禁用控制台日志打印。 |
callExperimentalAPI | 调用实验性接口。 |
import TCCCSDK// 获取SDK版本号let version = TCCCWorkstation.getSDKVersion()
// 引入 OC 头文件#import "TCCCSDK/tccc/platform/apple/TCCCWorkstation.h"// 获取SDK版本号NSString* version = [TCCCWorkstation getSDKVersion];
#include "TCCCSDK/tccc/include/ITCCCWorkstation.h"using namespace tccc;// 获取SDK 版本号tcccSDK->getSDKVersion();
API | 描述 |
onError | 错误事件回调。 |
onWarning | 警告事件回调。 |
import TCCCSDKfunc onError(_ errCode: TCCCErrorCode, errMsg: String, extInfo: [AnyHashable : Any]?) {// 错误事件回调}func onWarning(_ warningCode: TCCCCWarningCode, warningMsg: String, extInfo: [AnyHashable : Any]?) {// 警告事件回调}// 设置TCCC事件回调tcccSDK.addTcccListener(self)
// 引入 OC 头文件#import "TCCCSDK/tccc/platform/apple/TCCCWorkstation.h"#pragma mark - TCCCDelegate- (void)onError:(TCCCErrorCode)errCode errMsg:(NSString * _Nonnull)errMsg extInfo:(nullable NSDictionary *)extInfo {// 错误事件回调}- (void)onWarning:(TCCCCWarningCode)warningCode warningMsg:(NSString *_Nonnull)warningMsg extInfo:(nullable NSDictionary *)extInfo {// 警告事件回调}// 设置TCCC事件回调[self.tcccSDK addTcccListener:self];
#include "TCCCSDK/tccc/include/ITCCCWorkstation.h"using namespace tccc;// 设置回调,TCCCCallbackImpl 需要继承 ITCCCCallbackclass TCCCCallbackImpl:public ITCCCCallback {public:TCCCCallbackImpl() {}~TCCCCallbackImpl() {}// 错误事件回调void onError(TCCCError errCode, const char* errMsg, void* extraInfo) {}// 警告事件回调void onWarning(TCCCCWarning warningCode, const char* warningMsg, void* extraInfo) {}};TCCCCallbackImpl* tcccCallback = new TCCCCallbackImpl();tcccSDK->addCallback(tcccCallback);
API | 描述 |
onNewSession | 新会话事件。包括呼入和呼出。 |
onEnded | 会话结束事件。 |
onAudioVolume | 音量大小的反馈回调。 |
onNetworkQuality | 网络质量的实时统计回调。 |
import TCCCSDKfunc onNewSession(_ info: TXSessionInfo) {// 新会话事件。包括呼入和呼出}func onAccepted(_ sessionId: String) {// 对端已接听事件}func onEnded(_ reason: TXEndedReason, reasonMessage: String, sessionId: String) {// 通话结束事件}// 设置TCCC事件回调tcccSDK.addTcccListener(self)
// 引入 OC 头文件#import "TCCCSDK/tccc/platform/apple/TCCCWorkstation.h"- (void)onNewSession:(TXSessionInfo *)info {// 新会话事件。包括呼入和呼出}- (void)onEnded:(TXEndedReason)reason reasonMessage:(NSString *_Nonnull)reasonMessage sessionId:(NSString *_Nonnull)sessionId {// 通话结束事件}- (void)onAccepted:(NSString *_Nonnull)sessionId {// 对端已接听事件}// 设置TCCC事件回调[self.tcccSDK addTcccListener:self];
#include "TCCCSDK/tccc/include/ITCCCWorkstation.h"using namespace tccc;// 设置回调,TCCCCallbackImpl 需要继承 ITCCCCallbackclass TCCCCallbackImpl:public ITCCCCallback {public:TCCCCallbackImpl() {}~TCCCCallbackImpl() {}// 新会话事件。包括呼入和呼出void onNewSession(TCCCSessionInfo info) {}// 会话结束事件void onEnded(EndedReason reason, const char* reasonMessage, const char* sessionId) {}};TCCCCallbackImpl* tcccCallback = new TCCCCallbackImpl();tcccSDK->addCallback(tcccCallback);
API | 描述 |
onConnectionLost | SDK 与云端的连接已经断开。 |
onTryToReconnect | SDK 正在尝试重新连接到云端。 |
onConnectionRecovery | SDK 与云端的连接已经恢复。 |
import TCCCSDKfunc onConnectionLost(_ serverType: TXServerType) {// SDK 与云端的连接已经断开}func onConnectionRecovery(_ serverType: TXServerType) {// SDK 与云端的连接已经恢复}func onTry(toReconnect serverType: TXServerType) {// SDK 正在尝试重新连接到云端}// 设置TCCC事件回调tcccSDK.addTcccListener(self)
// 引入 OC 头文件#import "TCCCSDK/tccc/platform/apple/TCCCWorkstation.h"- (void)onConnectionLost:(TXServerType)serverType {// SDK 与云端的连接已经断开}- (void)onTryToReconnect:(TXServerType)serverType {// SDK 正在尝试重新连接到云端}- (void)onConnectionRecovery:(TXServerType)serverType {// SDK 与云端的连接已经恢复}// 设置TCCC事件回调[self.tcccSDK addTcccListener:self];
#include "TCCCSDK/tccc/include/ITCCCWorkstation.h"using namespace tccc;// 设置回调,TCCCCallbackImpl 需要继承 ITCCCCallbackclass TCCCCallbackImpl:public ITCCCCallback {public:TCCCCallbackImpl() {}~TCCCCallbackImpl() {}// SDK 与云端的连接已经断开void onConnectionLost(TCCCServerType serverType) {}// SDK 正在尝试重新连接到云端void onTryToReconnect(TCCCServerType serverType) {}// SDK 与云端的连接已经恢复void onConnectionRecovery(TCCCServerType serverType) {}};TCCCCallbackImpl* tcccCallback = new TCCCCallbackImpl();tcccSDK->addCallback(tcccCallback);
符号 | 值 | 含义 |
ERR_SIP_SUCCESS | 200 | 成功。 |
ERR_UNRIGIST_FAILURE | 20001 | 登录失败。 |
ERR_ANSWER_FAILURE | 20002 | 接听失败,通常是 trtc 进房失败。 |
ERR_SIPURI_WRONGFORMAT | 20003 | URI 格式错误。 |
ERR_HTTP_REQUEST_FAILURE | -10001 | Http 请求失败,请检查网络连接情况。 |
ERR_HTTP_TOKEN_ERROR | -10002 | token 登录票据不正确或者已过期。 |
ERR_HTTP_GETSIPINFO_ERROR | -10003 |
符号 | 值 | 含义 |
ERR_SIP_BAD_REQUEST | 400 | 错误请求。 |
ERR_SIP_UNAUTHORIZED | 401 | 未授权(用户名密码不对情况)。 |
ERR_SIP_AUTHENTICATION_REQUIRED | 407 | 代理需要认证,请检查是否已经调用登录接口。 |
ERR_SIP_REQUESTTIMEOUT | 408 | 请求超时(网络超时)。 |
ERR_SIP_REQUEST_TERMINATED | 487 | 请求终止(网络异常,网络中断场景下)。 |
ERR_SIP_SERVICE_UNAVAILABLE | 503 | 服务不可用。 |
ERR_SIP_SERVER_TIMEOUT | 504 | 服务超时。 |
符号 | 值 | 含义 |
ERR_MIC_START_FAIL | -1302 | 打开麦克风失败。设备,麦克风的配置程序(驱动程序)异常,禁用后重新启用设备,或者重启机器,或者更新配置程序。 |
ERR_MIC_NOT_AUTHORIZED | -1317 | 麦克风设备未授权,通常在移动设备出现,可能是权限被用户拒绝了。 |
ERR_MIC_SET_PARAM_FAIL | -1318 | 麦克风设置参数失败。 |
ERR_MIC_OCCUPY | -1319 | 麦克风正在被占用中,例如移动设备正在通话时,打开麦克风会失败。 |
ERR_MIC_STOP_FAIL | -1320 | 停止麦克风失败。 |
ERR_SPEAKER_START_FAIL | -1321 | 打开扬声器失败,例如在 Windows 或 Mac。 |
ERR_SPEAKER_SET_PARAM_FAIL | -1322 | 扬声器设置参数失败。 |
ERR_SPEAKER_STOP_FAIL | -1323 | 停止扬声器失败。 |
ERR_UNSUPPORTED_SAMPLERATE | -1306 | 不支持的音频采样率。 |
符号 | 值 | 含义 |
ERR_RTC_ENTER_ROOM_FAILED | -3301 | 进入房间失败,请查看 onError 中的 -3301 对应的 msg 提示确认失败原因。 |
ERR_RTC_REQUEST_IP_TIMEOUT | -3307 | 请求 IP 和 sig 超时,请检查网络是否正常,或网络防火墙是否放行 UDP。 |
ERR_RTC_CONNECT_SERVER_TIMEOUT | -3308 | 请求进房超时,请检查是否断网或者是否开启 vpn,您也可以切换 4G 进行测试确认。 |
ERR_RTC_ENTER_ROOM_REFUSED | -3340 | 进房请求被拒绝,请检查是否连续调用 enterRoom 进入相同 ID 的房间。 |
本页内容是否解决了您的问题?