# SobotCallSDK **Repository Path**: ZCSobot/sobotcallsdk ## Basic Information - **Project Name**: SobotCallSDK - **Description**: No description available - **Primary Language**: Objective-C - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-12-24 - **Last Updated**: 2022-06-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # iOS 集成说明 智齿客服呼叫 SDK 具有以下特性: * 语音电话:键盘拨号、发起语音通话。 * 资源文件可以在 SobotCall.bundle 中替换。 相关限制及注意事项: 1、iOS SDK 新版支持 iOS9 以上版本。 2、目前发布 XCode 版本为 XCode 13.0,建议使用新版开发。 3、iOS需要申请麦克风权限,否则功能无法使用。 4、SDK 不可与智齿 APP 中的呼叫功能以及智齿 PC 工作台中呼叫功能同时使用。 #### 文档介绍 ##### ● 集成流程示意图 ![呼叫](https://img.sobot.com/mobile/sdk/images/sobotcallsdk_1.png ) ##### ● 文件说明 **SDK 包含(SobotCall.framework、SobotCall.bundle、Frameworks)和SobotDemo、Doc 相关说明文档。** | 文件 | 描述| |:----|:----| | SobotCall.framework | 呼叫 SDK 代码库 | | SobotCall.bundle | SDK 资源库,包含图片文件、音频文件 | | ZCSobotCallApi.h | 关键功能操作类 | | SobotCallInfo.h | 功能配置类 | | SCUIConfig.h | UI配置类 | | Frameworks | 需要添加的依赖库 | #### 集成方式 使用呼叫 SDK 需要加入的权限 ```js NSMicrophoneUsageDescription   语音电话需要使用您的麦克风权限 ``` ##### ● 手动集成 ###### 1. 将集成包并导入到项目中 下载并解压 [iOS_SobotCallSDK](https://img.sobot.com/mobile/callsdk/iOS_SobotCallSDK_1.0.0.zip),添加必要文件 SobotCall.framework 和 SobotCall.bundle 以及 Frameworks 依赖库到你的工程里。 ###### 2. 需要导入以下framework依赖库 ```js belr.framework mediastreamer2.framework msopenh264.framework bctoolbox.framework mswebrtc.framework msamr.framework linphonetester.framework ortp.framework mscodec2.framework mssilk.framework belcard.framework msx264.framework linphone.framework ``` ###### 3. 配置启动参数 SobotCallInfo 配置参数 SobotCallInfo 用于话机登录,该配置类中参数获取请联系智齿售后人员获取。 [SobotCallInfo 参数说明](#5.1) ```js //配置参数样例: SobotCallInfo *sobotCallInfo = [[SobotCallInfo alloc]init]; sobotCallInfo.companyid = @"您的企业ID"; sobotCallInfo.sip_number = @"142160000"; sobotCallInfo.appid = @"a4b246c8b67e4543b3b870ce62f75546"; sobotCallInfo.client_secret = @"f6943eb4fbf144e2949d7538ee2cc665"; sobotCallInfo.agentid = @"969a7ee9fd4c42f48171b0128df2f16c"; sobotCallInfo.agent_phone_num = @"18600978969"; sobotCallInfo.groupid = @"36b0f8eb2de948d99e89c8f0c3d92e68_5"; sobotCallInfo.is_iecord_stereo = NO; sobotCallInfo.sip_pwd = @"xjw2nz2a"; sobotCallInfo.display_number = @"01051393569"; sobotCallInfo.sip_address = @"39.105.93.78:7880"; ``` ###### 4. 话机登录启动 SDK ##### ● pod 集成 ```js pod 'SobotCall' // 注意: 普通github源下载较慢可以选择gitee源下载 // -> SobotCallSDK // sobot_call_sdk. // pod 'SobotCallSDK' // - Homepage: https://gitee.com/ZCSobot/sobotcallsdk.git // - Source: https://gitee.com/ZCSobot/sobotcallsdk.git // - Versions: 0.0.1 [master repo] ``` 方式一:普通方式启动 ```js [[ZCSobotCallApi getInstance] loginWithSobotCallInfo:sobotCallInfo sobotCallListenBlock:^(id _Nonnull object) { }]; ``` 方式二:如您已获取到 token 直接以 token 方式登录话机 ```js [[ZCSobotCallApi getInstance] loginWithTokenWithCallInfo:sobotCallInfo access_token:_info.access_token sobotCallListenBlock:^(id _Nonnull object) { }]; ``` 【注意:sobotCallInfo 为语音电话的启动配置信息,不可为空。】 #### 功能说明 ##### ● 域名设置(可选) 【说明:host 请联系智齿售后人员获取。】 域名说明: **默认域名为:https://sobot.com/com** 如果您是本地化部署,请使用自己的部署的服务域名。 ``` 如果您是本地化部署 设置域名方式如下 [[ZCSobotCallApi getInstance] setApiHost:@""]; ``` ##### ● 跳转到拨号界面 该方法在话机登录成功后调用,唤起拨号界面,输入您要拨打的电话号码进行呼叫。 ```js /** * 跳转到拨号界面 * 该方法需在登录成功之后使用 * @param userPhoneNumber 用户的电话号,可为空,有值的话会自动带入到拨号界面 * @param userNick 用户的昵称,可为空,有值的话会自动带入到拨号界面 * @param callBlock 呼叫回调 */ -(void)openCallPhoneNumberWithPhoneNumber:(NSString *)userPhoneNumber userNick:(NSString *)userNick callBlock:(void (^)(id object))callBlock; ``` ##### ● 直接发起通话 该方法在话机登录成功后,传入对应的用户电话号码发起呼叫,直接唤起呼叫页面。 【注意: 电话号码不能为空。】 ```js /** * 发起通话 * 该方法需在登录成功之后使用 * @param userPhoneNumber 用户的电话号, 不能为空 * @param userNick 用户的昵称 可为空 * @param callBlock 呼叫回调 */ -(void)startCallWithPhoneNumber:(NSString *)userPhoneNumber userNick:(NSString *)userNick callBlock:(void (^)(id object))callBlock; ``` ##### ● 监听通话状态的变化 监听状态: 用户来电、用户响铃中、通话中、通话结束。 [SobotVoipCallListenerState 说明](#5.3) ```js -(void)setCallListener:(void (^)(SobotVoipCallListenerState state))listenerBlock; ``` ##### ● 离线退出 呼叫坐席离线,退出 SDK。 ```js - (void)exitSobotCall:(void (^)(id object))exitBlock; ``` ##### ● 图片和音频资源文件修改 图片和音频资源请在 ***SobotCall.bundle*** 中找到相应的文件名做替换。 【注意:替换文件时文件名不可以修改,否则 SDK 会找不到对应的资源。】 ##### ● 拨号界面 UI 控件颜色修改 [SCUIConfig 参数说明](#5.3) 拨号页面控件颜色修改样例如下: ```js SCUIConfig *uiconfig = [SCUIConfig new]; uiconfig.numberTextColor = [UIColor redColor]; [ZCSobotCallApi getInstance].uiConfig = uiconfig; ``` #### 配置类说明 ##### ● SobotCallInfo 参数说明 | 属性名 | 类型 | 必填 |描述| |:----|:----|:----|:----| | appid |NSString | 是 | 应用id | | client_secret |NSString | 是 | 秘钥,即创建app时返回的token值 | | companyid |NSString | 是 | 企业ID | | access_token |NSString | 是| token 登录接口使用 (备注 根据登录 api 是否传入,如果传入就使用传入的 token 覆盖,没有就通过 client_secret 、companyId 调用获取 token 接口去获取) | | agent_state |NSString | 否| 坐席状态 | | display_number |NSString | 是 | 坐席手机登录时,回呼坐席手机的外显号码,以及坐席转接或咨询第三方时,呼叫第三方号码的外显号码 | | agent_phone_num |NSString | 是 | 特殊时使用,此字段代表 voip 账号上班,但呼入时是转到坐席的指定的手机号,只有呼出时才使用 voip 账号呼出 | | groupid |NSString | 是 | 所在技能组 | | agentid |NSString | 是| 坐席ID | | callWay |int | 否 | 呼叫方式,固定为 SIP=2(SDK默认2) | | sip_number |NSString | 是 | SIP 账号 | | sip_address |NSString | 是 | 域名 注册 SIP 话机使用 | | sip_pwd |NSString | 是| SIP 密码 | ##### ● SCUIConfig 参数说明 | 参数 | 类型 | 必填 | 描述 | |:----|:----|:----|:----| | numberTextColor | UIColor | 否 | 拨号界面数字的文字颜色 (1 2 3 4 5 6 7 8 9 0) | | charTextColor | UIColor | 否 | 拨号界面字母文字颜色 (abc 、# 等) | | accpetViewBgColor | UIColor | 否 | 接听页面背景色 | | callViewBgColor | UIColor | 否 | 拨号界面 电话号 区域 背景色 | | callViewKeyBoardBgColor | UIColor | 否 | 拨号界面 键盘 区域 背景色 | | accpetViewTextColor | UIColor | 否 | 通话界面 文字颜色 | ##### ● SobotVoipCallListenerState 说明 | 状态名称 | 类型 | 描述 | |:----|:----|:----|:----| | SobotVoipCallListenerStateNewCall | int | 外呼成功 | | SobotVoipCallListenerStateCalled | int | 来电响铃状态 | |SobotVoipCallListenerStateHandup | int | 挂断 | 通话挂断 | | SobotVoipCallListenerStateCallClose | int | 通话结束 | | SobotVoipCallListenerStateCallReading | int | 通话中 | | SobotVoipCallListenerStateAfterWorkSuccess | int | 坐席下班成功 | #### 源码和Demo iOS_SDKDemo 源码[点击下载](https://github.com/ZCSDK/sobot_call_demo)。 + 将 [iOS_SobotCallSDK](https://img.sobot.com/mobile/callsdk/iOS_SobotCallSDK_1.0.0.zip)解压后的文件 Frameworks、SobotCall.bundle、SobotCall.framework 导入到下载的demo中。 + 输入配置参数(SobotCallInfo 配置类中的属性)。 + 点击登录 查看日志是否登录成功。 + 拨号。 + 视频教程 [使用视频引导](https://img.sobot.com/mobile/callsdk/video(2).MP4)。        #### 更新说明 [《SDK 版本更新说明》](https://shimo.im/docs/erAdP5rLwYcv4zAG/) #### 隐私政策说明 呼叫 SDK 需要在 APP 中开启麦克风权限,[《智齿科技 SDK 收集使用个人信息说明》](https:/www.sobot.com/docs/clause/sdk-clause.html)。