李勇

1.统一名称meeting conf 统一为class

2.会议相关数据的统一管理
@@ -73,7 +73,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -73,7 +73,7 @@ return /******/ (function(modules) { // webpackBootstrap
73 /******/ } 73 /******/ }
74 74
75 /******/ var hotApplyOnUpdate = true; 75 /******/ var hotApplyOnUpdate = true;
76 -/******/ var hotCurrentHash = "5e0ae84f169d08ac1a6d"; // eslint-disable-line no-unused-vars 76 +/******/ var hotCurrentHash = "d635f2d355b4ed7cd341"; // eslint-disable-line no-unused-vars
77 /******/ var hotCurrentModuleData = {}; 77 /******/ var hotCurrentModuleData = {};
78 /******/ var hotCurrentParents = []; // eslint-disable-line no-unused-vars 78 /******/ var hotCurrentParents = []; // eslint-disable-line no-unused-vars
79 79
@@ -810,7 +810,6 @@ return /******/ (function(modules) { // webpackBootstrap @@ -810,7 +810,6 @@ return /******/ (function(modules) { // webpackBootstrap
810 _this.getMcuClientStatus = _this._getMcuClientStatus; 810 _this.getMcuClientStatus = _this._getMcuClientStatus;
811 _this.getClassDetail = _this._getClassDetail; 811 _this.getClassDetail = _this._getClassDetail;
812 _this.sendUpdaterClassInfo = _this._sendUpdaterClassInfo; 812 _this.sendUpdaterClassInfo = _this._sendUpdaterClassInfo;
813 - _this.sendUpdaterClassInfo1 = _this._sendUpdaterClassInfo1;  
814 813
815 //chatApe 814 //chatApe
816 _this.sendChatMsg = _this._sendChatMsg; 815 _this.sendChatMsg = _this._sendChatMsg;
@@ -873,7 +872,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -873,7 +872,7 @@ return /******/ (function(modules) { // webpackBootstrap
873 value: function _init(_param, _onSuccess, _mcuErrorCallBack) { 872 value: function _init(_param, _onSuccess, _mcuErrorCallBack) {
874 _initSuccessCallBackFun = _onSuccess; 873 _initSuccessCallBackFun = _onSuccess;
875 _mcuErrorCallBackFun = _mcuErrorCallBack; 874 _mcuErrorCallBackFun = _mcuErrorCallBack;
876 - //{"meetingNumber":"1653304953","portal":"112.126.80.182:80","userRole":"normal","userId":0} 875 + //{"classId":"1653304953","portal":"112.126.80.182:80","userRole":"normal","userId":0}
877 //判断传入的参数是否存在 876 //判断传入的参数是否存在
878 if (_param == null || _EngineUtils2.default.isEmptyObject(_param) || _onSuccess == null || _mcuErrorCallBack == null) { 877 if (_param == null || _EngineUtils2.default.isEmptyObject(_param) || _onSuccess == null || _mcuErrorCallBack == null) {
879 loger.error('init初始化失败,参数错误'); 878 loger.error('init初始化失败,参数错误');
@@ -881,21 +880,21 @@ return /******/ (function(modules) { // webpackBootstrap @@ -881,21 +880,21 @@ return /******/ (function(modules) { // webpackBootstrap
881 return; 880 return;
882 } 881 }
883 //判断必要的参数字段值 882 //判断必要的参数字段值
884 - if (_param.meetingNumber == null || isNaN(_param.meetingNumber) || _param.portal == null || _param.portal == "") { 883 + if (_param.classId == null || isNaN(_param.classId) || _param.portal == null || _param.portal == "") {
885 loger.error('init初始化失败', _param); 884 loger.error('init初始化失败', _param);
886 this._emit(_MessageTypes2.default.MCU_ERROR, _MessageTypes2.default.ERR_CLASS_INIT_PAEAM); 885 this._emit(_MessageTypes2.default.MCU_ERROR, _MessageTypes2.default.ERR_CLASS_INIT_PAEAM);
887 return; 886 return;
888 } 887 }
889 loger.log('init', _param); 888 loger.log('init', _param);
890 //保存参数 889 //保存参数
891 - _GlobalConfig2.default.confId = _param.meetingNumber; 890 + _GlobalConfig2.default.classId = _param.classId;
892 _GlobalConfig2.default.portal = _param.portal; 891 _GlobalConfig2.default.portal = _param.portal;
893 _GlobalConfig2.default.userRole = _param.userRole || _ApeConsts2.default.normal; 892 _GlobalConfig2.default.userRole = _param.userRole || _ApeConsts2.default.normal;
894 _GlobalConfig2.default.userId = _param.userId || "0"; 893 _GlobalConfig2.default.userId = _param.userId || "0";
895 894
896 //获取课堂校验信息 895 //获取课堂校验信息
897 if (_sass) { 896 if (_sass) {
898 - _sass.getJoinParams(_GlobalConfig2.default.getConfInfo()); 897 + _sass.getJoinParams(_GlobalConfig2.default.getClassInfo());
899 } 898 }
900 } 899 }
901 900
@@ -923,7 +922,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -923,7 +922,7 @@ return /******/ (function(modules) { // webpackBootstrap
923 922
924 //开始校验 923 //开始校验
925 if (_sass) { 924 if (_sass) {
926 - _sass.passwordAndMd5Checking(_GlobalConfig2.default.getConfInfo()); 925 + _sass.passwordAndMd5Checking(_GlobalConfig2.default.getClassInfo());
927 } 926 }
928 } 927 }
929 // 离开会议 928 // 离开会议
@@ -940,7 +939,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -940,7 +939,7 @@ return /******/ (function(modules) { // webpackBootstrap
940 } 939 }
941 } 940 }
942 941
943 - // 用meetingNumber向SASS平台获取入会验证信息成功 942 + // 用classId向SASS平台获取入会验证信息成功
944 943
945 }, { 944 }, {
946 key: '_sassInitSuccessHandler', 945 key: '_sassInitSuccessHandler',
@@ -971,7 +970,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -971,7 +970,7 @@ return /******/ (function(modules) { // webpackBootstrap
971 //返回给客户端初始化成功的数据 970 //返回给客户端初始化成功的数据
972 var initSuccessCallBackData = {}; 971 var initSuccessCallBackData = {};
973 initSuccessCallBackData.siteId = _GlobalConfig2.default.siteId; 972 initSuccessCallBackData.siteId = _GlobalConfig2.default.siteId;
974 - initSuccessCallBackData.meetingNumber = _GlobalConfig2.default.confId; 973 + initSuccessCallBackData.classId = _GlobalConfig2.default.classId;
975 initSuccessCallBackData.userRole = _GlobalConfig2.default.userRole; 974 initSuccessCallBackData.userRole = _GlobalConfig2.default.userRole;
976 initSuccessCallBackData.userId = _GlobalConfig2.default.userId; 975 initSuccessCallBackData.userId = _GlobalConfig2.default.userId;
977 initSuccessCallBackData.passwordRequired = _GlobalConfig2.default.passwordRequired; 976 initSuccessCallBackData.passwordRequired = _GlobalConfig2.default.passwordRequired;
@@ -981,24 +980,14 @@ return /******/ (function(modules) { // webpackBootstrap @@ -981,24 +980,14 @@ return /******/ (function(modules) { // webpackBootstrap
981 } 980 }
982 } 981 }
983 982
984 - //// 用meetingNumber向SASS平台获取入会验证信息失败  
985 - //_sassInitFailedHandler(_data) {  
986 - // loger.log('向SASS平台获取入会验证信息失败.');  
987 - // //this._emit(MessageTypes.CLASS_INIT_FAILED);  
988 - // let callBackObj={"code":_data,"message":""};  
989 - // if(_initFailureCallBackFun){  
990 - // _initFailureCallBackFun(callBackObj);  
991 - // }  
992 - //}  
993 -  
994 //使用固定的假数据 983 //使用固定的假数据
995 984
996 }, { 985 }, {
997 key: '_setDebugData', 986 key: '_setDebugData',
998 - value: function _setDebugData(_data) {  
999 - loger.log("setDebugData " + _data); 987 + value: function _setDebugData(_data) {}
  988 + //loger.log("setDebugData "+_data);
1000 //GlobalConfig.setDebugData(_data); 989 //GlobalConfig.setDebugData(_data);
1001 - } 990 +
1002 991
1003 // 通过SASS平台验证 992 // 通过SASS平台验证
1004 993
@@ -1030,7 +1019,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -1030,7 +1019,7 @@ return /******/ (function(modules) { // webpackBootstrap
1030 1019
1031 loger.log('加入底层MCU会议.'); 1020 loger.log('加入底层MCU会议.');
1032 if (_mcu) { 1021 if (_mcu) {
1033 - _mcu.joinMCU(_GlobalConfig2.default.getConfInfo()); 1022 + _mcu.joinMCU(_GlobalConfig2.default.getClassInfo());
1034 } 1023 }
1035 } 1024 }
1036 1025
@@ -1070,8 +1059,8 @@ return /******/ (function(modules) { // webpackBootstrap @@ -1070,8 +1059,8 @@ return /******/ (function(modules) { // webpackBootstrap
1070 key: '_h5SassGetMeetingParaSuccessHandler', 1059 key: '_h5SassGetMeetingParaSuccessHandler',
1071 value: function _h5SassGetMeetingParaSuccessHandler(_data) { 1060 value: function _h5SassGetMeetingParaSuccessHandler(_data) {
1072 loger.log('获取api/meeting/detail.do完成.'); 1061 loger.log('获取api/meeting/detail.do完成.');
1073 - console.log(_data.docListPrepare);  
1074 - console.log(_data.mcuList); 1062 + //console.log(_data.docListPrepare);
  1063 + //console.log(_data.mcuList);
1075 //包含整个会议最全的信息,储存数据 1064 //包含整个会议最全的信息,储存数据
1076 if (_data) { 1065 if (_data) {
1077 _GlobalConfig2.default.setDocListPrepare(_data.docListPrepare); //提前上传的文档列表 1066 _GlobalConfig2.default.setDocListPrepare(_data.docListPrepare); //提前上传的文档列表
@@ -1102,13 +1091,13 @@ return /******/ (function(modules) { // webpackBootstrap @@ -1102,13 +1091,13 @@ return /******/ (function(modules) { // webpackBootstrap
1102 _GlobalConfig2.default.MCUServerIP = _data.MCUServerIP; 1091 _GlobalConfig2.default.MCUServerIP = _data.MCUServerIP;
1103 _GlobalConfig2.default.MCUServerPort = _data.MCUServerPort; 1092 _GlobalConfig2.default.MCUServerPort = _data.MCUServerPort;
1104 //GlobalConfig.classRole=_data.classRole; 1093 //GlobalConfig.classRole=_data.classRole;
1105 - _GlobalConfig2.default.confId = _data.confId; 1094 + _GlobalConfig2.default.classId = _data.classId;
1106 _GlobalConfig2.default.h5Module = _data.h5Module; 1095 _GlobalConfig2.default.h5Module = _data.h5Module;
1107 //GlobalConfig.isHost=_data.isHost; 1096 //GlobalConfig.isHost=_data.isHost;
1108 _GlobalConfig2.default.maxAudioChannels = _data.maxAudioChannels; 1097 _GlobalConfig2.default.maxAudioChannels = _data.maxAudioChannels;
1109 _GlobalConfig2.default.maxVideoChannels = _data.maxVideoChannels; 1098 _GlobalConfig2.default.maxVideoChannels = _data.maxVideoChannels;
1110 _GlobalConfig2.default.maxMediaChannels = _data.maxMediaChannels; 1099 _GlobalConfig2.default.maxMediaChannels = _data.maxMediaChannels;
1111 - _GlobalConfig2.default.mcuConfInfo = _data.mcuConfInfo; 1100 + _GlobalConfig2.default.mcuClassInfo = _data.mcuClassInfo;
1112 _GlobalConfig2.default.mcuDelay = _data.mcuDelay; 1101 _GlobalConfig2.default.mcuDelay = _data.mcuDelay;
1113 _GlobalConfig2.default.md5 = _data.md5; 1102 _GlobalConfig2.default.md5 = _data.md5;
1114 _GlobalConfig2.default.msType = _data.msType; 1103 _GlobalConfig2.default.msType = _data.msType;
@@ -1134,13 +1123,13 @@ return /******/ (function(modules) { // webpackBootstrap @@ -1134,13 +1123,13 @@ return /******/ (function(modules) { // webpackBootstrap
1134 1123
1135 initSuccessCallBackData.doc = _GlobalConfig2.default.doc; //文档服务器地址 1124 initSuccessCallBackData.doc = _GlobalConfig2.default.doc; //文档服务器地址
1136 //initSuccessCallBackData.classRole=GlobalConfig.classRole; 1125 //initSuccessCallBackData.classRole=GlobalConfig.classRole;
1137 - initSuccessCallBackData.confId = _GlobalConfig2.default.confId; 1126 + initSuccessCallBackData.classId = _GlobalConfig2.default.classId;
1138 initSuccessCallBackData.h5Module = _GlobalConfig2.default.h5Module; 1127 initSuccessCallBackData.h5Module = _GlobalConfig2.default.h5Module;
1139 initSuccessCallBackData.isHost = _GlobalConfig2.default.isHost; 1128 initSuccessCallBackData.isHost = _GlobalConfig2.default.isHost;
1140 initSuccessCallBackData.maxAudioChannels = _GlobalConfig2.default.maxAudioChannels; 1129 initSuccessCallBackData.maxAudioChannels = _GlobalConfig2.default.maxAudioChannels;
1141 initSuccessCallBackData.maxVideoChannels = _GlobalConfig2.default.maxVideoChannels; 1130 initSuccessCallBackData.maxVideoChannels = _GlobalConfig2.default.maxVideoChannels;
1142 initSuccessCallBackData.maxMediaChannels = _GlobalConfig2.default.maxMediaChannels; 1131 initSuccessCallBackData.maxMediaChannels = _GlobalConfig2.default.maxMediaChannels;
1143 - // GlobalConfig.mcuConfInfo=_data.mcuConfInfo; 1132 + // GlobalConfig.mcuClassInfo=_data.mcuClassInfo;
1144 initSuccessCallBackData.mcuDelay = _GlobalConfig2.default.mcuDelay; 1133 initSuccessCallBackData.mcuDelay = _GlobalConfig2.default.mcuDelay;
1145 //GlobalConfig.md5=_data.md5; 1134 //GlobalConfig.md5=_data.md5;
1146 initSuccessCallBackData.msType = _GlobalConfig2.default.msType; 1135 initSuccessCallBackData.msType = _GlobalConfig2.default.msType;
@@ -1158,7 +1147,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -1158,7 +1147,7 @@ return /******/ (function(modules) { // webpackBootstrap
1158 initSuccessCallBackData.userType = _GlobalConfig2.default.userType; 1147 initSuccessCallBackData.userType = _GlobalConfig2.default.userType;
1159 1148
1160 initSuccessCallBackData.siteId = _GlobalConfig2.default.siteId; 1149 initSuccessCallBackData.siteId = _GlobalConfig2.default.siteId;
1161 - initSuccessCallBackData.meetingNumber = _GlobalConfig2.default.confId; 1150 + initSuccessCallBackData.classId = _GlobalConfig2.default.classId;
1162 initSuccessCallBackData.userRole = _GlobalConfig2.default.userRole; 1151 initSuccessCallBackData.userRole = _GlobalConfig2.default.userRole;
1163 initSuccessCallBackData.userId = _GlobalConfig2.default.userId; 1152 initSuccessCallBackData.userId = _GlobalConfig2.default.userId;
1164 initSuccessCallBackData.passwordRequired = _GlobalConfig2.default.passwordRequired; 1153 initSuccessCallBackData.passwordRequired = _GlobalConfig2.default.passwordRequired;
@@ -1661,15 +1650,15 @@ return /******/ (function(modules) { // webpackBootstrap @@ -1661,15 +1650,15 @@ return /******/ (function(modules) { // webpackBootstrap
1661 1650
1662 //Sass 接口 1651 //Sass 接口
1663 //----1.校验之前的接口----- 1652 //----1.校验之前的接口-----
1664 - //getJoinParams 获取课堂校验信息 let url = `http://${_initInfo.portal}/3m/api/meeting/joinParams.do?meetingNumber=${_initInfo.confId}&userID=${_initInfo.userId}`; 1653 + //getJoinParams 获取课堂校验信息 let url = `http://${_initInfo.portal}/3m/api/meeting/joinParams.do?meetingNumber=${_initInfo.classId}&userID=${_initInfo.userId}`;
1665 1654
1666 //-----2.开始校验,如果有密码先校验密码,否则直接开始MD5验证----- 1655 //-----2.开始校验,如果有密码先校验密码,否则直接开始MD5验证-----
1667 - //sendPWDChecking入会密码校验 let url = `http://${confInfo.portal}/3m/getCheckMeetinig.do?siteId=${confInfo.siteId}&classId=${confInfo.confId}&password=${confInfo.password}`;  
1668 - //sendMD5Checking MD5校验(发起入会) let url = `http://${confInfo.portal}/3m/meeting/md5CheckMeeting.do?siteId=${confInfo.siteId}&meetingNumber=${confInfo.confId}&userId=${confInfo.userId}&userName=${confInfo.userName}&userType=${confInfo.userType}&passwordRequired=${confInfo.passwordRequired}&md5=${confInfo.md5}`; 1656 + //sendPWDChecking入会密码校验 let url = `http://${classInfo.portal}/3m/getCheckMeetinig.do?siteId=${classInfo.siteId}&classId=${classInfo.classId}&password=${classInfo.password}`;
  1657 + //sendMD5Checking MD5校验(发起入会) let url = `http://${classInfo.portal}/3m/meeting/md5CheckMeeting.do?siteId=${classInfo.siteId}&meetingNumber=${classInfo.classId}&userId=${classInfo.userId}&userName=${classInfo.userName}&userType=${classInfo.userType}&passwordRequired=${classInfo.passwordRequired}&md5=${classInfo.md5}`;
1669 1658
1670 //----3.验证完成后获取------ 1659 //----3.验证完成后获取------
1671 - //getClassDetail 获取会议详情 let url = `http://${confInfo.portal}/3m/meeting/getClassH5.do?classNumber=${confInfo.confId}`;  
1672 - //getMeetingParam 获取会议最全参数集合 let url = `http://${confInfo.portal}/3m/api/meeting/detail.do?meetingNumber=${confInfo.confId}&timestamp=${timestamp}&authId=${authId}`; 1660 + //getClassDetail 获取会议详情 let url = `http://${classInfo.portal}/3m/meeting/getClassH5.do?classNumber=${classInfo.classId}`;
  1661 + //getMeetingParam 获取会议最全参数集合 let url = `http://${classInfo.portal}/3m/api/meeting/detail.do?meetingNumber=${classInfo.classId}&timestamp=${timestamp}&authId=${authId}`;
1673 1662
1674 1663
1675 //Sass获取课堂校验信息 1664 //Sass获取课堂校验信息
@@ -1699,7 +1688,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -1699,7 +1688,7 @@ return /******/ (function(modules) { // webpackBootstrap
1699 md5 String 用于后续加入课堂验证 1688 md5 String 用于后续加入课堂验证
1700 msType int 媒体服务器类型 1689 msType int 媒体服务器类型
1701 */ 1690 */
1702 - var url = 'http://' + _initInfo.portal + '/3m/api/meeting/joinParams.do?meetingNumber=' + _initInfo.confId + '&userID=' + _initInfo.userId; 1691 + var url = 'http://' + _initInfo.portal + '/3m/api/meeting/joinParams.do?meetingNumber=' + _initInfo.classId + '&userID=' + _initInfo.userId;
1703 loger.log('Sass获取课堂校验信息.', url); 1692 loger.log('Sass获取课堂校验信息.', url);
1704 fetch(url, { 1693 fetch(url, {
1705 timeout: 5000 1694 timeout: 5000
@@ -1764,7 +1753,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -1764,7 +1753,7 @@ return /******/ (function(modules) { // webpackBootstrap
1764 value: function sendPWDChecking() { 1753 value: function sendPWDChecking() {
1765 var _this3 = this; 1754 var _this3 = this;
1766 1755
1767 - //let url = `http://${confInfo.portal}/3m/getCheckMeetinig.do?siteId=${confInfo.siteId}&classId=${confInfo.confId}&password=${confInfo.password}`; 1756 + //let url = `http://${classInfo.portal}/3m/getCheckMeetinig.do?siteId=${classInfo.siteId}&classId=${classInfo.classId}&password=${classInfo.password}`;
1768 1757
1769 /* 1758 /*
1770 /3m/api/meeting/signIn.do 1759 /3m/api/meeting/signIn.do
@@ -1780,7 +1769,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -1780,7 +1769,7 @@ return /******/ (function(modules) { // webpackBootstrap
1780 isTeacher = 1; 1769 isTeacher = 1;
1781 } 1770 }
1782 1771
1783 - var url = 'http://' + confInfo.portal + '/3m/api/meeting/signIn.do?siteId=' + confInfo.siteId + '&classId=' + confInfo.confId + '&isTeacher=' + isTeacher + '&password=' + confInfo.password; 1772 + var url = 'http://' + confInfo.portal + '/3m/api/meeting/signIn.do?siteId=' + confInfo.siteId + '&classId=' + confInfo.classId + '&isTeacher=' + isTeacher + '&password=' + confInfo.password;
1784 loger.log('会议密码校验', url); 1773 loger.log('会议密码校验', url);
1785 fetch(url, { 1774 fetch(url, {
1786 timeout: 5000 1775 timeout: 5000
@@ -1819,7 +1808,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -1819,7 +1808,7 @@ return /******/ (function(modules) { // webpackBootstrap
1819 value: function sendMD5Checking() { 1808 value: function sendMD5Checking() {
1820 var _this4 = this; 1809 var _this4 = this;
1821 1810
1822 - var url = 'http://' + confInfo.portal + '/3m/meeting/md5CheckMeeting.do?siteId=' + confInfo.siteId + '&meetingNumber=' + confInfo.confId + '&userId=' + confInfo.userId + '&userName=' + confInfo.userName + '&userType=' + confInfo.userType + '&nopassword=' + confInfo.passwordRequired + '&md5=' + confInfo.md5; 1811 + var url = 'http://' + confInfo.portal + '/3m/meeting/md5CheckMeeting.do?siteId=' + confInfo.siteId + '&meetingNumber=' + confInfo.classId + '&userId=' + confInfo.userId + '&userName=' + confInfo.userName + '&userType=' + confInfo.userType + '&nopassword=' + confInfo.passwordRequired + '&md5=' + confInfo.md5;
1823 loger.log('H5SassMD5校验', url); 1812 loger.log('H5SassMD5校验', url);
1824 fetch(url, { 1813 fetch(url, {
1825 timeout: 5000 1814 timeout: 5000
@@ -1867,7 +1856,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -1867,7 +1856,7 @@ return /******/ (function(modules) { // webpackBootstrap
1867 value: function getClassDetail() { 1856 value: function getClassDetail() {
1868 var _this5 = this; 1857 var _this5 = this;
1869 1858
1870 - var url = 'http://' + confInfo.portal + '/3m/meeting/getClassH5.do?classNumber=' + confInfo.confId; 1859 + var url = 'http://' + confInfo.portal + '/3m/meeting/getClassH5.do?classNumber=' + confInfo.classId;
1871 loger.log('Sass获取Class详情.', url); 1860 loger.log('Sass获取Class详情.', url);
1872 fetch(url, { 1861 fetch(url, {
1873 timeout: 5000 1862 timeout: 5000
@@ -1911,11 +1900,11 @@ return /******/ (function(modules) { // webpackBootstrap @@ -1911,11 +1900,11 @@ return /******/ (function(modules) { // webpackBootstrap
1911 3 没有对应的站点 1900 3 没有对应的站点
1912 4 站点已过期 1901 4 站点已过期
1913 siteId String 站点号 1902 siteId String 站点号
1914 - meetingNumber String 课堂号 1903 + meetingNumber String 课堂号 对应的是classId
1915 */ 1904 */
1916 var timestamp = new Date().getTime(); 1905 var timestamp = new Date().getTime();
1917 - var authId = (0, _md2.default)(confInfo.confId + "" + timestamp); //课堂号+时间戳 的字符串,转成MD5  
1918 - var url = 'http://' + confInfo.portal + '/3m/api/meeting/detail.do?meetingNumber=' + confInfo.confId + '&timestamp=' + timestamp + '&authId=' + authId; 1906 + var authId = (0, _md2.default)(confInfo.classId + "" + timestamp); //课堂号+时间戳 的字符串,转成MD5
  1907 + var url = 'http://' + confInfo.portal + '/3m/api/meeting/detail.do?meetingNumber=' + confInfo.classId + '&timestamp=' + timestamp + '&authId=' + authId;
1919 loger.log('H5Sass获取getMeetingParam ', url); 1908 loger.log('H5Sass获取getMeetingParam ', url);
1920 fetch(url, { 1909 fetch(url, {
1921 timeout: 5000 1910 timeout: 5000
@@ -2337,10 +2326,33 @@ return /******/ (function(modules) { // webpackBootstrap @@ -2337,10 +2326,33 @@ return /******/ (function(modules) { // webpackBootstrap
2337 key: 'setClassDetail', 2326 key: 'setClassDetail',
2338 value: function setClassDetail(_data) { 2327 value: function setClassDetail(_data) {
2339 this.classDetail = _data; 2328 this.classDetail = _data;
  2329 + this.className = _data.meetingName || "";
  2330 + this.classBeginTime = _data.beginTime || "";
  2331 + this.classEndTime = _data.endTime || "";
  2332 + //
  2333 + //"cycle": 0,
  2334 + // "repeatmonthweekweek": 0,
  2335 + // "status": 1,
  2336 + // "repeatmonthday": 0,
  2337 + // "repeatmode": 0,
  2338 + // "beginTime": "2017-02-03 09:00:00",
  2339 + // "frequency": 1,
  2340 + // "endmode": 0,
  2341 + // "meetingContent": "",
  2342 + // "endTime": "2017-03-31 11:00:00",
  2343 + // "repeatweek": "",
  2344 + // "category": "",
  2345 + // "finalenddate": "",
  2346 + // "repeatday": 0,
  2347 + // "meetingName": "mcu1",
  2348 + // "errorCode": 0,
  2349 + // "monthType": 0,
  2350 + // "repeatmonthweekday": 0,
  2351 + // "endcount": 1
2340 } 2352 }
2341 }, { 2353 }, {
2342 - key: 'getConfInfo',  
2343 - value: function getConfInfo() { 2354 + key: 'getClassInfo',
  2355 + value: function getClassInfo() {
2344 if (this.isDebug) { 2356 if (this.isDebug) {
2345 2357
2346 //这几个属性是sass验证完成之后返回的,启动MCU的时候需要 2358 //这几个属性是sass验证完成之后返回的,启动MCU的时候需要
@@ -2354,7 +2366,8 @@ return /******/ (function(modules) { // webpackBootstrap @@ -2354,7 +2366,8 @@ return /******/ (function(modules) { // webpackBootstrap
2354 } else { 2366 } else {
2355 return { 2367 return {
2356 "siteId": this.siteId, 2368 "siteId": this.siteId,
2357 - "confId": this.confId, 2369 + "classId": this.classId,
  2370 + "className": this.className,
2358 "h5Module": this.h5Module, 2371 "h5Module": this.h5Module,
2359 "nodeId": this.nodeId, 2372 "nodeId": this.nodeId,
2360 "topNodeID": this.topNodeID, 2373 "topNodeID": this.topNodeID,
@@ -2506,9 +2519,11 @@ return /******/ (function(modules) { // webpackBootstrap @@ -2506,9 +2519,11 @@ return /******/ (function(modules) { // webpackBootstrap
2506 "classType": this.classType, //课堂类型 2519 "classType": this.classType, //课堂类型
2507 "classStatus": this.classStatus, //课堂的状态 2520 "classStatus": this.classStatus, //课堂的状态
2508 "classStartTime": this.classStartTime, //课堂点击开始时间 2521 "classStartTime": this.classStartTime, //课堂点击开始时间
2509 - "classEndTime": this.classEndTime, //最后一次的时间(点暂停或结束),每次发送数据都获取当前时间戳 2522 + "classStopTime": this.classStopTime, //最后一次停止的时间(点暂停或结束),每次发送数据都获取当前时间戳
2510 "classTimestamp": this.recordTimestamp, //相对于点开始课堂的时间戳 2523 "classTimestamp": this.recordTimestamp, //相对于点开始课堂的时间戳
2511 2524
  2525 + "classBeginTime": this.classBeginTime, //课堂创建的时间
  2526 + "classEndTime": this.classEndTime, //课堂结束的时间
2512 2527
2513 "recordStatus": this.recordStatus, //当前录制状态 2528 "recordStatus": this.recordStatus, //当前录制状态
2514 "recordTimestamp": this.recordTimestamp, //相对于开始录制的时间戳 2529 "recordTimestamp": this.recordTimestamp, //相对于开始录制的时间戳
@@ -2518,8 +2533,8 @@ return /******/ (function(modules) { // webpackBootstrap @@ -2518,8 +2533,8 @@ return /******/ (function(modules) { // webpackBootstrap
2518 "systemTimestamp": this.systemTimestamp //当前的系统时间戳 2533 "systemTimestamp": this.systemTimestamp //当前的系统时间戳
2519 } 2534 }
2520 }; 2535 };
2521 - },  
2522 - set: function set(_param) {} 2536 + }
  2537 +
2523 // 判断自己是否主持人角色 2538 // 判断自己是否主持人角色
2524 2539
2525 }, { 2540 }, {
@@ -2585,22 +2600,6 @@ return /******/ (function(modules) { // webpackBootstrap @@ -2585,22 +2600,6 @@ return /******/ (function(modules) { // webpackBootstrap
2585 GlobalConfig.statusCode_3 = { "code": 3, message: "已经离开会议" }; 2600 GlobalConfig.statusCode_3 = { "code": 3, message: "已经离开会议" };
2586 GlobalConfig.statusCode_4 = { "code": 4, message: "未知状态" }; 2601 GlobalConfig.statusCode_4 = { "code": 4, message: "未知状态" };
2587 2602
2588 - GlobalConfig.siteId = "gust";  
2589 - GlobalConfig.confId = 0; //课堂号=classId=meetingNumber 之后统一修改为classId  
2590 - GlobalConfig.nodeId = 0; //随机生成  
2591 - GlobalConfig.topNodeID = 101; //现在固定值,还不知道是做什么用  
2592 - GlobalConfig.userRole = _ApeConsts2.default.normal;  
2593 - GlobalConfig.role = 1;  
2594 - //GlobalConfig.isHost=false;  
2595 - //GlobalConfig.classRole=0;//废弃  
2596 -  
2597 - GlobalConfig.userId = 0;  
2598 - GlobalConfig.userName = "";  
2599 -  
2600 - GlobalConfig.password = "";  
2601 - GlobalConfig.userType = 8;  
2602 - GlobalConfig.h5Module = 0;  
2603 - GlobalConfig.passwordRequired = false;  
2604 GlobalConfig.md5 = ""; 2603 GlobalConfig.md5 = "";
2605 GlobalConfig.msType = 1; 2604 GlobalConfig.msType = 1;
2606 GlobalConfig.mcuDelay = 3000; //默认的延迟时间 2605 GlobalConfig.mcuDelay = 3000; //默认的延迟时间
@@ -2619,11 +2618,29 @@ return /******/ (function(modules) { // webpackBootstrap @@ -2619,11 +2618,29 @@ return /******/ (function(modules) { // webpackBootstrap
2619 GlobalConfig.deviceType = -1; //设备类型 0:电脑 1:安卓 2:ios -1未知 2618 GlobalConfig.deviceType = -1; //设备类型 0:电脑 1:安卓 2:ios -1未知
2620 GlobalConfig.userIP = ""; //用户当前IP 2619 GlobalConfig.userIP = ""; //用户当前IP
2621 2620
  2621 + GlobalConfig.userId = 0;
  2622 + GlobalConfig.userName = "";
  2623 + GlobalConfig.nodeId = 0; //随机生成
  2624 + GlobalConfig.passwordRequired = false;
  2625 + GlobalConfig.password = "";
  2626 + GlobalConfig.userType = 8;
  2627 + GlobalConfig.userRole = _ApeConsts2.default.normal; //用户的身份,5种类型:
  2628 + GlobalConfig.role = _ApeConsts2.default.NR_NORMAL; //课堂角色身份
  2629 +
  2630 + GlobalConfig.h5Module = 0;
  2631 + GlobalConfig.siteId = "gust";
  2632 +
  2633 + GlobalConfig.topNodeID = 101; //现在固定值,还不知道是做什么用
  2634 +
2622 GlobalConfig.className = ""; // 课程名称 2635 GlobalConfig.className = ""; // 课程名称
2623 - GlobalConfig.classId = ""; // 课程号 2636 + GlobalConfig.classId = 0; //课堂号=classId=meetingNumber 之后统一修改为classId
2624 GlobalConfig.classType = _ApeConsts2.default.CLASS_TYPE_INTERACT; //1:互动课堂,2:直播课堂 2637 GlobalConfig.classType = _ApeConsts2.default.CLASS_TYPE_INTERACT; //1:互动课堂,2:直播课堂
2625 GlobalConfig.classStatus = _ApeConsts2.default.CLASS_STATUS_WAIT; // 0;//课堂还未开始 1;//直播中 2 //课间休息 3已经停止 2638 GlobalConfig.classStatus = _ApeConsts2.default.CLASS_STATUS_WAIT; // 0;//课堂还未开始 1;//直播中 2 //课间休息 3已经停止
  2639 + GlobalConfig.classStartTime = ""; //课堂点击开始时间
  2640 + GlobalConfig.classStopTime = ""; //最后一次停止的时间(点暂停或结束),每次发送数据都获取当前时间戳
2626 2641
  2642 + GlobalConfig.classBeginTime = ""; //课堂创建的时间
  2643 + GlobalConfig.classEndTime = ""; //课堂结束的时间
2627 2644
2628 GlobalConfig.recordStartTime = ""; 2645 GlobalConfig.recordStartTime = "";
2629 GlobalConfig.recordStartTimestam = ""; 2646 GlobalConfig.recordStartTimestam = "";
@@ -3336,27 +3353,27 @@ return /******/ (function(modules) { // webpackBootstrap @@ -3336,27 +3353,27 @@ return /******/ (function(modules) { // webpackBootstrap
3336 }, { 3353 }, {
3337 key: '_sendJoinClassRequest', 3354 key: '_sendJoinClassRequest',
3338 value: function _sendJoinClassRequest() { 3355 value: function _sendJoinClassRequest() {
3339 - var confInfo = this.confInfo;  
3340 - loger.log('MCU-发送加入会议请求.', confInfo);  
3341 -  
3342 - var joinRequestPdu = new _index2.default['RCConferenceJoinRequestPdu']();  
3343 - joinRequestPdu.type = 2;  
3344 - joinRequestPdu.initiator = confInfo.nodeId;  
3345 - joinRequestPdu.nodeType = _PduConsts2.default.NT_TERMINAL; //normal 3356 + //const classInfo = this.classInfo;
  3357 + loger.log('MCU-发送加入会议请求.', this.classInfo);
3346 3358
3347 var descriptorPdu = new _index2.default['RCConferenceDescriptorPdu'](); 3359 var descriptorPdu = new _index2.default['RCConferenceDescriptorPdu']();
3348 - descriptorPdu.id = confInfo.confId;  
3349 - descriptorPdu.name = new ArrayBuffer(); 3360 + descriptorPdu.id = this.classInfo.classId;
  3361 + descriptorPdu.name = this.classInfo.className || "";
3350 descriptorPdu.mode = 0; 3362 descriptorPdu.mode = 0;
3351 descriptorPdu.capacity = 1; 3363 descriptorPdu.capacity = 1;
3352 - joinRequestPdu.confDesc = descriptorPdu;  
3353 3364
3354 - var pduMsg = _index2.default.create_join_class_request_pdu(joinRequestPdu.type, confInfo.nodeId, confInfo.confId, 0, _ApeConsts2.default.BROADCAST_CHANNEL_ID, true, _PduConsts2.default.DP_TOP, confInfo.topNodeID, _PduConsts2.default.SEG_ONCE); 3365 + var joinRequestPdu = new _index2.default['RCConferenceJoinRequestPdu']();
  3366 + joinRequestPdu.type = 2;
  3367 + joinRequestPdu.initiator = this.classInfo.nodeId;
  3368 + joinRequestPdu.nodeType = _PduConsts2.default.NT_TERMINAL; //normal
  3369 + joinRequestPdu.classDescription = descriptorPdu; // classDescription
3355 3370
3356 - pduMsg.set("site", confInfo.siteId); //课堂号对应的名称  
3357 - pduMsg.set("userId", confInfo.userId);  
3358 - pduMsg.set("userName", _base64Js2.default.fromByteArray(_ArrayBufferUtil2.default.strToUint8Array(confInfo.userName)));  
3359 - pduMsg.set("userRole", confInfo.userRole); 3371 + var pduMsg = _index2.default.create_join_class_request_pdu(joinRequestPdu.type, this.classInfo.nodeId, this.classInfo.classId, 0, _ApeConsts2.default.BROADCAST_CHANNEL_ID, true, _PduConsts2.default.DP_TOP, this.classInfo.topNodeID, _PduConsts2.default.SEG_ONCE);
  3372 +
  3373 + pduMsg.set("site", this.classInfo.siteId); //课堂号对应的名称
  3374 + pduMsg.set("userId", this.classInfo.userId);
  3375 + pduMsg.set("userName", _base64Js2.default.fromByteArray(_ArrayBufferUtil2.default.strToUint8Array(this.classInfo.userName)));
  3376 + pduMsg.set("userRole", this.classInfo.userRole);
3360 pduMsg.set("deviceType", ""); 3377 pduMsg.set("deviceType", "");
3361 pduMsg.set("data", joinRequestPdu.toArrayBuffer()); 3378 pduMsg.set("data", joinRequestPdu.toArrayBuffer());
3362 3379
@@ -3377,13 +3394,13 @@ return /******/ (function(modules) { // webpackBootstrap @@ -3377,13 +3394,13 @@ return /******/ (function(modules) { // webpackBootstrap
3377 case _PduType2.default.RCPDU_CONNECT_PROVIDER_RESPONSE: 3394 case _PduType2.default.RCPDU_CONNECT_PROVIDER_RESPONSE:
3378 //加入会议请求返回数据处理 3395 //加入会议请求返回数据处理
3379 var joinConfPdu = _index2.default['RCConferenceJoinResponsePdu'].decode(pduData); 3396 var joinConfPdu = _index2.default['RCConferenceJoinResponsePdu'].decode(pduData);
3380 - var pduResultCode = joinConfPdu.get("result"); 3397 + var pduResultCode = joinConfPdu.result;
3381 loger.warn('RCPDU_CONNECT_PROVIDER_RESPONSE ->pduResultCode:' + pduResultCode); 3398 loger.warn('RCPDU_CONNECT_PROVIDER_RESPONSE ->pduResultCode:' + pduResultCode);
3382 switch (pduResultCode) { 3399 switch (pduResultCode) {
3383 case _PduConsts2.default.RET_SUCCESS: 3400 case _PduConsts2.default.RET_SUCCESS:
3384 //加入成功 3401 //加入成功
3385 - this._updateMCUConfInfoDesc(joinConfPdu.get("confDesc"));  
3386 - this._emit(_MessageTypes2.default.CLASS_JOIN_SUCCESS, this.confInfo); 3402 + this._updateMCUConfInfoDescription(joinConfPdu.classDescription);
  3403 + this._emit(_MessageTypes2.default.CLASS_JOIN_SUCCESS, this.classInfo);
3387 break; 3404 break;
3388 case _PduConsts2.default.RET_FULL_CAPACITY: 3405 case _PduConsts2.default.RET_FULL_CAPACITY:
3389 this._emit(_MessageTypes2.default.MCU_ERROR, _MessageTypes2.default.ERR_CLASS_JOIN_FULL); 3406 this._emit(_MessageTypes2.default.MCU_ERROR, _MessageTypes2.default.ERR_CLASS_JOIN_FULL);
@@ -3413,12 +3430,16 @@ return /******/ (function(modules) { // webpackBootstrap @@ -3413,12 +3430,16 @@ return /******/ (function(modules) { // webpackBootstrap
3413 } 3430 }
3414 } 3431 }
3415 }, { 3432 }, {
3416 - key: '_updateMCUConfInfoDesc',  
3417 - value: function _updateMCUConfInfoDesc(mcuConfDesc) {  
3418 - var info = this.mcuConfInfo.info;  
3419 - info._conference_name = _ArrayBufferUtil2.default.uint8ArrayToStr(mcuConfDesc.name, 0);  
3420 - info._capacity = mcuConfDesc.capacity;  
3421 - info._mode = mcuConfDesc.mode; 3433 + key: '_updateMCUConfInfoDescription',
  3434 + value: function _updateMCUConfInfoDescription(_data) {
  3435 + // let _mcuConfDesc=new pdu['RCConferenceDescriptorPdu'].decode(mcuConfDesc);
  3436 + loger.log('_updateMCUConfInfoDescription. _mcuConfDesc', _data);
  3437 + //let classDescription=new pdu['RCConferenceDescriptorPdu'].decode(_data);
  3438 + console.log(_data);
  3439 + //let info = this.mcuClassInfo.info;
  3440 + //info._conference_name = ArrayBufferUtil.uint8ArrayToStr(mcuConfDesc.name, 0);
  3441 + //info._capacity = mcuConfDesc.capacity;
  3442 + //info._mode = mcuConfDesc.mode;
3422 } 3443 }
3423 3444
3424 // MU服务是否连接 3445 // MU服务是否连接
@@ -3455,34 +3476,34 @@ return /******/ (function(modules) { // webpackBootstrap @@ -3455,34 +3476,34 @@ return /******/ (function(modules) { // webpackBootstrap
3455 3476
3456 }, { 3477 }, {
3457 key: 'joinMCU', 3478 key: 'joinMCU',
3458 - value: function joinMCU(_confInfo) {  
3459 - loger.log('开始建立EverSocket通道.', _confInfo);  
3460 - _confInfo.confId = parseInt(_confInfo.confId); // confId 必须整形  
3461 - this.confInfo = _confInfo; 3479 + value: function joinMCU(_classInfo) {
  3480 + loger.log('开始建立EverSocket通道.', _classInfo);
  3481 + _classInfo.classId = parseInt(_classInfo.classId); // classId 必须整形
  3482 + this.classInfo = _classInfo;
3462 // 创建刷新nodeId 3483 // 创建刷新nodeId
3463 - this.confInfo.nodeId = _EngineUtils2.default.creatTimestamp();  
3464 - _GlobalConfig2.default.nodeId = this.confInfo.nodeId; //这是标识自己身份的id 3484 + this.classInfo.nodeId = _EngineUtils2.default.creatTimestamp();
  3485 + _GlobalConfig2.default.nodeId = this.classInfo.nodeId; //这是标识自己身份的id
3465 3486
3466 var nodeInfoRecordPdu = new _index2.default['RCNodeInfoRecordPdu'](); 3487 var nodeInfoRecordPdu = new _index2.default['RCNodeInfoRecordPdu']();
3467 - nodeInfoRecordPdu.name = this.confInfo.userName;  
3468 - nodeInfoRecordPdu.nodeId = this.confInfo.nodeId;  
3469 - nodeInfoRecordPdu.userId = this.confInfo.userId; 3488 + nodeInfoRecordPdu.name = this.classInfo.userName;
  3489 + nodeInfoRecordPdu.nodeId = this.classInfo.nodeId;
  3490 + nodeInfoRecordPdu.userId = this.classInfo.userId;
3470 nodeInfoRecordPdu.role = 1; //NR_NORMAL 3491 nodeInfoRecordPdu.role = 1; //NR_NORMAL
3471 nodeInfoRecordPdu.level = 0; 3492 nodeInfoRecordPdu.level = 0;
3472 3493
3473 var conferenceRecord = {}; //RCConferenceRecord_T 3494 var conferenceRecord = {}; //RCConferenceRecord_T
3474 - conferenceRecord._conference_id = this.confInfo.confId;  
3475 - conferenceRecord._top_node_id = this.confInfo.topNodeID; 3495 + conferenceRecord._conference_id = this.classInfo.classId;
  3496 + conferenceRecord._top_node_id = this.classInfo.topNodeID;
3476 3497
3477 - this.mcuConfInfo = {}; //RCMeetingInfo_T  
3478 - this.mcuConfInfo.self = nodeInfoRecordPdu;  
3479 - this.mcuConfInfo.info = conferenceRecord; 3498 + this.mcuClassInfo = {}; //RCMeetingInfo_T
  3499 + this.mcuClassInfo.self = nodeInfoRecordPdu;
  3500 + this.mcuClassInfo.info = conferenceRecord;
3480 3501
3481 // 内部mcuConfInfo 3502 // 内部mcuConfInfo
3482 - this.confInfo.mcuConfInfo = this.mcuConfInfo; 3503 + this.classInfo.mcuClassInfo = this.mcuClassInfo;
3483 3504
3484 //开启EverSocket 3505 //开启EverSocket
3485 - this._everSocket.begin(this.confInfo.MCUServerIP, this.confInfo.MCUServerPort); 3506 + this._everSocket.begin(this.classInfo.MCUServerIP, this.classInfo.MCUServerPort);
3486 } 3507 }
3487 }, { 3508 }, {
3488 key: 'connected', 3509 key: 'connected',
@@ -3782,7 +3803,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -3782,7 +3803,7 @@ return /******/ (function(modules) { // webpackBootstrap
3782 pduMsg.set("type", type); 3803 pduMsg.set("type", type);
3783 pduMsg.set("subType", sub_type); 3804 pduMsg.set("subType", sub_type);
3784 pduMsg.set("initiator", initiator); 3805 pduMsg.set("initiator", initiator);
3785 - pduMsg.set("confId", conference_id); 3806 + pduMsg.set("confId", conference_id); //***confId mcu服务用的是这个字段,客户端在其他地方统一为classId
3786 pduMsg.set("sessionId", session_id); 3807 pduMsg.set("sessionId", session_id);
3787 pduMsg.set("channelId", channel_id); 3808 pduMsg.set("channelId", channel_id);
3788 pduMsg.set("upward", upward); 3809 pduMsg.set("upward", upward);
@@ -14297,7 +14318,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -14297,7 +14318,7 @@ return /******/ (function(modules) { // webpackBootstrap
14297 Object.defineProperty(exports, "__esModule", { 14318 Object.defineProperty(exports, "__esModule", {
14298 value: true 14319 value: true
14299 }); 14320 });
14300 - var _default = "\n//start\n// pdu_def.proto\n\n// syntax = \"proto3\";\n\noption optimize_for = LITE_RUNTIME;\nenum RCPduPriority_E {\n DP_TOP = 0;\n DP_HIGH = 1;\n DP_MEDIUM = 2;\n DP_LOW = 3;\n}\n\nenum RCPduSegment_E {\n SEG_BEGIN = 0;\n SEG_END = 1;\n SEG_ONCE = 2;\n}\n\nenum RCPduTokenStatus_E {\n TS_NOT_IN_USE = 0;\n TS_SELF_GRABBED = 1;\n TS_OTHER_GRABBED = 2;\n TS_SELF_INHIBITED = 3;\n TS_OTHER_INHIBITED = 4;\n TS_SELF_RECIPIENT = 5;\n TS_SELF_GIVING = 6;\n TS_OTHER_GIVING = 7;\n}\n\nenum RCPduType_E {\n// GCC PDU\n RCPDU_CONNECT_PROVIDER_REQUEST = 0;\n RCPDU_CONNECT_PROVIDER_RESPONSE = 1;\n RCPDU_CONFERENCE_JOIN_REQUEST = 2;\n RCPDU_CONFERENCE_JOIN_RESPONSE = 3;\n RCPDU_CONFERENCE_INVITE_REQUEST = 10;\n RCPDU_CONFERENCE_INVITE_RESPONSE = 11;\n RCPDU_CONFERENCE_LOCK_REQUEST = 20;\n RCPDU_CONFERENCE_LOCK_RESPONSE = 21;\n RCPDU_CONFERENCE_LOCK_INDICATION = 22;\n RCPDU_CONFERENCE_UNLOCK_REQUEST = 30;\n RCPDU_CONFERENCE_UNLOCK_RESPONSE = 31;\n RCPDU_CONFERENCE_UNLOCK_INDICATION = 32;\n RCPDU_CONFERENCE_LEAVE_REQUEST = 39;\n RCPDU_CONFERENCE_TERMINATE_REQUEST = 40;\n RCPDU_CONFERENCE_TERMINATE_RESPONSE = 41;\n RCPDU_CONFERENCE_TERMINATE_INDICATION = 42;\n RCPDU_CONFERENCE_EJECT_USER_REQUEST = 50;\n RCPDU_CONFERENCE_EJECT_USER_RESPONSE = 51;\n RCPDU_CONFERENCE_EJECT_USER_INDICATION = 52;\n RCPDU_ROSTER_UPDATE_INDICATION = 60;\n RCPDU_REGISTRY_UPDATE_REQUEST = 70; // INCLUDE ALL OBJS OPERATION\n RCPDU_REGISTRY_UPDATE_RESPONSE = 71;\n RCPDU_REGISTRY_UPDATE_INDICATION = 72;\n RCPDU_FUNCTION_NOT_SUPPORTED_RESPONSE = 80;\n\n // MCS PDU\n RCPDU_SESSION_JOIN_REQUEST = 90;\n RCPDU_SESSION_JOIN_RESPONSE = 91;\n RCPDU_CHANNEL_GRAB_REQUEST = 100;\n RCPDU_CHANNEL_GRAB_RESPONSE = 101;\n RCPDU_CHANNEL_GRAB_INDICATION = 102;\n RCPDU_CHANNEL_JOIN_REQUEST = 103;\n RCPDU_CHANNEL_JOIN_RESPONSE = 104;\n RCPDU_CHANNEL_LEAVE_REQUEST = 105;\n RCPDU_CHANNEL_RELEASE_REQUEST = 106;\n RCPDU_CHANNEL_RELEASE_INDICATION = 107;\n RCPDU_SEND_DATA_REQUEST = 120;\n RCPDU_SEND_DATA_INDICATION = 121;\n RCPDU_UNIFORM_SEND_DATA_REQUEST = 125;\n RCPDU_UNIFORM_SEND_DATA_INDICATION = 126;\n RCPDU_TOKEN_GRAB_REQUEST = 130;\n RCPDU_TOKEN_GRAB_CONFIRM = 131;\n RCPDU_TOKEN_INHIBIT_REQUEST = 132;\n RCPDU_TOKEN_INHIBIT_CONFIRM = 133;\n RCPDU_TOKEN_GIVE_REQUEST = 134;\n RCPDU_TOKEN_GIVE_INDICATION = 135;\n RCPDU_TOKEN_GIVE_RESPONSE = 136;\n RCPDU_TOKEN_GIVE_CONFIRM = 137;\n RCPDU_TOKEN_PLEASE_REQUEST = 138;\n RCPDU_TOKEN_PLEASE_INDICATION = 139;\n RCPDU_TOKEN_RELEASE_REQUEST = 140;\n RCPDU_TOKEN_RELEASE_CONFIRM = 141;\n RCPDU_TOKEN_TEST_REQUEST = 142;\n RCPDU_TOKEN_TEST_CONFIRM = 143;\n\n // Registry PDU\n RCPDU_REG_REGISTER_KEY = 200;\n RCPDU_REG_UNREGISTER_KEY = 201;\n RCPDU_REG_REGISTER_ROSTER = 202;\n RCPDU_REG_REGISTER_TOKEN = 203;\n RCPDU_REG_REGISTER_PARAMETER = 204;\n RCPDU_REG_REGISTER_COUNTER = 205;\n RCPDU_REG_REGISTER_TABLE = 206;\n RCPDU_REG_REGISTER_CACHE = 207;\n RCPDU_REG_REGISTER_OBJ = 208;\n RCPDU_REG_UNREGISTER_OBJ = 209;\n RCPDU_REG_UPDATE_OBJ = 210;\n RCPDU_REG_ADAPTER = 211;\n RCPDU_REG_CLEANUP_NODE = 212;\n RCPDU_REG_REGISTER_QUEUE = 213;\n\n // Registry Obj update PDU\n RCPDU_REG_TABLE_INSERT_PDU = 230;\n RCPDU_REG_TABLE_DELETE_PDU = 231;\n RCPDU_REG_TABLE_UPDATE_PDU = 232;\n RCPDU_REG_ROSTER_INSERT_PDU = 240;\n RCPDU_REG_ROSTER_DELETE_PDU = 241;\n RCPDU_REG_ROSTER_UPDATE_PDU = 242;\n RCPDU_REG_PARAMETER_UPDATE_PDU = 250;\n RCPDU_REG_QUEUE_INSERT_PDU = 255;\n RCPDU_REG_QUEUE_DELETE_PDU = 256;\n RCPDU_REG_QUEUE_UPDATE_PDU = 257;\n\n // data\n RCPDU_CONFERENCE_SEND_DATA_REQUEST = 259;\n RCPDU_VIDEO_SEND_DATA_REQUEST = 260;\n RCPDU_AUDIO_SEND_DATA_REQUEST = 261;\n RCPDU_GIFT_SEND_DATA_REQUEST = 262;\n RCPDU_CHAT_SEND_DATA_REQUEST = 263;\n RCPDU_VOTING_POLL_RECORD = 265;\n\n // Registry resource request or response PDU\n RCPDU_REG_REQUEST_OBJ = 290;\n RCPDU_REG_RESPONSE_OBJ = 291;\n RCPDU_REG_COUNTER_REQUEST_PDU = 292;\n RCPDU_REG_COUNTER_RESPONSE_PDU = 293;\n\n // Index exchange\n RCPDU_INDEX_ADAPTER = 300;\n RCPDU_INDEX_SERVER_USERS = 301;\n RCPDU_INDEX_CONFERENCE_USER_JOINED = 302;\n RCPDU_INDEX_CONFERENCE_USER_EXITED = 303;\n RCPDU_INDEX_CONFERENCE_USERS = 304;\n}\n\nenum RCPduNodeType_E {\n NT_TERMINAL = 0;\n NT_MULTIPORT_TERMINAL = 1;\n NT_MCU = 2;\n}\n\nenum RCPduReason_E {\n RSN_USERINITIATED = 0;\n RSN_DISCONNECTED = 1;\n RSN_SUPER_LEFT = 2;\n}\n\nenum RCPduResult_E {\n RET_SUCCESS = 0;\n RET_USER_REJECTED = 1;\n RET_INVALID_CONFERENCE = 2;\n RET_INVALID_PASSWORD = 3;\n RET_INVALID_CONVENER_PASSWORD = 4;\n RET_CHALLENGE_RESPONSE_REQUIRED = 5;\n RET_INVALID_CHALLENGE_RESPONSE = 6;\n RET_NO_CONNECTION = 7;\n RET_FULL_CAPACITY = 8;\n}\n\nenum RCPduNodeCategory_E {\n NC_CONVENTIONAL = 0;\n NC_COUNTED = 1;\n NC_ANONYMOUS = 2;\n}\n\nmessage RCConferenceDescriptorPdu {\n required uint32 id = 1;\n required bytes name = 2;\n optional bytes description = 3;\n //optional string net_address = 4;\n optional uint32 mode = 4;\n optional string password = 5;\n optional uint32 capacity = 6;\n optional bytes user_data = 7;\n}\n\nmessage RCNodeRecordPdu {\n required uint32 id = 1;\n optional uint32 superior_node = 2;\n required RCPduNodeType_E type = 3;\n required string name = 4;\n required uint32 capability = 5;\n optional string net_address = 6;\n optional RCPduNodeCategory_E category = 7;\n}\n\nmessage RCApplicationRecordPdu {\n required uint32 id = 1; // session id\n required string name = 2;\n required string tag = 3;\n repeated uint32 channel_ids = 4 [packed = true];\n optional uint32 capability = 5;\n}\n\n//reg.proto\n\noption optimize_for = LITE_RUNTIME;\nmessage RCRegistryRegisterKeyPdu {\n required RCPduType_E type = 1 [default = RCPDU_REG_REGISTER_KEY];\n required uint32 id = 2;\n required string name = 3;\n required string tag = 4;\n optional bytes user_data = 5;\n}\n\nmessage RCRegistryUnregisterKeyPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_UNREGISTER_KEY];\n required uint32 key_id = 2;\n}\n\nmessage RCRegistryRegisterObjPdu {\n optional RCPduType_E type = 1;\n required uint32 obj_id = 2;\n required string name = 3;\n required string tag = 4;\n optional uint32 owner = 5;\n optional bytes user_data = 6;\n}\n\nmessage RCRegistryUnregisterObjPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_UNREGISTER_OBJ];\n required uint32 obj_id = 2;\n}\n\nmessage RCRegistryUpdateObjPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_UPDATE_OBJ];\n required RCPduType_E sub_type = 2;\n required uint32 obj_id = 3;\n required bytes user_data = 4;\n}\n\nmessage RCAdapterItemPdu {\n required RCPduType_E type = 1;\n required bytes item_data = 2;\n}\n\n// adapter pdu that used to package a list of pdu.\nmessage RCAdapterPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_ADAPTER];\n repeated RCAdapterItemPdu item = 2;\n}\n\n// table operation pdu\nmessage RCRegistryTableItemPdu {\n required uint32 item_idx = 1;\n required uint32 owner = 2;\n required bytes item_data = 3;\n optional uint32 register_obj_id=4;\n}\n\nmessage RCRegistryTableInsertItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_TABLE_INSERT_PDU];\n repeated RCRegistryTableItemPdu items = 2;\n}\n\nmessage RCRegistryTableDeleteItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_TABLE_DELETE_PDU];\n repeated uint32 item_idx = 2;\n}\n\nmessage RCRegistryTableUpdateItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_TABLE_UPDATE_PDU];\n repeated RCRegistryTableItemPdu items = 2;\n}\n\n// roster operation pdu\nmessage RCRegistryRosterItemPdu {\n required uint32 node_id = 1;\n required bytes node_data = 2;\n}\nmessage RCRegistryWBItemPdu {\n required uint32 node_id = 1;\n required bytes node_data = 2;\n}\nmessage RCRegistryRosterInsertItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_ROSTER_INSERT_PDU];\n repeated RCRegistryRosterItemPdu items = 2;\n}\n\nmessage RCRegistryRosterDeleteItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_ROSTER_DELETE_PDU];\n required uint32 node_id = 2;\n}\n\nmessage RCRegistryRosterUpdateItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_ROSTER_UPDATE_PDU];\n repeated RCRegistryRosterItemPdu items = 2;\n}\n\n//message RCCleanupNodePdu\n//{\n// optional RCPduType_E type = 1 [default = RCPDU_REG_CLEANUP_NODE];\n// required uint32 node_id = 2;\n//}\n\n// parameter operation pdu\nmessage RCRegistryParameterUpdatePdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_PARAMETER_UPDATE_PDU];\n required uint32 value = 2 [default = 0];\n optional uint32 begin_bit = 3 [default = 31];\n optional uint32 end_bit = 4;\n}\n\n// queue operation pdu\nmessage RCRegistryQueueItemPdu {\n required uint32 owner = 1;\n required uint32 item_id = 2;\n optional bytes item_data = 3;\n optional uint32 item_idx = 4;\n}\n\nmessage RCRegstryQueueInsertItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_QUEUE_INSERT_PDU];\n repeated RCRegistryQueueItemPdu items = 2;\n}\n\nmessage RCRegistryQueueDeleteItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_QUEUE_DELETE_PDU];\n required uint32 item_id = 2;\n}\n\nmessage RCRegistryQueueUpdateItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_QUEUE_UPDATE_PDU];\n repeated RCRegistryQueueItemPdu items = 2;\n}\n\nmessage RCRegistryRequestObjPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_REQUEST_OBJ];\n required RCPduType_E sub_type = 2;\n required uint32 obj_id = 3;\n required bytes user_data = 4;\n}\n\nmessage RCRegistryResponseObjPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_RESPONSE_OBJ];\n required RCPduType_E sub_type = 2;\n required uint32 obj_id = 3;\n required bytes user_data = 4;\n}\n\nmessage RCRegistryCounterRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_COUNTER_REQUEST_PDU];\n required uint32 count = 2;\n}\n\nmessage RCRegistryCounterResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_COUNTER_RESPONSE_PDU];\n required uint32 start = 2;\n required uint32 end = 3;\n}\n\n// mcs\noption optimize_for = LITE_RUNTIME;\n\n// Session management\nmessage RCSessionJoinRequestPdu {\n required RCPduType_E type = 1 [default = RCPDU_SESSION_JOIN_REQUEST];\n required uint32 id = 2;\n required string name = 3;\n required string tag = 4;\n optional bytes session_data = 5; //\u805A\u5408\u5728\u4E00\u8D77\u7684registry\u4FE1\u606F\n}\n\nmessage RCSessionJoinResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_SESSION_JOIN_RESPONSE];\n required uint32 id = 2;\n optional bytes response_data = 3;\n}\n\n// Channel management\nmessage RCChannelGrabRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_GRAB_REQUEST];\n required uint32 initiator = 2;\n required uint32 channel_id = 3;\n}\n\nmessage RCChannelGrabResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_GRAB_RESPONSE];\n required uint32 initiator = 2;\n required uint32 requested_channel_id = 3;\n required RCPduResult_E result = 4;\n optional uint32 channel_id = 5;\n}\n\nmessage RCChannelGrabIndicationPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_GRAB_INDICATION];\n required uint32 initiator = 2;\n optional uint32 channel_id = 3;\n}\n\nmessage RCChannelJoinRequestPdu {\n required RCPduType_E type = 1 [default = RCPDU_CHANNEL_JOIN_REQUEST];\n required uint32 initiator = 2;\n required uint32 channel_id = 3;\n}\n\nmessage RCChannelJoinResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_JOIN_RESPONSE];\n required uint32 initiator = 2;\n required uint32 requested_channel_id = 3;\n required RCPduResult_E result = 4;\n}\n\nmessage RCChannelLeaveRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_LEAVE_REQUEST];\n required uint32 initiator = 2;\n repeated uint32 channel_ids = 3 [packed = true];\n}\n\nmessage RCChannelReleaseRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_RELEASE_REQUEST];\n required uint32 initiator = 2;\n required uint32 channel_id = 3;\n}\n\nmessage RCChannelReleaseIndicationPdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CHANNEL_RELEASE_INDICATION];\n required uint32 initiator = 2;\n required uint32 channel_id = 3;\n}\n\n// Data transfer\nmessage RCSendDataPdu {\n required RCPduType_E type = 1 [default = RCPDU_SEND_DATA_REQUEST];\n required RCPduType_E sub_type = 2;\n required uint32 initiator = 3;\n required uint32 conf_id = 4;\n required uint32 session_id = 5;\n required uint32 channel_id = 6;\n required bool upward = 7;\n required bool reliability = 8;\n required RCPduPriority_E priority = 9;\n required bytes data = 10;\n optional uint32 peer = 11;\n optional RCPduSegment_E seg = 12;\n optional uint32 total_size = 13;\n optional uint32 site_id = 14;\n optional string user_id = 15;\n optional string user_name = 16;\n optional string user_role = 17;\n optional string device_type = 18;\n optional string site = 19;\n}\n\n// Token management\nmessage RCTokenGrabRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GRAB_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenGrabConfirmPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GRAB_CONFIRM];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required RCPduResult_E result = 4;\n required RCPduTokenStatus_E status = 5;\n}\n\nmessage RCTokenInhibitRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_INHIBIT_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenInhibitConfirmPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_INHIBIT_CONFIRM];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required RCPduResult_E result = 4;\n required RCPduTokenStatus_E status = 5;\n}\n\nmessage RCTokenGiveRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GIVE_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required uint64 recipient = 4;\n}\n\nmessage RCTokenGiveIndicationPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GIVE_INDICATION];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required uint64 recipient = 4;\n}\n\nmessage RCTokenGiveResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GIVE_RESPONSE];\n required uint32 token_id = 2;\n required uint64 recipient = 3;\n required RCPduResult_E result = 4;\n}\n\nmessage RCTokenGiveConfirmPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GIVE_CONFIRM];\n required uint32 token_id = 2;\n required uint64 recipient = 3;\n required RCPduResult_E result = 4;\n required RCPduTokenStatus_E status = 5;\n}\n\nmessage RCTokenPleaseRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_PLEASE_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenPleaseIndicationPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_PLEASE_INDICATION];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenReleaseRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_RELEASE_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenReleaseConfirmPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_TEST_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required RCPduResult_E result = 4;\n required RCPduTokenStatus_E status = 5;\n}\n\nmessage RCTokenTestRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_TEST_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenTestConfirmPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_TEST_CONFIRM];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required RCPduTokenStatus_E status = 4;\n}\n\n//gcc.proto\n\noption optimize_for = LITE_RUNTIME;\nmessage RCConferenceJoinRequestPdu {\n required RCPduType_E type = 1 [default = RCPDU_CONFERENCE_JOIN_REQUEST];\n required uint32 initiator = 2;\n required RCPduNodeType_E node_type = 3;\n required RCConferenceDescriptorPdu conf_desc = 4;\n}\n\nmessage RCConferenceJoinResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_JOIN_RESPONSE];\n required uint32 conf_id = 2;\n required RCPduResult_E result = 3;\n optional RCConferenceDescriptorPdu conf_desc = 4;\n}\n\nmessage RCConferenceInviteRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_INVITE_REQUEST];\n required uint32 initiator = 2;\n required RCConferenceDescriptorPdu conf_desc = 3;\n}\n\nmessage RCConferenceInviteResponsePdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_INVITE_RESPONSE];\n required RCPduResult_E result = 2;\n optional bytes user_data = 3;\n}\n\nmessage RCConferenceLockRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_LOCK_REQUEST];\n}\n\nmessage RCConferenceLockResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_LOCK_RESPONSE];\n required RCPduResult_E result = 2;\n}\n\nmessage RCConferenceLockIndicationPdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_LOCK_INDICATION];\n}\n\nmessage RCConferenceUnlockRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_UNLOCK_REQUEST];\n}\n\nmessage RCConferenceUnlockResponsePdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_UNLOCK_RESPONSE];\n required RCPduResult_E result = 2;\n}\n\nmessage RCConferenceUnlockIndicationPdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_UNLOCK_INDICATION];\n}\n\nmessage RCConferenceLeaveRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_LEAVE_REQUEST];\n required RCPduReason_E reason = 2;\n}\n\nmessage RCConferenceTerminateRequestPdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_TERMINATE_REQUEST];\n required RCPduReason_E reason = 2;\n}\n\nmessage RCConferenceTerminateResponsePdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_TERMINATE_RESPONSE];\n required RCPduResult_E result = 2;\n}\n\nmessage RCConferenceTerminateIndicationPdu { // MCS_Uniform_Send_Data on GCC_Broadcast_Channel\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_TERMINATE_INDICATION];\n required RCPduReason_E reason = 2;\n}\n\nmessage RCConferenceEjectUserRequestPdu { // MCS_Send_Data on Node ID Channel of Top GCC\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_EJECT_USER_REQUEST];\n required uint32 ejected_node_id = 2;\n required RCPduReason_E reason = 3;\n}\n\nmessage RCConferenceEjectUserResponsePdu { // MCS_Send_Data on Node ID Channel of requester\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_EJECT_USER_RESPONSE];\n required uint32 ejected_node_id = 2;\n required RCPduResult_E result = 3;\n}\n\nmessage RCConferenceEjectUserIndicationPdu { // MCS_Uniform_Send_Data on GCC_Broadcast_Channel\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_EJECT_USER_INDICATION];\n required uint32 ejected_node_id = 2;\n required RCPduReason_E reason = 3;\n}\n\nmessage RCRosterUpdateIndicationPdu { // MCS_Send_Data on Node ID Channel or\n// MCS_Uniform_Send_Data on GCC_Broadcast_Channel\n optional RCPduType_E type = 1 [default = RCPDU_ROSTER_UPDATE_INDICATION];\n required bool full_refresh = 2; // Conference Roster and all\n repeated RCNodeRecordPdu node_record = 3;\n repeated RCApplicationRecordPdu app_record = 4;\n}\n\nmessage RCRegistryUpdateRequestPdu { // MCS_Send_Data on Node ID Channel of Top GCC\n optional RCPduType_E type = 1 [default = RCPDU_REGISTRY_UPDATE_REQUEST];\n required uint32 key_id = 2;\n required uint32 obj_id = 3;\n required bytes user_data = 4;\n}\n\nmessage RCRegistryUpdateIndicationPdu { // MCS_Send_Data on Node ID Channel of Top GCC\n optional RCPduType_E type = 1 [default = RCPDU_REGISTRY_UPDATE_RESPONSE];\n required uint32 key_id = 2;\n required uint32 obj_id = 3;\n required bytes user_data = 4;\n}\n\nmessage RCRegistryUpdateResponsePdu { // MCS_Send_Data on Node ID Channel of requester\n optional RCPduType_E type = 1 [default = RCPDU_REGISTRY_UPDATE_INDICATION];\n required uint32 key_id = 2;\n required uint32 obj_id = 3;\n required RCPduResult_E result = 4;\n}\n\nmessage RCFunctionNotSupportedResponsePdu {\n optional RCPduType_E type = 1\n [default = RCPDU_FUNCTION_NOT_SUPPORTED_RESPONSE];\n required uint32 request_pdu_id = 2;\n}\n\n//ape.proto\n\noption optimize_for = LITE_RUNTIME;\nmessage RCConferenceSendDataRequestPdu {\n optional uint32 initiator = 1;\n optional uint32 peer = 2;\n required bool is_public = 3;\n required bytes user_data = 4;\n}\n\nmessage RCChatSendDataRequestPdu {\n optional uint32 initiator = 1;\n optional uint32 peer = 2;\n required bool is_public = 3;\n required bytes user_data = 4;\n required string from_role = 5;\n required bytes from_name = 6;\n}\n\nmessage RCDocSendDataRequestPdu {\n required uint32 id = 1;\n required string doc_type = 2;\n required string uri = 3;\n optional uint32 owner = 4;\n optional uint32 from = 5;\n optional string name = 6;\n optional uint32 cur_page_no = 7;\n optional uint32 cur_H = 8;\n optional uint32 cur_V = 9;\n optional uint32 scale = 10;\n optional uint32 page_num = 11;\n}\nmessage RCDocSendDataModelPdu {\n required uint32 item_idx=1;//\u552F\u4E00\u6807\u8BC6\n required uint32 owner=2;\n optional uint32 from=3;\n optional uint32 cur_page_no=4;\n optional uint32 page_num =5;\n optional string file_type=6;\n optional string creat_user_id=7;//\u521B\u5EFA\u6587\u6863userid\n optional string relative_url=8;//\u6587\u6863\u76F8\u5BF9\u5730\u5740\n optional string url =9;//\u6587\u6863\u5730\u5740\n optional uint32 cur_V=10;\n optional uint32 cur_H=11;\n optional uint32 scale=12;\n optional bool visible=13;\n optional uint32 action=14;//0\uFF0C\u65E0\u64CD\u4F5C\uFF0C 1\u7FFB\u9875\u30012.\u663E\u793A/\u9690\u85CF\n optional string doc_id=15;//\u6587\u6863\u5728\u670D\u52A1\u5668\u6570\u636E\u5E93\u4E2D\u7684\u552F\u4E00id\n optional string file_name=16;//\u6587\u6863\u7684\u540D\u5B57\n optional string dynamic_TS=17;//\"dynamicTransferStatic\": \"0\"\n optional string md5=18;//md5\n\n}\nmessage RCGiftSendDataRequestPdu {\n optional uint32 initiator = 1;\n required uint32 peer = 2;\n required uint32 index = 3;\n required uint32 num = 4;\n optional bytes user_data = 5;\n}\n\nmessage RCAudioSendDataRequestPdu {\n optional uint32 initiator = 1;\n required bytes user_data = 2;\n}\n\nmessage RCVideoSendDataRequestPdu {\n optional uint32 initiator = 1;\n required bool key_frame = 2;\n required uint32 sequence_id = 3;\n required uint32 slice_id = 4;\n required bytes user_data = 5;\n}\n\nmessage RCAudioChannelInfoRecordPdu {\n required uint32 status = 1;\n required uint32 device_id = 2;\n required uint32 framerate = 3;\n required uint32 bitrate = 4;\n required uint32 codec = 5;\n}\n\nmessage RCVideoChannelInfoRecordPdu {\n optional uint32 status = 1;\n optional uint32 device_id = 2;\n optional uint32 width = 3;\n optional uint32 height = 4;\n optional uint32 framerate = 5;\n optional uint32 bitrate = 6;\n optional uint32 codec = 7;\n optional string peer_id = 8;\n optional string url = 9;\n optional uint32 type = 10;\n optional string shamlive = 11;\n optional uint32 livetype = 12;\n optional uint32 releaseGrab = 13;\n optional string curTime = 14;\n}\n\nmessage RCAudioDeviceInfoRecordPdu {\n required uint32 device_id = 1;\n required string device_name = 2;\n}\n\nmessage RCVideoDeviceInfoRecordPdu {\n required uint32 device_id = 1;\n required string device_name = 2;\n}\n\nmessage RCNodeInfoRecordPdu {\n required uint32 node_id = 1;\n required string name = 2;\n required uint32 role = 3;\n required uint32 level = 4;\n repeated RCAudioDeviceInfoRecordPdu audio_records = 5;\n repeated RCVideoDeviceInfoRecordPdu video_records = 6;\n optional uint32 status = 7;\n optional bytes user_data = 8;\n optional string user_id = 9;\n optional uint32 handUpTime = 10;\n optional uint32 deviceType = 11;\n optional uint32 mobileDirection = 12;\n}\n\nmessage RCVotingPollSettingsPdu {\n required bool timer = 1;\n optional uint32 time_limit = 2;\n optional uint32 total_score = 3;\n}\n\nmessage RCVotingPollResultPdu {\n required string title = 1;\n required string content = 2;\n optional uint32 score = 3;\n}\n\nmessage RCVotingPollQuestionPdu {\n required uint32 index = 1;\n required uint32 type = 2;\n required string title = 3;\n repeated string options = 4;\n optional uint32 score = 5;\n optional uint32 time_limit = 6;\n optional string restrict_input = 7;\n optional uint32 char_limit = 8;\n optional string answer = 9;\n repeated uint32 selections = 10;\n repeated string responses = 11;\n}\n\nmessage RCVotingPollRecordPdu {\n required RCVotingPollSettingsPdu settings = 1;\n required string title = 2;\n repeated RCVotingPollResultPdu results = 3;\n repeated RCVotingPollQuestionPdu questions = 4;\n}\n\nmessage RCNodeInfoUserDataPdu {\n optional string qq = 1;\n optional string skype = 2;\n optional string mobile = 3;\n}\nmessage RCTabUpdateDataRequestPdu {\n optional uint32 id = 1;\n optional bytes action = 2;\n optional uint32 uncomprLen =3;\n}\n\nmessage RCWhiteBoardDataModel {\n required uint32 type= 1;//\u767D\u677F\u7C7B\u578B\n required uint32 itemIdx= 2;//itemIdx \u6BCF\u4E00\u6B21\u7ED8\u5236\u7684\u552F\u4E00\u6807\u8BC6\n required uint32 initiator=3; //\u7ED8\u5236\u6765\u81EA\u8C01\n required uint32 parentId=4; //\u7236\u7EA7\u7684id\n required uint32 curPage= 5;//\u9875\u7801\n optional string pointGroup=6; //\u5750\u6807\u70B9\u96C6\u6570\u7EC4\u7684JSON\u5B57\u7B26\u4E32\n optional string color=7 [default = \"#000000\"]; //\u989C\u8272\n optional uint32 thickness= 8 ;//\u7EBF\u6761\u7C97\u7EC6\n optional uint32 radius= 9;//\u56ED\u7684\u534A\u5F84\n optional uint32 fontSize= 10;//\u5B57\u4F53\u5927\u5C0F\n optional string fontName= 11;//\u5B57\u4F53\u540D\u79F0\n optional string text= 12;//\u6587\u672C\u5185\u5BB9\n optional bytes data = 13;//\u6682\u65F6\u9884\u7559\u7684\u53C2\u6570\n}\nmessage RCClassSendDataModelPdu {\n optional uint32 class_status= 1;//\u5F53\u524D\u8BFE\u5802\u72B6\u6001 //0:\u672A\u5F00\u59CB\uFF0C1\uFF0C\u5F00\u59CB\uFF0C2\uFF0C\u6682\u505C\n optional uint32 class_timestamp= 2;//\u76EE\u524D\u7528\u8FD9\u4E2A\u53D8\u91CF\u6765\u8BB0\u5F55\u65F6\u95F4 flash\u7528\u7684\u8FD9\u4E2A\n optional uint32 item_idx=3;\n optional uint32 from=4;\n}\n\n//end\n"; 14321 + var _default = "\n//start\n// pdu_def.proto\n\n// syntax = \"proto3\";\n\noption optimize_for = LITE_RUNTIME;\nenum RCPduPriority_E {\n DP_TOP = 0;\n DP_HIGH = 1;\n DP_MEDIUM = 2;\n DP_LOW = 3;\n}\n\nenum RCPduSegment_E {\n SEG_BEGIN = 0;\n SEG_END = 1;\n SEG_ONCE = 2;\n}\n\nenum RCPduTokenStatus_E {\n TS_NOT_IN_USE = 0;\n TS_SELF_GRABBED = 1;\n TS_OTHER_GRABBED = 2;\n TS_SELF_INHIBITED = 3;\n TS_OTHER_INHIBITED = 4;\n TS_SELF_RECIPIENT = 5;\n TS_SELF_GIVING = 6;\n TS_OTHER_GIVING = 7;\n}\n\nenum RCPduType_E {\n// GCC PDU\n RCPDU_CONNECT_PROVIDER_REQUEST = 0;\n RCPDU_CONNECT_PROVIDER_RESPONSE = 1;\n RCPDU_CONFERENCE_JOIN_REQUEST = 2;\n RCPDU_CONFERENCE_JOIN_RESPONSE = 3;\n RCPDU_CONFERENCE_INVITE_REQUEST = 10;\n RCPDU_CONFERENCE_INVITE_RESPONSE = 11;\n RCPDU_CONFERENCE_LOCK_REQUEST = 20;\n RCPDU_CONFERENCE_LOCK_RESPONSE = 21;\n RCPDU_CONFERENCE_LOCK_INDICATION = 22;\n RCPDU_CONFERENCE_UNLOCK_REQUEST = 30;\n RCPDU_CONFERENCE_UNLOCK_RESPONSE = 31;\n RCPDU_CONFERENCE_UNLOCK_INDICATION = 32;\n RCPDU_CONFERENCE_LEAVE_REQUEST = 39;\n RCPDU_CONFERENCE_TERMINATE_REQUEST = 40;\n RCPDU_CONFERENCE_TERMINATE_RESPONSE = 41;\n RCPDU_CONFERENCE_TERMINATE_INDICATION = 42;\n RCPDU_CONFERENCE_EJECT_USER_REQUEST = 50;\n RCPDU_CONFERENCE_EJECT_USER_RESPONSE = 51;\n RCPDU_CONFERENCE_EJECT_USER_INDICATION = 52;\n RCPDU_ROSTER_UPDATE_INDICATION = 60;\n RCPDU_REGISTRY_UPDATE_REQUEST = 70; // INCLUDE ALL OBJS OPERATION\n RCPDU_REGISTRY_UPDATE_RESPONSE = 71;\n RCPDU_REGISTRY_UPDATE_INDICATION = 72;\n RCPDU_FUNCTION_NOT_SUPPORTED_RESPONSE = 80;\n\n // MCS PDU\n RCPDU_SESSION_JOIN_REQUEST = 90;\n RCPDU_SESSION_JOIN_RESPONSE = 91;\n RCPDU_CHANNEL_GRAB_REQUEST = 100;\n RCPDU_CHANNEL_GRAB_RESPONSE = 101;\n RCPDU_CHANNEL_GRAB_INDICATION = 102;\n RCPDU_CHANNEL_JOIN_REQUEST = 103;\n RCPDU_CHANNEL_JOIN_RESPONSE = 104;\n RCPDU_CHANNEL_LEAVE_REQUEST = 105;\n RCPDU_CHANNEL_RELEASE_REQUEST = 106;\n RCPDU_CHANNEL_RELEASE_INDICATION = 107;\n RCPDU_SEND_DATA_REQUEST = 120;\n RCPDU_SEND_DATA_INDICATION = 121;\n RCPDU_UNIFORM_SEND_DATA_REQUEST = 125;\n RCPDU_UNIFORM_SEND_DATA_INDICATION = 126;\n RCPDU_TOKEN_GRAB_REQUEST = 130;\n RCPDU_TOKEN_GRAB_CONFIRM = 131;\n RCPDU_TOKEN_INHIBIT_REQUEST = 132;\n RCPDU_TOKEN_INHIBIT_CONFIRM = 133;\n RCPDU_TOKEN_GIVE_REQUEST = 134;\n RCPDU_TOKEN_GIVE_INDICATION = 135;\n RCPDU_TOKEN_GIVE_RESPONSE = 136;\n RCPDU_TOKEN_GIVE_CONFIRM = 137;\n RCPDU_TOKEN_PLEASE_REQUEST = 138;\n RCPDU_TOKEN_PLEASE_INDICATION = 139;\n RCPDU_TOKEN_RELEASE_REQUEST = 140;\n RCPDU_TOKEN_RELEASE_CONFIRM = 141;\n RCPDU_TOKEN_TEST_REQUEST = 142;\n RCPDU_TOKEN_TEST_CONFIRM = 143;\n\n // Registry PDU\n RCPDU_REG_REGISTER_KEY = 200;\n RCPDU_REG_UNREGISTER_KEY = 201;\n RCPDU_REG_REGISTER_ROSTER = 202;\n RCPDU_REG_REGISTER_TOKEN = 203;\n RCPDU_REG_REGISTER_PARAMETER = 204;\n RCPDU_REG_REGISTER_COUNTER = 205;\n RCPDU_REG_REGISTER_TABLE = 206;\n RCPDU_REG_REGISTER_CACHE = 207;\n RCPDU_REG_REGISTER_OBJ = 208;\n RCPDU_REG_UNREGISTER_OBJ = 209;\n RCPDU_REG_UPDATE_OBJ = 210;\n RCPDU_REG_ADAPTER = 211;\n RCPDU_REG_CLEANUP_NODE = 212;\n RCPDU_REG_REGISTER_QUEUE = 213;\n\n // Registry Obj update PDU\n RCPDU_REG_TABLE_INSERT_PDU = 230;\n RCPDU_REG_TABLE_DELETE_PDU = 231;\n RCPDU_REG_TABLE_UPDATE_PDU = 232;\n RCPDU_REG_ROSTER_INSERT_PDU = 240;\n RCPDU_REG_ROSTER_DELETE_PDU = 241;\n RCPDU_REG_ROSTER_UPDATE_PDU = 242;\n RCPDU_REG_PARAMETER_UPDATE_PDU = 250;\n RCPDU_REG_QUEUE_INSERT_PDU = 255;\n RCPDU_REG_QUEUE_DELETE_PDU = 256;\n RCPDU_REG_QUEUE_UPDATE_PDU = 257;\n\n // data\n RCPDU_CONFERENCE_SEND_DATA_REQUEST = 259;\n RCPDU_VIDEO_SEND_DATA_REQUEST = 260;\n RCPDU_AUDIO_SEND_DATA_REQUEST = 261;\n RCPDU_GIFT_SEND_DATA_REQUEST = 262;\n RCPDU_CHAT_SEND_DATA_REQUEST = 263;\n RCPDU_VOTING_POLL_RECORD = 265;\n\n // Registry resource request or response PDU\n RCPDU_REG_REQUEST_OBJ = 290;\n RCPDU_REG_RESPONSE_OBJ = 291;\n RCPDU_REG_COUNTER_REQUEST_PDU = 292;\n RCPDU_REG_COUNTER_RESPONSE_PDU = 293;\n\n // Index exchange\n RCPDU_INDEX_ADAPTER = 300;\n RCPDU_INDEX_SERVER_USERS = 301;\n RCPDU_INDEX_CONFERENCE_USER_JOINED = 302;\n RCPDU_INDEX_CONFERENCE_USER_EXITED = 303;\n RCPDU_INDEX_CONFERENCE_USERS = 304;\n}\n\nenum RCPduNodeType_E {\n NT_TERMINAL = 0;\n NT_MULTIPORT_TERMINAL = 1;\n NT_MCU = 2;\n}\n\nenum RCPduReason_E {\n RSN_USERINITIATED = 0;\n RSN_DISCONNECTED = 1;\n RSN_SUPER_LEFT = 2;\n}\n\nenum RCPduResult_E {\n RET_SUCCESS = 0;\n RET_USER_REJECTED = 1;\n RET_INVALID_CONFERENCE = 2;\n RET_INVALID_PASSWORD = 3;\n RET_INVALID_CONVENER_PASSWORD = 4;\n RET_CHALLENGE_RESPONSE_REQUIRED = 5;\n RET_INVALID_CHALLENGE_RESPONSE = 6;\n RET_NO_CONNECTION = 7;\n RET_FULL_CAPACITY = 8;\n}\n\nenum RCPduNodeCategory_E {\n NC_CONVENTIONAL = 0;\n NC_COUNTED = 1;\n NC_ANONYMOUS = 2;\n}\n\nmessage RCConferenceDescriptorPdu {\n required uint32 id = 1;\n required string name = 2;\n optional bytes description = 3;\n optional uint32 mode = 4;\n optional string password = 5;\n optional uint32 capacity = 6;\n optional bytes user_data = 7;\n}\n\nmessage RCNodeRecordPdu {\n required uint32 id = 1;\n optional uint32 superior_node = 2;\n required RCPduNodeType_E type = 3;\n required string name = 4;\n required uint32 capability = 5;\n optional string net_address = 6;\n optional RCPduNodeCategory_E category = 7;\n}\n\nmessage RCApplicationRecordPdu {\n required uint32 id = 1; // session id\n required string name = 2;\n required string tag = 3;\n repeated uint32 channel_ids = 4 [packed = true];\n optional uint32 capability = 5;\n}\n\n//reg.proto\n\noption optimize_for = LITE_RUNTIME;\nmessage RCRegistryRegisterKeyPdu {\n required RCPduType_E type = 1 [default = RCPDU_REG_REGISTER_KEY];\n required uint32 id = 2;\n required string name = 3;\n required string tag = 4;\n optional bytes user_data = 5;\n}\n\nmessage RCRegistryUnregisterKeyPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_UNREGISTER_KEY];\n required uint32 key_id = 2;\n}\n\nmessage RCRegistryRegisterObjPdu {\n optional RCPduType_E type = 1;\n required uint32 obj_id = 2;\n required string name = 3;\n required string tag = 4;\n optional uint32 owner = 5;\n optional bytes user_data = 6;\n}\n\nmessage RCRegistryUnregisterObjPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_UNREGISTER_OBJ];\n required uint32 obj_id = 2;\n}\n\nmessage RCRegistryUpdateObjPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_UPDATE_OBJ];\n required RCPduType_E sub_type = 2;\n required uint32 obj_id = 3;\n required bytes user_data = 4;\n}\n\nmessage RCAdapterItemPdu {\n required RCPduType_E type = 1;\n required bytes item_data = 2;\n}\n\n// adapter pdu that used to package a list of pdu.\nmessage RCAdapterPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_ADAPTER];\n repeated RCAdapterItemPdu item = 2;\n}\n\n// table operation pdu\nmessage RCRegistryTableItemPdu {\n required uint32 item_idx = 1;\n required uint32 owner = 2;\n required bytes item_data = 3;\n optional uint32 register_obj_id=4;\n}\n\nmessage RCRegistryTableInsertItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_TABLE_INSERT_PDU];\n repeated RCRegistryTableItemPdu items = 2;\n}\n\nmessage RCRegistryTableDeleteItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_TABLE_DELETE_PDU];\n repeated uint32 item_idx = 2;\n}\n\nmessage RCRegistryTableUpdateItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_TABLE_UPDATE_PDU];\n repeated RCRegistryTableItemPdu items = 2;\n}\n\n// roster operation pdu\nmessage RCRegistryRosterItemPdu {\n required uint32 node_id = 1;\n required bytes node_data = 2;\n}\nmessage RCRegistryWBItemPdu {\n required uint32 node_id = 1;\n required bytes node_data = 2;\n}\nmessage RCRegistryRosterInsertItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_ROSTER_INSERT_PDU];\n repeated RCRegistryRosterItemPdu items = 2;\n}\n\nmessage RCRegistryRosterDeleteItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_ROSTER_DELETE_PDU];\n required uint32 node_id = 2;\n}\n\nmessage RCRegistryRosterUpdateItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_ROSTER_UPDATE_PDU];\n repeated RCRegistryRosterItemPdu items = 2;\n}\n\n//message RCCleanupNodePdu\n//{\n// optional RCPduType_E type = 1 [default = RCPDU_REG_CLEANUP_NODE];\n// required uint32 node_id = 2;\n//}\n\n// parameter operation pdu\nmessage RCRegistryParameterUpdatePdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_PARAMETER_UPDATE_PDU];\n required uint32 value = 2 [default = 0];\n optional uint32 begin_bit = 3 [default = 31];\n optional uint32 end_bit = 4;\n}\n\n// queue operation pdu\nmessage RCRegistryQueueItemPdu {\n required uint32 owner = 1;\n required uint32 item_id = 2;\n optional bytes item_data = 3;\n optional uint32 item_idx = 4;\n}\n\nmessage RCRegstryQueueInsertItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_QUEUE_INSERT_PDU];\n repeated RCRegistryQueueItemPdu items = 2;\n}\n\nmessage RCRegistryQueueDeleteItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_QUEUE_DELETE_PDU];\n required uint32 item_id = 2;\n}\n\nmessage RCRegistryQueueUpdateItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_QUEUE_UPDATE_PDU];\n repeated RCRegistryQueueItemPdu items = 2;\n}\n\nmessage RCRegistryRequestObjPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_REQUEST_OBJ];\n required RCPduType_E sub_type = 2;\n required uint32 obj_id = 3;\n required bytes user_data = 4;\n}\n\nmessage RCRegistryResponseObjPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_RESPONSE_OBJ];\n required RCPduType_E sub_type = 2;\n required uint32 obj_id = 3;\n required bytes user_data = 4;\n}\n\nmessage RCRegistryCounterRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_COUNTER_REQUEST_PDU];\n required uint32 count = 2;\n}\n\nmessage RCRegistryCounterResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_COUNTER_RESPONSE_PDU];\n required uint32 start = 2;\n required uint32 end = 3;\n}\n\n// mcs\noption optimize_for = LITE_RUNTIME;\n\n// Session management\nmessage RCSessionJoinRequestPdu {\n required RCPduType_E type = 1 [default = RCPDU_SESSION_JOIN_REQUEST];\n required uint32 id = 2;\n required string name = 3;\n required string tag = 4;\n optional bytes session_data = 5; //\u805A\u5408\u5728\u4E00\u8D77\u7684registry\u4FE1\u606F\n}\n\nmessage RCSessionJoinResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_SESSION_JOIN_RESPONSE];\n required uint32 id = 2;\n optional bytes response_data = 3;\n}\n\n// Channel management\nmessage RCChannelGrabRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_GRAB_REQUEST];\n required uint32 initiator = 2;\n required uint32 channel_id = 3;\n}\n\nmessage RCChannelGrabResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_GRAB_RESPONSE];\n required uint32 initiator = 2;\n required uint32 requested_channel_id = 3;\n required RCPduResult_E result = 4;\n optional uint32 channel_id = 5;\n}\n\nmessage RCChannelGrabIndicationPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_GRAB_INDICATION];\n required uint32 initiator = 2;\n optional uint32 channel_id = 3;\n}\n\nmessage RCChannelJoinRequestPdu {\n required RCPduType_E type = 1 [default = RCPDU_CHANNEL_JOIN_REQUEST];\n required uint32 initiator = 2;\n required uint32 channel_id = 3;\n}\n\nmessage RCChannelJoinResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_JOIN_RESPONSE];\n required uint32 initiator = 2;\n required uint32 requested_channel_id = 3;\n required RCPduResult_E result = 4;\n}\n\nmessage RCChannelLeaveRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_LEAVE_REQUEST];\n required uint32 initiator = 2;\n repeated uint32 channel_ids = 3 [packed = true];\n}\n\nmessage RCChannelReleaseRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_RELEASE_REQUEST];\n required uint32 initiator = 2;\n required uint32 channel_id = 3;\n}\n\nmessage RCChannelReleaseIndicationPdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CHANNEL_RELEASE_INDICATION];\n required uint32 initiator = 2;\n required uint32 channel_id = 3;\n}\n\n// Data transfer\nmessage RCSendDataPdu {\n required RCPduType_E type = 1 [default = RCPDU_SEND_DATA_REQUEST];\n required RCPduType_E sub_type = 2;\n required uint32 initiator = 3;\n required uint32 conf_id = 4;\n required uint32 session_id = 5;\n required uint32 channel_id = 6;\n required bool upward = 7;\n required bool reliability = 8;\n required RCPduPriority_E priority = 9;\n required bytes data = 10;\n optional uint32 peer = 11;\n optional RCPduSegment_E seg = 12;\n optional uint32 total_size = 13;\n optional uint32 site_id = 14;\n optional string user_id = 15;\n optional string user_name = 16;\n optional string user_role = 17;\n optional string device_type = 18;\n optional string site = 19;\n}\n\n// Token management\nmessage RCTokenGrabRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GRAB_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenGrabConfirmPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GRAB_CONFIRM];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required RCPduResult_E result = 4;\n required RCPduTokenStatus_E status = 5;\n}\n\nmessage RCTokenInhibitRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_INHIBIT_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenInhibitConfirmPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_INHIBIT_CONFIRM];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required RCPduResult_E result = 4;\n required RCPduTokenStatus_E status = 5;\n}\n\nmessage RCTokenGiveRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GIVE_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required uint64 recipient = 4;\n}\n\nmessage RCTokenGiveIndicationPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GIVE_INDICATION];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required uint64 recipient = 4;\n}\n\nmessage RCTokenGiveResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GIVE_RESPONSE];\n required uint32 token_id = 2;\n required uint64 recipient = 3;\n required RCPduResult_E result = 4;\n}\n\nmessage RCTokenGiveConfirmPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GIVE_CONFIRM];\n required uint32 token_id = 2;\n required uint64 recipient = 3;\n required RCPduResult_E result = 4;\n required RCPduTokenStatus_E status = 5;\n}\n\nmessage RCTokenPleaseRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_PLEASE_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenPleaseIndicationPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_PLEASE_INDICATION];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenReleaseRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_RELEASE_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenReleaseConfirmPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_TEST_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required RCPduResult_E result = 4;\n required RCPduTokenStatus_E status = 5;\n}\n\nmessage RCTokenTestRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_TEST_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenTestConfirmPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_TEST_CONFIRM];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required RCPduTokenStatus_E status = 4;\n}\n\n//gcc.proto\n\noption optimize_for = LITE_RUNTIME;\nmessage RCConferenceJoinRequestPdu {\n required RCPduType_E type = 1 [default = RCPDU_CONFERENCE_JOIN_REQUEST];\n required uint32 initiator = 2;\n required RCPduNodeType_E node_type = 3;\n required RCConferenceDescriptorPdu class_description = 4;//conf_desc\n}\n\nmessage RCConferenceJoinResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_JOIN_RESPONSE];\n required uint32 conf_id = 2;\n required RCPduResult_E result = 3;\n optional RCConferenceDescriptorPdu class_description = 4;\n}\n\nmessage RCConferenceInviteRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_INVITE_REQUEST];\n required uint32 initiator = 2;\n required RCConferenceDescriptorPdu class_description = 3;\n}\n\nmessage RCConferenceInviteResponsePdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_INVITE_RESPONSE];\n required RCPduResult_E result = 2;\n optional bytes user_data = 3;\n}\n\nmessage RCConferenceLockRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_LOCK_REQUEST];\n}\n\nmessage RCConferenceLockResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_LOCK_RESPONSE];\n required RCPduResult_E result = 2;\n}\n\nmessage RCConferenceLockIndicationPdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_LOCK_INDICATION];\n}\n\nmessage RCConferenceUnlockRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_UNLOCK_REQUEST];\n}\n\nmessage RCConferenceUnlockResponsePdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_UNLOCK_RESPONSE];\n required RCPduResult_E result = 2;\n}\n\nmessage RCConferenceUnlockIndicationPdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_UNLOCK_INDICATION];\n}\n\nmessage RCConferenceLeaveRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_LEAVE_REQUEST];\n required RCPduReason_E reason = 2;\n}\n\nmessage RCConferenceTerminateRequestPdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_TERMINATE_REQUEST];\n required RCPduReason_E reason = 2;\n}\n\nmessage RCConferenceTerminateResponsePdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_TERMINATE_RESPONSE];\n required RCPduResult_E result = 2;\n}\n\nmessage RCConferenceTerminateIndicationPdu { // MCS_Uniform_Send_Data on GCC_Broadcast_Channel\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_TERMINATE_INDICATION];\n required RCPduReason_E reason = 2;\n}\n\nmessage RCConferenceEjectUserRequestPdu { // MCS_Send_Data on Node ID Channel of Top GCC\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_EJECT_USER_REQUEST];\n required uint32 ejected_node_id = 2;\n required RCPduReason_E reason = 3;\n}\n\nmessage RCConferenceEjectUserResponsePdu { // MCS_Send_Data on Node ID Channel of requester\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_EJECT_USER_RESPONSE];\n required uint32 ejected_node_id = 2;\n required RCPduResult_E result = 3;\n}\n\nmessage RCConferenceEjectUserIndicationPdu { // MCS_Uniform_Send_Data on GCC_Broadcast_Channel\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_EJECT_USER_INDICATION];\n required uint32 ejected_node_id = 2;\n required RCPduReason_E reason = 3;\n}\n\nmessage RCRosterUpdateIndicationPdu { // MCS_Send_Data on Node ID Channel or\n// MCS_Uniform_Send_Data on GCC_Broadcast_Channel\n optional RCPduType_E type = 1 [default = RCPDU_ROSTER_UPDATE_INDICATION];\n required bool full_refresh = 2; // Conference Roster and all\n repeated RCNodeRecordPdu node_record = 3;\n repeated RCApplicationRecordPdu app_record = 4;\n}\n\nmessage RCRegistryUpdateRequestPdu { // MCS_Send_Data on Node ID Channel of Top GCC\n optional RCPduType_E type = 1 [default = RCPDU_REGISTRY_UPDATE_REQUEST];\n required uint32 key_id = 2;\n required uint32 obj_id = 3;\n required bytes user_data = 4;\n}\n\nmessage RCRegistryUpdateIndicationPdu { // MCS_Send_Data on Node ID Channel of Top GCC\n optional RCPduType_E type = 1 [default = RCPDU_REGISTRY_UPDATE_RESPONSE];\n required uint32 key_id = 2;\n required uint32 obj_id = 3;\n required bytes user_data = 4;\n}\n\nmessage RCRegistryUpdateResponsePdu { // MCS_Send_Data on Node ID Channel of requester\n optional RCPduType_E type = 1 [default = RCPDU_REGISTRY_UPDATE_INDICATION];\n required uint32 key_id = 2;\n required uint32 obj_id = 3;\n required RCPduResult_E result = 4;\n}\n\nmessage RCFunctionNotSupportedResponsePdu {\n optional RCPduType_E type = 1\n [default = RCPDU_FUNCTION_NOT_SUPPORTED_RESPONSE];\n required uint32 request_pdu_id = 2;\n}\n\n//ape.proto\n\noption optimize_for = LITE_RUNTIME;\nmessage RCConferenceSendDataRequestPdu {\n optional uint32 initiator = 1;\n optional uint32 peer = 2;\n required bool is_public = 3;\n required bytes user_data = 4;\n}\n\nmessage RCChatSendDataRequestPdu {\n optional uint32 initiator = 1;\n optional uint32 peer = 2;\n required bool is_public = 3;\n required bytes user_data = 4;\n required string from_role = 5;\n required bytes from_name = 6;\n}\n\nmessage RCDocSendDataRequestPdu {\n required uint32 id = 1;\n required string doc_type = 2;\n required string uri = 3;\n optional uint32 owner = 4;\n optional uint32 from = 5;\n optional string name = 6;\n optional uint32 cur_page_no = 7;\n optional uint32 cur_H = 8;\n optional uint32 cur_V = 9;\n optional uint32 scale = 10;\n optional uint32 page_num = 11;\n}\nmessage RCDocSendDataModelPdu {\n required uint32 item_idx=1;//\u552F\u4E00\u6807\u8BC6\n required uint32 owner=2;\n optional uint32 from=3;\n optional uint32 cur_page_no=4;\n optional uint32 page_num =5;\n optional string file_type=6;\n optional string creat_user_id=7;//\u521B\u5EFA\u6587\u6863userid\n optional string relative_url=8;//\u6587\u6863\u76F8\u5BF9\u5730\u5740\n optional string url =9;//\u6587\u6863\u5730\u5740\n optional uint32 cur_V=10;\n optional uint32 cur_H=11;\n optional uint32 scale=12;\n optional bool visible=13;\n optional uint32 action=14;//0\uFF0C\u65E0\u64CD\u4F5C\uFF0C 1\u7FFB\u9875\u30012.\u663E\u793A/\u9690\u85CF\n optional string doc_id=15;//\u6587\u6863\u5728\u670D\u52A1\u5668\u6570\u636E\u5E93\u4E2D\u7684\u552F\u4E00id\n optional string file_name=16;//\u6587\u6863\u7684\u540D\u5B57\n optional string dynamic_TS=17;//\"dynamicTransferStatic\": \"0\"\n optional string md5=18;//md5\n\n}\nmessage RCGiftSendDataRequestPdu {\n optional uint32 initiator = 1;\n required uint32 peer = 2;\n required uint32 index = 3;\n required uint32 num = 4;\n optional bytes user_data = 5;\n}\n\nmessage RCAudioSendDataRequestPdu {\n optional uint32 initiator = 1;\n required bytes user_data = 2;\n}\n\nmessage RCVideoSendDataRequestPdu {\n optional uint32 initiator = 1;\n required bool key_frame = 2;\n required uint32 sequence_id = 3;\n required uint32 slice_id = 4;\n required bytes user_data = 5;\n}\n\nmessage RCAudioChannelInfoRecordPdu {\n required uint32 status = 1;\n required uint32 device_id = 2;\n required uint32 framerate = 3;\n required uint32 bitrate = 4;\n required uint32 codec = 5;\n}\n\nmessage RCVideoChannelInfoRecordPdu {\n optional uint32 status = 1;\n optional uint32 device_id = 2;\n optional uint32 width = 3;\n optional uint32 height = 4;\n optional uint32 framerate = 5;\n optional uint32 bitrate = 6;\n optional uint32 codec = 7;\n optional string peer_id = 8;\n optional string url = 9;\n optional uint32 type = 10;\n optional string shamlive = 11;\n optional uint32 livetype = 12;\n optional uint32 releaseGrab = 13;\n optional string curTime = 14;\n}\n\nmessage RCAudioDeviceInfoRecordPdu {\n required uint32 device_id = 1;\n required string device_name = 2;\n}\n\nmessage RCVideoDeviceInfoRecordPdu {\n required uint32 device_id = 1;\n required string device_name = 2;\n}\n\nmessage RCNodeInfoRecordPdu {\n required uint32 node_id = 1;\n required string name = 2;\n required uint32 role = 3;\n required uint32 level = 4;\n repeated RCAudioDeviceInfoRecordPdu audio_records = 5;\n repeated RCVideoDeviceInfoRecordPdu video_records = 6;\n optional uint32 status = 7;\n optional bytes user_data = 8;\n optional string user_id = 9;\n optional uint32 handUpTime = 10;\n optional uint32 deviceType = 11;\n optional uint32 mobileDirection = 12;\n}\n\nmessage RCVotingPollSettingsPdu {\n required bool timer = 1;\n optional uint32 time_limit = 2;\n optional uint32 total_score = 3;\n}\n\nmessage RCVotingPollResultPdu {\n required string title = 1;\n required string content = 2;\n optional uint32 score = 3;\n}\n\nmessage RCVotingPollQuestionPdu {\n required uint32 index = 1;\n required uint32 type = 2;\n required string title = 3;\n repeated string options = 4;\n optional uint32 score = 5;\n optional uint32 time_limit = 6;\n optional string restrict_input = 7;\n optional uint32 char_limit = 8;\n optional string answer = 9;\n repeated uint32 selections = 10;\n repeated string responses = 11;\n}\n\nmessage RCVotingPollRecordPdu {\n required RCVotingPollSettingsPdu settings = 1;\n required string title = 2;\n repeated RCVotingPollResultPdu results = 3;\n repeated RCVotingPollQuestionPdu questions = 4;\n}\n\nmessage RCNodeInfoUserDataPdu {\n optional string qq = 1;\n optional string skype = 2;\n optional string mobile = 3;\n}\nmessage RCTabUpdateDataRequestPdu {\n optional uint32 id = 1;\n optional bytes action = 2;\n optional uint32 uncomprLen =3;\n}\n\nmessage RCWhiteBoardDataModel {\n required uint32 type= 1;//\u767D\u677F\u7C7B\u578B\n required uint32 itemIdx= 2;//itemIdx \u6BCF\u4E00\u6B21\u7ED8\u5236\u7684\u552F\u4E00\u6807\u8BC6\n required uint32 initiator=3; //\u7ED8\u5236\u6765\u81EA\u8C01\n required uint32 parentId=4; //\u7236\u7EA7\u7684id\n required uint32 curPage= 5;//\u9875\u7801\n optional string pointGroup=6; //\u5750\u6807\u70B9\u96C6\u6570\u7EC4\u7684JSON\u5B57\u7B26\u4E32\n optional string color=7 [default = \"#000000\"]; //\u989C\u8272\n optional uint32 thickness= 8 ;//\u7EBF\u6761\u7C97\u7EC6\n optional uint32 radius= 9;//\u56ED\u7684\u534A\u5F84\n optional uint32 fontSize= 10;//\u5B57\u4F53\u5927\u5C0F\n optional string fontName= 11;//\u5B57\u4F53\u540D\u79F0\n optional string text= 12;//\u6587\u672C\u5185\u5BB9\n optional bytes data = 13;//\u6682\u65F6\u9884\u7559\u7684\u53C2\u6570\n}\nmessage RCClassSendDataModelPdu {\n optional uint32 class_status= 1;//\u5F53\u524D\u8BFE\u5802\u72B6\u6001 //0:\u672A\u5F00\u59CB\uFF0C1\uFF0C\u5F00\u59CB\uFF0C2\uFF0C\u6682\u505C\n optional uint32 class_timestamp= 2;//\u76EE\u524D\u7528\u8FD9\u4E2A\u53D8\u91CF\u6765\u8BB0\u5F55\u65F6\u95F4 flash\u7528\u7684\u8FD9\u4E2A\n optional uint32 item_idx=3;\n optional uint32 from=4;\n}\n\n//end\n";
14301 exports.default = _default; 14322 exports.default = _default;
14302 ; 14323 ;
14303 14324
@@ -14594,8 +14615,8 @@ return /******/ (function(modules) { // webpackBootstrap @@ -14594,8 +14615,8 @@ return /******/ (function(modules) { // webpackBootstrap
14594 14615
14595 _createClass(ConferApe, [{ 14616 _createClass(ConferApe, [{
14596 key: '_joinSessionHandler', 14617 key: '_joinSessionHandler',
14597 - value: function _joinSessionHandler(confInfo) {  
14598 - var nodeInfoRecordPdu = this.mcu.mcuConfInfo.self; 14618 + value: function _joinSessionHandler(_data) {
  14619 + var nodeInfoRecordPdu = this.mcu.mcuClassInfo.self;
14599 loger.log("_joinSessionHandler nodeInfoRecordPdu=", nodeInfoRecordPdu); 14620 loger.log("_joinSessionHandler nodeInfoRecordPdu=", nodeInfoRecordPdu);
14600 var userDataPdu = new _pdus2.default['RCNodeInfoUserDataPdu'](); 14621 var userDataPdu = new _pdus2.default['RCNodeInfoUserDataPdu']();
14601 userDataPdu.qq = ''; 14622 userDataPdu.qq = '';
@@ -14603,7 +14624,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -14603,7 +14624,7 @@ return /******/ (function(modules) { // webpackBootstrap
14603 userDataPdu.mobile = ''; 14624 userDataPdu.mobile = '';
14604 14625
14605 nodeInfoRecordPdu.userData = userDataPdu.toArrayBuffer(); 14626 nodeInfoRecordPdu.userData = userDataPdu.toArrayBuffer();
14606 - nodeInfoRecordPdu.deviceType = 3; 14627 + nodeInfoRecordPdu.deviceType = 3; //设备类型
14607 14628
14608 var item = new _pdus2.default['RCRegistryRosterItemPdu'](); 14629 var item = new _pdus2.default['RCRegistryRosterItemPdu']();
14609 item.nodeId = nodeInfoRecordPdu.nodeId; 14630 item.nodeId = nodeInfoRecordPdu.nodeId;
@@ -14635,7 +14656,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -14635,7 +14656,7 @@ return /******/ (function(modules) { // webpackBootstrap
14635 }, { 14656 }, {
14636 key: 'leaveClass', 14657 key: 'leaveClass',
14637 value: function leaveClass() { 14658 value: function leaveClass() {
14638 - var nodeInfoRecordPdu = this.mcu.mcuConfInfo.self; 14659 + var nodeInfoRecordPdu = this.mcu.mcuClassInfo.self;
14639 var userDataPdu = new _pdus2.default['RCNodeInfoUserDataPdu'](); 14660 var userDataPdu = new _pdus2.default['RCNodeInfoUserDataPdu']();
14640 userDataPdu.qq = ''; 14661 userDataPdu.qq = '';
14641 userDataPdu.skype = ''; 14662 userDataPdu.skype = '';
@@ -15020,7 +15041,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -15020,7 +15041,7 @@ return /******/ (function(modules) { // webpackBootstrap
15020 _this._session_tag = session_tag; 15041 _this._session_tag = session_tag;
15021 _this._session_channels = {}; 15042 _this._session_channels = {};
15022 _this._adapter_pdu = new _pdus2.default['RCAdapterPdu'](); 15043 _this._adapter_pdu = new _pdus2.default['RCAdapterPdu']();
15023 - _this._confInfo = null; 15044 + _this._classInfo = null;
15024 _this._rCArrayBufferUtil = _ArrayBufferUtil2.default; 15045 _this._rCArrayBufferUtil = _ArrayBufferUtil2.default;
15025 _this._apeDelayed = false; 15046 _this._apeDelayed = false;
15026 _this._apeDelayedMsgs = []; 15047 _this._apeDelayedMsgs = [];
@@ -15051,7 +15072,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -15051,7 +15072,7 @@ return /******/ (function(modules) { // webpackBootstrap
15051 value: function _pduMessageHandler(regBuffer) { 15072 value: function _pduMessageHandler(regBuffer) {
15052 var _this2 = this; 15073 var _this2 = this;
15053 15074
15054 - console.log("RCPDU_REG_ADAPTER==========================================this._apeDelayed", this._apeDelayed, this._confInfo['mcuDelay']); 15075 + loger.log("RCPDU_REG_ADAPTER==============================");
15055 if (this._apeDelayed) { 15076 if (this._apeDelayed) {
15056 // this._apeDelayedMsgs.push(regBuffer); 15077 // this._apeDelayedMsgs.push(regBuffer);
15057 // this._apeDelayedStart(); 15078 // this._apeDelayedStart();
@@ -15065,7 +15086,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -15065,7 +15086,7 @@ return /******/ (function(modules) { // webpackBootstrap
15065 15086
15066 // _apeDelayedStart() { 15087 // _apeDelayedStart() {
15067 // if (this._apeDelayed && !this._apeDelayedTimer) { 15088 // if (this._apeDelayed && !this._apeDelayedTimer) {
15068 - // this._apeDelayedTimer = setInterval(this._delayedMsgHandler.bind(this), this._confInfo['mcuDelay'] || 10000); 15089 + // this._apeDelayedTimer = setInterval(this._delayedMsgHandler.bind(this), this._classInfo['mcuDelay'] || 10000);
15069 // } 15090 // }
15070 // } 15091 // }
15071 15092
@@ -15253,11 +15274,12 @@ return /******/ (function(modules) { // webpackBootstrap @@ -15253,11 +15274,12 @@ return /******/ (function(modules) { // webpackBootstrap
15253 15274
15254 }, { 15275 }, {
15255 key: '_mcuConferenceJoinSuccessHandler', 15276 key: '_mcuConferenceJoinSuccessHandler',
15256 - value: function _mcuConferenceJoinSuccessHandler(confInfo) { 15277 + value: function _mcuConferenceJoinSuccessHandler(_data) {
15257 loger.log('创建Ape->', 'SessionId', this._session_id, 'SessionName', this._session_name, 'SessionTag', this._session_tag); 15278 loger.log('创建Ape->', 'SessionId', this._session_id, 'SessionName', this._session_name, 'SessionTag', this._session_tag);
15258 15279
15259 // 会议依赖底层会议信息 15280 // 会议依赖底层会议信息
15260 - this._confInfo = confInfo; 15281 + //this._classInfo = classInfo;
  15282 + this._classInfo = _GlobalConfig2.default.getClassInfo();
15261 15283
15262 var joinSessionPdu = new _pdus2.default['RCSessionJoinRequestPdu'](); 15284 var joinSessionPdu = new _pdus2.default['RCSessionJoinRequestPdu']();
15263 joinSessionPdu.id = this._session_id; 15285 joinSessionPdu.id = this._session_id;
@@ -15267,7 +15289,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -15267,7 +15289,7 @@ return /******/ (function(modules) { // webpackBootstrap
15267 this.sendUniform(joinSessionPdu, true); 15289 this.sendUniform(joinSessionPdu, true);
15268 15290
15269 var joinChannelPdu = new _pdus2.default['RCChannelJoinRequestPdu'](); 15291 var joinChannelPdu = new _pdus2.default['RCChannelJoinRequestPdu']();
15270 - joinChannelPdu.initiator = this.mcu.confInfo.nodeId; 15292 + joinChannelPdu.initiator = this.mcu.classInfo.nodeId;
15271 joinChannelPdu.channelId = this._session_id; 15293 joinChannelPdu.channelId = this._session_id;
15272 this.send(joinChannelPdu); 15294 this.send(joinChannelPdu);
15273 } 15295 }
@@ -15325,7 +15347,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -15325,7 +15347,7 @@ return /******/ (function(modules) { // webpackBootstrap
15325 this._emit(_MessageTypes2.default.MCU_ERROR, _MessageTypes2.default.ERR_APE_SEND_FAILED_NO_JOIN); 15347 this._emit(_MessageTypes2.default.MCU_ERROR, _MessageTypes2.default.ERR_APE_SEND_FAILED_NO_JOIN);
15326 return; 15348 return;
15327 } 15349 }
15328 - var normalPdu = _pdus2.default.create_normal_pdu(appPdu.type, this._confInfo.nodeId, this._confInfo.confId, this._session_id, this._channel_id, true, true, _PduConsts2.default.DP_TOP, this._confInfo.topNodeID, _PduConsts2.default.SEG_ONCE); 15350 + var normalPdu = _pdus2.default.create_normal_pdu(appPdu.type, this._classInfo.nodeId, this._classInfo.classId, this._session_id, this._channel_id, true, true, _PduConsts2.default.DP_TOP, this._classInfo.topNodeID, _PduConsts2.default.SEG_ONCE);
15329 normalPdu.data = appPdu.toArrayBuffer(); 15351 normalPdu.data = appPdu.toArrayBuffer();
15330 // Mcu发送 15352 // Mcu发送
15331 this.mcu.send(normalPdu); 15353 this.mcu.send(normalPdu);
@@ -15343,7 +15365,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -15343,7 +15365,7 @@ return /******/ (function(modules) { // webpackBootstrap
15343 return; 15365 return;
15344 } 15366 }
15345 15367
15346 - var uniformPdu = _pdus2.default.create_uniform_pdu(appPdu.type, this._confInfo.nodeId, this._confInfo.confId, this._session_id, top ? _ApeConsts2.default.BROADCAST_CHANNEL_ID : this._channel_id, true, _PduConsts2.default.DP_TOP, top ? this._confInfo.topNodeID : appPdu.peer || 0, _PduConsts2.default.SEG_ONCE); 15368 + var uniformPdu = _pdus2.default.create_uniform_pdu(appPdu.type, this._classInfo.nodeId, this._classInfo.classId, this._session_id, top ? _ApeConsts2.default.BROADCAST_CHANNEL_ID : this._channel_id, true, _PduConsts2.default.DP_TOP, top ? this._classInfo.topNodeID : appPdu.peer || 0, _PduConsts2.default.SEG_ONCE);
15347 uniformPdu.data = appPdu.toArrayBuffer(); 15369 uniformPdu.data = appPdu.toArrayBuffer();
15348 // Mcu发送 15370 // Mcu发送
15349 this.mcu.send(uniformPdu); 15371 this.mcu.send(uniformPdu);
@@ -15358,7 +15380,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -15358,7 +15380,7 @@ return /******/ (function(modules) { // webpackBootstrap
15358 return; 15380 return;
15359 } 15381 }
15360 15382
15361 - var uniformPdu = _pdus2.default.create_uniform_pdu(appPdu.type, this._confInfo.nodeId, this._confInfo.confId, this._session_id, top ? _ApeConsts2.default.BROADCAST_CHANNEL_ID : this._channel_id, true, _PduConsts2.default.DP_TOP, 0, //flash中这个值设置为0 15383 + var uniformPdu = _pdus2.default.create_uniform_pdu(appPdu.type, this._classInfo.nodeId, this._classInfo.classId, this._session_id, top ? _ApeConsts2.default.BROADCAST_CHANNEL_ID : this._channel_id, true, _PduConsts2.default.DP_TOP, 0, //flash中这个值设置为0
15362 _PduConsts2.default.SEG_ONCE); 15384 _PduConsts2.default.SEG_ONCE);
15363 uniformPdu.data = appPdu.toArrayBuffer(); 15385 uniformPdu.data = appPdu.toArrayBuffer();
15364 // Mcu发送 15386 // Mcu发送
@@ -16124,7 +16146,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -16124,7 +16146,7 @@ return /******/ (function(modules) { // webpackBootstrap
16124 _createClass(ChatApe, [{ 16146 _createClass(ChatApe, [{
16125 key: 'sendChatMsg', 16147 key: 'sendChatMsg',
16126 value: function sendChatMsg(_messageInfo) { 16148 value: function sendChatMsg(_messageInfo) {
16127 - if (this._confInfo === null || _EngineUtils2.default.isEmptyObject(this._confInfo)) { 16149 + if (this._classInfo === null || _EngineUtils2.default.isEmptyObject(this._classInfo)) {
16128 loger.log('不能发送聊天消息.McuClient还未初始化数据!'); 16150 loger.log('不能发送聊天消息.McuClient还未初始化数据!');
16129 if (GlobalConfig.getCurrentStatus().code == 0 || GlobalConfig.getCurrentStatus().code == 1) { 16151 if (GlobalConfig.getCurrentStatus().code == 0 || GlobalConfig.getCurrentStatus().code == 1) {
16130 this._emit(_MessageTypes2.default.MCU_ERROR, _MessageTypes2.default.ERR_APE_SEND_FAILED_NO_JOIN); 16152 this._emit(_MessageTypes2.default.MCU_ERROR, _MessageTypes2.default.ERR_APE_SEND_FAILED_NO_JOIN);
@@ -16138,12 +16160,12 @@ return /******/ (function(modules) { // webpackBootstrap @@ -16138,12 +16160,12 @@ return /******/ (function(modules) { // webpackBootstrap
16138 16160
16139 var chatSendPdu = new _pdus2.default['RCChatSendDataRequestPdu'](); 16161 var chatSendPdu = new _pdus2.default['RCChatSendDataRequestPdu']();
16140 chatSendPdu.type = _pdus2.default.RCPDU_CHAT_SEND_DATA_REQUEST; 16162 chatSendPdu.type = _pdus2.default.RCPDU_CHAT_SEND_DATA_REQUEST;
16141 - chatSendPdu.initiator = this._confInfo.nodeId; //发起人 16163 + chatSendPdu.initiator = this._classInfo.nodeId; //发起人
16142 chatSendPdu.peer = parseInt(_messageInfo.to); //发送给谁,公聊的时候是0,私聊的时候是指定的用户id 16164 chatSendPdu.peer = parseInt(_messageInfo.to); //发送给谁,公聊的时候是0,私聊的时候是指定的用户id
16143 16165
16144 chatSendPdu.userData = this._rCArrayBufferUtil.strToUint8Array("h5" + _messageInfo.message); 16166 chatSendPdu.userData = this._rCArrayBufferUtil.strToUint8Array("h5" + _messageInfo.message);
16145 - chatSendPdu.fromName = this._rCArrayBufferUtil.strToUint8Array("h5" + this._confInfo.userName);  
16146 - chatSendPdu.fromRole = this._confInfo.userRole; // classRole已经废弃 16167 + chatSendPdu.fromName = this._rCArrayBufferUtil.strToUint8Array("h5" + this._classInfo.userName);
  16168 + chatSendPdu.fromRole = this._classInfo.userRole; // classRole已经废弃
16147 chatSendPdu.isPublic = true; 16169 chatSendPdu.isPublic = true;
16148 // if (!(chatSendPdu.isPublic || 0 === chatSendPdu.peer)) { 16170 // if (!(chatSendPdu.isPublic || 0 === chatSendPdu.peer)) {
16149 if (!chatSendPdu && 0 != chatSendPdu.peer) { 16171 if (!chatSendPdu && 0 != chatSendPdu.peer) {
@@ -16352,10 +16374,10 @@ return /******/ (function(modules) { // webpackBootstrap @@ -16352,10 +16374,10 @@ return /******/ (function(modules) { // webpackBootstrap
16352 case _ApeConsts2.default.CGS_OPENNED: 16374 case _ApeConsts2.default.CGS_OPENNED:
16353 this.activeChannelId = videoChannelInfo.channelId; 16375 this.activeChannelId = videoChannelInfo.channelId;
16354 // AMS 16376 // AMS
16355 - if (this._confInfo.msType === '1') {  
16356 - this.activeURL = 'http://dazhi.3mang.com/live/' + this._confInfo.confId + '/' + this._confInfo.confId + '_' + videoChannelInfo.channelId + '_flash_cam_mic_aac/playlist.m3u8'; 16377 + if (this._classInfo.msType === '1') {
  16378 + this.activeURL = 'http://dazhi.3mang.com/live/' + this._classInfo.classId + '/' + this._classInfo.classId + '_' + videoChannelInfo.channelId + '_flash_cam_mic_aac/playlist.m3u8';
16357 } else { 16379 } else {
16358 - this.activeURL = 'http://hls.3mang.com/live/' + this._confInfo.confId + '_' + videoChannelInfo.channelId + '_flash_cam_mic_aac/playlist.m3u8'; 16380 + this.activeURL = 'http://hls.3mang.com/live/' + this._classInfo.classId + '_' + videoChannelInfo.channelId + '_flash_cam_mic_aac/playlist.m3u8';
16359 } 16381 }
16360 // 任何人都可以打开流 16382 // 任何人都可以打开流
16361 this.emitVideoChange(); 16383 this.emitVideoChange();
@@ -16492,7 +16514,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -16492,7 +16514,7 @@ return /******/ (function(modules) { // webpackBootstrap
16492 //判断文档是否已经存在,每个文档都有唯一的docId,如果已经同步的文档中存在相同的docId就不需要再同步 16514 //判断文档是否已经存在,每个文档都有唯一的docId,如果已经同步的文档中存在相同的docId就不需要再同步
16493 if (this.checkDocId(paramInfo.docId)) { 16515 if (this.checkDocId(paramInfo.docId)) {
16494 //文档已经存在相同的docId,不需要同步上传 16516 //文档已经存在相同的docId,不需要同步上传
16495 - loger.warn('documentUpload 已经存在相同的docId,不需要上传'); 16517 + loger.warn('documentUpload 文档的docId不无效或已经存在相同的docId,不需要上传');
16496 return; 16518 return;
16497 } 16519 }
16498 16520
@@ -16962,7 +16984,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -16962,7 +16984,7 @@ return /******/ (function(modules) { // webpackBootstrap
16962 16984
16963 _createClass(WhiteBoardApe, [{ 16985 _createClass(WhiteBoardApe, [{
16964 key: '_joinSessionHandler', 16986 key: '_joinSessionHandler',
16965 - value: function _joinSessionHandler(confInfo) { 16987 + value: function _joinSessionHandler(_data) {
16966 loger.log("RCPDU_SESSION_JOIN_RESPONSE"); 16988 loger.log("RCPDU_SESSION_JOIN_RESPONSE");
16967 } 16989 }
16968 16990
@@ -148,7 +148,7 @@ export default class MessageEntrance extends Emiter { @@ -148,7 +148,7 @@ export default class MessageEntrance extends Emiter {
148 _init(_param,_onSuccess,_mcuErrorCallBack){ 148 _init(_param,_onSuccess,_mcuErrorCallBack){
149 _initSuccessCallBackFun=_onSuccess; 149 _initSuccessCallBackFun=_onSuccess;
150 _mcuErrorCallBackFun=_mcuErrorCallBack; 150 _mcuErrorCallBackFun=_mcuErrorCallBack;
151 - //{"meetingNumber":"1653304953","portal":"112.126.80.182:80","userRole":"normal","userId":0} 151 + //{"classId":"1653304953","portal":"112.126.80.182:80","userRole":"normal","userId":0}
152 //判断传入的参数是否存在 152 //判断传入的参数是否存在
153 if(_param==null||EngineUtils.isEmptyObject(_param)||_onSuccess==null||_mcuErrorCallBack==null){ 153 if(_param==null||EngineUtils.isEmptyObject(_param)||_onSuccess==null||_mcuErrorCallBack==null){
154 loger.error('init初始化失败,参数错误'); 154 loger.error('init初始化失败,参数错误');
@@ -156,21 +156,21 @@ export default class MessageEntrance extends Emiter { @@ -156,21 +156,21 @@ export default class MessageEntrance extends Emiter {
156 return ; 156 return ;
157 } 157 }
158 //判断必要的参数字段值 158 //判断必要的参数字段值
159 - if(_param.meetingNumber==null||isNaN(_param.meetingNumber)||_param.portal==null||_param.portal==""){ 159 + if(_param.classId==null||isNaN(_param.classId)||_param.portal==null||_param.portal==""){
160 loger.error('init初始化失败',_param); 160 loger.error('init初始化失败',_param);
161 this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_CLASS_INIT_PAEAM); 161 this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_CLASS_INIT_PAEAM);
162 return ; 162 return ;
163 } 163 }
164 loger.log('init',_param); 164 loger.log('init',_param);
165 //保存参数 165 //保存参数
166 - GlobalConfig.confId=_param.meetingNumber; 166 + GlobalConfig.classId=_param.classId;
167 GlobalConfig.portal=_param.portal; 167 GlobalConfig.portal=_param.portal;
168 GlobalConfig.userRole=_param.userRole||ApeConsts.normal; 168 GlobalConfig.userRole=_param.userRole||ApeConsts.normal;
169 GlobalConfig.userId=_param.userId||"0"; 169 GlobalConfig.userId=_param.userId||"0";
170 170
171 //获取课堂校验信息 171 //获取课堂校验信息
172 if(_sass){ 172 if(_sass){
173 - _sass.getJoinParams(GlobalConfig.getConfInfo()); 173 + _sass.getJoinParams(GlobalConfig.getClassInfo());
174 } 174 }
175 } 175 }
176 176
@@ -195,7 +195,7 @@ export default class MessageEntrance extends Emiter { @@ -195,7 +195,7 @@ export default class MessageEntrance extends Emiter {
195 195
196 //开始校验 196 //开始校验
197 if(_sass){ 197 if(_sass){
198 - _sass.passwordAndMd5Checking(GlobalConfig.getConfInfo()); 198 + _sass.passwordAndMd5Checking(GlobalConfig.getClassInfo());
199 } 199 }
200 } 200 }
201 // 离开会议 201 // 离开会议
@@ -209,7 +209,7 @@ export default class MessageEntrance extends Emiter { @@ -209,7 +209,7 @@ export default class MessageEntrance extends Emiter {
209 } 209 }
210 } 210 }
211 211
212 - // 用meetingNumber向SASS平台获取入会验证信息成功 212 + // 用classId向SASS平台获取入会验证信息成功
213 _sassInitSuccessHandler(_data) { 213 _sassInitSuccessHandler(_data) {
214 //{"siteId":"h5test","passwordRequired":true,"md5":"de399d5540b3da2fbc1eb0a770d4fd66","code":0,"msType":1} 214 //{"siteId":"h5test","passwordRequired":true,"md5":"de399d5540b3da2fbc1eb0a770d4fd66","code":0,"msType":1}
215 215
@@ -237,7 +237,7 @@ export default class MessageEntrance extends Emiter { @@ -237,7 +237,7 @@ export default class MessageEntrance extends Emiter {
237 //返回给客户端初始化成功的数据 237 //返回给客户端初始化成功的数据
238 let initSuccessCallBackData={}; 238 let initSuccessCallBackData={};
239 initSuccessCallBackData.siteId=GlobalConfig.siteId; 239 initSuccessCallBackData.siteId=GlobalConfig.siteId;
240 - initSuccessCallBackData.meetingNumber=GlobalConfig.confId; 240 + initSuccessCallBackData.classId=GlobalConfig.classId;
241 initSuccessCallBackData.userRole=GlobalConfig.userRole; 241 initSuccessCallBackData.userRole=GlobalConfig.userRole;
242 initSuccessCallBackData.userId=GlobalConfig.userId; 242 initSuccessCallBackData.userId=GlobalConfig.userId;
243 initSuccessCallBackData.passwordRequired=GlobalConfig.passwordRequired; 243 initSuccessCallBackData.passwordRequired=GlobalConfig.passwordRequired;
@@ -247,19 +247,9 @@ export default class MessageEntrance extends Emiter { @@ -247,19 +247,9 @@ export default class MessageEntrance extends Emiter {
247 } 247 }
248 } 248 }
249 249
250 - //// 用meetingNumber向SASS平台获取入会验证信息失败  
251 - //_sassInitFailedHandler(_data) {  
252 - // loger.log('向SASS平台获取入会验证信息失败.');  
253 - // //this._emit(MessageTypes.CLASS_INIT_FAILED);  
254 - // let callBackObj={"code":_data,"message":""};  
255 - // if(_initFailureCallBackFun){  
256 - // _initFailureCallBackFun(callBackObj);  
257 - // }  
258 - //}  
259 -  
260 //使用固定的假数据 250 //使用固定的假数据
261 _setDebugData(_data){ 251 _setDebugData(_data){
262 - loger.log("setDebugData "+_data); 252 + //loger.log("setDebugData "+_data);
263 //GlobalConfig.setDebugData(_data); 253 //GlobalConfig.setDebugData(_data);
264 } 254 }
265 255
@@ -291,7 +281,7 @@ export default class MessageEntrance extends Emiter { @@ -291,7 +281,7 @@ export default class MessageEntrance extends Emiter {
291 281
292 loger.log('加入底层MCU会议.'); 282 loger.log('加入底层MCU会议.');
293 if(_mcu){ 283 if(_mcu){
294 - _mcu.joinMCU(GlobalConfig.getConfInfo()); 284 + _mcu.joinMCU(GlobalConfig.getClassInfo());
295 } 285 }
296 } 286 }
297 287
@@ -320,13 +310,14 @@ export default class MessageEntrance extends Emiter { @@ -320,13 +310,14 @@ export default class MessageEntrance extends Emiter {
320 "endcount": 1 310 "endcount": 1
321 }*/ 311 }*/
322 GlobalConfig.setClassDetail=_data; 312 GlobalConfig.setClassDetail=_data;
  313 +
323 } 314 }
324 315
325 //获取会议所有参数 api/meeting/detail.do? flash中的接口文件是 getMeetingParam.do 316 //获取会议所有参数 api/meeting/detail.do? flash中的接口文件是 getMeetingParam.do
326 _h5SassGetMeetingParaSuccessHandler(_data){ 317 _h5SassGetMeetingParaSuccessHandler(_data){
327 loger.log('获取api/meeting/detail.do完成.'); 318 loger.log('获取api/meeting/detail.do完成.');
328 - console.log(_data.docListPrepare);  
329 - console.log(_data.mcuList); 319 + //console.log(_data.docListPrepare);
  320 + //console.log(_data.mcuList);
330 //包含整个会议最全的信息,储存数据 321 //包含整个会议最全的信息,储存数据
331 if(_data){ 322 if(_data){
332 GlobalConfig.setDocListPrepare(_data.docListPrepare); //提前上传的文档列表 323 GlobalConfig.setDocListPrepare(_data.docListPrepare); //提前上传的文档列表
@@ -355,13 +346,13 @@ export default class MessageEntrance extends Emiter { @@ -355,13 +346,13 @@ export default class MessageEntrance extends Emiter {
355 GlobalConfig.MCUServerIP=_data.MCUServerIP; 346 GlobalConfig.MCUServerIP=_data.MCUServerIP;
356 GlobalConfig.MCUServerPort=_data.MCUServerPort; 347 GlobalConfig.MCUServerPort=_data.MCUServerPort;
357 //GlobalConfig.classRole=_data.classRole; 348 //GlobalConfig.classRole=_data.classRole;
358 - GlobalConfig.confId=_data.confId; 349 + GlobalConfig.classId=_data.classId;
359 GlobalConfig.h5Module=_data.h5Module; 350 GlobalConfig.h5Module=_data.h5Module;
360 //GlobalConfig.isHost=_data.isHost; 351 //GlobalConfig.isHost=_data.isHost;
361 GlobalConfig.maxAudioChannels=_data.maxAudioChannels; 352 GlobalConfig.maxAudioChannels=_data.maxAudioChannels;
362 GlobalConfig.maxVideoChannels=_data.maxVideoChannels; 353 GlobalConfig.maxVideoChannels=_data.maxVideoChannels;
363 GlobalConfig.maxMediaChannels=_data.maxMediaChannels; 354 GlobalConfig.maxMediaChannels=_data.maxMediaChannels;
364 - GlobalConfig.mcuConfInfo=_data.mcuConfInfo; 355 + GlobalConfig.mcuClassInfo=_data.mcuClassInfo;
365 GlobalConfig.mcuDelay=_data.mcuDelay; 356 GlobalConfig.mcuDelay=_data.mcuDelay;
366 GlobalConfig.md5=_data.md5; 357 GlobalConfig.md5=_data.md5;
367 GlobalConfig.msType=_data.msType; 358 GlobalConfig.msType=_data.msType;
@@ -387,13 +378,13 @@ export default class MessageEntrance extends Emiter { @@ -387,13 +378,13 @@ export default class MessageEntrance extends Emiter {
387 378
388 initSuccessCallBackData.doc=GlobalConfig.doc;//文档服务器地址 379 initSuccessCallBackData.doc=GlobalConfig.doc;//文档服务器地址
389 //initSuccessCallBackData.classRole=GlobalConfig.classRole; 380 //initSuccessCallBackData.classRole=GlobalConfig.classRole;
390 - initSuccessCallBackData.confId=GlobalConfig.confId; 381 + initSuccessCallBackData.classId=GlobalConfig.classId;
391 initSuccessCallBackData.h5Module=GlobalConfig.h5Module; 382 initSuccessCallBackData.h5Module=GlobalConfig.h5Module;
392 initSuccessCallBackData.isHost=GlobalConfig.isHost; 383 initSuccessCallBackData.isHost=GlobalConfig.isHost;
393 initSuccessCallBackData.maxAudioChannels=GlobalConfig.maxAudioChannels; 384 initSuccessCallBackData.maxAudioChannels=GlobalConfig.maxAudioChannels;
394 initSuccessCallBackData.maxVideoChannels=GlobalConfig.maxVideoChannels; 385 initSuccessCallBackData.maxVideoChannels=GlobalConfig.maxVideoChannels;
395 initSuccessCallBackData.maxMediaChannels=GlobalConfig.maxMediaChannels; 386 initSuccessCallBackData.maxMediaChannels=GlobalConfig.maxMediaChannels;
396 - // GlobalConfig.mcuConfInfo=_data.mcuConfInfo; 387 + // GlobalConfig.mcuClassInfo=_data.mcuClassInfo;
397 initSuccessCallBackData.mcuDelay=GlobalConfig.mcuDelay; 388 initSuccessCallBackData.mcuDelay=GlobalConfig.mcuDelay;
398 //GlobalConfig.md5=_data.md5; 389 //GlobalConfig.md5=_data.md5;
399 initSuccessCallBackData.msType=GlobalConfig.msType; 390 initSuccessCallBackData.msType=GlobalConfig.msType;
@@ -411,7 +402,7 @@ export default class MessageEntrance extends Emiter { @@ -411,7 +402,7 @@ export default class MessageEntrance extends Emiter {
411 initSuccessCallBackData.userType=GlobalConfig.userType; 402 initSuccessCallBackData.userType=GlobalConfig.userType;
412 403
413 initSuccessCallBackData.siteId=GlobalConfig.siteId; 404 initSuccessCallBackData.siteId=GlobalConfig.siteId;
414 - initSuccessCallBackData.meetingNumber=GlobalConfig.confId; 405 + initSuccessCallBackData.classId=GlobalConfig.classId;
415 initSuccessCallBackData.userRole=GlobalConfig.userRole; 406 initSuccessCallBackData.userRole=GlobalConfig.userRole;
416 initSuccessCallBackData.userId=GlobalConfig.userId; 407 initSuccessCallBackData.userId=GlobalConfig.userId;
417 initSuccessCallBackData.passwordRequired=GlobalConfig.passwordRequired; 408 initSuccessCallBackData.passwordRequired=GlobalConfig.passwordRequired;
@@ -31,9 +31,32 @@ class GlobalConfig { @@ -31,9 +31,32 @@ class GlobalConfig {
31 } 31 }
32 static setClassDetail(_data){ 32 static setClassDetail(_data){
33 this.classDetail=_data; 33 this.classDetail=_data;
34 - }  
35 -  
36 - static getConfInfo (){ 34 + this.className=_data.meetingName||"";
  35 + this.classBeginTime=_data.beginTime||"";
  36 + this.classEndTime=_data.endTime||"";
  37 + //
  38 + //"cycle": 0,
  39 + // "repeatmonthweekweek": 0,
  40 + // "status": 1,
  41 + // "repeatmonthday": 0,
  42 + // "repeatmode": 0,
  43 + // "beginTime": "2017-02-03 09:00:00",
  44 + // "frequency": 1,
  45 + // "endmode": 0,
  46 + // "meetingContent": "",
  47 + // "endTime": "2017-03-31 11:00:00",
  48 + // "repeatweek": "",
  49 + // "category": "",
  50 + // "finalenddate": "",
  51 + // "repeatday": 0,
  52 + // "meetingName": "mcu1",
  53 + // "errorCode": 0,
  54 + // "monthType": 0,
  55 + // "repeatmonthweekday": 0,
  56 + // "endcount": 1
  57 + }
  58 +
  59 + static getClassInfo (){
37 if(this.isDebug){ 60 if(this.isDebug){
38 61
39 //这几个属性是sass验证完成之后返回的,启动MCU的时候需要 62 //这几个属性是sass验证完成之后返回的,启动MCU的时候需要
@@ -47,7 +70,8 @@ class GlobalConfig { @@ -47,7 +70,8 @@ class GlobalConfig {
47 }else { 70 }else {
48 return{ 71 return{
49 "siteId": this.siteId, 72 "siteId": this.siteId,
50 - "confId": this.confId, 73 + "classId": this.classId,
  74 + "className": this.className,
51 "h5Module": this.h5Module, 75 "h5Module": this.h5Module,
52 "nodeId": this.nodeId, 76 "nodeId": this.nodeId,
53 "topNodeID":this.topNodeID, 77 "topNodeID":this.topNodeID,
@@ -87,9 +111,11 @@ class GlobalConfig { @@ -87,9 +111,11 @@ class GlobalConfig {
87 "classType":this.classType,//课堂类型 111 "classType":this.classType,//课堂类型
88 "classStatus":this.classStatus,//课堂的状态 112 "classStatus":this.classStatus,//课堂的状态
89 "classStartTime":this.classStartTime,//课堂点击开始时间 113 "classStartTime":this.classStartTime,//课堂点击开始时间
90 - "classEndTime":this.classEndTime,//最后一次的时间(点暂停或结束),每次发送数据都获取当前时间戳 114 + "classStopTime":this.classStopTime,//最后一次停止的时间(点暂停或结束),每次发送数据都获取当前时间戳
91 "classTimestamp":this.recordTimestamp,//相对于点开始课堂的时间戳 115 "classTimestamp":this.recordTimestamp,//相对于点开始课堂的时间戳
92 116
  117 + "classBeginTime":this.classBeginTime,//课堂创建的时间
  118 + "classEndTime":this.classEndTime,//课堂结束的时间
93 119
94 "recordStatus":this.recordStatus,//当前录制状态 120 "recordStatus":this.recordStatus,//当前录制状态
95 "recordTimestamp":this.recordTimestamp,//相对于开始录制的时间戳 121 "recordTimestamp":this.recordTimestamp,//相对于开始录制的时间戳
@@ -100,9 +126,7 @@ class GlobalConfig { @@ -100,9 +126,7 @@ class GlobalConfig {
100 } 126 }
101 } 127 }
102 } 128 }
103 - static set classStatusInfo(_param){  
104 129
105 - }  
106 // 判断自己是否主持人角色 130 // 判断自己是否主持人角色
107 static get isHost(){ 131 static get isHost(){
108 if(this.userRole ==ApeConsts.host){ 132 if(this.userRole ==ApeConsts.host){
@@ -222,22 +246,6 @@ GlobalConfig.statusCode_2={"code":2,message:"已经加入会议"}; @@ -222,22 +246,6 @@ GlobalConfig.statusCode_2={"code":2,message:"已经加入会议"};
222 GlobalConfig.statusCode_3={"code":3,message:"已经离开会议"}; 246 GlobalConfig.statusCode_3={"code":3,message:"已经离开会议"};
223 GlobalConfig.statusCode_4={"code":4,message:"未知状态"}; 247 GlobalConfig.statusCode_4={"code":4,message:"未知状态"};
224 248
225 -GlobalConfig.siteId="gust";  
226 -GlobalConfig.confId=0;//课堂号=classId=meetingNumber 之后统一修改为classId  
227 -GlobalConfig.nodeId=0;//随机生成  
228 -GlobalConfig.topNodeID=101;//现在固定值,还不知道是做什么用  
229 -GlobalConfig.userRole=ApeConsts.normal;  
230 -GlobalConfig.role=1;  
231 -//GlobalConfig.isHost=false;  
232 -//GlobalConfig.classRole=0;//废弃  
233 -  
234 -GlobalConfig.userId=0;  
235 -GlobalConfig.userName="";  
236 -  
237 -GlobalConfig.password="";  
238 -GlobalConfig.userType=8;  
239 -GlobalConfig.h5Module=0;  
240 -GlobalConfig.passwordRequired=false;  
241 GlobalConfig.md5=""; 249 GlobalConfig.md5="";
242 GlobalConfig.msType=1; 250 GlobalConfig.msType=1;
243 GlobalConfig.mcuDelay=3000;//默认的延迟时间 251 GlobalConfig.mcuDelay=3000;//默认的延迟时间
@@ -256,11 +264,30 @@ GlobalConfig.deBugData={}; @@ -256,11 +264,30 @@ GlobalConfig.deBugData={};
256 GlobalConfig.deviceType=-1; //设备类型 0:电脑 1:安卓 2:ios -1未知 264 GlobalConfig.deviceType=-1; //设备类型 0:电脑 1:安卓 2:ios -1未知
257 GlobalConfig.userIP="";//用户当前IP 265 GlobalConfig.userIP="";//用户当前IP
258 266
  267 +GlobalConfig.userId=0;
  268 +GlobalConfig.userName="";
  269 +GlobalConfig.nodeId=0;//随机生成
  270 +GlobalConfig.passwordRequired=false;
  271 +GlobalConfig.password="";
  272 +GlobalConfig.userType=8;
  273 +GlobalConfig.userRole=ApeConsts.normal;//用户的身份,5种类型:
  274 +GlobalConfig.role=ApeConsts.NR_NORMAL;//课堂角色身份
  275 +
  276 +GlobalConfig.h5Module=0;
  277 +GlobalConfig.siteId="gust";
  278 +
  279 +
  280 +GlobalConfig.topNodeID=101;//现在固定值,还不知道是做什么用
  281 +
259 GlobalConfig.className= ""; // 课程名称 282 GlobalConfig.className= ""; // 课程名称
260 -GlobalConfig.classId= ""; // 课程号 283 +GlobalConfig.classId=0;//课堂号=classId=meetingNumber 之后统一修改为classId
261 GlobalConfig.classType=ApeConsts.CLASS_TYPE_INTERACT;//1:互动课堂,2:直播课堂 284 GlobalConfig.classType=ApeConsts.CLASS_TYPE_INTERACT;//1:互动课堂,2:直播课堂
262 GlobalConfig.classStatus=ApeConsts.CLASS_STATUS_WAIT;// 0;//课堂还未开始 1;//直播中 2 //课间休息 3已经停止 285 GlobalConfig.classStatus=ApeConsts.CLASS_STATUS_WAIT;// 0;//课堂还未开始 1;//直播中 2 //课间休息 3已经停止
  286 +GlobalConfig.classStartTime="";//课堂点击开始时间
  287 +GlobalConfig.classStopTime="";//最后一次停止的时间(点暂停或结束),每次发送数据都获取当前时间戳
263 288
  289 +GlobalConfig.classBeginTime="";//课堂创建的时间
  290 +GlobalConfig.classEndTime="";//课堂结束的时间
264 291
265 GlobalConfig.recordStartTime= ""; 292 GlobalConfig.recordStartTime= "";
266 GlobalConfig.recordStartTimestam = ""; 293 GlobalConfig.recordStartTimestam = "";
@@ -14,15 +14,15 @@ class Sass extends Emiter { @@ -14,15 +14,15 @@ class Sass extends Emiter {
14 14
15 //Sass 接口 15 //Sass 接口
16 //----1.校验之前的接口----- 16 //----1.校验之前的接口-----
17 - //getJoinParams 获取课堂校验信息 let url = `http://${_initInfo.portal}/3m/api/meeting/joinParams.do?meetingNumber=${_initInfo.confId}&userID=${_initInfo.userId}`; 17 + //getJoinParams 获取课堂校验信息 let url = `http://${_initInfo.portal}/3m/api/meeting/joinParams.do?meetingNumber=${_initInfo.classId}&userID=${_initInfo.userId}`;
18 18
19 //-----2.开始校验,如果有密码先校验密码,否则直接开始MD5验证----- 19 //-----2.开始校验,如果有密码先校验密码,否则直接开始MD5验证-----
20 - //sendPWDChecking入会密码校验 let url = `http://${confInfo.portal}/3m/getCheckMeetinig.do?siteId=${confInfo.siteId}&classId=${confInfo.confId}&password=${confInfo.password}`;  
21 - //sendMD5Checking MD5校验(发起入会) let url = `http://${confInfo.portal}/3m/meeting/md5CheckMeeting.do?siteId=${confInfo.siteId}&meetingNumber=${confInfo.confId}&userId=${confInfo.userId}&userName=${confInfo.userName}&userType=${confInfo.userType}&passwordRequired=${confInfo.passwordRequired}&md5=${confInfo.md5}`; 20 + //sendPWDChecking入会密码校验 let url = `http://${classInfo.portal}/3m/getCheckMeetinig.do?siteId=${classInfo.siteId}&classId=${classInfo.classId}&password=${classInfo.password}`;
  21 + //sendMD5Checking MD5校验(发起入会) let url = `http://${classInfo.portal}/3m/meeting/md5CheckMeeting.do?siteId=${classInfo.siteId}&meetingNumber=${classInfo.classId}&userId=${classInfo.userId}&userName=${classInfo.userName}&userType=${classInfo.userType}&passwordRequired=${classInfo.passwordRequired}&md5=${classInfo.md5}`;
22 22
23 //----3.验证完成后获取------ 23 //----3.验证完成后获取------
24 - //getClassDetail 获取会议详情 let url = `http://${confInfo.portal}/3m/meeting/getClassH5.do?classNumber=${confInfo.confId}`;  
25 - //getMeetingParam 获取会议最全参数集合 let url = `http://${confInfo.portal}/3m/api/meeting/detail.do?meetingNumber=${confInfo.confId}&timestamp=${timestamp}&authId=${authId}`; 24 + //getClassDetail 获取会议详情 let url = `http://${classInfo.portal}/3m/meeting/getClassH5.do?classNumber=${classInfo.classId}`;
  25 + //getMeetingParam 获取会议最全参数集合 let url = `http://${classInfo.portal}/3m/api/meeting/detail.do?meetingNumber=${classInfo.classId}&timestamp=${timestamp}&authId=${authId}`;
26 26
27 27
28 //Sass获取课堂校验信息 28 //Sass获取课堂校验信息
@@ -47,7 +47,7 @@ class Sass extends Emiter { @@ -47,7 +47,7 @@ class Sass extends Emiter {
47 md5 String 用于后续加入课堂验证 47 md5 String 用于后续加入课堂验证
48 msType int 媒体服务器类型 48 msType int 媒体服务器类型
49 */ 49 */
50 - let url = `http://${_initInfo.portal}/3m/api/meeting/joinParams.do?meetingNumber=${_initInfo.confId}&userID=${_initInfo.userId}`; 50 + let url = `http://${_initInfo.portal}/3m/api/meeting/joinParams.do?meetingNumber=${_initInfo.classId}&userID=${_initInfo.userId}`;
51 loger.log('Sass获取课堂校验信息.', url); 51 loger.log('Sass获取课堂校验信息.', url);
52 fetch(url, { 52 fetch(url, {
53 timeout: 5000 53 timeout: 5000
@@ -107,7 +107,7 @@ class Sass extends Emiter { @@ -107,7 +107,7 @@ class Sass extends Emiter {
107 107
108 // 入会密码校验 108 // 入会密码校验
109 sendPWDChecking() { 109 sendPWDChecking() {
110 - //let url = `http://${confInfo.portal}/3m/getCheckMeetinig.do?siteId=${confInfo.siteId}&classId=${confInfo.confId}&password=${confInfo.password}`; 110 + //let url = `http://${classInfo.portal}/3m/getCheckMeetinig.do?siteId=${classInfo.siteId}&classId=${classInfo.classId}&password=${classInfo.password}`;
111 111
112 /* 112 /*
113 /3m/api/meeting/signIn.do 113 /3m/api/meeting/signIn.do
@@ -123,7 +123,7 @@ class Sass extends Emiter { @@ -123,7 +123,7 @@ class Sass extends Emiter {
123 isTeacher=1 123 isTeacher=1
124 } 124 }
125 125
126 - let url = `http://${confInfo.portal}/3m/api/meeting/signIn.do?siteId=${confInfo.siteId}&classId=${confInfo.confId}&isTeacher=${isTeacher}&password=${confInfo.password}`; 126 + let url = `http://${confInfo.portal}/3m/api/meeting/signIn.do?siteId=${confInfo.siteId}&classId=${confInfo.classId}&isTeacher=${isTeacher}&password=${confInfo.password}`;
127 loger.log('会议密码校验', url); 127 loger.log('会议密码校验', url);
128 fetch(url, { 128 fetch(url, {
129 timeout: 5000 129 timeout: 5000
@@ -160,7 +160,7 @@ class Sass extends Emiter { @@ -160,7 +160,7 @@ class Sass extends Emiter {
160 160
161 // 发起入会 161 // 发起入会
162 sendMD5Checking() { 162 sendMD5Checking() {
163 - let url = `http://${confInfo.portal}/3m/meeting/md5CheckMeeting.do?siteId=${confInfo.siteId}&meetingNumber=${confInfo.confId}&userId=${confInfo.userId}&userName=${confInfo.userName}&userType=${confInfo.userType}&nopassword=${confInfo.passwordRequired}&md5=${confInfo.md5}`; 163 + let url = `http://${confInfo.portal}/3m/meeting/md5CheckMeeting.do?siteId=${confInfo.siteId}&meetingNumber=${confInfo.classId}&userId=${confInfo.userId}&userName=${confInfo.userName}&userType=${confInfo.userType}&nopassword=${confInfo.passwordRequired}&md5=${confInfo.md5}`;
164 loger.log('H5SassMD5校验', url); 164 loger.log('H5SassMD5校验', url);
165 fetch(url, { 165 fetch(url, {
166 timeout: 5000 166 timeout: 5000
@@ -207,7 +207,7 @@ class Sass extends Emiter { @@ -207,7 +207,7 @@ class Sass extends Emiter {
207 207
208 // 获取会议详情 208 // 获取会议详情
209 getClassDetail() { 209 getClassDetail() {
210 - let url = `http://${confInfo.portal}/3m/meeting/getClassH5.do?classNumber=${confInfo.confId}`; 210 + let url = `http://${confInfo.portal}/3m/meeting/getClassH5.do?classNumber=${confInfo.classId}`;
211 loger.log('Sass获取Class详情.', url); 211 loger.log('Sass获取Class详情.', url);
212 fetch(url, { 212 fetch(url, {
213 timeout: 5000 213 timeout: 5000
@@ -252,11 +252,11 @@ class Sass extends Emiter { @@ -252,11 +252,11 @@ class Sass extends Emiter {
252 3 没有对应的站点 252 3 没有对应的站点
253 4 站点已过期 253 4 站点已过期
254 siteId String 站点号 254 siteId String 站点号
255 - meetingNumber String 课堂号 255 + meetingNumber String 课堂号 对应的是classId
256 */ 256 */
257 var timestamp=new Date().getTime(); 257 var timestamp=new Date().getTime();
258 - var authId=MD5(confInfo.confId+""+timestamp);//课堂号+时间戳 的字符串,转成MD5  
259 - let url = `http://${confInfo.portal}/3m/api/meeting/detail.do?meetingNumber=${confInfo.confId}&timestamp=${timestamp}&authId=${authId}`; 258 + var authId=MD5(confInfo.classId+""+timestamp);//课堂号+时间戳 的字符串,转成MD5
  259 + let url = `http://${confInfo.portal}/3m/api/meeting/detail.do?meetingNumber=${confInfo.classId}&timestamp=${timestamp}&authId=${authId}`;
260 loger.log('H5Sass获取getMeetingParam ', url); 260 loger.log('H5Sass获取getMeetingParam ', url);
261 fetch(url, { 261 fetch(url, {
262 timeout: 5000 262 timeout: 5000
@@ -39,7 +39,7 @@ export default class Ape extends Emiter { @@ -39,7 +39,7 @@ export default class Ape extends Emiter {
39 this._session_tag = session_tag; 39 this._session_tag = session_tag;
40 this._session_channels = {}; 40 this._session_channels = {};
41 this._adapter_pdu = new pdu['RCAdapterPdu']; 41 this._adapter_pdu = new pdu['RCAdapterPdu'];
42 - this._confInfo = null; 42 + this._classInfo = null;
43 this._rCArrayBufferUtil = ArrayBufferUtil; 43 this._rCArrayBufferUtil = ArrayBufferUtil;
44 this._apeDelayed = false; 44 this._apeDelayed = false;
45 this._apeDelayedMsgs = []; 45 this._apeDelayedMsgs = [];
@@ -64,7 +64,7 @@ export default class Ape extends Emiter { @@ -64,7 +64,7 @@ export default class Ape extends Emiter {
64 64
65 // 消息处理 65 // 消息处理
66 _pduMessageHandler(regBuffer) { 66 _pduMessageHandler(regBuffer) {
67 - console.log("RCPDU_REG_ADAPTER==========================================this._apeDelayed",this._apeDelayed,this._confInfo['mcuDelay']); 67 + loger.log("RCPDU_REG_ADAPTER==============================");
68 if (this._apeDelayed) { 68 if (this._apeDelayed) {
69 // this._apeDelayedMsgs.push(regBuffer); 69 // this._apeDelayedMsgs.push(regBuffer);
70 // this._apeDelayedStart(); 70 // this._apeDelayedStart();
@@ -78,7 +78,7 @@ export default class Ape extends Emiter { @@ -78,7 +78,7 @@ export default class Ape extends Emiter {
78 78
79 // _apeDelayedStart() { 79 // _apeDelayedStart() {
80 // if (this._apeDelayed && !this._apeDelayedTimer) { 80 // if (this._apeDelayed && !this._apeDelayedTimer) {
81 - // this._apeDelayedTimer = setInterval(this._delayedMsgHandler.bind(this), this._confInfo['mcuDelay'] || 10000); 81 + // this._apeDelayedTimer = setInterval(this._delayedMsgHandler.bind(this), this._classInfo['mcuDelay'] || 10000);
82 // } 82 // }
83 // } 83 // }
84 84
@@ -240,7 +240,7 @@ export default class Ape extends Emiter { @@ -240,7 +240,7 @@ export default class Ape extends Emiter {
240 } 240 }
241 241
242 // 依赖的会议创建完毕 - 发起Ape加入 242 // 依赖的会议创建完毕 - 发起Ape加入
243 - _mcuConferenceJoinSuccessHandler(confInfo) { 243 + _mcuConferenceJoinSuccessHandler(_data) {
244 loger.log('创建Ape->', 244 loger.log('创建Ape->',
245 'SessionId', 245 'SessionId',
246 this._session_id, 246 this._session_id,
@@ -250,7 +250,8 @@ export default class Ape extends Emiter { @@ -250,7 +250,8 @@ export default class Ape extends Emiter {
250 this._session_tag); 250 this._session_tag);
251 251
252 // 会议依赖底层会议信息 252 // 会议依赖底层会议信息
253 - this._confInfo = confInfo; 253 + //this._classInfo = classInfo;
  254 + this._classInfo = GlobalConfig.getClassInfo();
254 255
255 var joinSessionPdu = new pdu['RCSessionJoinRequestPdu']; 256 var joinSessionPdu = new pdu['RCSessionJoinRequestPdu'];
256 joinSessionPdu.id = this._session_id; 257 joinSessionPdu.id = this._session_id;
@@ -260,7 +261,7 @@ export default class Ape extends Emiter { @@ -260,7 +261,7 @@ export default class Ape extends Emiter {
260 this.sendUniform(joinSessionPdu, true); 261 this.sendUniform(joinSessionPdu, true);
261 262
262 var joinChannelPdu = new pdu['RCChannelJoinRequestPdu']; 263 var joinChannelPdu = new pdu['RCChannelJoinRequestPdu'];
263 - joinChannelPdu.initiator = this.mcu.confInfo.nodeId; 264 + joinChannelPdu.initiator = this.mcu.classInfo.nodeId;
264 joinChannelPdu.channelId = this._session_id; 265 joinChannelPdu.channelId = this._session_id;
265 this.send(joinChannelPdu); 266 this.send(joinChannelPdu);
266 } 267 }
@@ -313,14 +314,14 @@ export default class Ape extends Emiter { @@ -313,14 +314,14 @@ export default class Ape extends Emiter {
313 } 314 }
314 let normalPdu = pdu.create_normal_pdu( 315 let normalPdu = pdu.create_normal_pdu(
315 appPdu.type, 316 appPdu.type,
316 - this._confInfo.nodeId,  
317 - this._confInfo.confId, 317 + this._classInfo.nodeId,
  318 + this._classInfo.classId,
318 this._session_id, 319 this._session_id,
319 this._channel_id, 320 this._channel_id,
320 true, 321 true,
321 true, 322 true,
322 PduConsts.DP_TOP, 323 PduConsts.DP_TOP,
323 - this._confInfo.topNodeID, 324 + this._classInfo.topNodeID,
324 PduConsts.SEG_ONCE 325 PduConsts.SEG_ONCE
325 ); 326 );
326 normalPdu.data = appPdu.toArrayBuffer(); 327 normalPdu.data = appPdu.toArrayBuffer();
@@ -339,13 +340,13 @@ export default class Ape extends Emiter { @@ -339,13 +340,13 @@ export default class Ape extends Emiter {
339 340
340 let uniformPdu = pdu.create_uniform_pdu( 341 let uniformPdu = pdu.create_uniform_pdu(
341 appPdu.type, 342 appPdu.type,
342 - this._confInfo.nodeId,  
343 - this._confInfo.confId, 343 + this._classInfo.nodeId,
  344 + this._classInfo.classId,
344 this._session_id, 345 this._session_id,
345 top ? ApeConsts.BROADCAST_CHANNEL_ID : this._channel_id, 346 top ? ApeConsts.BROADCAST_CHANNEL_ID : this._channel_id,
346 true, 347 true,
347 PduConsts.DP_TOP, 348 PduConsts.DP_TOP,
348 - top ? this._confInfo.topNodeID : (appPdu.peer || 0), 349 + top ? this._classInfo.topNodeID : (appPdu.peer || 0),
349 PduConsts.SEG_ONCE 350 PduConsts.SEG_ONCE
350 ); 351 );
351 uniformPdu.data = appPdu.toArrayBuffer(); 352 uniformPdu.data = appPdu.toArrayBuffer();
@@ -363,8 +364,8 @@ export default class Ape extends Emiter { @@ -363,8 +364,8 @@ export default class Ape extends Emiter {
363 364
364 let uniformPdu = pdu.create_uniform_pdu( 365 let uniformPdu = pdu.create_uniform_pdu(
365 appPdu.type, 366 appPdu.type,
366 - this._confInfo.nodeId,  
367 - this._confInfo.confId, 367 + this._classInfo.nodeId,
  368 + this._classInfo.classId,
368 this._session_id, 369 this._session_id,
369 top ? ApeConsts.BROADCAST_CHANNEL_ID : this._channel_id, 370 top ? ApeConsts.BROADCAST_CHANNEL_ID : this._channel_id,
370 true, 371 true,
@@ -39,7 +39,7 @@ class ChatApe extends Ape { @@ -39,7 +39,7 @@ class ChatApe extends Ape {
39 } 39 }
40 40
41 sendChatMsg(_messageInfo) { 41 sendChatMsg(_messageInfo) {
42 - if(this._confInfo===null||EngineUtils.isEmptyObject(this._confInfo)){ 42 + if(this._classInfo===null||EngineUtils.isEmptyObject(this._classInfo)){
43 loger.log('不能发送聊天消息.McuClient还未初始化数据!'); 43 loger.log('不能发送聊天消息.McuClient还未初始化数据!');
44 if(GlobalConfig.getCurrentStatus().code==0||GlobalConfig.getCurrentStatus().code==1){ 44 if(GlobalConfig.getCurrentStatus().code==0||GlobalConfig.getCurrentStatus().code==1){
45 this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_APE_SEND_FAILED_NO_JOIN); 45 this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_APE_SEND_FAILED_NO_JOIN);
@@ -53,12 +53,12 @@ class ChatApe extends Ape { @@ -53,12 +53,12 @@ class ChatApe extends Ape {
53 53
54 let chatSendPdu = new pdu['RCChatSendDataRequestPdu']; 54 let chatSendPdu = new pdu['RCChatSendDataRequestPdu'];
55 chatSendPdu.type = pdu.RCPDU_CHAT_SEND_DATA_REQUEST; 55 chatSendPdu.type = pdu.RCPDU_CHAT_SEND_DATA_REQUEST;
56 - chatSendPdu.initiator = this._confInfo.nodeId;//发起人 56 + chatSendPdu.initiator = this._classInfo.nodeId;//发起人
57 chatSendPdu.peer = parseInt(_messageInfo.to);//发送给谁,公聊的时候是0,私聊的时候是指定的用户id 57 chatSendPdu.peer = parseInt(_messageInfo.to);//发送给谁,公聊的时候是0,私聊的时候是指定的用户id
58 58
59 chatSendPdu.userData = this._rCArrayBufferUtil.strToUint8Array("h5" + _messageInfo.message); 59 chatSendPdu.userData = this._rCArrayBufferUtil.strToUint8Array("h5" + _messageInfo.message);
60 - chatSendPdu.fromName = this._rCArrayBufferUtil.strToUint8Array("h5" + this._confInfo.userName);  
61 - chatSendPdu.fromRole = this._confInfo.userRole;// classRole已经废弃 60 + chatSendPdu.fromName = this._rCArrayBufferUtil.strToUint8Array("h5" + this._classInfo.userName);
  61 + chatSendPdu.fromRole = this._classInfo.userRole;// classRole已经废弃
62 chatSendPdu.isPublic = true; 62 chatSendPdu.isPublic = true;
63 // if (!(chatSendPdu.isPublic || 0 === chatSendPdu.peer)) { 63 // if (!(chatSendPdu.isPublic || 0 === chatSendPdu.peer)) {
64 if (!chatSendPdu && 0!=chatSendPdu.peer) { 64 if (!chatSendPdu && 0!=chatSendPdu.peer) {
@@ -66,8 +66,8 @@ class ConferApe extends Ape { @@ -66,8 +66,8 @@ class ConferApe extends Ape {
66 66
67 } 67 }
68 68
69 - _joinSessionHandler(confInfo) {  
70 - let nodeInfoRecordPdu = this.mcu.mcuConfInfo.self; 69 + _joinSessionHandler(_data) {
  70 + let nodeInfoRecordPdu = this.mcu.mcuClassInfo.self;
71 loger.log("_joinSessionHandler nodeInfoRecordPdu=",nodeInfoRecordPdu); 71 loger.log("_joinSessionHandler nodeInfoRecordPdu=",nodeInfoRecordPdu);
72 let userDataPdu = new pdu['RCNodeInfoUserDataPdu']; 72 let userDataPdu = new pdu['RCNodeInfoUserDataPdu'];
73 userDataPdu.qq = ''; 73 userDataPdu.qq = '';
@@ -75,7 +75,7 @@ class ConferApe extends Ape { @@ -75,7 +75,7 @@ class ConferApe extends Ape {
75 userDataPdu.mobile = ''; 75 userDataPdu.mobile = '';
76 76
77 nodeInfoRecordPdu.userData = userDataPdu.toArrayBuffer(); 77 nodeInfoRecordPdu.userData = userDataPdu.toArrayBuffer();
78 - nodeInfoRecordPdu.deviceType = 3; 78 + nodeInfoRecordPdu.deviceType = 3;//设备类型
79 79
80 let item = new pdu['RCRegistryRosterItemPdu']; 80 let item = new pdu['RCRegistryRosterItemPdu'];
81 item.nodeId = nodeInfoRecordPdu.nodeId; 81 item.nodeId = nodeInfoRecordPdu.nodeId;
@@ -105,7 +105,7 @@ class ConferApe extends Ape { @@ -105,7 +105,7 @@ class ConferApe extends Ape {
105 105
106 //主动离开会议,发送通知到服务器 106 //主动离开会议,发送通知到服务器
107 leaveClass(){ 107 leaveClass(){
108 - let nodeInfoRecordPdu = this.mcu.mcuConfInfo.self; 108 + let nodeInfoRecordPdu = this.mcu.mcuClassInfo.self;
109 let userDataPdu = new pdu['RCNodeInfoUserDataPdu']; 109 let userDataPdu = new pdu['RCNodeInfoUserDataPdu'];
110 userDataPdu.qq = ''; 110 userDataPdu.qq = '';
111 userDataPdu.skype = ''; 111 userDataPdu.skype = '';
@@ -52,7 +52,7 @@ class DocApe extends Ape { @@ -52,7 +52,7 @@ class DocApe extends Ape {
52 //判断文档是否已经存在,每个文档都有唯一的docId,如果已经同步的文档中存在相同的docId就不需要再同步 52 //判断文档是否已经存在,每个文档都有唯一的docId,如果已经同步的文档中存在相同的docId就不需要再同步
53 if(this.checkDocId(paramInfo.docId)){ 53 if(this.checkDocId(paramInfo.docId)){
54 //文档已经存在相同的docId,不需要同步上传 54 //文档已经存在相同的docId,不需要同步上传
55 - loger.warn('documentUpload 已经存在相同的docId,不需要上传'); 55 + loger.warn('documentUpload 文档的docId不无效或已经存在相同的docId,不需要上传');
56 return; 56 return;
57 } 57 }
58 58
@@ -111,10 +111,10 @@ class VideoChat extends Ape { @@ -111,10 +111,10 @@ class VideoChat extends Ape {
111 case ApeConsts.CGS_OPENNED: 111 case ApeConsts.CGS_OPENNED:
112 this.activeChannelId = videoChannelInfo.channelId; 112 this.activeChannelId = videoChannelInfo.channelId;
113 // AMS 113 // AMS
114 - if (this._confInfo.msType === '1') {  
115 - this.activeURL = `http://dazhi.3mang.com/live/${this._confInfo.confId}/${this._confInfo.confId}_${videoChannelInfo.channelId}_flash_cam_mic_aac/playlist.m3u8`; 114 + if (this._classInfo.msType === '1') {
  115 + this.activeURL = `http://dazhi.3mang.com/live/${this._classInfo.classId}/${this._classInfo.classId}_${videoChannelInfo.channelId}_flash_cam_mic_aac/playlist.m3u8`;
116 }else { 116 }else {
117 - this.activeURL = `http://hls.3mang.com/live/${this._confInfo.confId}_${videoChannelInfo.channelId}_flash_cam_mic_aac/playlist.m3u8`; 117 + this.activeURL = `http://hls.3mang.com/live/${this._classInfo.classId}_${videoChannelInfo.channelId}_flash_cam_mic_aac/playlist.m3u8`;
118 } 118 }
119 // 任何人都可以打开流 119 // 任何人都可以打开流
120 this.emitVideoChange(); 120 this.emitVideoChange();
@@ -56,7 +56,7 @@ class WhiteBoardApe extends Ape { @@ -56,7 +56,7 @@ class WhiteBoardApe extends Ape {
56 //this._apeDelayed = true; 56 //this._apeDelayed = true;
57 } 57 }
58 58
59 - _joinSessionHandler(confInfo) { 59 + _joinSessionHandler(_data) {
60 loger.log("RCPDU_SESSION_JOIN_RESPONSE"); 60 loger.log("RCPDU_SESSION_JOIN_RESPONSE");
61 } 61 }
62 62
@@ -37,37 +37,37 @@ class MCU extends Emiter { @@ -37,37 +37,37 @@ class MCU extends Emiter {
37 37
38 //MCU-发送加入会议请求 38 //MCU-发送加入会议请求
39 _sendJoinClassRequest(){ 39 _sendJoinClassRequest(){
40 - const confInfo = this.confInfo;  
41 - loger.log('MCU-发送加入会议请求.',confInfo);  
42 -  
43 - var joinRequestPdu = new pdu['RCConferenceJoinRequestPdu'];  
44 - joinRequestPdu.type = 2;  
45 - joinRequestPdu.initiator = confInfo.nodeId;  
46 - joinRequestPdu.nodeType = PduConsts.NT_TERMINAL; //normal 40 + //const classInfo = this.classInfo;
  41 + loger.log('MCU-发送加入会议请求.',this.classInfo);
47 42
48 var descriptorPdu = new pdu['RCConferenceDescriptorPdu']; 43 var descriptorPdu = new pdu['RCConferenceDescriptorPdu'];
49 - descriptorPdu.id = confInfo.confId;  
50 - descriptorPdu.name = new ArrayBuffer; 44 + descriptorPdu.id = this.classInfo.classId;
  45 + descriptorPdu.name = this.classInfo.className||"";
51 descriptorPdu.mode = 0; 46 descriptorPdu.mode = 0;
52 descriptorPdu.capacity = 1; 47 descriptorPdu.capacity = 1;
53 - joinRequestPdu.confDesc = descriptorPdu; 48 +
  49 + var joinRequestPdu = new pdu['RCConferenceJoinRequestPdu'];
  50 + joinRequestPdu.type = 2;
  51 + joinRequestPdu.initiator = this.classInfo.nodeId;
  52 + joinRequestPdu.nodeType = PduConsts.NT_TERMINAL; //normal
  53 + joinRequestPdu.classDescription = descriptorPdu;// classDescription
54 54
55 let pduMsg = pdu.create_join_class_request_pdu( 55 let pduMsg = pdu.create_join_class_request_pdu(
56 joinRequestPdu.type, 56 joinRequestPdu.type,
57 - confInfo.nodeId,  
58 - confInfo.confId, 57 + this.classInfo.nodeId,
  58 + this.classInfo.classId,
59 0, 59 0,
60 ApeConsts.BROADCAST_CHANNEL_ID, 60 ApeConsts.BROADCAST_CHANNEL_ID,
61 true, 61 true,
62 PduConsts.DP_TOP, 62 PduConsts.DP_TOP,
63 - confInfo.topNodeID, 63 + this.classInfo.topNodeID,
64 PduConsts.SEG_ONCE 64 PduConsts.SEG_ONCE
65 ); 65 );
66 66
67 - pduMsg.set("site", confInfo.siteId);//课堂号对应的名称  
68 - pduMsg.set("userId", confInfo.userId);  
69 - pduMsg.set("userName", Base64.fromByteArray(ArrayBufferUtil.strToUint8Array(confInfo.userName)));  
70 - pduMsg.set("userRole", confInfo.userRole); 67 + pduMsg.set("site", this.classInfo.siteId);//课堂号对应的名称
  68 + pduMsg.set("userId", this.classInfo.userId);
  69 + pduMsg.set("userName", Base64.fromByteArray(ArrayBufferUtil.strToUint8Array(this.classInfo.userName)));
  70 + pduMsg.set("userRole", this.classInfo.userRole);
71 pduMsg.set("deviceType", ""); 71 pduMsg.set("deviceType", "");
72 pduMsg.set("data", joinRequestPdu.toArrayBuffer()); 72 pduMsg.set("data", joinRequestPdu.toArrayBuffer());
73 73
@@ -85,13 +85,13 @@ class MCU extends Emiter { @@ -85,13 +85,13 @@ class MCU extends Emiter {
85 case PduType.RCPDU_CONNECT_PROVIDER_RESPONSE: 85 case PduType.RCPDU_CONNECT_PROVIDER_RESPONSE:
86 //加入会议请求返回数据处理 86 //加入会议请求返回数据处理
87 let joinConfPdu = pdu['RCConferenceJoinResponsePdu'].decode(pduData); 87 let joinConfPdu = pdu['RCConferenceJoinResponsePdu'].decode(pduData);
88 - let pduResultCode = joinConfPdu.get("result"); 88 + let pduResultCode = joinConfPdu.result;
89 loger.warn( 'RCPDU_CONNECT_PROVIDER_RESPONSE ->pduResultCode:'+pduResultCode); 89 loger.warn( 'RCPDU_CONNECT_PROVIDER_RESPONSE ->pduResultCode:'+pduResultCode);
90 switch (pduResultCode) { 90 switch (pduResultCode) {
91 case PduConsts.RET_SUCCESS: 91 case PduConsts.RET_SUCCESS:
92 //加入成功 92 //加入成功
93 - this._updateMCUConfInfoDesc(joinConfPdu.get("confDesc"));  
94 - this._emit(MessageTypes.CLASS_JOIN_SUCCESS, this.confInfo); 93 + this._updateMCUConfInfoDescription(joinConfPdu.classDescription);
  94 + this._emit(MessageTypes.CLASS_JOIN_SUCCESS, this.classInfo);
95 break; 95 break;
96 case PduConsts.RET_FULL_CAPACITY: 96 case PduConsts.RET_FULL_CAPACITY:
97 this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_CLASS_JOIN_FULL); 97 this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_CLASS_JOIN_FULL);
@@ -121,11 +121,15 @@ class MCU extends Emiter { @@ -121,11 +121,15 @@ class MCU extends Emiter {
121 } 121 }
122 } 122 }
123 123
124 - _updateMCUConfInfoDesc(mcuConfDesc) {  
125 - let info = this.mcuConfInfo.info;  
126 - info._conference_name = ArrayBufferUtil.uint8ArrayToStr(mcuConfDesc.name, 0);  
127 - info._capacity = mcuConfDesc.capacity;  
128 - info._mode = mcuConfDesc.mode; 124 + _updateMCUConfInfoDescription(_data) {
  125 + // let _mcuConfDesc=new pdu['RCConferenceDescriptorPdu'].decode(mcuConfDesc);
  126 + loger.log('_updateMCUConfInfoDescription. _mcuConfDesc', _data);
  127 + //let classDescription=new pdu['RCConferenceDescriptorPdu'].decode(_data);
  128 + console.log(_data);
  129 + //let info = this.mcuClassInfo.info;
  130 + //info._conference_name = ArrayBufferUtil.uint8ArrayToStr(mcuConfDesc.name, 0);
  131 + //info._capacity = mcuConfDesc.capacity;
  132 + //info._mode = mcuConfDesc.mode;
129 } 133 }
130 134
131 // MU服务是否连接 135 // MU服务是否连接
@@ -157,34 +161,34 @@ class MCU extends Emiter { @@ -157,34 +161,34 @@ class MCU extends Emiter {
157 } 161 }
158 162
159 // 主动建立MCU连接 163 // 主动建立MCU连接
160 - joinMCU(_confInfo) {  
161 - loger.log('开始建立EverSocket通道.', _confInfo);  
162 - _confInfo.confId = parseInt(_confInfo.confId); // confId 必须整形  
163 - this.confInfo = _confInfo; 164 + joinMCU(_classInfo) {
  165 + loger.log('开始建立EverSocket通道.', _classInfo);
  166 + _classInfo.classId = parseInt(_classInfo.classId); // classId 必须整形
  167 + this.classInfo = _classInfo;
164 // 创建刷新nodeId 168 // 创建刷新nodeId
165 - this.confInfo.nodeId =EngineUtils.creatTimestamp();  
166 - GlobalConfig.nodeId=this.confInfo.nodeId;//这是标识自己身份的id 169 + this.classInfo.nodeId =EngineUtils.creatTimestamp();
  170 + GlobalConfig.nodeId=this.classInfo.nodeId;//这是标识自己身份的id
167 171
168 let nodeInfoRecordPdu = new pdu['RCNodeInfoRecordPdu']; 172 let nodeInfoRecordPdu = new pdu['RCNodeInfoRecordPdu'];
169 - nodeInfoRecordPdu.name = this.confInfo.userName;  
170 - nodeInfoRecordPdu.nodeId = this.confInfo.nodeId;  
171 - nodeInfoRecordPdu.userId = this.confInfo.userId; 173 + nodeInfoRecordPdu.name = this.classInfo.userName;
  174 + nodeInfoRecordPdu.nodeId = this.classInfo.nodeId;
  175 + nodeInfoRecordPdu.userId = this.classInfo.userId;
172 nodeInfoRecordPdu.role = 1; //NR_NORMAL 176 nodeInfoRecordPdu.role = 1; //NR_NORMAL
173 nodeInfoRecordPdu.level = 0; 177 nodeInfoRecordPdu.level = 0;
174 178
175 let conferenceRecord = {}; //RCConferenceRecord_T 179 let conferenceRecord = {}; //RCConferenceRecord_T
176 - conferenceRecord._conference_id = this.confInfo.confId;  
177 - conferenceRecord._top_node_id =this.confInfo.topNodeID; 180 + conferenceRecord._conference_id = this.classInfo.classId;
  181 + conferenceRecord._top_node_id =this.classInfo.topNodeID;
178 182
179 - this.mcuConfInfo = {}; //RCMeetingInfo_T  
180 - this.mcuConfInfo.self = nodeInfoRecordPdu;  
181 - this.mcuConfInfo.info = conferenceRecord; 183 + this.mcuClassInfo = {}; //RCMeetingInfo_T
  184 + this.mcuClassInfo.self = nodeInfoRecordPdu;
  185 + this.mcuClassInfo.info = conferenceRecord;
182 186
183 // 内部mcuConfInfo 187 // 内部mcuConfInfo
184 - this.confInfo.mcuConfInfo = this.mcuConfInfo; 188 + this.classInfo.mcuClassInfo = this.mcuClassInfo;
185 189
186 //开启EverSocket 190 //开启EverSocket
187 - this._everSocket.begin(this.confInfo.MCUServerIP,this.confInfo.MCUServerPort); 191 + this._everSocket.begin(this.classInfo.MCUServerIP,this.classInfo.MCUServerPort);
188 } 192 }
189 } 193 }
190 194
@@ -17,7 +17,7 @@ function create_pdu(type, sub_type, @@ -17,7 +17,7 @@ function create_pdu(type, sub_type,
17 pduMsg.set("type", type); 17 pduMsg.set("type", type);
18 pduMsg.set("subType", sub_type); 18 pduMsg.set("subType", sub_type);
19 pduMsg.set("initiator", initiator); 19 pduMsg.set("initiator", initiator);
20 - pduMsg.set("confId", conference_id); 20 + pduMsg.set("confId", conference_id);//***confId mcu服务用的是这个字段,客户端在其他地方统一为classId
21 pduMsg.set("sessionId", session_id); 21 pduMsg.set("sessionId", session_id);
22 pduMsg.set("channelId", channel_id); 22 pduMsg.set("channelId", channel_id);
23 pduMsg.set("upward", upward); 23 pduMsg.set("upward", upward);
@@ -168,9 +168,8 @@ enum RCPduNodeCategory_E { @@ -168,9 +168,8 @@ enum RCPduNodeCategory_E {
168 168
169 message RCConferenceDescriptorPdu { 169 message RCConferenceDescriptorPdu {
170 required uint32 id = 1; 170 required uint32 id = 1;
171 - required bytes name = 2; 171 + required string name = 2;
172 optional bytes description = 3; 172 optional bytes description = 3;
173 - //optional string net_address = 4;  
174 optional uint32 mode = 4; 173 optional uint32 mode = 4;
175 optional string password = 5; 174 optional string password = 5;
176 optional uint32 capacity = 6; 175 optional uint32 capacity = 6;
@@ -550,20 +549,20 @@ message RCConferenceJoinRequestPdu { @@ -550,20 +549,20 @@ message RCConferenceJoinRequestPdu {
550 required RCPduType_E type = 1 [default = RCPDU_CONFERENCE_JOIN_REQUEST]; 549 required RCPduType_E type = 1 [default = RCPDU_CONFERENCE_JOIN_REQUEST];
551 required uint32 initiator = 2; 550 required uint32 initiator = 2;
552 required RCPduNodeType_E node_type = 3; 551 required RCPduNodeType_E node_type = 3;
553 - required RCConferenceDescriptorPdu conf_desc = 4; 552 + required RCConferenceDescriptorPdu class_description = 4;//conf_desc
554 } 553 }
555 554
556 message RCConferenceJoinResponsePdu { 555 message RCConferenceJoinResponsePdu {
557 optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_JOIN_RESPONSE]; 556 optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_JOIN_RESPONSE];
558 required uint32 conf_id = 2; 557 required uint32 conf_id = 2;
559 required RCPduResult_E result = 3; 558 required RCPduResult_E result = 3;
560 - optional RCConferenceDescriptorPdu conf_desc = 4; 559 + optional RCConferenceDescriptorPdu class_description = 4;
561 } 560 }
562 561
563 message RCConferenceInviteRequestPdu { 562 message RCConferenceInviteRequestPdu {
564 optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_INVITE_REQUEST]; 563 optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_INVITE_REQUEST];
565 required uint32 initiator = 2; 564 required uint32 initiator = 2;
566 - required RCConferenceDescriptorPdu conf_desc = 3; 565 + required RCConferenceDescriptorPdu class_description = 3;
567 } 566 }
568 567
569 message RCConferenceInviteResponsePdu { 568 message RCConferenceInviteResponsePdu {