
# Random入会
#### JoinConfByRandom
**接口描述**
通过邮件会议通知中的会议链接入会时（会议链接如：https://bmeeting.huaweicloud.com/#/j/981924330/e11ddec62ee760734fcf2ba55b79937eac2aa68677caf659），链接里面的是会议ID（即举例中的981924330）和会议的Random码（即举例中的e11ddec62ee760734fcf2ba55b79937eac2aa68677caf659）。第三方App需要调用本接口加入会议。
![](https://support.huaweicloud.com/sdkreference-meeting/public_sys-resources/note_3.0-zh-cn.png)
如果预约会议时选择没有来宾密码，会议链接只有会议ID，没有Random码。
**注意事项**
1. 在登录和未登录状态下都可以调用该接口。
2. 该接口为异步接口，返回值只代表接口是否调用成功，实际业务处理结果在对应的回调函数中返回。
**方法定义**
```
HWM_SDK_AGENT_API hwmsdk::HwmErrCode JoinConfByRandom(HwmJoinConfByRandomInfo *joinConfByRandomInfo);
```
**回调函数**
```
virtual void OnJoinConfByRandomResult(hwmsdk::HwmErrCode ret, const char* reason) {};
```
**参数描述**
 表1结构体HwmJoinConfByRandomInfo参数说明 
| 参数         | 是否必须 | 类型       | 描述                                                        |
|:---|:---|:---|:---|
| confId     | 是    | char\[\] | 会议ID。                                                     |
| random     | 否    | char\[\] | 48位会议密码映射值。来源于分享会议信息中的会议链接尾部。会议不要求来宾密码时，可以为空字符串。          |
| name       | 否    | char\[\] | 会议昵称。在已登录状态下可为空，已登录时为空将使用登录的用户名作为会场名。匿名入会必须传该名字或者提前设置会场名。 |
| domain     | 否    | char\[\] | 域名。离线入会时使用。                                               |
| isCloseSpk | 否    | bool     | 是否关闭扬声器，true关闭扬声器；false不关闭扬声器。                            |
   
**返回值**
表2返回值 
| 类型         | 描述                                                                                                           |
|:---|:---|
| HwmErrCode | 成功返回0，其他值表示失败。失败返回值见[错误码参考](https://support.huaweicloud.com/sdkreference-meeting/meeting_control_0022.html)。 |
   
**示例代码**
```
// 通过会议ID和Random加入会议
int demoJoinConfByRandomDlg::clickJoinConfByRandom()
{
    // 填写会议ID和密码映射值等；Random入会时，支持配置会场名称
    hwmsdkagent::HwmJoinConfByRandomInfo data;
    memset(&data, 0, sizeof(hwmsdkagent::HwmJoinConfByRandomInfo));
 
    strncpy_s(data.confId, GetMeetingID().c_str(), HWM_MAX_CONF_ID_LEN);
    strncpy_s(data.random, GetAccessCode().c_str(), HWM_MAX_RANDOM_LEN);
    strncpy_s(data.name, GetParticipantName().c_str(), HWM_MAX_DISPLAY_NAME_LEN);
    data.isCloseSpk = false;
    
    // 设置麦克风和摄像头开关
    int ret = EnableFeature(hwmsdkagent::HWM_ENABLE_FEATURE_TYPE_MIC_SWITCH, true);
    ret = EnableFeature(hwmsdkagent::HWM_ENABLE_FEATURE_TYPE_CAM_SWITCH, false);
    ret = hwmsdkagent::JoinConfByRandom(&data);
    return ret;
}
```
![](https://support.huaweicloud.com/sdkreference-meeting/public_sys-resources/note_3.0-zh-cn.png)
在加入会议前可通过调用EnableFeature修改麦克风、摄像头状态。
