# iOS集成文档

相关限制及注意事项
1、iOS SDK新版支持 iOS9 以上版本。

2、目前发布xcode版本为XCode 13.0,建议使用新版开发

3、iOS需要申请麦克风权限,否则功能无法使用

4、SDK不可与智齿app中的呼叫功能以及智齿PC工作台中呼叫功能同时使用

智齿客服呼叫SDK具有以下特性

  • 语音电话:键盘拨号、发起语音通话;
  • 资源文件可以在SobotCall.bundle中替换

# 1 文档介绍

# 1.1 集成流程示意图

呼叫

# 1.2.文件说明

SDK包含(SobotCall.framework、SobotCall.bundle、Frameworks)和SobotDemo、Doc相关说明文档。

文件名 说明 备注
SobotCall.framework 呼叫SDK代码库
SobotCall.bundle SDK资源库,包含图片文件、音频文件
ZCSobotCallApi.h 关键功能操作类
SobotCallInfo.h 功能配置类
SCUIConfig.h UI配置类
Frameworks 需要添加的依赖库

# 2 集成方式

使用客服SDK需要加入的权限

<key>NSMicrophoneUsageDescription</key>
  <string>语音电话需要使用您的麦克风权限</string>

# 2.1 手动集成

# step1 将集成包并导入到项目中

下载并解压iOS_SobotCallSDK,添加必要文件SobotCall.framework和SobotCall.bundle以及Frameworks依赖库到你的工程里。

# step2 需要导入以下framework依赖库

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

# step3 配置启动参数SobotCallInfo

配置参数SobotCallInfo用于话机登录,该配置类中参数获取请联系智齿售后人员获取 SobotCallInfo 参数说明

//配置参数样例:
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";

# step4 话机登录启动SDK

# 2.2 pod集成


   pod 'SobotCall', '~> 0.0.2.1'

//     注意: 普通github源下载较慢可以选择gitee源下载
//    -> SobotCallSDK (0.0.1)
//      sobot_call_sdk.
//      pod 'SobotCallSDK', '~> 0.0.1'
//      - Homepage: https://gitee.com/ZCSobot/sobotcallsdk.git
//      - Source:   https://gitee.com/ZCSobot/sobotcallsdk.git
//      - Versions: 0.0.1 [master repo]

方式一:普通方式启动

[[ZCSobotCallApi getInstance] loginWithSobotCallInfo:sobotCallInfo sobotCallListenBlock:^(id  _Nonnull object) {
                
            }];

方式二:如您已获取到token直接以token方式登录话机

[[ZCSobotCallApi getInstance] loginWithTokenWithCallInfo:sobotCallInfo access_token:_info.access_token sobotCallListenBlock:^(id  _Nonnull object) {
                   
               }];

【注意】sobotCallInfo为语音电话的启动配置信息,不可为空

# 3 模块功能说明

# 3.1 域名设置(可选)

【说明:host 请联系智齿售后人员获取】

域名说明:

* 默认域名为:https://sobot.com/comm       * 如果您是本地化部署,请使用自己的部署的服务域名

如果您是本地化部署 设置域名方式如下
[[ZCSobotCallApi getInstance] setApiHost:@""];

# 3.2 跳转到拨号界面

该方法在话机登录成功后调用,唤起拨号界面,输入您要拨打的电话号码进行呼叫

/**
 * 跳转到拨号界面
 * 该方法需在登录成功之后使用
 * @param userPhoneNumber 用户的电话号,可为空,有值的话会自动带入到拨号界面
 * @param userNick        用户的昵称,可为空,有值的话会自动带入到拨号界面
 * @param callBlock  呼叫回调
*/
-(void)openCallPhoneNumberWithPhoneNumber:(NSString *)userPhoneNumber userNick:(NSString *)userNick callBlock:(void (^)(id object))callBlock;

# 3.3 直接发起通话

该方法在话机登录成功后,传入对应的用户电话号码发起呼叫,直接唤起呼叫页面 【注意: 电话号码不能为空】

