Updated on 2023-03-23 GMT+08:00

Scenario 6: Creating a Meeting

Description

After logging in to the system using a Huawei Cloud Meeting account, you can call the API for creating an instant meeting. Participant information is optional.

Service Process

To create a meeting using a personal meeting ID or cloud meeting room, call the getVmrList API to query the personal meeting ID and cloud meeting room information, and then process the data returned by the onGetVmrListResult function. The data can be used to create the meeting.

When using the SDK to create an instant meeting, call the createConf API and implement the API callback function onCreateConfResult and subscribed-to notifications onConfStateChanged and onConfInfoNotify.

  1. Call an API.

    1. Assemble the data structure CreateConfInfo (including Array<AttendeeBaseInfo> in the structure, which is optional) and the API callback function onCreateConfResult.
    2. Call the createConf API to create a meeting. The data in the preceding step is used as input parameters.

  2. Implement the callback function.

    Implement the onCreateConfResult function.

  3. Implement the notification function.

    Implement the onConfStateChanged function.

  4. Implement the notification function.

    Implement the onConfInfoNotify function.

  5. Implement the notification function.

    Implement the onConfListChanged function.

Sample Code

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
/**
* Create a meeting.
*/
async goToCreateConf() {
    let param = {
        subject: "My Meeting",
        mediaType: mediaType: MediaType.HWM_MEDIA_TYPE_VIDEO,
        needPassword: true,
        confAllowJoinUser: ConfAllowJoinUserType.CONF_ALLOW_JOIN_ANYONE,
        isMicOn: true, // The microphone is enabled by default after a user joins the meeting.
        isCameraOn: false, // The camera is disabled by default after a user joins the meeting.
    }
    const apiService = new ApiService();
    let setResult = await apiService.createConf(param);
    if (setResult.ret != 0) {
        window.electron.ipcRenderer.send("show-error-alert", "createConf error = " + setResult.ret);
    }
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
/**
* Definition of createConf API in ApiService
*/
async createConf(createConfInfo) {
  return new Promise((resolve) => {
    let resultCallback = (ret, reason, createConfResult) => {
      console.log("createConf, out data = ", { ret, reason, createConfResult });
      resolve({ ret, reason, createConfResult });
    };
    console.log("createConf, in param = ", createConfInfo);
    this.uisdkService.getConfCtrlApi().createConf(createConfInfo, resultCallback);
  });
}

Parameters, such as the meeting topic and participant name, in Electron SDK APIs must be encoded in UTF-8. Otherwise, an error will be reported.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
/**
* Subscribe to the meeting status notification onConfStateChanged.
*/
uisdkService.getConfCtrlApi().setOnConfStateChangedCB(NotifyService.handleOnConfStateChanged);

/**
* Definition of handleOnConfStateChanged in NotifyService
*/
static handleOnConfStateChanged(confStateInfo) {
    console.log('OnConfStateChanged', ', confStateInfo = ', confStateInfo);
}

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
/**
* Subscribe to the meeting message notification onConfInfoNotify
*/
uisdkService.getConfCtrlApi().setOnConfInfoNotifyCB(NotifyService.handleOnConfInfoNotify);

/**
* Definition of handleOnConfInfoNotify in NotifyService
*/
static handleOnConfInfoNotify(confInfo) {
    console.log('OnConfInfoNotify', ', confInfo = ', confInfo);
}

The onConfListChanged event notification scenario is the same as the meeting scheduling scenario. For details, see Sample Code.

Character strings in Electron SDK callback functions or message notifications are encoded in UTF-8.