LGL-UM post time 2019-3-26 15:48

关于PU端获取BVCU_SUBMETHOD_CONF_LIST 和BVCU_SUBMETHOD_CONF_INFO命令的使用

如题所述, 目前PU端想获取集群通话会议的相关信息,目前 获取的都为空,回调获取到的 pParam->stContent.iDataCount为0
    //CONF部分---------------------------
    BVCU_SUBMETHOD_CONF_LIST = 0x01600,//获取所有会议列表,BVCU_Command.szTargetID设置为CMS ID。输入类型:无;输出类型:BVCU_Conf_BaseInfo数组
                                       //BVCU_Command.iTargetIndex:0-查询所有会议列表;1-查询自己所在会议列表;2-查询自己不在的会议列表;3-查询有管理权限的会议列表。
    BVCU_SUBMETHOD_CONF_INFO,//获取某个会议详细信息,BVCU_Command.szTargetID设置为CONF_ID@CMS(@CMS可以省略,表示目前登录的CMS)。输入类型:无;输出类型:BVCU_Conf_Info

其中有个疑问如何知道 CONF_ID 和 CMS ID,这两个ID和如下结构体里的默认会议ID是否存在关联,能否给个参考示例?

typedef struct _BVCU_PUCFG_ZFYInfo
{
    char szDevModel;   //设备型号.只读
    char szIMEI_MEID;    //设备IMEI/MEID号.只读
    char szSerial;                         //产品序号,不可为空. 可写
    char szUserNo;                         //使用者警号,不可为空。可写
    char szUserName;   //使用者姓名。可写
    char szUserDescribe; //使用者描述(可用于备注职位)。 可写
    char szUnitNo;                        //使用者单位编号。 可写
    char szUnitName;   //使用者单位名称。 可写
    char szDefaultConference;//默认发言会议ID。注意可以通过BVCU_SUBMETHOD_CONF_LIST命令获取会议名称,并显示选择会议列表。 可写
    char szCurrentConference;//当前发言会议ID。 只读
}BVCU_PUCFG_ZFYInfo;


调用的命令如下:
                  BVCSP_Command stCommand;
                  memset(&stCommand, 0, sizeof(stCommand));
                  BVCU_Result enResult = BVCU_RESULT_S_OK;

                  stCommand.iSize = sizeof(stCommand);
                  stCommand.iMethod = BVCU_METHOD_QUERY;
                  stCommand.iSubMethod = BVCU_SUBMETHOD_CONF_INFO;
                  stCommand.OnEvent = PUMNG_CUCmdOnEvent;
                  enResult = BVCSP_SendCmd(hSession, &stCommand);
                  if (BVCU_Result_FAILED(enResult))
                  {
                        printf("BVCSP_SendCmd fail! %d\n", enResult);
                  }

回调函数如下:
static HI_VOID PUMNG_CUCmdOnEvent(BVCSP_HSession hSession, BVCSP_Command* pCommand, BVCSP_Event_SessionCmd* pParam)
{
    MLOGD(YELLOW"iMethod : 0x%x, iSubMethod : 0x%x"NONE"\n", pCommand->iMethod, pCommand->iSubMethod);

    if (BVCU_SUBMETHOD_CONF_LIST == pCommand->iSubMethod)
    {
      MLOGD("BVCU_SUBMETHOD_CONF_LIST [%d]\n", pParam->stContent.iDataCount);

      if (pParam->stContent.iDataCount >= 1)
      {
            BVCU_Conf_Info *pConfInfo = (BVCU_Conf_Info *)pParam->stContent.pData;
            MLOGD("baseInfo : szName[%s], szID[%s], iMode[%d], szPassword[%s], iConfStatus[%d], iParticipatorCount[%d]\n",
                pConfInfo.baseInfo.szName, pConfInfo.baseInfo.szID,
                pConfInfo.baseInfo.iMode, pConfInfo.baseInfo.szPassword,
                pConfInfo.baseInfo.iConfStatus, pConfInfo.iParticipatorCount);
      }
    }
    else if (BVCU_SUBMETHOD_CONF_INFO == pCommand->iSubMethod)
    {
      MLOGD("BVCU_SUBMETHOD_CONF_INFO [%d]\n", pParam->stContent.iDataCount);

      if (pParam->stContent.iDataCount >= 1)
      {
            BVCU_Conf_Info *pConfInfo = (BVCU_Conf_Info *)pParam->stContent.pData;
            MLOGD("baseInfo : szName[%s], szID[%s], iMode[%d], szPassword[%s], iConfStatus[%d], iParticipatorCount[%d]\n",
                pConfInfo.baseInfo.szName, pConfInfo.baseInfo.szID,
                pConfInfo.baseInfo.iMode, pConfInfo.baseInfo.szPassword,
                pConfInfo.baseInfo.iConfStatus, pConfInfo.iParticipatorCount);
      }
    }

    return ;
}





