邀请
功能介绍
邀请者向其他用户发起邀请,被邀请者接受后加入该房间进行通讯。
使用场景:
- 会前邀请在线用户:会议开始前,邀请其他已登录用户加入指定房间。
- 会中邀请在线用户:会议进行中,邀请更多已登录用户加入当前房间。
使用注意点:
- 被邀请者只有成功登录了,才可以收到被邀请通知,否则无法收到邀请消息。
- 被邀请者可以同时收到多个邀请,应用层可以选择接受某个邀请。
- 邀请被接受/拒绝后,邀请任务自动结束,不与后续流程相关联。
邀请方
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请参考: