更新时间:2025-06-30 GMT+08:00
分享

创建会议

CreateConf

接口描述

该接口用于创建即时会议。

注意事项

  1. 该接口默认已将自己作为主持人加入会议,调用接口时,在与会者参数中不需要带上自己的信息。
  2. 若需要在创建会议的同时邀请其他与会者,需要传入其他与会者信息。若不需要,与会者信息和与会者个数可以为空。
  3. 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。

方法定义

1
HWM_SDK_AGENT_API hwmsdk::HwmErrCode CreateConf(HwmCreateConfInfo *createConfInfo, HwmConfAttendee *attendees, unsigned int count);

回调函数

1
virtual void OnCreateConfResult(hwmsdk::HwmErrCode ret, const char* reason) {};

参数描述

参数

是否必须

类型

描述

createConfInfo

HwmCreateConfInfo

会议信息。

attendees

HwmConfAttendee

与会者信息。若不需要带与会者,参数值可以为NULL。

count

unsigned int

与会者个数。若不需要带与会者,参数值可以为0。

表1 结构体HwmCreateConfInfo参数说明

参数

是否必须

类型

描述

subject

char[]

参数解释:

会议主题。

约束限制

不涉及

取值范围

0-385个字符

默认取值

不涉及

mediaType

HwmConfMediaType

参数解释:

会议类型。

约束限制

不涉及

默认取值

HWM_AUDIO_AND_DATA 音频数据会议

needPassword

bool

参数解释:

是否需要会议密码。

约束限制

仅对随机会议ID生效

默认取值

不需要会议密码

isAutoRecord

bool

参数解释:

是否开启自动录制会议。开启自动录制会议开关,内部会默认支持录制会议,录制会议开关的打开与关闭并不影响。

约束限制

仅对云录制生效,客户端本地录制不生效。

默认取值

不开启自动录制会议。

allowRecord

bool

参数解释:

是否支持录制会议。

约束限制

仅对云录制生效,客户端本地录制不生效。

默认取值

不支持录制会议。

callInRestriction

HwmJoinConfPermissionType

参数解释:

允许入会范围限制。默认所有用户。

约束限制

不涉及

默认取值

RESTRICTION_CALL_IN_ALL 所有用户。

vmrId

char[]

参数解释:

云会议室唯一ID。

约束限制

预约随机会议时,设置为空字符串。

取值范围

0-128个字符

默认取值

不涉及

vmrConfIdType

HwmVmrConfIdType

参数解释:

云会议室的会议ID类型

约束限制

不涉及

默认取值

HWM_VMR_CONF_ID_TYPE_FIXED 固定类型

guestPwd

char[]

参数解释:

普通与会者密码

约束限制

如果空则服务器随机生成。仅对随机会议ID生效。

取值范围

0-64个字符

默认取值

不涉及

isOpenWaitingRoom

bool

参数解释:

等候室开启开关。

约束限制

需要等候室功能开通后才能生效。

默认取值

不开启等候室。

duration

int

参数解释:

会议时长,单位分钟。

约束限制

不涉及

取值范围

最小值15分钟,最大值1440分钟。

默认取值

不填时由服务端取默认会议时长30分钟

concurrentParticipants

unsigned int

参数解释:

会议方数,会议最大与会人数限制。

约束限制

不涉及

取值范围

  • 0:无限制
  • 大于0:会议最大与会人数

默认取值

不涉及

customInfo

char[]

参数解释:

自定义扩展信息

约束限制

不涉及

取值范围

0-64个字符

默认取值

不涉及

confResType

HwmConfResType

参数解释:

会议资源类型。

约束限制

不涉及

默认取值

HWM_CONF_RESTYPE_DEFAULT 默认

defaultSummaryState

HwmSummaryState

参数解释:

会议云录制是否包含纪要,初始值。

约束限制

仅企业配置支持智能会议纪要时生效(corpEnableSummary),参考表1

默认取值

SUMMARY_STATE_CLOSE 会议纪要关闭

autoMuteMode

HwmAutoMuteType

参数解释:

来宾入会,软终端是否自动静音。

约束限制

不涉及

默认取值

AUTO_MUTE_TYPE_DEFAULT 与默认配置一致

hardTerminalAutoMuteMode

HwmAutoMuteType

参数解释:

来宾入会,硬终端是否自动静音。

约束限制

不涉及

默认取值

AUTO_MUTE_TYPE_DEFAULT 与默认配置一致

forbiddenScreenShots

bool

参数解释:

是否禁止截屏。

约束限制

不涉及

默认取值

允许截屏

autoPublishSummary

bool

参数解释:

是否自动发布纪要(免人工审核)。

约束限制

不涉及

默认取值

不自动发布纪要

表2 枚举HwmConfMediaType说明

枚举值

描述

HWM_AUDIO_AND_DATA

音频数据会议。

HWM_VIDEO_AND_DATA

视频数据会议。

表3 枚举HwmJoinConfPermissionType说明

枚举值

描述

RESTRICTION_CALL_IN_ALL

所有用户。