/**
 * 发起通话
 * 该方法需在登录成功之后使用
 * @param userPhoneNumber 用户的电话号, 不能为空
 * @param userNick    用户的昵称 可为空
 * @param callBlock  呼叫回调
 */
-(void)startCallWithPhoneNumber:(NSString *)userPhoneNumber userNick:(NSString *)userNick callBlock:(void (^)(id object))callBlock;

# 3.4 监听通话状态的变化

监听状态: 用户来电、用户响铃中、通话中、通话结束

SobotVoipCallListenerState 说明

-(void)setCallListener:(void (^)(SobotVoipCallListenerState state))listenerBlock;

# 3.5 离线退出

呼叫坐席离线,退出SDK

- (void)exitSobotCall:(void (^)(id object))exitBlock;

# 4 资源配置

# 4.1图片和音频资源文件修改

图片和音频资源请在 SobotCall.bundle 中找到相应的文件名做替换 【注意:替换文件时文件名不可以修改,否则SDK会找不到对应的资源】

# 4.2拨号界面UI控件颜色修改

SCUIConfig 参数说明

拨号页面控件颜色修改样例如下:


SCUIConfig *uiconfig = [SCUIConfig new];
uiconfig.numberTextColor = [UIColor redColor];
[ZCSobotCallApi getInstance].uiConfig = uiconfig;
    

# 5配置类说明

# 5.1 SobotCallInfo 参数说明

属性名 说明 备注
appid 应用id
client_secret 秘钥,即创建app时返回的token值
companyid 企业ID
access_token token 登录接口使用 (备注 根据登录api 是否传入,如果传入就使用传入的token覆盖,没有就通过client_secret 、companyId调用获取token接口去获取)
agent_state 坐席状态 (可选)
display_number 坐席手机登录时,回呼坐席手机的外显号码,以及坐席转接或咨询第三方时,呼叫第三方号码的外显号码
agent_phone_num 特殊时使用,此字段代表voip账号上班,但呼入时是转到坐席的指定的手机号,只有呼出时才使用voip账号呼出
groupid 所在技能组
agentid 坐席ID
callWay 呼叫方式 SIP=2(SDK中默认2)
sip_number SIP账号
sip_address 域名 注册sip话机使用
sip_pwd sip密码

# 5.2 SCUIConfig 参数说明

属性名称 数据类型 说明 备注
numberTextColor UIColor 拨号界面数字的文字颜色 (1 2 3 4 5 6 7 8 9 0)
charTextColor UIColor 拨号界面字母文字颜色 (abc 、# 等)
accpetViewBgColor UIColor 接听页面背景色
callViewBgColor UIColor 拨号界面 电话号 区域 背景色
callViewKeyBoardBgColor UIColor 拨号界面 键盘 区域 背景色
accpetViewTextColor UIColor 通话界面 文字颜色

# 5.3 SobotVoipCallListenerState 说明

状态名称 数据类型 说明 备注
SobotVoipCallListenerStateNewCall int 外呼成功
SobotVoipCallListenerStateCalled int 来电响铃状态
SobotVoipCallListenerStateHandup int 挂断 通话挂断
SobotVoipCallListenerStateCallClose int 通话结束
SobotVoipCallListenerStateCallReading int 通话中
SobotVoipCallListenerStateAfterWorkSuccess int 坐席下班成功

# 6 功能体验Demo

iOS_SDKDemo源码点击下载
            1.下载iOS_SDKDemo源码包从上面的地址
            2.将iOS_SobotCallSDK解压后的文件 Frameworks、SobotCall.bundle、SobotCall.framework导入到您的项目中
            3.输入配置参数(SobotCallInfo配置类中的属性)
            4.点击登录 查看日志是否登录成功
            5.拨号            
      视频教程使用视频引导

# 7 更新说明

《智齿呼叫iOSSDK版本更新说明》

# 8 隐私政策说明

呼叫SDK需要在APP中开启麦克风权限