iOS

# 第三方管理

本文将介绍通话过程中第三方管理的功能:座席可以邀请另外的座席或者访客加入通话,以及收到所有参会成员的加入,离开事件。

# 1. 邀请第三方座席加入

// 邀请第三方坐席 agent3 参加通话
[_agent inviteThirdAgent:@"agent3"];

// 邀请坐席结果
- (void)onInviteThirdAgentResult:(bool)result error:(NSString *)error {
 	if (result == true) {
     	// 邀请坐席成功   
    } else {
     	// 邀请坐席失败,失败原因查看 error   
    }
}

# 2. 邀请第三方访客加入

在通话过程中调用 inviteThirdGuest (opens new window) 接口邀请第三方访客进入通话。

/**
 * 邀请第三方访客加入
 *
 * 第三方访客接听通话后,已在通话中的成员会收到 {@link JRTCAgentCallback.onMemberJoin: onMemberJoin} 或 {@link JRTCGuestCallback.onMemberJoin: onMemberJoin} 成员加入回调
 * @param userId 要邀请的第三方访客用户ID
 * @param extraInfo 邀请携带的额外信息
 * @return 接口调用结果
 * - true: 接口调用成功,结果通过 {@link JRTCAgentCallback.onInviteThirdGuestResult:userId:error: onInviteThirdGuestResult} 回调上报
 * - false: 接口调用异常
 */
- (bool)inviteThirdGuest:(NSString *)userId extraInfo:(NSString *__nullable)extraInfo;

邀请第三方访客的结果通过 onInviteThirdGuestResult (opens new window) 回调通知。

/**
 * 邀请第三方访客结果回调
 *
 * @param result 邀请第三方访客结果
 * - true: 邀请成功
 * - false: 邀请失败
 * @param userId 访客用户ID
 * @param error 邀请第三方访客失败原因,仅在失败时生效
 */
- (void)onInviteThirdGuestResult:(bool)result userId:(NSString *)userId error:(NSString *)error;

示例代码:

// 邀请访客用户 guest2 参加通话
[_agent inviteThirdGuest:@"guest2" script:@"附加信息"];

// 邀请第三方访客结果
- (void)onInviteThirdGuestResult:(bool)result userId:(NSString *)userId error:(NSString *)error {
    if (result == true) {
     	NSLog(@"邀请第三方访客 %@ 成功", userId);   
    }
}

# 3. 三方成员(座席或访客)离开或加入

有成员离开或者有新成员加入时 JRTCAgentCallback (opens new window) 会上报 onMemberJoin (opens new window)onMemberLeave (opens new window) 回调。

/**
 * 通话中有新成员加入回调
 *
 * 当第三方成员加入通话时,已在通话中的所有成员会收到此回调,而新加入的成员不会收到此回调。
 * @param part 新加入的成员对象
 */
- (void)onMemberJoin:(JRTCRoomParticipant *)part;

/**
 * 通话中有成员离开回调
 *
 * 通话中有成员离开通话时,剩余的成员会收到此回调,而离开的成员不会收到此回调。
 * @param part 离开的成员对象
 */
- (void)onMemberLeave:(JRTCRoomParticipant *)part;