ISUP5.0语音对讲学习笔记

ISUP5.0语音对讲学习笔记

文章目录

  • ISUP5.0语音对讲学习笔记
    • 准备阶段
      • CMS初始化
      • SMS初始化
      • CMS监听
      • CMS注册事件回调
      • SMS语音对讲监听
    • 工作阶段
      • 发送对讲命令
      • 发送推流命令
      • SMS新连接回调
      • 数据回调
      • 音频发送
    • 结束阶段
      • 发送停止语音对讲命令
      • 停止流媒体对讲
      • 其他

ISUP5.0语音对讲学习笔记_第1张图片

准备阶段

CMS初始化

ISUP5.0语音对讲学习笔记_第2张图片

SMS初始化

ISUP5.0语音对讲学习笔记_第3张图片

CMS监听

ISUP5.0语音对讲学习笔记_第4张图片

CMS注册事件回调

BOOL RegistrationCallBack(
		LONG lUserID, 
		DWORD dwDataType,
        void *pOutBuffer, 
        DWORD dwOutLen,
        void *pInBuffer, 
        DWORD dwInLen,
        void *pUser
)
{
      if (ENUM_DEV_ON == dwDataType)
      {
          // 设备上线回调...
      }
      else if (ENUM_DEV_OFF == dwDataType)
      {
          // 设备下线回调...
      }
      else if (ENUM_DEV_AUTH == dwDataType)
      {
          // Ehome5.0设备认证回调...
      }
      else if (ENUM_DEV_SESSIONKEY == dwDataType)
      {
          // Ehome5.0设备Sessionkey回调...
      }
      else if (ENUM_DEV_DAS_EHOMEKEY_ERROR == dwDataType)
      {
      	// 校验密码失败...
      }
      else if (ENUM_DEV_DAS_REQ == dwDataType)
      {
          // Ehome5.0设备重定向请求回调..
      }
      else
      {
          ...
      }
      return TRUE;
  }

SMS语音对讲监听

ISUP5.0语音对讲学习笔记_第5张图片

工作阶段

发送对讲命令

ISUP5.0语音对讲学习笔记_第6张图片

发送推流命令

ISUP5.0语音对讲学习笔记_第7张图片

SMS新连接回调

    BOOL VoiceTalkNewLinkCallback(
        LONG lLinkHandle,
        NET_EHOME_VOICETALK_NEWLINK_CB_INFO *pNewLinkCBInfo,
        void *pUserData
    )
    {
        // 此处设置对讲数据回调
        return TRUE;
    }

数据回调

BOOL ISUPServer::VoiceTalkDataCallback(LONG lVoiceTalkHandle,
                                           NET_EHOME_VOICETALK_DATA_CB_INFO *pDataCBInfo,
                                           void *pUserData)
    {
        // 此处处理设备端采集到的音频数据
        return TRUE;
    }

音频发送

ISUP5.0语音对讲学习笔记_第8张图片

结束阶段

发送停止语音对讲命令

ISUP5.0语音对讲学习笔记_第9张图片

停止流媒体对讲

ISUP5.0语音对讲学习笔记_第10张图片

其他

由于我开发的是长期服务,如果是短期对讲,还需要一下工作

  • 关闭SMS监听

在程序结束时

  • 关闭CMS监听
  • CMS反初始化
  • SMS反初始化

你可能感兴趣的:(C/C++,isup)