fanghj90 post time 2019-3-26 16:44

CMS ID不用填写。CONF_ID是通过CONF_LIST命令获取到的。
发CONF_INFO命令时,BVCU_Command.szTargetID要设置为CONF_ID,不要@CMS

LGL-UM post time 2019-3-26 16:46

fanghj90 post on2019-3-26 16:44
CMS ID不用填写。

请问下CONF_ID,是用哪一个

fanghj90 post time 2019-3-26 16:49

LGL-UM post on2019-3-26 16:46
请问下CONF_ID,是用哪一个

CONF_list 命令回复的BVCU_Conf_BaseInfo数组中,BVCU_Conf_BaseInfo.szID 是会议ID,也就是CONF_ID

LGL-UM post time 2019-3-27 09:20

fanghj90 post on2019-3-26 16:49
CONF_list 命令回复的BVCU_Conf_BaseInfo数组中,BVCU_Conf_BaseInfo.szID 是会议ID,也就是CONF_ID

您好,昨天尝试获取CONF_List:
(PUMNG_CUCmdOnEvent-448:3): iMethod : 0x1, iSubMethod : 0x1600
(PUMNG_CUCmdOnEvent-452:3): BVCU_SUBMETHOD_CONF_LIST
szName, szID, iMode, szPassword[], iConfStatus
szName[], szID[], iMode, szPassword[], iConfStatus

打印出来,实际是有两个群组,但是第二个群组的信息为空或不全


打印群组信息的代码如下:
static HI_VOID PUMNG_CUCmdOnEvent(BVCSP_HSession hSession, BVCSP_Command* pCommand, BVCSP_Event_SessionCmd* pParam)
{
    HI_U32 u32Idx = 0;

    MLOGD(YELLOW"iMethod : 0x%x, iSubMethod : 0x%x"NONE"\n", pCommand->iMethod, pCommand->iSubMethod);

    if (BVCU_SUBMETHOD_CONF_LIST == pCommand->iSubMethod)
    {
      MLOGD("BVCU_SUBMETHOD_CONF_LIST\n");

      if (pParam->stContent.iDataCount >= 1)
      {
            for (u32Idx = 0; u32Idx < pParam->stContent.iDataCount; u32Idx ++)
            {
                BVCU_Conf_Info *pConfInfo = (BVCU_Conf_Info *)(pParam->stContent.pData);

                printf("szName[%s], szID[%s], iMode[%d], szPassword[%s], iConfStatus[%d]\n",
                  pConfInfo.baseInfo.szName, pConfInfo.baseInfo.szID,
                  pConfInfo.baseInfo.iMode, pConfInfo.baseInfo.szPassword,
                  pConfInfo.baseInfo.iConfStatus);
            }

            printf("\n");
      }
    }

    return ;
}

fanghj90 post time 2019-3-27 10:19

LGL-UM post on2019-3-27 09:20
您好,昨天尝试获取CONF_List:
(PUMNG_CUCmdOnEvent-448:3): iMethod : 0x1, iSubMethod : 0x1600
(PU ...

BVCU_SUBMETHOD_CONF_LIST = 0x01600,//获取所有会议列表,BVCU_Command.szTargetID设置为CMS ID。输入类型:无;输出类型:BVCU_Conf_BaseInfo数组
您好,CONF_LIST的输出类型是BVCU_Conf_BaseInfo数组,不是BVCU_Conf_Info数组哦。

LGL-UM post time 2019-3-27 10:29

fanghj90 post on2019-3-27 10:19
BVCU_SUBMETHOD_CONF_LIST = 0x01600,//获取所有会议列表,BVCU_Command.szTargetID设置为CMS ID。输入 ...

好的,不好意思,看错了头文件
page: [1]
full version: 关于PU端获取BVCU_SUBMETHOD_CONF_LIST 和BVCU_SUBMETHOD_CONF_INFO命令的使用