音视频通话

邀请

功能介绍

邀请者向其他用户发起邀请,被邀请者接受后加入该房间进行通讯。

使用场景:

  • 会前邀请在线用户:会议开始前,邀请其他已登录用户加入指定房间。
  • 会中邀请在线用户:会议进行中,邀请更多已登录用户加入当前房间。

使用注意点:

  • 被邀请者只有成功登录了,才可以收到被邀请通知,否则无法收到邀请消息。
  • 被邀请者可以同时收到多个邀请,应用层可以选择接受某个邀请。
  • 邀请被接受/拒绝后,邀请任务自动结束,不与后续流程相关联。

邀请方

1.发起邀请

  • 调用接口:
// A 邀请普通用户 B 加入当前所在房间号12345678
const char* extDat = R"({"meeting":{"ID":12345678}})";
CRString inviteID = crVideoSDKMain->getSDKCall().invite("userIDB", extDat);
  • 回调通知:
// 邀请发送结果
void inviteRslt(const char* inviteID, CRVSDK_ERR_DEF sdkErr, const char* cookie)
{
	// sdkErr==CRVSDKERR_NOERR 代表成功,否则代表失败的具体原因
}
  • 邀请 SIP/H.323 设备、监控设备

须按接口要求填写 usrExtDat(含房间号及设备信息等),分别参见 SIP/H.323设备支持监控设备对接

相关API请参考:

2.邀请被接受/拒绝

  • 回调通知:
// 通知邀请被接受
void notifyInviteAccepted(const char* inviteID, const char* usrExtDat)
{
  // 邀请被接受,如果自已未入会则入会; 如果已在房间中,可以等待被邀请者入会;
  // invite 请求已结束
}

// 通知邀请被拒绝
void notifyInviteRejected(const char* inviteID, CRVSDK_ERR_DEF reason, const char* usrExtDat)
{
  // 邀请被拒绝,弹出提示框等处理
  // invite 请求已结束
}

相关API请参考:

3.取消邀请

仅在被邀请方尚未接受或拒绝前,邀请方可取消本次邀请。接受或拒绝后 invite 已结束,此时调用 cancelInvite将没有效果。

  • 调用接口:
// 取消邀请
crVideoSDKMain->getSDKCall().cancelInvite(inviteID);
  • 回调通知:
// 取消邀请结果
void cancelInviteRslt(const char* inviteID, CRVSDK_ERR_DEF sdkErr, const char* cookie)
{
	// sdkErr==CRVSDKERR_NOERR 代表成功,否则代表失败的具体原因
}

// 通知邀请被取消(被邀请方收到)
void notifyInviteCanceled(const char* inviteID, CRVSDK_ERR_DEF reason, const char* usrExtDat)
{
    // 邀请方已取消邀请,关闭邀请提示等处理
}

相关API请参考:

被邀请方

1.收到邀请

  • 回调通知:
// 通知有邀请到来
void notifyInviteIn(const char* inviteID, const char* inviterUsrID, const char* usrExtDat)
{
    // 邀请方为 inviterUsrID
}

相关API请参考:

2.接受/拒绝邀请

  • 调用接口:
// 接受邀请
crVideoSDKMain->getSDKCall().acceptInvite(inviteID);
// 然后从notifyInviteIn中的usrExtDat解释出目标房间号,进入目标房间
crVideoSDKMain->getSDKMeeting().enterMeeting(meetID, nickName);

// 拒绝邀请
crVideoSDKMain->getSDKCall().rejectInvite(inviteID);
  • 回调通知:
// 接受邀请结果
void acceptInviteRslt(const char* inviteID, CRVSDK_ERR_DEF sdkErr, const char* cookie)
{
	// sdkErr==CRVSDKERR_NOERR 代表成功,否则代表失败的具体原因
	// 成功后 invite 请求结束,被邀请方进入房间
}

// 拒绝邀请结果
void rejectInviteRslt(const char* inviteID, CRVSDK_ERR_DEF sdkErr, const char* cookie)
{
	// sdkErr==CRVSDKERR_NOERR 代表成功,否则代表失败的具体原因
}

被邀请方相关API请参考: