通话监听
融云 RongCallLib
库提供了 RCCallReceiveDelegate 和 RCCallSessionDelegate 两个代理,用于处理呼叫相关的业务逻辑上报。
来电监听
RCCallClient
中定义了 RCCallReceiveDelegate 协议,负责上报来电或者接收到远程通知的回调。
Objective C
/*!
CallLib全局通话呼入的监听器
*/
@protocol RCCallReceiveDelegate <NSObject>
/*!
接收到通话呼入的回调
@param callSession 呼入的通话实体
*/
- (void)didReceiveCall:(RCCallSession *)callSession;
/*!
接收到通话呼入的远程通知的回调
@param callId 呼入通话的唯一值
@param inviterUserId 通话邀请者的UserId
@param mediaType 通话的媒体类型
@param userIdList 被邀请者的UserId列表
@param userDict 远程推送包含的其他扩展信息
*/
- (void)didReceiveCallRemoteNotification:(NSString *)callId
inviterUserId:(NSString *)inviterUserId
mediaType:(RCCallMediaType)mediaType
userIdList:(NSArray *)userIdList
userDict:(NSDictionary *)userDict;
/*!
接收到通话呼入的远程通知的回调
@param callId 呼入通话的唯一值
@param inviterUserId 通话邀请者的UserId
@param mediaType 通话的媒体类型
@param userIdList 被邀请者的UserId列表
@param userDict 远程推送包含的其他扩展信息
@param isVoIPPush 是否 VoIP 推送
*/
- (void)didReceiveCallRemoteNotification:(NSString *)callId
inviterUserId:(NSString *)inviterUserId
mediaType:(RCCallMediaType)mediaType
userIdList:(NSArray *)userIdList
userDict:(NSDictionary *)userDict
isVoIPPush:(BOOL)isVoIPPush;
/*!
接收到取消通话的远程通知的回调
@param callId 呼入通话的唯一值
@param inviterUserId 通话邀请者的UserId
@param mediaType 通话的媒体类型
@param userIdList 被邀请者的UserId列表
*/
- (void)didCancelCallRemoteNotification:(NSString *)callId
inviterUserId:(NSString *)inviterUserId
mediaType:(RCCallMediaType)mediaType
userIdList:(NSArray *)userIdList;
@end
通话状态监听
RCCallSession
中定义了 RCCallSessionDelegate,支持监听通话状态的变化。
获取 RCCallSession
对象后,可以通过如下方法添加代理。
Objective C
/**
添加通话状态的监听器
@param delegate 通话状态变化的监听器
*/
- (void)addDelegate:(id<RCCallSessionDelegate>)delegate;
/**
删除通话状态的监听器
@param delegate 通话状态的监听器
*/
- (void)removeDelegate:(id<RCCallSessionDelegate>)delegate;
具体支持监听的事件请参见下方介绍的回调方法。