获取主被叫用户信息
更新时间: 2024/08/23 10:16:57
在报表统计等场景中,您可能需要上报主被叫的一些用户信息。本文介绍获取主被叫的用户 ID(uid)、房间 ID (cid)、房间名称(cname)等信息。
呼叫时透传扩展信息给被叫
您可以在发起呼叫时设置扩展信息,例如用户昵称等。
- 调用
call
接口发起呼叫时,在attachment
参数中设置扩展信息,发起呼叫的详情参数参考如下:
/// 开始呼叫
/// @param userID 呼叫的用户ID
/// @param type 通话类型 {@link NERtcCallKitConsts => NERtcCallType}
/// @param attachment 扩展信息,透传到onInvited
/// @param extra 全局抄送
/// @param token 安全模式token,如果用户直接传入,不需要实现 tokenHandler block回调
/// @param channelName 自定义channelName,不传会默认生成
/// @param completion 回调
- (void)call:(NSString *)userID
type:(NERtcCallType)type
attachment:(nullable NSString *)attachment
globalExtra:(nullable NSString *)extra
withToken:(nullable NSString *)token
channelName:(nullable NSString *)channelName
completion:(nullable void (^)(NSError *_Nullable error))completion;
-
被叫用户获取相应的扩展信息。
被叫用户在收到来电通知时,通过
NERtcCallKitDelegate#onInvited
回调中的attachment
参数获取主叫方透传的扩展信息。/// 收到邀请的回调 /// @param invitor 邀请方 /// @param userIDs 房间中的被邀请的所有人(不包含邀请者) /// @param isFromGroup 是否是群组 /// @param groupID 群组ID /// @param type 通话类型 - (void)onInvited:(NSString *)invitor userIDs:(NSArray<NSString *> *)userIDs isFromGroup:(BOOL)isFromGroup groupID:(nullable NSString *)groupID type:(NERtcCallType)type attachment:(nullable NSString *)attachment;
获取本端的用户信息
主叫和被叫在加入 RTC 房间成功后,会触发NERtcCallKitDelegate#onJoinChannel
回调,您可以在NERtcCallKitDelegate#onJoinChannel
回调中获取本端的 RTC 用户 ID(uid)、IM 用户 ID (accid)、RTC 房间 ID(cid)、RTC 房间名称(cname)。
NERtcCallKitDelegate#onJoinChannel
回调的接口模型如下:
/// 自己加入成功的回调,通常用来上报、统计等
/// @param event 回调参数
- (void)onJoinChannel:(NERtcCallKitJoinChannelEvent *)event;
@interface NERtcCallKitJoinChannelEvent : NSObject
/// IM userID
@property(nonatomic, copy) NSString *accid;
/// 音视频用户id
@property(nonatomic, assign) uint64_t uid;
/// 音视频channelId
@property(nonatomic, assign) uint64_t cid;
/// 音视频channelName
@property(nonatomic, copy) NSString *cname;
@end
请在收到 onJoinChannel
回调时,自行保存这些信息。
获取对端的用户信息
获取对端用户的 IM accid
被叫收到呼叫邀请时会触发NERtcCallKitDelegate#onInvited
回调,在该回调的 invitor
参数中会返回对端用户的 IM accid。
NERtcCallKitDelegate#onInvited
回调的接口模型如下:
/// 收到邀请的回调
/// @param invitor 邀请方
/// @param userIDs 房间中的被邀请的所有人(不包含邀请者)
/// @param isFromGroup 是否是群组
/// @param groupID 群组ID
/// @param type 通话类型
- (void)onInvited:(NSString *)invitor
userIDs:(NSArray<NSString *> *)userIDs
isFromGroup:(BOOL)isFromGroup
groupID:(nullable NSString *)groupID
type:(NERtcCallType)type
attachment:(nullable NSString *)attachment;
获取对端用户的 RTC Uid
主叫在调用 call 接口成功后,在通话过程中,您可以调用 memberOfAccid
接口,根据对端用户的 IM accid 获取对端用户的 uid。
根据 IM accid 获取用户的 uid 的接口如下:
/// @param accid IM 用户id
/// @discussion 只有在通话中才能通过accid获取获取uid
- (void)memberOfAccid:(NSString *)accid
completion:(nullable void (^)(NIMSignalingMemberInfo *_Nullable info))completion;
此文档是否对你有帮助?