1、会议语音接入流程
先初始化FYRtcEngineKit,并设置FYRtcEngineKitDelegate。AppId与AppToken在注册飞语云开发者的时候,在开发者中心获取。
注:该初始化方法可以多次调用用于设置FYRtcEngineKitDelegate(AppId与AppToken要填写正确)
FYRtcEngineKit *engineKit = [FYRtcEngineKit
sharedEngineWithAppId:@"AppId" AppToken:@"AppToken" delegate:self];
调用加入会议接口joinChannel, 只要所有终端加入同一个channelId 就可以互相说话了。如果joinChannelBlock不为空,则会在加入会议成功之后调用该block回调同时也会调用- (void)onFYRtcEngine:(FYRtcEngineKit *)engine didJoinChannel:(NSString *)channelId Uid:(NSString *)uid回调。
注:uid可以为空,当uid为空时sdk会随机生成一个uid回调给开发者,请开发者注意保管
[engineKit joinChannel:@"channelId" Uid:@"uid" OptionData:data JoinSuccess:^(NSString *uid, NSString *channel) {
//加入会议成功
}];
离开会议
- (void)leaveChannel:(void(^)(FYRtcEngineStatus* stat))leaveChannelBlock
加入会议成功调用此回调
- (void)onFYRtcEngine:(FYRtcEngineKit *)engine didJoinChannel:(NSString *)channelId Uid:(NSString *)uid;
离开会议成功调用此回调
- (void)onFYRtcEngine:(FYRtcEngineKit *)engine didLeaveChannel:(NSString *)channelId Stats:(FYRtcEngineStatus *)status;
有人加入会议会调用此回调
- (void)onFYRtcEngine:(FYRtcEngineKit *)engine didJoinOfUid:(NSString *)uid;
有人离开会议会调用此回调
- (void)onFYRtcEngine:(FYRtcEngineKit *)engine didLeaveOfUid:(NSString *)uid;
2、拨打点对点语音接入流程
同会议语音接入流程一样先初始化FYRtcEngineKit,这里将不再重复说明。
主叫调用dialPeer进行网络拨打,calleeUid为被叫的uid,callerUid为主叫uid也可不填,例如:客户端A要给客户端B被叫拨打点对点语音,A的uid为“xiaoming”,B的uid为“xiaoli”,调用方法如下:
主叫调用:
[engineKit dialPeer:@"xiaoli" CallerUid:@"xiaoming" OptionData:nil];
被叫调用:
[engineKit calleePrepare:@"xiaoli" prepareSuccess:^{
//被叫上线成功
}];
客户端B此时应该调用calleePrepare来上线,等待客户端A的来电。
注:
1、如果此时app 没启动或者在后台,可以使用苹果voip push来推送来电消息,当app收到push消息后调用calleePrepare进行当前uid上线,准备接听电话。
2、calleePrepare成功之后在一分钟后会自动下线,不在接受任何来电,如果再有来电,需重新调用calleePrepare。
客户端A呼出成功之后回调此方法
- (void)onFYRtcEngine:(FYRtcEngineKit *)engine OutgoingCall:(NSString *)callee Uid:(NSString *)uid;
当客户端B上线成功之后会通过下面的回调收到客户端A的来电。
- (void)onFYRtcEngine:(FYRtcEngineKit *)engine IncomingCall:(NSString *)caller;
注:当收到IncomingCall回调时可以接听或者挂断电话(拒接)
呼出点对点语音或者拨打pstn电话接通之后回调此方法
- (void)onFYRtcEngineCallConnect:(FYRtcEngineKit *)engine;
注:主叫或被叫,一般在此回调之后开始通话计时。
3、拨打专线电话
如果要拨打电话号码请调用下面方法即可,如:主叫为18512345678、被叫17012345678。
[engineKit dialPstn:@"+8617012345678" CallerUid:@"uid"Display:@"+8618512345678" OptionData:nil];
Dispaly为被叫要显示的号码。
注:
1、拨打专线电话与点对点语音只有发起呼叫接口不同,其他接口与回调都可以通用(如:挂断、接听、静音、扬声器)。
2、所有电话号码格式必须为E164格式:CC+NDC+SN(CC=国家码,中国为86;NDC=国内目的码;SN=用户号码)号码开头必须带“+”。
4、关于OptionData参数
1、isRecord:是否录音,飞语sdk录音是在服务端录音,需要在服务端获取录音文件。具体参考官网录音文档(需要在飞语开发者中心开启录音之后此参数才能生效)
2、maxDuration:最大通话分钟数,控制每一通的电话的拨打时间。
3、extraData:扩展参数
网友评论