RESTRICTION_CALL_IN_COMPANY

企业内用户。

RESTRICTION_CALL_IN_INVITED

被邀请用户。

表4 结构体HwmConfAttendee参数说明

参数

是否必须

类型

描述

name

char[]

参数解释:

与会者名称。

约束限制

不涉及

取值范围

0-256个字符

默认取值

不涉及

number

char[]

参数解释:

号码。

约束限制

如果填分配给账号的sip号码(如+99111244216210249)则呼叫该账号的App;如果填PSTN号码(如18700000000),则通过VoIP网关呼叫该号码,前提是该企业已开通PSTN呼叫权限。与thirdUserId二选一,账号密码鉴权时使用。

取值范围

0-128个字符

默认取值

不涉及

thirdUserId

char[]

参数解释:

第三方用户ID。

约束限制

与number二选一,App ID鉴权时使用。

取值范围

0-128个字符

默认取值

不涉及

表5 枚举HwmVmrConfIdType说明

枚举值

描述

HWM_VMR_CONF_ID_TYPE_FIXED

云会议室的会议ID类型是固定类型。

HWM_VMR_CONF_ID_TYPE_RANDOM

云会议室的会议ID类型是随机类型。

表6 枚举HwmConfResType说明

枚举值

描述

HWM_CONF_RESTYPE_DEFAULT

默认。

HWM_CONF_RESTYPE_SHARE_VMR

共享vmr。

表7 枚举HwmSummaryState说明

枚举值

描述

SUMMARY_STATE_CLOSE

会议纪要关闭。

SUMMARY_STATE_OPEN

会议纪要开启。

表8 枚举HwmAutoMuteType说明

枚举值

描述

AUTO_MUTE_TYPE_DEFAULT

与默认配置一致。

AUTO_MUTE_TYPE_MUTE

静音。

AUTO_MUTE_TYPE_UNMUTE

非静音。

返回值

表9 返回值

类型

描述

HwmErrCode

成功返回0,其他值表示失败。失败返回值见错误码参考

示例代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
/**
* 创建会议
*/
int demoCreateConfWithAttendeeDlg::clickCreatConfWithAttendee()
{
    int ret;
    hwmsdkagent::HwmCreateConfInfo data;
    memset(&data, 0, sizeof(hwmsdkagent::HwmCreateConfInfo));
    
    //设置会议主题
    strncpy_s(data.subject, GetMeetingSubjectStr().c_str(), HWM_MAX_SUBJECT_LEN);
    //设置会议类型
    data.mediaType = hwmsdkagent::HWM_VIDEO_AND_DATA
    //设置会议是否需要来宾密码
    data.needPassword = true;
    //设置会议呼入限制
    data.callInRestriction = hwmsdkagent::RESTRICTION_CALL_IN_ALL;
    //设置vmrId,若创建随机会议,则vmrId为空 此处m_confIdTypeCombo排序是把随机会议放在首位
    //因此vmrIdSelect > 0 为个人会议id与云会议室id场景
    const auto vmrIdSelect = m_confIdTypeCombo.GetCurSel();
    if (vmrIdSelect > 0 && vmrIdSelect - 1 < vmrList.size())
    {
        strcpy_s(data.vmrId, HWM_MAX_VMR_CONF_ID_LEN, vmrList[vmrIdSelect - 1].vmrId);
    }
    
    //设置与会人
    //获取与会人信息,实际使用是根据实际情况获取
    CString tempCString;
    m_attendeesEdit.GetWindowText(tempCString);
    string tempString = CTools::UNICODE2UTF(tempCString);
    vector<string> list = CTools::split(tempString, ';');
    vector<string> temp;
    int count = list.size();
    int realCount = 0;
    if (count > 0)
    {
        //申请结构体内存
        hwmsdkagent::HwmConfAttendee* participants;
        participants = (hwmsdkagent::HwmConfAttendee*)malloc(sizeof(hwmsdkagent::HwmConfAttendee) * count);
        if (participants == NULL)
        {
            return -1;
        }
        memset(participants, 0, sizeof(hwmsdkagent::HwmConfAttendee)*count);
 
        hwmsdkagent::HwmConfAttendee* participantsTemp = participants;
        for (int i = 0; i < count; i++)
        {
            temp = CTools::split(list[i], '-');
            if (temp.size() == 2)
            {
                //name赋值
                strncpy_s(participantsTemp->name, (char *)temp[0].c_str(), HWM_MAX_DISPLAY_NAME_LEN);
                //number赋值
                strncpy_s(participantsTemp->number, (char *)temp[1].c_str(), HWM_MAX_NUMBER_LEN);
                //指针个数加1
                realCount++;
                participantsTemp++;
            }
        }
        //调用SDK接口,创建会议
        ret = hwmsdkagent::CreateConf(&data, participants, realCount);
 
        //释放内存空间
        free(participants);
        participants = NULL;
    }
    else
    {
        //不携带与会人创建会议
        ret = hwmsdkagent::CreateConf(&data, NULL, 0);
    }
    return ret;
}

相关文档