注册
飞鸽客服|开发者中心
飞鸽API文档

环境

  • 因为SDK中需要使用到麦克风,需在Info.plist中添加Privacy - Microphone Usage Description

集成

方式一:CocoaPods集成(推荐)

pod 'FGCallKit-pod', '~> 1.0.1'

方式二:手动集成

1.下载FGCallKit.framework

2.复制 FGCallKit.framework 至项目路径下。

3.打开 Xcode,进入 TARGETS > Project Name > General > Frameworks, Libraries, and Embedded Content菜单。

4.点击 + > Add Other… > Add Files 添加对应动态库,并确保添加的动态库 Embed 属性设置为 Do Not Embed

5.在TARGETS > Project Name > Build Settings > Other Linker Flags中添加$(inherited)

6.添加以下系统依赖库AVFoundation、CoreData、WebKit、SystemConfiguration、MobileCoreServices

7.在Podfile文件中添加pod 'xpjsip', '~>2.12.1'

使用

引入头文件

#import <FGCallKit/FGCallKit.h>

登录

在你登录自己服务器成功后拿到数据后登录FGCallKit,该登录方法和logout:方法是成对使用的。

/**
* 登录
* @param apiKey    平台申请的key
* @param apiSecret 平台申请的secret
* @param username  用户名
* @param callBlock 回调
*/
- (void)login:(NSString *)apiKey
apiSecret:(NSString *)apiSecret
    username:(NSString *)username
callBlock:(FGCallKitCommonCallBlock)callBlock;

例如:

[[FGCallKit sharedKit] login:@"你的apiKey"
                apiSecret:@"你的apiSecret"
                username:@"你的username"
                callBlock:^(NSInteger code, NSString *msg, id data) {
NSLog(@"登录%@ code:%ld msg:%@", code == 200 ? @"成功" : @"失败", code, msg);
}];

错误码:

code 备注
200 登录成功
500 apiKey、apiSecret、username不能为空
501 服务器或网络出错
其他 服务端返回错误提示

退出登录

/**
* 退出登录
* @param callBlock 回调
*/
- (void)logout:(FGCallKitCommonCallBlock)callBlock;

错误码:

code 备注
300 退出登录成功
501 服务器或网络出错
其他 服务端返回错误提示

呼出

/**
* 拨号
* @param number 呼出号码
* @block 回调
*/
- (void)outgoingCall:(NSString *)number
            block:(FGCallKitOutgoingCallBlock)block

监听来电代理

[FGCallKit sharedKit].delegate = self;
/**
* 收到来电回调
* @param call 来电对象
*/
- (void)callKit:(FGCallKit *)callKit didReceiveIncomingCall:(FGCall *)call;

呼出成功收到来电你可以弹出一个自定义View或ViewController来展示通话中的内容

收到来电你可以循环播放一个来电铃声直至接通关闭铃声

应用在后台收到来电处理

因为如果应用退到后台是接收不到来电的,所以需要在应用进入前台时查询一下是否有来电

- (void)applicationDidBecomeActive:(UIApplication *)application {
[[FGCallKit sharedKit] queryHaveIncoming];
}

其他说明

通话中开启/关闭免提

注:这个方法属于 FGCallKit

/**
* 通话中开启/关闭免提
* @param isHandfree 是否免提
*/
- (void)handfree:(BOOL)isHandfree;

通话/通话中操作

/**
* 接听
*/
- (void)answer;

/**
* 挂断
*/
- (void)hangup:(void(^)(BOOL succeed, NSString *msg))block;

/**
* 开启/关闭静音
* @param isMute 是否静音
*/
- (void)mute:(BOOL)isMute;

/**
* 通话中途发送数字
* @param digits 数字
*/
- (BOOL)sendDTMFDigits:(NSString *)digits;