Guest User

serv.js

a guest
Mar 7th, 2017
562
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 285.32 KB | None | 0 0
  1. define([ 'underscore', 'jquery', 'config/config'], function(_, $, config) {
  2. /**
  3. * Service
  4. * @module service
  5. * @class service
  6. */
  7. var wifiCallbackDestination = window;
  8. var unknownErrorObject = {
  9. errorType : 'UnknownError',
  10. errorId : '123',
  11. errorText : 'UnknownError'
  12. };
  13.  
  14. var isTest = config.IS_TEST;
  15. /*if (isTest) {
  16. $("#buttom-bubble").hide();
  17. }*/
  18. var timerUpdaterEnable = true;
  19. // in Product Env, isTest should be false
  20. /**
  21. * Ajax同步调用
  22. * @method syncRequest
  23. * @param {Object} params json参数对象
  24. * @param {Boolean} isPost 是否为post方法
  25. */
  26. function syncRequest(params, isPost) {
  27. return ajaxRequest(params, null, null, false, isPost);
  28. }
  29.  
  30. /**
  31. * Ajax异步调用
  32. * @method asyncRequest
  33. * @param {Object} params json参数对象
  34. * @param {Function} successCallback 成功回调函数
  35. * @param {Function} errorCallback 失败回调函数
  36. * @param {Boolean} isPost 是否为post方法
  37. */
  38. function asyncRequest(params, successCallback, errorCallback, isPost) {
  39. ajaxRequest(params, successCallback, errorCallback, true, isPost);
  40. }
  41.  
  42. /**
  43. * Ajax异步调用
  44. * @method ajaxRequest
  45. * @param {Object} params json参数对象
  46. * @param {Function} successCallback 成功回调函数
  47. * @param {Function} errorCallback 失败回调函数
  48. * @param {Boolean} async 是否为异步方法
  49. * @param {Boolean} isPost 是否为post方法
  50. */
  51. function ajaxRequest(params, successCallback, errorCallback, async, isPost) {
  52. var result = null;
  53. if(params.isTest){
  54. result = simulate.simulateRequest(params, successCallback, errorCallback, async, isPost);
  55. if (async) {
  56. setTimeout(function() {successCallback(result);}, getRandomInt(120) + 50);
  57. //successCallback(result)
  58. return;
  59. }else{
  60. return result;
  61. }
  62. }
  63. $.ajax({
  64. type : !!isPost ? "POST" : "GET",
  65. url : isPost ? "/goform/goform_set_cmd_process" : params.cmd ? "/goform/goform_get_cmd_process"
  66. : "/goform/goform_set_cmd_process",
  67. data : params,
  68. dataType : "json",
  69. async : !!async,
  70. cache : false,
  71. error : function(data) {
  72. if (async) {
  73. errorCallback(data);
  74. } else if(data.status == 200) {
  75. result = jQuery.parseJSON('(' + data.responseText + ')');
  76. }
  77. },
  78. success : function(data) {
  79. if (async) {
  80. successCallback(data);
  81. } else {
  82. result = data;
  83. }
  84. }
  85. });
  86. if (!async) {
  87. return result;
  88. }
  89. }
  90.  
  91. /**
  92. * doStuff业务处理函数
  93. * @method doStuff
  94. * @param {Object} params json参数对象
  95. * @param {Object} result 错误对象
  96. * @param {Function} prepare 数据准备函数
  97. * @param {Function} dealMethod 结果适配函数
  98. * @param {Object} errorObject 默认错误对象
  99. * @param {Boolean} isPost 是否为post方法
  100. */
  101. function doStuff(args, result, prepare, dealMethod, errorObject, isPost) {
  102. var params = args[0], callback = args[1], errorCallback = args[2];
  103. var objectToReturn;
  104.  
  105. if (result && typeof result.errorType === 'string') {
  106. objectToReturn = $.extend(unknownErrorObject, result);
  107.  
  108. if (!callback) {
  109. // sleep(DelayOnEachCallMillis);
  110. return objectToReturn;
  111. }
  112. doCallback(objectToReturn, callback, errorCallback);
  113. } else {
  114. objectToReturn = $.extend({}, result); // Duplicate it.
  115.  
  116. var requestParams;
  117. if (prepare) {
  118. requestParams = prepare(params, isPost);
  119. } else {
  120. requestParams = params;
  121. }
  122. if (!callback) {
  123. if (requestParams && (requestParams.cmd || requestParams.goformId)) {
  124. var r = syncRequest(requestParams, isPost);
  125. if (dealMethod) {
  126. objectToReturn = $.extend({}, dealMethod(r));
  127. }else{
  128. objectToReturn = r;
  129. }
  130. }
  131. // sleep(DelayOnEachCallMillis);
  132. return objectToReturn;
  133. } else {
  134. if (requestParams && (requestParams.cmd || requestParams.goformId)) {
  135. asyncRequest(requestParams, function(data) {
  136. if (dealMethod) {
  137. objectToReturn = $.extend({}, dealMethod(data));
  138. } else {
  139. objectToReturn = $.extend({}, data);
  140. }
  141. //手动处理callback
  142. if(!requestParams.notCallback){
  143. doCallback(objectToReturn, callback, errorCallback);
  144. }
  145. }, function() {
  146. if (errorObject) {
  147. objectToReturn = $.extend(unknownErrorObject, errorObject);
  148. } else {
  149. objectToReturn = $.extend(unknownErrorObject, {
  150. errorType : 'Unknown'
  151. });
  152. }
  153. doCallback(objectToReturn, callback, errorCallback);
  154. }, isPost);
  155. } else {
  156. doCallback(objectToReturn, callback, errorCallback);
  157. }
  158. }
  159. }
  160. function doCallback(resultToReturn, callback, errorCallback) {
  161. errorCallback = errorCallback ? errorCallback : callback;
  162. if (isErrorObject(resultToReturn)) {
  163. switch (resultToReturn.errorType) {
  164. case 'cellularNetworkError':
  165. case 'deviceError':
  166. case 'wifiConnectionError':
  167. wifiCallbackDestination.receivedNonSpecificError(resultToReturn);
  168. break;
  169. default:
  170. errorCallback(resultToReturn);
  171. }
  172. } else {
  173. callback(resultToReturn);
  174. }
  175. }
  176. }
  177.  
  178. /**
  179. * 获取基本的wifi信息
  180. * @method getWifiSwitch
  181. * @return {Object} wifi JSON 对象
  182. */
  183. function getWifiSwitch() {
  184. return doStuff(arguments, {}, prepare, deal, null, false);
  185.  
  186. function prepare(params, isPost) {
  187. var requestParams = {};
  188. requestParams.isTest = isTest;
  189. requestParams.cmd = "wifi_ap_mode,guest_switch";
  190.  
  191. requestParams.multi_data = 1;
  192. return requestParams;
  193. }
  194.  
  195. function deal(data) {
  196. if (data) {
  197. var result = {
  198. wifi_enable:data.wifi_ap_mode,
  199. multi_ssid_enable:data.guest_switch
  200. };
  201. return result;
  202. } else {
  203. return unknownErrorObject;
  204. }
  205. }
  206. }
  207.  
  208. /**
  209. * 获取基本的wifi信息
  210. * @method getWifiSetting_24G
  211. * @return {Object} wifi JSON 对象
  212. */
  213. function getWifiSetting_24G() {
  214. return doStuff(arguments, {}, prepare, deal, null, false);
  215.  
  216. function prepare(params, isPost) {
  217. var requestParams = {};
  218. requestParams.isTest = isTest;
  219. requestParams.cmd = "wifi_ap_mode,guest_switch,SSID1,SSID2,HideSSID,HideSSID2,NoForwarding,MAX_Access_num,cipher,AuthMode,EncrypType,WPAPSK1_encode," +
  220. "WirelessMode,CountryCode,Channel,wifi_band,wifi_11n_cap,HT_MCS," +
  221. "MAX_Access2_num";
  222.  
  223. requestParams.multi_data = 1;
  224. return requestParams;
  225. }
  226.  
  227. function deal(data) {
  228. if (data) {
  229. var result = {
  230. wifi_enable:data.wifi_ap_mode,
  231. multi_ssid_enable:data.guest_switch,
  232. SSID2:data.SSID2,
  233. //ssid basic setting
  234. AuthMode:data.AuthMode,
  235. SSID:data.SSID1,
  236. broadcast:data.HideSSID,
  237. broadcast2:data.HideSSID2,
  238. apIsolation:data.NoForwarding,
  239. passPhrase: Base64.decode(data.WPAPSK1_encode),
  240. MAX_Access_num:data.MAX_Access_num,
  241. cipher:data.EncrypType == "TKIP"? "0" : data.EncrypType == "AES"? 1 : 2,
  242.  
  243. //ssid advance setting
  244. mode: data.WirelessMode,
  245. countryCode: data.CountryCode,
  246. channel: data.Channel,
  247. rate: data.HT_MCS,
  248. wifiBand: data.wifi_band == 'a' ? 'a' : 'b',
  249. bandwidth: data.wifi_11n_cap,
  250. //others
  251. MAX_Access_num_24GGuest: data.MAX_Access2_num
  252.  
  253. };
  254. return result;
  255. } else {
  256. return unknownErrorObject;
  257. }
  258. }
  259. }
  260.  
  261. /**
  262. * 获取基本的wifi信息
  263. * @method getWifiSetting_5G
  264. * @return {Object} wifi JSON 对象
  265. */
  266. function getWifiSetting_5G() {
  267. return doStuff(arguments, {}, prepare, deal, null, false);
  268.  
  269. function prepare(params, isPost) {
  270. var requestParams = {};
  271. requestParams.isTest = isTest;
  272. requestParams.cmd = "wifi_ap_mode,guest_switch,m_SSID,m_SSID2,m_HideSSID,m_HideSSID2,m_NoForwarding,m_MAX_Access_num,cipher,m_AuthMode,m_EncrypType,m_WPAPSK1_encode," +
  273. "m_WirelessMode,m_CountryCode,m_Channel,m_wifi_band,m_wifi_11n_cap,HT_MCS," +
  274. "m_MAX_Access2_num";
  275.  
  276. requestParams.multi_data = 1;
  277. return requestParams;
  278. }
  279.  
  280. function deal(data) {
  281. if (data) {
  282. var result = {
  283. wifi_enable:data.wifi_ap_mode,
  284. multi_ssid_enable:data.guest_switch,
  285.  
  286. //ssid basic setting
  287. AuthMode:data.m_AuthMode,
  288. SSID:data.m_SSID,
  289. SSID2_5g:data.m_SSID2,
  290. broadcast:data.m_HideSSID,
  291. broadcast2_5g:data.m_HideSSID2,
  292. apIsolation:data.m_NoForwarding,
  293. passPhrase: Base64.decode(data.m_WPAPSK1_encode),
  294. MAX_Access_num:data.m_MAX_Access_num,
  295. cipher:data.m_EncrypType == "TKIP"? "0" : data.m_EncrypType == "AES"? 1 : 2,
  296.  
  297. //ssid advance setting
  298. mode: data.m_WirelessMode,
  299. countryCode: data.m_CountryCode,
  300. channel: data.m_Channel,
  301. rate: data.HT_MCS,
  302. wifiBand: data.m_wifi_band == 'a' ? 'a' : 'b',
  303. bandwidth: data.m_wifi_11n_cap,
  304. //others
  305. MAX_Access_num_5GGuest: data.m_MAX_Access2_num
  306. };
  307. return result;
  308. } else {
  309. return unknownErrorObject;
  310. }
  311. }
  312. }
  313.  
  314. /**
  315. * 获取基本的wifi信息
  316. * @method getWifiSetting_guest
  317. * @return {Object} wifi JSON 对象
  318. */
  319. function getWifiSetting_guest() {
  320. return doStuff(arguments, {}, prepare, deal, null, false);
  321.  
  322. function prepare(params, isPost) {
  323. var requestParams = {};
  324. requestParams.isTest = isTest;
  325. requestParams.cmd = "wifi_ap_mode,guest_switch,SSID2,HideSSID2,NoForwarding2,MAX_Access2_num,cipher,AuthMode2,EncrypType2,WPAPSK2_encode," +
  326. "m_SSID2,m_HideSSID2,m_NoForwarding2,m_MAX_Access2_num,cipher,m_AuthMode2,m_EncrypType2,m_WPAPSK2_encode," +
  327. "MAX_Access_num,m_MAX_Access_num";
  328.  
  329. requestParams.multi_data = 1;
  330. return requestParams;
  331. }
  332.  
  333. function deal(data) {
  334. if (data) {
  335. var result = {
  336. wifi_enable:data.wifi_ap_mode,
  337. multi_ssid_enable:data.guest_switch,
  338.  
  339. //guest ssid 1
  340. AuthMode:data.AuthMode2,
  341. SSID:data.SSID2,
  342. broadcast:data.HideSSID2,
  343. apIsolation:data.NoForwarding2,
  344. passPhrase: Base64.decode(data.WPAPSK2_encode),
  345. MAX_Access_num:data.MAX_Access2_num,
  346. cipher:data.EncrypType2 == "TKIP"? "0" : data.EncrypType2 == "AES"? 1 : 2,
  347.  
  348. //guest ssid 2
  349. AuthMode_5g:data.m_AuthMode2,
  350. SSID_5g:data.m_SSID2,
  351. broadcast_5g:data.m_HideSSID2,
  352. apIsolation_5g:data.m_NoForwarding2,
  353. passPhrase_5g: Base64.decode(data.m_WPAPSK2_encode),
  354. MAX_Access_num_5g:data.m_MAX_Access2_num,
  355. cipher_5g:data.m_EncrypType2 == "TKIP"? "0" : data.m_EncrypType2 == "AES"? 1 : 2,
  356.  
  357. //others
  358. MAX_Access_num_24GMain: data.MAX_Access_num,
  359. MAX_Access_num_5GMain: data.m_MAX_Access_num
  360. };
  361. return result;
  362. } else {
  363. return unknownErrorObject;
  364. }
  365. }
  366. }
  367.  
  368. function getWifiGuestManage() {
  369. return doStuff(arguments, {}, prepare, deal, null, false);
  370.  
  371. function prepare(params, isPost) {
  372. var requestParams = {};
  373. requestParams.isTest = isTest;
  374. requestParams.cmd = "wifi_ap_mode,guest_switch,guest_acl_mode,guest_access_time";
  375.  
  376. requestParams.multi_data = 1;
  377. return requestParams;
  378. }
  379.  
  380. function deal(data) {
  381. if (data) {
  382. var result = {
  383. wifi_enable:data.wifi_ap_mode,
  384. multi_ssid_enable:data.guest_switch,
  385. guestManageSwitch: data.guest_acl_mode,
  386. guestAccessTime: data.guest_access_time
  387. };
  388. return result;
  389. } else {
  390. return unknownErrorObject;
  391. }
  392. }
  393. }
  394.  
  395. function getWifiOptiSetting() {
  396. return doStuff(arguments, {}, prepare, deal, null, false);
  397.  
  398. function prepare(params, isPost) {
  399. var requestParams = {};
  400. requestParams.isTest = isTest;
  401. requestParams.cmd = "wifi_ap_mode,guest_switch,CountryCode,m_CountryCode,wifi_eacs_enable,wifi_eacs_interval,Channel,m_Channel,wifi_dfs_enable";
  402.  
  403. requestParams.multi_data = 1;
  404. return requestParams;
  405. }
  406.  
  407. function deal(data) {
  408. if (data) {
  409. var result = {
  410. wifi_enable:data.wifi_ap_mode,
  411. multi_ssid_enable:data.guest_switch,
  412. countryCode_24g: data.CountryCode,
  413. countryCode_5g: data.m_CountryCode,
  414. wifi_eacs_enable:data.wifi_eacs_enable,
  415. wifi_eacs_interval:data.wifi_eacs_interval,
  416. curChannel24g:data.Channel,
  417. curChannel50g:data.m_Channel,
  418. wifi_dfs_enable:data.wifi_dfs_enable
  419. };
  420. return result;
  421. } else {
  422. return unknownErrorObject;
  423. }
  424. }
  425. }
  426.  
  427. /**
  428. * 设置基本的wifi信息(SSID1)
  429. * @method setWifiBasic_24G(SSID1)
  430. * @param {Object} JSON 参数对象
  431. * @return {Object}
  432. */
  433. function setWifiBasic_24G() {
  434. doStuffAndCheckServerIsOnline(arguments, prepare, deal);
  435.  
  436. function prepare(params) {
  437. var requestParams = {
  438. goformId : "SET_WIFI_SSID1_SETTINGS",
  439. isTest : isTest,
  440. ssid : params.SSID,
  441. broadcastSsidEnabled : params.broadcast,
  442. MAX_Access_num : params.station,
  443. security_mode: params.AuthMode,
  444. cipher: params.cipher,
  445. NoForwarding:params.NoForwarding
  446. };
  447.  
  448. if(params.AuthMode == "WPAPSKWPA2PSK" || params.AuthMode == "WPA2PSK" ) {
  449. requestParams.security_shared_mode = params.cipher;
  450. requestParams.passphrase = config.PASSWORD_ENCODE ?Base64.encode(params.passPhrase): params.passPhrase;
  451. }
  452. else {
  453. requestParams.security_shared_mode = "NONE";
  454. }
  455.  
  456. return requestParams;
  457. }
  458.  
  459. function deal(data) {
  460. if (data) {
  461. return data;
  462. } else {
  463. return unknownErrorObject;
  464. }
  465. }
  466. }
  467. function setWifiBasic_5G() {
  468. doStuffAndCheckServerIsOnline(arguments, prepare, deal);
  469.  
  470. function prepare(params) {
  471. var requestParams = {
  472. goformId : "SET_WIFI_M_SSID1_SETTINGS",
  473. isTest : isTest,
  474. m_SSID : params.SSID,
  475. m_HideSSID : params.broadcast,
  476. m_MAX_Access_num : params.station,
  477. m_AuthMode: params.AuthMode,
  478. cipher: params.cipher,
  479. m_NoForwarding:params.NoForwarding
  480. };
  481.  
  482. if(params.AuthMode == "WPAPSKWPA2PSK" || params.AuthMode == "WPA2PSK" ) {
  483. requestParams.m_EncrypType = params.cipher;
  484. requestParams.m_WPAPSK1 = config.PASSWORD_ENCODE ?Base64.encode(params.passPhrase): params.passPhrase;
  485. }
  486. else {
  487. requestParams.m_EncrypType = "NONE";
  488. }
  489.  
  490. return requestParams;
  491. }
  492.  
  493. function deal(data) {
  494. if (data) {
  495. return data;
  496. } else {
  497. return unknownErrorObject;
  498. }
  499. }
  500. }
  501.  
  502. /**
  503. * 设置基本的wifi信息(SSID2)
  504. * @method setWifiBasic(SSID2)
  505. * @param {Object} JSON 参数对象
  506. * @return {Object}
  507. */
  508. function setWifiBasic4SSID2_24G() {
  509. doStuffAndCheckServerIsOnline(arguments, prepare, deal);
  510.  
  511. function prepare(params) {
  512. var requestParams = {
  513. goformId : "SET_WIFI_SSID2_SETTINGS",
  514. isTest : isTest,
  515. ssid2 : params.m_SSID,
  516. broadcastSsidEnabled2 : params.m_broadcast,
  517. MAX_Access2_num:params.m_station,
  518. AuthMode2: params.m_AuthMode,
  519. cipher: params.m_cipher,
  520. NoForwarding2: params.m_NoForwarding
  521. };
  522.  
  523. if(params.m_AuthMode == "WPAPSKWPA2PSK" || params.m_AuthMode == "WPA2PSK") {
  524. requestParams.EncrypType2 = params.m_cipher;
  525. requestParams.WPAPSK2 = config.PASSWORD_ENCODE ? Base64.encode(params.m_passPhrase) : params.m_passPhrase;
  526. }
  527. else {
  528. requestParams.EncrypType2 = "NONE";
  529. }
  530.  
  531. return requestParams;
  532. }
  533.  
  534. function deal(data) {
  535. if (data) {
  536. return data;
  537. } else {
  538. return unknownErrorObject;
  539. }
  540. }
  541. }
  542.  
  543. function setWifiBasic4SSID2_5G() {
  544. doStuffAndCheckServerIsOnline(arguments, prepare, deal);
  545.  
  546. function prepare(params) {
  547. var requestParams = {
  548. goformId : "SET_WIFI_M_SSID2_SETTINGS",
  549. isTest : isTest,
  550. m_SSID2 : params.m_SSID,
  551. m_HideSSID2 : params.m_broadcast,
  552. m_MAX_Access2_num:params.m_station,
  553. m_AuthMode2: params.m_AuthMode,
  554. cipher: params.m_cipher,
  555. m_NoForwarding2: params.m_NoForwarding
  556. };
  557.  
  558. if(params.m_AuthMode == "WPAPSKWPA2PSK" || params.m_AuthMode == "WPA2PSK") {
  559. requestParams.m_EncrypType2 = params.m_cipher;
  560. requestParams.m_WPAPSK2 = config.PASSWORD_ENCODE ? Base64.encode(params.m_passPhrase) : params.m_passPhrase;
  561. }
  562. else {
  563. requestParams.m_EncrypType2 = "NONE";
  564. }
  565.  
  566. return requestParams;
  567. }
  568.  
  569. function deal(data) {
  570. if (data) {
  571. return data;
  572. } else {
  573. return unknownErrorObject;
  574. }
  575. }
  576. }
  577.  
  578. /**
  579. * 设置基本的wifi信息
  580. * @method setWifiBasic
  581. * @param {Object} JSON 参数对象
  582. * @example
  583. * @return {Object}
  584. */
  585. function setWifiBasicMultiSSIDSwitch() {
  586. doStuffAndCheckServerIsOnline(arguments, prepare, deal);
  587.  
  588. function prepare(params) {
  589. var requestParams = {
  590. goformId : "SET_WIFI_AP_MODE",
  591. isTest : isTest,
  592. guest_switch : params.m_ssid_enable,
  593. wifi_ap_mode : params.wifiEnabled
  594. };
  595.  
  596. return requestParams;
  597. }
  598.  
  599. function deal(data) {
  600. if (data) {
  601. return data;
  602. } else {
  603. return unknownErrorObject;
  604. }
  605. }
  606. }
  607. function setWifiEacsStatus() {
  608. doStuffAndCheckServerIsOnline(arguments, prepare, deal);
  609.  
  610. function prepare(params) {
  611. var requestParams = {
  612. goformId : "SET_WIFI_EACS",
  613. isTest : isTest,
  614. wifi_eacs_enable : params.eacsEnable,
  615. wifi_eacs_interval : params.wifi_eacs_interval
  616. };
  617.  
  618. return requestParams;
  619. }
  620.  
  621. function deal(data) {
  622. if (data) {
  623. return data;
  624. } else {
  625. return unknownErrorObject;
  626. }
  627. }
  628. }
  629. /**
  630. * 获取wifi安全设置信息
  631. * @method getSecurityInfo
  632. * @return {Object} wifi 安全 json 对象
  633. */
  634. function getSecurityInfo() {
  635. return doStuff(arguments, {}, prepare, deal, null, false);
  636.  
  637. function prepare(params, isPost) {
  638. var requestParams = {};
  639. requestParams.isTest = isTest;
  640. requestParams.cmd = "AuthMode,passPhrase";
  641. requestParams.multi_data = 1;
  642. return requestParams;
  643. }
  644.  
  645. function deal(data) {
  646. if (data) {
  647. var result = {};
  648. result.AuthMode = data.AuthMode;
  649. result.passPhrase = config.PASSWORD_ENCODE ? Base64.decode(data.passPhrase) : data.passPhrase;
  650. return result;
  651. } else {
  652. return unknownErrorObject;
  653. }
  654. }
  655. }
  656.  
  657. function setSecurityInfo() {
  658. return doStuff(arguments, {}, prepare, deal, null, true);
  659.  
  660. function prepare(params, isPost) {
  661. var requestParams = {};
  662. requestParams.isTest = isTest;
  663. requestParams.goformId = "SET_WIFI_SECURITY_INFO";
  664. requestParams.AuthMode = params.AuthMode;
  665. if(requestParams.AuthMode == "WPAPSKWPA2PSK") {
  666. requestParams.passPhrase = config.PASSWORD_ENCODE ? Base64.encode(params.passPhrase) : params.passPhrase;
  667. }
  668. return requestParams;
  669. }
  670.  
  671. function deal(data) {
  672. if (data) {
  673. return data;
  674. } else {
  675. return unknownErrorObject;
  676. }
  677. }
  678. }
  679.  
  680. function getCurrentlyLimitGuestSSID(){
  681. return doStuff(arguments, {}, prepare, deal, null, false);
  682.  
  683. function prepare(params, isPost) {
  684. var obj = {
  685. isTest : isTest,
  686. cmd : "wifi_mac_forbidden_list"
  687. };
  688. return obj;
  689. }
  690.  
  691. function deal(data) {
  692. var guestArr = [];
  693. var guestDevices = data.wifi_mac_forbidden_list;
  694. for(var i = 0; guestDevices && i < guestDevices.length; i++ ){
  695. var obj = {};
  696. obj.macAddress = guestDevices[i].mac_addr;
  697. var hostname = guestDevices[i].hostname;
  698. obj.hostName = hostname == "" ? $.i18n.prop("unknown") : hostname;
  699. guestArr.push(obj);
  700. }
  701. return {guestSSIDDevices: guestArr};
  702. }
  703. }
  704.  
  705. /**
  706. * 获取当前已连接设备的信息
  707. * @method getCurrentlyAttachedDevicesInfo
  708. * @return {Object} JSON
  709. * @example
  710. //返回结构格式
  711. * {
  712. * macAddress:"E8-E3-A5-AB-86-44",
  713. * ipAddress:"192.168.0.45",
  714. * hostName:"myhostName",
  715. * timeConnected:10
  716. * }
  717. */
  718. function getCurrentlyAttachedDevicesInfo(){
  719. return doStuff(arguments, {}, prepare, deal, null, false);
  720.  
  721. function prepare(params, isPost) {
  722. var obj = {
  723. isTest : isTest,
  724. cmd : "station_list"
  725. };
  726. return obj;
  727. }
  728.  
  729. function deal(data) {
  730. var deviceArr = [];
  731. var attachedDevices = data.station_list;
  732. for(var i = 0; attachedDevices && i < attachedDevices.length; i++ ){
  733. var obj = {};
  734. obj.macAddress = attachedDevices[i].mac_addr;
  735. obj.addressType = attachedDevices[i].addr_type;
  736. obj.isUserSet = attachedDevices[i].addr_type == "3" ? true : false;
  737. var hostname = attachedDevices[i].hostname;
  738. obj.hostName = hostname == "" ? $.i18n.prop("unknown") : hostname;
  739. obj.ipAddress = attachedDevices[i].ip_addr;//CPE 增加IP地址
  740. obj.ssid_index = attachedDevices[i].ssid_index;
  741. deviceArr.push(obj);
  742. }
  743. return {attachedDevices: deviceArr};
  744. }
  745. }
  746.  
  747. function getAttachedCableDevices(){
  748. return doStuff(arguments, {}, prepare, deal, null, false);
  749.  
  750. function prepare(params, isPost) {
  751. var obj = {
  752. isTest : isTest,
  753. cmd : "lan_station_list"
  754. };
  755. return obj;
  756. }
  757.  
  758. function deal(data) {
  759. var deviceArr = [];
  760. var attachedDevices = data.lan_station_list || data.station_list;
  761. for(var i = 0; attachedDevices && i < attachedDevices.length; i++ ){
  762. var obj = {};
  763. obj.macAddress = attachedDevices[i].mac_addr;
  764. //var addressTypeVar = attachedDevices[i].addr_type;
  765. obj.addressType = attachedDevices[i].addr_type;
  766. obj.isUserSet = attachedDevices[i].addr_type == "3" ? true : false;
  767. var hostname = attachedDevices[i].hostname;
  768. obj.hostName = hostname == "" ? $.i18n.prop("unknown") : hostname;
  769. obj.ipAddress = attachedDevices[i].ip_addr;//CPE 增加IP地址
  770. deviceArr.push(obj);
  771. }
  772. return {attachedDevices: deviceArr};
  773. }
  774. }
  775.  
  776. function getLanguage() {
  777. return doStuff(arguments, {}, prepare, deal, null, false);
  778.  
  779. function prepare(params, isPost) {
  780. var requestParams = {};
  781. requestParams.isTest = isTest;
  782. requestParams.cmd = "Language";
  783. requestParams.multi_data = 1;
  784. return requestParams;
  785. }
  786.  
  787. function deal(data) {
  788. if (data) {
  789. var result = {};
  790. result.Language = (data && data.Language) ? data.Language : "en";
  791. return result;
  792. } else {
  793. return unknownErrorObject;
  794. }
  795. }
  796. }
  797.  
  798. function setLanguage() {
  799. return doStuff(arguments, {}, prepare, deal, null, true);
  800.  
  801. function prepare(params, isPost) {
  802. var requestParams = {};
  803. requestParams.isTest = isTest;
  804. requestParams.goformId = "SET_WEB_LANGUAGE";
  805. requestParams.Language = params.Language;
  806. return requestParams;
  807. }
  808.  
  809. function deal(data) {
  810. if (data) {
  811. return data;
  812. } else {
  813. return unknownErrorObject;
  814. }
  815. }
  816. }
  817.  
  818. function getNetSelectInfo() {
  819. return doStuff(arguments, {}, prepare, deal, null, false);
  820.  
  821. function prepare(params, isPost) {
  822. var requestParams = {};
  823. requestParams.isTest = isTest;
  824. requestParams.cmd = "current_network_mode,m_netselect_save,net_select_mode,m_netselect_contents,net_select,ppp_status,modem_main_state";
  825. requestParams.multi_data = 1;
  826. return requestParams;
  827. }
  828.  
  829. function deal(data) {
  830. if (data) {
  831. var result = {};
  832. result.current_network_mode = data.current_network_mode;
  833. result.net_select_mode = data.net_select_mode;
  834. result.m_netselect_save = data.m_netselect_save;
  835. result.m_netselect_contents = data.m_netselect_contents;
  836. result.net_select = data.net_select;
  837. result.ppp_status = data.ppp_status;
  838. result.modem_main_state = data.modem_main_state;
  839. return result;
  840. } else {
  841. return unknownErrorObject;
  842. }
  843. }
  844. }
  845.  
  846. function setBearerPreference() {
  847. return doStuff(arguments, {}, prepare, deal, null, true);
  848.  
  849. function prepare(params, isPost) {
  850. var requestParams = {};
  851. requestParams.isTest = isTest;
  852. requestParams.goformId = "SET_BEARER_PREFERENCE";
  853. requestParams.BearerPreference = params.strBearerPreference;
  854. return requestParams;
  855. }
  856.  
  857. function deal(data) {
  858. if (data) {
  859. return data;
  860. } else {
  861. return unknownErrorObject;
  862. }
  863. }
  864. }
  865.  
  866.  
  867. /**************************************************************************
  868. Description : scan the network
  869. Parameters :
  870. [IN] : function :callback(bResult, listNetwork) : call back function, and the parameters list below:
  871. [IN] : bool : bResult : true = succeed, false = failed.
  872. [IN] : object : listNetwork : network information array, the object attribute in the array below:
  873. type : name : description
  874. string : strFullName : operator full name(the value is maybe ""),
  875. such as 'china mobile'
  876. string : strShortName : operator short name(the value is maybe ""),
  877. such as 'china mobile'
  878. string : strNumeric : the digital number, such as '460'
  879. number : nRat : the network connect technology, 0 = '2G', 2 = '3G'.
  880. number : nState : operator availability as int at+cops=? <stat> (This is as per 3GPP TS 27.007)
  881. if get net work list failed, the return value will be an null array.
  882. return : void
  883. @method scanForNetwork
  884. **************************************************************************/
  885. function scanForNetwork(callback) {
  886. if(isTest) {
  887. setTimeout(function() {parseScanResult(simulate.m_netselect_contents);}, 500);
  888. return;
  889. }
  890.  
  891. $.post("/goform/goform_set_cmd_process", {
  892. goformId : "SCAN_NETWORK"
  893. }, function(data) {
  894. if (data.result == "success") {
  895. checkScanStatus();
  896. } else {
  897. callback(false, []);
  898. }
  899. }, "json").error(function() {
  900. callback(false, []);
  901. });
  902.  
  903. function checkScanStatus() {
  904. $.getJSON("/goform/goform_get_cmd_process", {
  905. cmd : "m_netselect_status",
  906. "_" : new Date().getTime()
  907. }, function(data) {
  908. if (data.m_netselect_status == "manual_selecting") {
  909. setTimeout(checkScanStatus, 1000);
  910. } else {
  911. $.getJSON("/goform/goform_get_cmd_process", {
  912. cmd : "m_netselect_contents",
  913. "_" : new Date().getTime()
  914. }, function(data2) {
  915. if(trim(data2.m_netselect_contents) != "") {
  916. parseScanResult(data2.m_netselect_contents);
  917. } else {
  918. callback(false, []);
  919. }
  920. }).error(function(){
  921. callback(false, []);
  922. });
  923. }
  924. }).error(function() {
  925. callback(false, []);
  926. });
  927. }
  928.  
  929. function parseScanResult(result) {
  930. //var result= "2,China Mobile,46002,2;2,China Mobile,46002,3"
  931. var pattern = /([^,;]*),([^,]*),([^,]*),([^,;]*)/g;
  932. var listNetwork = [];
  933. var mts;
  934. while (mts = pattern.exec(result)) {
  935. if (mts != null) {
  936. listNetwork.push({
  937. //strFullName: mts[2].replace(/\"/g,''),
  938. strShortName: mts[2].replace(/\"/g,''),
  939. strNumeric: mts[3].replace(/\D/g,''),
  940. nRat: parseInt(mts[4],10),
  941. nState: parseInt(mts[1],10)
  942. });
  943. }
  944. }
  945. callback(true, listNetwork);
  946. }
  947. }
  948.  
  949. var timerInfo = {
  950. wifiStatusDetail:"",
  951. networkType : "",
  952. signalImg : "0",
  953. spn_b1_flag : "1",
  954. spn_name_data : "",
  955. spn_b2_flag : "1",
  956. networkOperator : "China Mobile",
  957. connectStatus : "ppp_disconnected",
  958. attachedDevices : [],
  959. curr_connected_devices : [],
  960. data_counter:{
  961. uploadRate : 0,
  962. downloadRate : 0,
  963. totalSent : 0,
  964. totalReceived : 0,
  965. totalConnectedTime : 0,
  966. currentSent : 0,
  967. currentReceived : 0,
  968. currentConnectedTime : 0,
  969. monthlySent: 0,
  970. monthlyReceived: 0,
  971. monthlyConnectedTime: 0,
  972. month : ''
  973. },
  974. newSmsReceived : false,
  975. smsReportReceived : false,
  976. smsUnreadCount : "0",
  977. isLoggedIn : undefined,
  978. limitVolumeEnable : false,
  979. limitVolumeType : '1',
  980. limitVolumePercent : "100",
  981. limitVolumeSize : "0",
  982. allowRoamingUpdate : "0",
  983. opms_wan_mode: "",
  984. ap_station_enable: undefined,
  985. ap_station_mode:undefined,
  986. dialMode: '',
  987. hmnc:'',
  988. hmcc:'',
  989. mnc:'',
  990. mcc:''
  991. };
  992.  
  993. function getStatusInfo(){
  994. if (timerInfo.isLoggedIn === undefined) {
  995. var loginStatus = getLoginStatus();
  996. return {
  997. networkType:timerInfo.networkType,
  998. signalImg:timerInfo.signalImg,
  999. networkOperator:timerInfo.networkOperator,
  1000. spn_b1_flag : timerInfo.spn_b1_flag,
  1001. spn_name_data : timerInfo.spn_name_data,
  1002. spn_b2_flag : timerInfo.spn_b2_flag,
  1003. connectStatus:timerInfo.connectStatus,
  1004. attachedDevices:timerInfo.curr_connected_devices,
  1005. roamingStatus:timerInfo.roamingStatus,
  1006. wifiStatus:timerInfo.wifiStatus,
  1007. wifiStatusDetail:timerInfo.wifiStatusDetail,
  1008. simStatus:timerInfo.simStatus,
  1009. pinStatus:timerInfo.pinStatus,
  1010. batteryStatus:timerInfo.batteryStatus,
  1011. batteryLevel:timerInfo.batteryLevel,
  1012. batteryPers:timerInfo.batteryPers,
  1013. batteryTime:timerInfo.batteryTime,
  1014. ssid:timerInfo.ssid,
  1015. mainSSID5g:timerInfo.mainSSID5g,
  1016. authMode:timerInfo.authMode,
  1017. data_counter:timerInfo.data_counter,
  1018. isLoggedIn:loginStatus.status == "loggedIn",
  1019. newSmsReceived:timerInfo.newSmsReceived,
  1020. smsReportReceived:timerInfo.smsReportReceived,
  1021. smsUnreadCount:timerInfo.smsUnreadCount,
  1022. limitVolumeEnable:timerInfo.limitVolumeEnable,
  1023. limitVolumeType:timerInfo.limitVolumeType,
  1024. limitVolumePercent:timerInfo.limitVolumePercent,
  1025. limitVolumeSize:timerInfo.limitVolumeSize,
  1026. connectWifiProfile:timerInfo.connectWifiProfile,
  1027. connectWifiSSID:timerInfo.connectWifiSSID,
  1028. connectWifiStatus:timerInfo.connectWifiStatus,
  1029. multi_ssid_enable:timerInfo.multi_ssid_enable,
  1030. roamMode: timerInfo.roamMode,
  1031. opms_wan_mode: timerInfo.opms_wan_mode,
  1032. current_upgrade_state: timerInfo.current_upgrade_state,
  1033. is_mandatory: timerInfo.is_mandatory,
  1034. new_version_state: timerInfo.new_version_state,
  1035. allowRoamingUpdate: timerInfo.allowRoamingUpdate,
  1036. ap_station_enable: timerInfo.ap_station_enable,
  1037. ap_station_mode: timerInfo.ap_station_mode,
  1038. dialMode: timerInfo.dialMode,
  1039. hmnc:timerInfo.hmnc,
  1040. hmcc:timerInfo.hmcc,
  1041. mnc:timerInfo.mnc,
  1042. mcc:timerInfo.mcc,
  1043. wifi_dfs_status : timerInfo.wifi_dfs_status
  1044. };
  1045. }
  1046.  
  1047. return {
  1048. networkType : timerInfo.networkType,
  1049. signalImg : timerInfo.signalImg,
  1050. networkOperator : timerInfo.networkOperator,
  1051. spn_b1_flag : timerInfo.spn_b1_flag,
  1052. spn_name_data : timerInfo.spn_name_data,
  1053. spn_b2_flag : timerInfo.spn_b2_flag,
  1054. connectStatus : timerInfo.connectStatus,
  1055. attachedDevices : timerInfo.curr_connected_devices,
  1056. roamingStatus : timerInfo.roamingStatus,
  1057. wifiStatus : timerInfo.wifiStatus,
  1058. wifiStatusDetail:timerInfo.wifiStatusDetail,
  1059. simStatus : timerInfo.simStatus,
  1060. pinStatus : timerInfo.pinStatus,
  1061. batteryStatus: timerInfo.batteryStatus,
  1062. batteryLevel: timerInfo.batteryLevel,
  1063. batteryPers: timerInfo.batteryPers,
  1064. batteryTime :timerInfo.batteryTime,
  1065. ssid : timerInfo.ssid,
  1066. mainSSID5g:timerInfo.mainSSID5g,
  1067. authMode: timerInfo.authMode,
  1068. data_counter:timerInfo.data_counter,
  1069. isLoggedIn:timerInfo.isLoggedIn,
  1070. newSmsReceived : timerInfo.newSmsReceived,
  1071. smsReportReceived : timerInfo.smsReportReceived,
  1072. smsUnreadCount : timerInfo.smsUnreadCount,
  1073. limitVolumeEnable : timerInfo.limitVolumeEnable,
  1074. limitVolumeType : timerInfo.limitVolumeType,
  1075. limitVolumePercent : timerInfo.limitVolumePercent,
  1076. limitVolumeSize : timerInfo.limitVolumeSize,
  1077. connectWifiProfile:timerInfo.connectWifiProfile,
  1078. connectWifiSSID:timerInfo.connectWifiSSID,
  1079. connectWifiStatus:timerInfo.connectWifiStatus,
  1080. multi_ssid_enable:timerInfo.multi_ssid_enable,
  1081. opms_wan_mode: timerInfo.opms_wan_mode,
  1082. roamMode: timerInfo.roamMode,
  1083. current_upgrade_state: timerInfo.current_upgrade_state,
  1084. is_mandatory: timerInfo.is_mandatory,
  1085. new_version_state: timerInfo.new_version_state,
  1086. allowRoamingUpdate: timerInfo.allowRoamingUpdate,
  1087. ap_station_enable: timerInfo.ap_station_enable,
  1088. ap_station_mode: timerInfo.ap_station_mode,
  1089. dialMode: timerInfo.dialMode,
  1090. hmnc:timerInfo.hmnc,
  1091. hmcc:timerInfo.hmcc,
  1092. mnc:timerInfo.mnc,
  1093. mcc:timerInfo.mcc,
  1094. wifi_dfs_status : timerInfo.wifi_dfs_status
  1095. };
  1096. }
  1097.  
  1098. /**
  1099. * 获取联网及流量信息
  1100. * @method getConnectionInfo
  1101. */
  1102. function getConnectionInfo(){
  1103. var isData = timerInfo.limitVolumeType == '1';
  1104. var result = {
  1105. data_counter : timerInfo.data_counter,
  1106. connectStatus : timerInfo.connectStatus,
  1107. limitVolumeEnable : timerInfo.limitVolumeEnable,
  1108. limitVolumeType : timerInfo.limitVolumeType,
  1109. limitVolumePercent : timerInfo.limitVolumePercent,
  1110. networkType: timerInfo.networkType
  1111. };
  1112. if(isData){
  1113. result.limitDataMonth = timerInfo.limitVolumeSize;
  1114. result.limitTimeMonth = 0;
  1115. } else {
  1116. result.limitTimeMonth = timerInfo.limitVolumeSize;
  1117. result.limitDataMonth = 0;
  1118. }
  1119. result.opms_wan_mode = timerInfo.opms_wan_mode;
  1120.  
  1121. result.wanIpAddress= timerInfo.wan_ipaddr;
  1122. result.staticWanIpAddress= timerInfo.static_wan_ipaddr;
  1123. result.ipv6WanIpAddress= timerInfo.ipv6_wan_ipaddr;
  1124. return result;
  1125. }
  1126.  
  1127. /**
  1128. * 将未读短信变量从接收到未读短信设置成没有接收到
  1129. * @method resetNewSmsReceivedVar
  1130. * @example
  1131. * timerInfo.newSmsReceived = false;
  1132. */
  1133. function resetNewSmsReceivedVar(){
  1134. timerInfo.newSmsReceived = false;
  1135. }
  1136.  
  1137. /**
  1138. * 将短信发送报告变量从接收到设置成没有接收到
  1139. * @method resetSmsReportReceivedVar
  1140. * @example
  1141. * timerInfo.smsReportReceived = false;
  1142. */
  1143. function resetSmsReportReceivedVar(){
  1144. timerInfo.smsReportReceived = false;
  1145. }
  1146.  
  1147. /**
  1148. * 获取短信容量。
  1149. * @method getSmsCapability
  1150. */
  1151. function getSmsCapability(){
  1152. return doStuff(arguments, {}, prepare, deal, null, false);
  1153.  
  1154. function prepare(params, isPost) {
  1155. var requestParams = {};
  1156. requestParams.isTest = isTest;
  1157. requestParams.cmd = "sms_capacity_info";
  1158. return requestParams;
  1159. }
  1160.  
  1161. function deal(data) {
  1162. return {
  1163. nvTotal: parseInt(data.sms_nv_total,10),
  1164. nvUsed: parseInt(data.sms_nv_rev_total,10) + parseInt(data.sms_nv_send_total,10) + parseInt(data.sms_nv_draftbox_total,10),
  1165. simTotal: parseInt(data.sms_sim_total,10),
  1166. simUsed: parseInt(data.sms_sim_rev_total,10) + parseInt(data.sms_sim_send_total,10) + parseInt(data.sms_sim_draftbox_total,10),
  1167. nvReceive: parseInt(data.sms_nv_rev_total,10),
  1168. nvSend: parseInt(data.sms_nv_send_total,10),
  1169. nvDraft: parseInt(data.sms_nv_draftbox_total,10),
  1170. simReceive: parseInt(data.sms_sim_rev_total,10),
  1171. simSend: parseInt(data.sms_sim_send_total,10),
  1172. simDraft: parseInt(data.sms_sim_draftbox_total,10)
  1173. };
  1174. }
  1175. }
  1176.  
  1177. /**
  1178. * 联网
  1179. * @method connect
  1180. */
  1181. function connect() {
  1182. var callback = arguments[1];
  1183. var checkPoint = 0;
  1184. return doStuff(arguments, {}, prepare, deal, null, true);
  1185.  
  1186. function prepare(params, isPost) {
  1187. var requestParams = {};
  1188. requestParams.isTest = isTest;
  1189. requestParams.notCallback = true;
  1190. requestParams.goformId = "CONNECT_NETWORK";
  1191. return requestParams;
  1192. }
  1193.  
  1194. function deal(data) {
  1195. if (data.result == "success") {
  1196. checkPoint = new Date().getTime();
  1197. addCallback(checkConnectStatus);
  1198. } else {
  1199. callback({
  1200. result : false
  1201. });
  1202. }
  1203. }
  1204.  
  1205. function checkConnectStatus(data) {
  1206. if (data.ppp_status == "ppp_connecting") {
  1207. timerInfo.connectStatus = "ppp_connecting";
  1208. } else if (checkConnectedStatus(data.ppp_status)) {
  1209. removeCallback(checkConnectStatus);
  1210. timerInfo.connectStatus = "ppp_connected";
  1211. callback({
  1212. result : true,
  1213. status : timerInfo.connectStatus
  1214. });
  1215. } else if(new Date().getTime() - checkPoint < 1e4){
  1216. timerInfo.connectStatus = "ppp_connecting";
  1217. } else {
  1218. removeCallback(checkConnectStatus);
  1219. callback({
  1220. result : false
  1221. });
  1222. }
  1223. }
  1224. }
  1225.  
  1226. /**
  1227. * 断网
  1228. * @method disconnect
  1229. */
  1230. function disconnect() {
  1231. var callback = arguments[1];
  1232. var checkPoint = 0;
  1233. return doStuff(arguments, {}, prepare, deal, null, true);
  1234.  
  1235. function prepare(params, isPost) {
  1236. var requestParams = {};
  1237. requestParams.isTest = isTest;
  1238. requestParams.notCallback = true;
  1239. requestParams.goformId = "DISCONNECT_NETWORK";
  1240. return requestParams;
  1241. }
  1242.  
  1243. function deal(data) {
  1244. if (data.result == "success") {
  1245. checkPoint = new Date().getTime();
  1246. addCallback(checkDisconnectStatus);
  1247. } else {
  1248. callback({
  1249. result : false
  1250. });
  1251. }
  1252. }
  1253.  
  1254. function checkDisconnectStatus(data) {
  1255. if (data.ppp_status == "ppp_disconnecting") {
  1256. timerInfo.connectStatus = "ppp_disconnecting";
  1257. } else if (data.ppp_status == "ppp_disconnected") {
  1258. removeCallback(checkDisconnectStatus);
  1259. timerInfo.connectStatus = "ppp_disconnected";
  1260. callback({
  1261. result : true,
  1262. status : timerInfo.connectStatus
  1263. });
  1264. } else if(new Date().getTime() - checkPoint < 1e4){
  1265. timerInfo.connectStatus = "ppp_disconnecting";
  1266. } else {
  1267. removeCallback(checkDisconnectStatus);
  1268. callback({
  1269. result : false
  1270. });
  1271. }
  1272. }
  1273. }
  1274.  
  1275. /**
  1276. * 获取apn信息
  1277. * @method getApnSettings
  1278. * @return {Object} JSON
  1279. * @example
  1280. //返回结果格式
  1281. {
  1282. APNs : result.APN_config0 + "||" + result.APN_config1 + "||" + result.APN_config2 + "||" + result.APN_config3 + "||" + result.APN_config4 + "||" + result.APN_config5 + "||" + result.APN_config6 + "||" + result.APN_config7 + "||" + result.APN_config8 + "||" + result.APN_config9,
  1283. ipv6APNs : result.ipv6_APN_config0 + "||" + result.ipv6_APN_config1 + "||" + result.ipv6_APN_config2 + "||" + result.ipv6_APN_config3 + "||" + result.ipv6_APN_config4 + "||" + result.ipv6_APN_config5 + "||" + result.ipv6_APN_config6 + "||" + result.ipv6_APN_config7 + "||" + result.ipv6_APN_config8 + "||" + result.ipv6_APN_config9,
  1284. apnMode : result.apn_select,
  1285. profileName : result.m_profile_name || result.profile_name,
  1286. wanDial : result.wan_dial,
  1287. apnSelect : result.apn_select,
  1288. pdpType : result.pdp_type,
  1289. pdpSelect : result.pdp_select,
  1290. pdpAddr : result.pdp_addr,
  1291. index : result.index,
  1292. currIndex : result.Current_index,
  1293. autoApns : result.apn_auto_config,
  1294. wanApn : result.wan_apn,
  1295. authMode : result.ppp_auth_mode,
  1296. username : result.ppp_username,
  1297. password : result.ppp_passwd,
  1298. dnsMode : result.dns_mode,
  1299. dns1 : result.prefer_dns_manual,
  1300. dns2 : result.standby_dns_manual,
  1301. wanApnV6 : result.ipv6_wan_apn,
  1302. authModeV6 : result.ipv6_ppp_auth_mode,
  1303. usernameV6 : result.ipv6_ppp_username,
  1304. passwordV6 : result.ipv6_ppp_passwd,
  1305. dnsModeV6 : result.ipv6_dns_mode,
  1306. dns1V6 : result.ipv6_prefer_dns_manual,
  1307. dns2V6 : result.ipv6_standby_dns_manual
  1308. }
  1309. *
  1310. */
  1311. function getApnSettings() {
  1312.  
  1313. return doStuff(arguments, {}, prepare, deal, null, false);
  1314.  
  1315. function prepare(params, isPost) {
  1316. var requestParams = {};
  1317. requestParams.isTest = isTest;
  1318. requestParams.cmd = "APN_config0,APN_config1,APN_config2,APN_config3,APN_config4,APN_config5,APN_config6,APN_config7,APN_config8,APN_config9," +
  1319. "APN_config10,APN_config11,APN_config12,APN_config13,APN_config14,APN_config15,APN_config16,APN_config17,APN_config18,APN_config19," +
  1320. "ipv6_APN_config0,ipv6_APN_config1,ipv6_APN_config2,ipv6_APN_config3,ipv6_APN_config4,ipv6_APN_config5,ipv6_APN_config6,ipv6_APN_config7,ipv6_APN_config8,ipv6_APN_config9," +
  1321. "ipv6_APN_config10,ipv6_APN_config11,ipv6_APN_config12,ipv6_APN_config13,ipv6_APN_config14,ipv6_APN_config15,ipv6_APN_config16,ipv6_APN_config17,ipv6_APN_config18,ipv6_APN_config19," +
  1322. "m_profile_name,profile_name,wan_dial,apn_select,pdp_type,pdp_select,pdp_addr,index,Current_index,apn_auto_config,ipv6_apn_auto_config," +
  1323. "apn_mode,wan_apn,ppp_auth_mode,ppp_username,ppp_passwd,dns_mode,prefer_dns_manual,standby_dns_manual," +
  1324. "ipv6_wan_apn,ipv6_pdp_type,ipv6_ppp_auth_mode,ipv6_ppp_username,ipv6_ppp_passwd,ipv6_dns_mode,ipv6_prefer_dns_manual,ipv6_standby_dns_manual,apn_num_preset";
  1325. requestParams.multi_data = 1;
  1326. return requestParams;
  1327. }
  1328.  
  1329. function deal(result) {
  1330. if (result) {
  1331. return {
  1332. APNs : result.APN_config0 + "||" + result.APN_config1 + "||" + result.APN_config2 + "||" + result.APN_config3 + "||" + result.APN_config4 + "||"
  1333. + result.APN_config5 + "||" + result.APN_config6 + "||" + result.APN_config7 + "||" + result.APN_config8 + "||" + result.APN_config9 + "||"
  1334. + result.APN_config10 + "||" + result.APN_config11 + "||" + result.APN_config12 + "||" + result.APN_config13 + "||" + result.APN_config14 + "||"
  1335. + result.APN_config15 + "||" + result.APN_config16 + "||" + result.APN_config17 + "||" + result.APN_config18 + "||" + result.APN_config19,
  1336. ipv6APNs : result.ipv6_APN_config0 + "||" + result.ipv6_APN_config1 + "||" + result.ipv6_APN_config2 + "||" + result.ipv6_APN_config3 + "||" + result.ipv6_APN_config4 + "||"
  1337. + result.ipv6_APN_config5 + "||" + result.ipv6_APN_config6 + "||" + result.ipv6_APN_config7 + "||" + result.ipv6_APN_config8 + "||" + result.ipv6_APN_config9 + "||"
  1338. + result.ipv6_APN_config10 + "||" + result.ipv6_APN_config11 + "||" + result.ipv6_APN_config12 + "||" + result.ipv6_APN_config13 + "||" + result.ipv6_APN_config14 + "||"
  1339. + result.ipv6_APN_config15 + "||" + result.ipv6_APN_config16 + "||" + result.ipv6_APN_config17 + "||" + result.ipv6_APN_config18 + "||" + result.ipv6_APN_config19,
  1340. apnMode : result.apn_mode,
  1341. profileName : result.m_profile_name || result.profile_name,
  1342. wanDial : result.wan_dial,
  1343. apnSelect : result.apn_select,
  1344. pdpType : result.pdp_type == 'IP' ? 'IP' : result.ipv6_pdp_type,
  1345. pdpSelect : result.pdp_select,
  1346. pdpAddr : result.pdp_addr,
  1347. index : result.index,
  1348. currIndex : result.Current_index,
  1349. autoApns : result.apn_auto_config,
  1350. autoApnsV6 : result.ipv6_apn_auto_config,
  1351. wanApn : result.wan_apn,
  1352. authMode : result.ppp_auth_mode.toLowerCase(),
  1353. username : result.ppp_username,
  1354. password : result.ppp_passwd,
  1355. dnsMode : result.dns_mode,
  1356. dns1 : result.prefer_dns_manual,
  1357. dns2 : result.standby_dns_manual,
  1358. wanApnV6 : result.ipv6_wan_apn,
  1359. authModeV6 : result.ipv6_ppp_auth_mode.toLowerCase(),
  1360. usernameV6 : result.ipv6_ppp_username,
  1361. passwordV6 : result.ipv6_ppp_passwd,
  1362. dnsModeV6 : result.ipv6_dns_mode,
  1363. dns1V6 : result.ipv6_prefer_dns_manual,
  1364. dns2V6 : result.ipv6_standby_dns_manual,
  1365. apnNumPreset: result.apn_num_preset
  1366. };
  1367. } else {
  1368. return {
  1369. result : false
  1370. };
  1371. }
  1372. }
  1373. }
  1374.  
  1375. /**
  1376. * 根据profile name删除apn信息
  1377. * @method deleteApn
  1378. * @return {Object} JSON resultObject
  1379. * @example
  1380. //请求参数映射
  1381. {
  1382. goformId : "APN_PROC_EX",
  1383. apn_action : "delete",
  1384. apn_mode : "manual",
  1385. index : params.index
  1386. }
  1387. */
  1388. function deleteApn(){
  1389. return doStuff(arguments, {}, prepare, deal, null, true);
  1390.  
  1391. function prepare(params, isPost) {
  1392. var requestParams = {
  1393. isTest : isTest,
  1394. apn_action : "delete",
  1395. apn_mode : "manual",
  1396. index : params.index
  1397. };
  1398. if(config.USE_IPV6_INTERFACE){
  1399. requestParams.goformId = "APN_PROC_EX";
  1400. } else {
  1401. requestParams.goformId = "APN_PROC";
  1402. }
  1403. return requestParams;
  1404. }
  1405.  
  1406. function deal(data) {
  1407. if (data.result == "success") {
  1408. return {
  1409. result : true
  1410. };
  1411. } else {
  1412. return {
  1413. result : false
  1414. };
  1415. }
  1416. }
  1417. }
  1418.  
  1419. /**
  1420. * 设置默认APN
  1421. * @method setDefaultApn
  1422. * @return {Object} JSON resultObject
  1423. * @example
  1424. //请求参数映射
  1425. {
  1426. goformId : "APN_PROC_EX", //"APN_PROC",
  1427. apn_action : "set_default",
  1428. //0(新增并且设置默认,或者编辑后设置默认)/1(选择已经保存过的,直接设置默认)
  1429. //目前只支持1。当传0时,需要将save时的参数一并传下
  1430. set_default_flag : "1",
  1431. pdp_type : params.pdpType, //IP/IPv6/IPv4v6
  1432. index : params.index,
  1433. apn_mode : 'manual'
  1434. }
  1435. */
  1436. function setDefaultApn(){
  1437. return doStuff(arguments, {}, prepare, deal, null, true);
  1438.  
  1439. function prepare(params, isPost) {
  1440. if(config.USE_IPV6_INTERFACE){
  1441. var requestParam = {
  1442. isTest : isTest,
  1443. goformId : "APN_PROC_EX", //"APN_PROC",
  1444. apn_mode : params.apnMode
  1445. };
  1446. if(params.apnMode == 'manual'){
  1447. requestParam.apn_action = "set_default";
  1448. //0(新增并且设置默认,或者编辑后设置默认)/1(选择已经保存过的,直接设置默认)
  1449. //目前只支持1。当传0时,需要将save时的参数一并传下
  1450. requestParam.set_default_flag = "1";
  1451. requestParam.pdp_type = params.pdpType; //IP/IPv6/IPv4v6
  1452. requestParam.index = params.index;
  1453.  
  1454. }
  1455. return requestParam;
  1456. }else{
  1457. return {
  1458. isTest : isTest,
  1459. goformId : "APN_PROC", //"APN_PROC",
  1460. apn_action : "set_default",
  1461. index : params.index,
  1462. apn_mode : params.apnMode,// == "auto" ? "auto_dial" : "manual_dial",
  1463. profile_name : params.profileName,
  1464. wan_apn : params.wanApn,
  1465. dns_mode : params.dnsMode,
  1466. prefer_dns_manual : params.dns1,
  1467. w_standby_dns_manual : params.dns2,
  1468. ppp_username : params.username,
  1469. ppp_passwd : params.password,
  1470. ppp_auth_mode : params.authMode,
  1471. apn_select : 'manual',
  1472. wan_dial : '*99#',
  1473. pdp_type: 'PPP',
  1474. pdp_select: 'auto',
  1475. pdp_addr: '',
  1476. set_default_flag : '1'
  1477. };
  1478. }
  1479. }
  1480.  
  1481. function deal(data) {
  1482. if (data.result == "success") {
  1483. return {
  1484. result : true
  1485. };
  1486. } else {
  1487. return {
  1488. result : false
  1489. };
  1490. }
  1491. }
  1492. }
  1493.  
  1494. /**
  1495. * 新增APN
  1496. * @method addOrEditApn
  1497. * @return {Object} JSON resultObject
  1498. */
  1499. function addOrEditApn(){
  1500. return doStuff(arguments, {}, prepare, deal, null, true);
  1501.  
  1502. function prepare(params, isPost) {
  1503. if(config.USE_IPV6_INTERFACE){
  1504. var requestParams = {
  1505. isTest : isTest,
  1506. goformId : "APN_PROC_EX",
  1507. apn_action : "save",
  1508. apn_mode : "manual",
  1509. profile_name : params.profileName,
  1510. wan_dial : '*99#',
  1511. apn_select : 'manual',
  1512. pdp_type: params.pdpType,//IP/IPv6/IPv4v6
  1513. pdp_select: 'auto',
  1514. pdp_addr: '',
  1515. index : params.index
  1516. };
  1517. if(params.pdpType == "IP"){
  1518. $.extend(requestParams, {
  1519. wan_apn : params.wanApn,
  1520. ppp_auth_mode : params.authMode,
  1521. ppp_username : params.username,
  1522. ppp_passwd : params.password,
  1523. dns_mode : params.dnsMode,
  1524. prefer_dns_manual : params.dns1,
  1525. standby_dns_manual : params.dns2
  1526. });
  1527. }else if(params.pdpType == "IPv6"){
  1528. $.extend(requestParams, {
  1529. ipv6_wan_apn : params.wanApnV6,
  1530. ipv6_ppp_auth_mode : params.authModeV6,
  1531. ipv6_ppp_username : params.usernameV6,
  1532. ipv6_ppp_passwd : params.passwordV6,
  1533. ipv6_dns_mode : params.dnsModeV6,
  1534. ipv6_prefer_dns_manual : params.dns1V6,
  1535. ipv6_standby_dns_manual : params.dns2V6
  1536. });
  1537. }else{//"IPv4v6"
  1538. $.extend(requestParams, {
  1539. wan_apn : params.wanApn,
  1540. ppp_auth_mode : params.authMode,
  1541. ppp_username : params.username,
  1542. ppp_passwd : params.password,
  1543. dns_mode : params.dnsMode,
  1544. prefer_dns_manual : params.dns1,
  1545. standby_dns_manual : params.dns2,
  1546. ipv6_wan_apn : params.wanApnV6,
  1547. ipv6_ppp_auth_mode : params.authModeV6,
  1548. ipv6_ppp_username : params.usernameV6,
  1549. ipv6_ppp_passwd : params.passwordV6,
  1550. ipv6_dns_mode : params.dnsModeV6,
  1551. ipv6_prefer_dns_manual : params.dns1V6,
  1552. ipv6_standby_dns_manual : params.dns2V6
  1553. });
  1554. }
  1555. return requestParams;
  1556. }else{
  1557. var requestParams = {
  1558. isTest : isTest,
  1559. goformId : "APN_PROC",
  1560. apn_action : "save",
  1561. apn_mode : 'manual',
  1562. index : params.index,
  1563. profile_name : params.profileName,
  1564. wan_apn : params.wanApn,
  1565. dns_mode : params.dnsMode,
  1566. prefer_dns_manual : params.dns1,
  1567. w_standby_dns_manual : params.dns2,
  1568. ppp_auth_mode : params.authMode,
  1569. ppp_username : params.username,
  1570. ppp_passwd : params.password,
  1571. wan_dial : '*99#',
  1572. apn_select : 'manual',
  1573. pdp_type: 'PPP',
  1574. pdp_select: 'auto',
  1575. pdp_addr: ''
  1576. };
  1577. return requestParams;
  1578. }
  1579. }
  1580.  
  1581. function deal(data) {
  1582. if (data.result == "success") {
  1583. return {
  1584. result : true
  1585. };
  1586. } else {
  1587. return {
  1588. result : false
  1589. };
  1590. }
  1591. }
  1592. }
  1593.  
  1594. /**
  1595. * 定时刷新获取的参数列表
  1596. * @attribute {Array} timerQueryString
  1597. */
  1598. var timerQueryString = [ "modem_main_state", "pin_status","opms_wan_mode","loginfo","new_version_state","current_upgrade_state","is_mandatory"];
  1599. var loginTimerQueryString = ["wan_ipaddr","static_wan_ipaddr","ipv6_wan_ipaddr","signalbar","network_type", "network_provider",
  1600. "ppp_status","EX_SSID1","sta_ip_status","EX_wifi_profile","guest_switch", "wifi_ap_mode", "SSID1","m_SSID",
  1601. "simcard_roam", "lan_ipaddr","station_mac", "battery_charging", "battery_vol_percent", "battery_pers","spn_name_data","spn_b1_flag","spn_b2_flag",
  1602. "realtime_tx_bytes","realtime_rx_bytes","realtime_time","realtime_tx_thrpt","realtime_rx_thrpt",
  1603. "monthly_rx_bytes","monthly_tx_bytes","monthly_time","date_month","data_volume_limit_switch",
  1604. "data_volume_limit_size","data_volume_alert_percent","data_volume_limit_unit","roam_setting_option","upg_roam_switch",
  1605. 'ssid', 'wifi_enable', 'dial_mode',"hmnc","hmcc","mnc","mcc","wlan_process","wifi_dfs_status"];
  1606. if(config.HAS_SMS){
  1607. $.merge(loginTimerQueryString, ["sms_received_flag", "sts_received_flag", 'sms_unread_num']);
  1608. }
  1609. /**
  1610. * 定时刷新临时回调列表
  1611. * @attribute {Array} timerCallbackStack
  1612. */
  1613. var timerCallbackStack = [];
  1614.  
  1615. /**
  1616. * 定时刷新回调列表
  1617. * @attribute {Array} timerCallbacks
  1618. */
  1619. var timerCallbacks = [ timerUpdateStatus ];
  1620.  
  1621. /**
  1622. * 定时刷新器。成功获取到数据以后将遍历回调列表
  1623. * @method timerUpdater
  1624. */
  1625. function timerUpdater() {
  1626. if (!timerUpdaterEnable){
  1627. setTimeout(function(){timerUpdater();}, 1000);
  1628. return;
  1629. }
  1630. var queryParams = checkTimerUpdaterParameters();
  1631. asyncRequest(queryParams, function (data) {
  1632. for (var i = 0; i < timerCallbacks.length; i++) {
  1633. if (typeof timerCallbacks[i] === "function") {
  1634. timerCallbacks[i](data);
  1635. }
  1636. }
  1637. $.merge(timerCallbacks, timerCallbackStack);
  1638. timerCallbackStack = [];
  1639. setTimeout(function(){timerUpdater();}, 1000);
  1640. }, function () {
  1641. timerUpdaterErrorCallback();
  1642. setTimeout(function(){timerUpdater();}, 1000);
  1643. }, false);
  1644. }
  1645.  
  1646. /**
  1647. * 检查定时器参数,在未登录前不进行瞬时状态查询
  1648. * @method checkTimerUpdaterParameters
  1649. */
  1650. function checkTimerUpdaterParameters() {
  1651. var queryParams = {
  1652. multi_data:1,
  1653. isTest:isTest
  1654. };
  1655. if (window.location.hash && window.location.hash != '#login' && timerInfo.isLoggedIn) {
  1656. if(config.HAS_SMS){
  1657. queryParams.sms_received_flag_flag = 0;
  1658. queryParams.sts_received_flag_flag = 0;
  1659. }
  1660. if (loginTimerQueryString.length > 0 && _.indexOf(timerQueryString, loginTimerQueryString[0]) == -1) {
  1661. $.each(loginTimerQueryString, function(i, n){
  1662. timerQueryString.push(n);
  1663. });
  1664. }
  1665. } else {
  1666. if (loginTimerQueryString.length > 0 && _.indexOf(timerQueryString, loginTimerQueryString[0]) != -1) {
  1667. timerQueryString = _.without(timerQueryString, loginTimerQueryString);
  1668. }
  1669. }
  1670. queryParams.cmd = timerQueryString.join(",");
  1671. return queryParams;
  1672. }
  1673.  
  1674. /**
  1675. * 增加定时刷新参数及回调
  1676. * @method addTimerThings
  1677. * @param {Array || String} querys 查询key
  1678. * @param {Function} cb callback
  1679. */
  1680. function addTimerThings(querys, cb) {
  1681. if (_.isArray(querys)) {
  1682. for ( var i = 0; i < querys.length; i++) {
  1683. addQueryString(querys[i]);
  1684. }
  1685. } else {
  1686. addQueryString(querys);
  1687. }
  1688. addCallback(cb);
  1689. }
  1690.  
  1691. /**
  1692. * 删除定时刷新参数及回调
  1693. * @method removeTimerThings
  1694. * @param {Array || String} querys 查询key
  1695. * @param {Function} cb
  1696. */
  1697. function removeTimerThings(querys, cb) {
  1698. if (_.isArray(querys)) {
  1699. for ( var i = 0; i < querys.length; i++) {
  1700. removeQueryString(querys[i]);
  1701. }
  1702. } else {
  1703. removeQueryString(querys);
  1704. }
  1705. removeCallback(cb);
  1706. }
  1707.  
  1708. /**
  1709. * 增加定时刷新回调
  1710. * @method addCallback
  1711. * @param {Function} cb
  1712. */
  1713. function addCallback(cb) {
  1714. if (_.indexOf(timerCallbackStack, cb) == -1) {
  1715. timerCallbackStack.push(cb);
  1716. }
  1717. }
  1718.  
  1719. /**
  1720. * 删除定时刷新回调
  1721. * @method removeCallback
  1722. * @param {Function} cb
  1723. */
  1724. function removeCallback(cb) {
  1725. timerCallbacks = _.without(timerCallbacks, cb);
  1726. if(timerCallbacks.length == 0){
  1727. timerCallbacks.push(timerUpdateStatus);
  1728. }
  1729. return timerCallbackStack;
  1730. }
  1731.  
  1732. /**
  1733. * 增加定时刷新参数
  1734. * @method addQueryString
  1735. * @param {String} query 查询key
  1736. */
  1737. function addQueryString(query) {
  1738. if (_.indexOf(timerQueryString, query) == -1) {
  1739. timerQueryString.push(query);
  1740. }
  1741. }
  1742.  
  1743. /**
  1744. * 删除定时刷新回调
  1745. * @method removeQueryString
  1746. * @param {String} query
  1747. */
  1748. function removeQueryString(query) {
  1749. timerQueryString = _.without(timerQueryString, query);
  1750. return timerQueryString;
  1751. }
  1752.  
  1753. /**
  1754. * 定时刷新默认状态更新回调函数
  1755. * @method timerUpdateStatus
  1756. * @param {Object} JSON data 定时刷新返回的结果集
  1757. */
  1758. function timerUpdateStatus(data) {
  1759. timerInfo.signalImg = typeof data.signalbar == 'undefined' ? '0' : data.signalbar;
  1760. timerInfo.networkType = data.network_type ? data.network_type : '';
  1761. if (timerInfo.networkType.toLowerCase().indexOf("limited_service") != -1 || timerInfo.networkType.toLowerCase().indexOf("limited service") != -1) {
  1762. timerInfo.networkType = "limited_service";
  1763. } else if (timerInfo.networkType.toLowerCase().indexOf("no_service") != -1 || timerInfo.networkType.toLowerCase().indexOf("no service") != -1) {
  1764. timerInfo.networkType = "no_service";
  1765. }
  1766. timerInfo.networkOperator = data.network_provider ? data.network_provider : '';
  1767. timerInfo.spn_b1_flag = data.spn_b1_flag;
  1768. timerInfo.spn_b2_flag = data.spn_b2_flag;
  1769. timerInfo.spn_name_data = data.spn_name_data;
  1770. timerInfo.connectStatus = typeof data.ppp_status == 'undefined'? 'ppp_disconnected' : data.ppp_status;
  1771. var curr_connected_devices = (!data.station_mac || data.station_mac == "")? [] : data.station_mac.split(";");
  1772. // for (var i = 0; i < curr_connected_devices.length; i++) {
  1773. // var hostName = data.curr_connected_devices[i].hostName;
  1774. // if (hostName == "") {
  1775. // data.curr_connected_devices[i].hostName = data.curr_connected_devices[i].macAddress;
  1776. // }
  1777. // var timeConnected = data.curr_connected_devices[i].timeConnected;
  1778. // if (timeConnected == "") {
  1779. // data.curr_connected_devices[i].timeConnected = 0;
  1780. // }
  1781. // }
  1782. timerInfo.wan_ipaddr = data.wan_ipaddr;
  1783. timerInfo.static_wan_ipaddr = data.static_wan_ipaddr;
  1784. timerInfo.ipv6_wan_ipaddr = data.ipv6_wan_ipaddr;
  1785. timerInfo.curr_connected_devices = curr_connected_devices;
  1786. timerInfo.roamingStatus = getRoamStatus(timerInfo.networkType, data.modem_main_state, data.simcard_roam);
  1787. timerInfo.wifiStatus = data.wifi_ap_mode != "0";
  1788. timerInfo.wifiStatusDetail = data.wifi_ap_mode;
  1789. timerInfo.simStatus = data.modem_main_state;
  1790. timerInfo.pinStatus = data.pin_status;
  1791. //TODO 电池续航时间需要再讨论,下边是92的代码
  1792. var needMinutes = 3 * 60 * 60;
  1793. var batteryLevel = (data.battery_vol_percent && data.battery_vol_percent.length > 0) ? data.battery_vol_percent : 100;
  1794. timerInfo.batteryPers = data.battery_pers;
  1795. var remainMinutes = Math.round(needMinutes * (1 - batteryLevel / 100));
  1796. timerInfo.batteryStatus = (typeof data.battery_charging == 'undefined') ? '0' : data.battery_charging;
  1797. timerInfo.batteryLevel = batteryLevel;
  1798. timerInfo.batteryTime = remainMinutes.toString();
  1799. timerInfo.data_counter = {
  1800. uploadRate: data.realtime_tx_thrpt == '' ? 0 : data.realtime_tx_thrpt,
  1801. downloadRate: data.realtime_rx_thrpt == '' ? 0 : data.realtime_rx_thrpt,
  1802. /*totalSent : data.total_tx_bytes == '' ? 0 : data.total_tx_bytes,
  1803. totalReceived : data.total_rx_bytes == '' ? 0 : data.total_rx_bytes,
  1804. totalConnectedTime : data.total_time == '' ? 0 : data.total_time,*/
  1805. currentSent: data.realtime_tx_bytes == '' ? 0 : data.realtime_tx_bytes,
  1806. currentReceived: data.realtime_rx_bytes == '' ? 0 : data.realtime_rx_bytes,
  1807. currentConnectedTime: data.realtime_time == '' ? 0 : data.realtime_time,
  1808. monthlySent: data.monthly_tx_bytes == '' ? 0 : data.monthly_tx_bytes,
  1809. monthlyReceived: data.monthly_rx_bytes == '' ? 0 : data.monthly_rx_bytes,
  1810. monthlyConnectedTime: data.monthly_time == '' ? 0 : data.monthly_time,
  1811. month: data.date_month == '' ? 1 : data.date_month
  1812. };
  1813. timerInfo.ssid = data.SSID1;
  1814. timerInfo.mainSSID5g = data.m_SSID;
  1815. timerInfo.authMode = data.AuthMode;
  1816. timerInfo.isLoggedIn = config.HAS_LOGIN ? data.loginfo == "ok" : true;
  1817. if (config.HAS_SMS) {
  1818. if (!timerInfo.newSmsReceived) {
  1819. timerInfo.newSmsReceived = data.sms_received_flag > 0;
  1820. }
  1821. if (!timerInfo.smsReportReceived) {
  1822. timerInfo.smsReportReceived = data.sts_received_flag > 0;
  1823. }
  1824. if (typeof data.sms_dev_unread_num != "undefined") {
  1825. timerInfo.smsUnreadCount = config.SMS_UNREAD_NUM_INCLUDE_SIM ? parseInt(data.sms_dev_unread_num | 0, 10) + parseInt(data.sms_sim_unread_num | 0, 10) : parseInt(data.sms_dev_unread_num | 0, 10);
  1826. } else {
  1827. timerInfo.smsUnreadCount = parseInt(data.sms_unread_num | 0, 10)
  1828. }
  1829. }
  1830. if (data.data_volume_limit_switch == '1') {
  1831. timerInfo.limitVolumeEnable = true;
  1832. timerInfo.limitVolumeType = data.data_volume_limit_unit == 'data' ? '1' : '0';
  1833. timerInfo.limitVolumePercent = data.data_volume_alert_percent;
  1834. if (data.data_volume_limit_unit == 'data') {
  1835. var dataMonthLimit = data.data_volume_limit_size.split("_");
  1836. timerInfo.limitVolumeSize = dataMonthLimit[0] * dataMonthLimit[1] * 1024 * 1024;
  1837. } else {
  1838. timerInfo.limitVolumeSize = data.data_volume_limit_size * 60 * 60;
  1839. }
  1840. } else {
  1841. timerInfo.limitVolumeEnable = false;
  1842. timerInfo.limitVolumeType = '1';
  1843. timerInfo.limitVolumePercent = '100';
  1844. timerInfo.limitVolumeSize = '0';
  1845. }
  1846. timerInfo.connectWifiProfile = data.EX_wifi_profile;
  1847. timerInfo.connectWifiSSID = data.EX_SSID1;
  1848. timerInfo.connectWifiStatus = data.sta_ip_status;
  1849. timerInfo.multi_ssid_enable = data.guest_switch;
  1850. timerInfo.roamMode = data.roam_setting_option;
  1851. timerInfo.opms_wan_mode = data.opms_wan_mode;
  1852. // TODO OTA
  1853. timerInfo.new_version_state = data.new_version_state == '1' || data.new_version_state == "version_has_new_critical_software" || data.new_version_state == "version_has_new_optional_software" || data.current_upgrade_state == 'upgrade_pack_redownload';
  1854. timerInfo.current_upgrade_state = data.current_upgrade_state;
  1855. if (timerInfo.current_upgrade_state == "downloading") {
  1856. timerInfo.current_upgrade_state = "upgrading";
  1857. } else if (timerInfo.current_upgrade_state == "verify_failed") {
  1858. timerInfo.current_upgrade_state = "upgrade_pack_error";
  1859. }
  1860. // TODO OTA
  1861. timerInfo.is_mandatory = data.is_mandatory == "1" || data.new_version_state == "version_has_new_critical_software";
  1862. timerInfo.allowRoamingUpdate = data.upg_roam_switch;
  1863. timerInfo.dialMode = data.dial_mode;
  1864. timerInfo.hmcc = data.hmcc;
  1865. timerInfo.hmnc = data.hmnc;
  1866. timerInfo.mcc = data.mcc;
  1867. timerInfo.mnc = data.mnc;
  1868. timerInfo.wifi_dfs_status = data.wifi_dfs_status;
  1869. }
  1870.  
  1871. function timerUpdaterErrorCallback(){
  1872. timerInfo.batteryStatus = '0';
  1873. }
  1874. /**
  1875. * 获取漫游状态, 参考MF93
  1876. * @method getRoamStatus
  1877. */
  1878. function getRoamStatus(networkType, modemState, simcardRoam) {
  1879. if(("" == $.trim(networkType)) || "no_service" == networkType.toLowerCase() || "limited_service" == networkType.toLowerCase() || "modem_sim_undetected" == modemState ||"modem_waitpin" == modemState || "modem_waitpuk" == modemState){
  1880. return false;
  1881. }
  1882.  
  1883. if ("Internal" == simcardRoam || "International" == simcardRoam){
  1884. return true;
  1885. }else{
  1886. return false;
  1887. }
  1888. }
  1889.  
  1890.  
  1891. $(document).ready(function() {
  1892. setTimeout(function () {
  1893. timerUpdater();
  1894. }, config.IS_TEST ? 1000 : 0);
  1895. });
  1896.  
  1897. /**************************************************************************
  1898. Description : set current network
  1899. Parameters :
  1900. [IN] : string : strNetworkNumber : the network digital number MCCMNC.
  1901. [IN] : number : nRat : the network connect technology: 0 = "2G", 2 = "3G".
  1902. [IN] : function : callback(bResult) : call back function, and the parameters list below:
  1903. [IN] : bool : bResult : true = succeed, false = failed.
  1904. return : bool : if the parameters is invalid, the function will return false, otherwise will return true.
  1905. comment: we need another parameter nRat, the value may be: 0 = '2G' or 2 = '3G'.
  1906. @method setNetwork
  1907. **************************************************************************/
  1908. function setNetwork(strNetworkNumber, nRat, callback) {
  1909. if((typeof(strNetworkNumber) !== "string") || (strNetworkNumber === "") ||
  1910. (typeof(nRat) !== "number") || (isNaN(nRat))) {
  1911. if(typeof(callback) === "function") {
  1912. callback(false);//VDF null
  1913. return;
  1914. }
  1915. }
  1916. var nRat1 = -1;
  1917. if(nRat === 0) {
  1918. nRat1 = 0;
  1919. } else if(nRat === 2) {
  1920. nRat1 = 2;
  1921. } else if(nRat == 7) {
  1922. nRat1 = 7;
  1923. } else {
  1924. nRat1 = -1;
  1925. }
  1926. if(-1 === nRat1) {
  1927. if(typeof(callback) === "function") {
  1928. callback(false);//VDF null
  1929. return;
  1930. }
  1931. }
  1932. asyncRequest({
  1933. isTest: isTest,
  1934. goformId: "SET_NETWORK",
  1935. NetworkNumber: strNetworkNumber,
  1936. Rat: nRat
  1937. }, function (data) {
  1938. if (data && data.result == "success") {
  1939. var flag;
  1940. var counter = 0;
  1941. var timer = setInterval(function () {
  1942. var obj = syncRequest({cmd: 'm_netselect_result', isTest: isTest}, false);
  1943. if (!obj) {
  1944. callback(false);
  1945. }
  1946. //after 60s,if the flag is empty,it means that setNetwork fail
  1947. if (obj.m_netselect_result == "manual_success") {
  1948. flag = "1";
  1949. window.clearInterval(timer);
  1950. callback(true);
  1951. } else if (obj.m_netselect_result == "manual_fail") {
  1952. flag = "0";
  1953. window.clearInterval(timer);
  1954. callback(false);
  1955. } else if (counter < 120) {
  1956. counter++;
  1957. } else {
  1958. window.clearInterval(timer);
  1959. callback(false);
  1960. }
  1961. }, 1000);
  1962. } else {
  1963. callback(false);
  1964. }
  1965. }, function (data) {
  1966. callback(false);
  1967. }, true);
  1968. }
  1969.  
  1970. /**************************************************************************
  1971. Description : get current network information
  1972. Parameters :
  1973. [IN] : function :callback(bResult, vNetwork) : call back function, and the parameters list below:
  1974. [IN] : bool : bResult : true = succeed, false = failed.
  1975. [IN] : object : vNetwork : network information object, the object attribute list below:
  1976. type : name : description
  1977. string : strFullName : operator full name(the value is maybe ""),
  1978. such as 'china mobile'
  1979. string : strShortName : operator short name(the value is maybe ""),
  1980. such as 'china mobile'
  1981. string : strNumeric : the digital number, such as '460'
  1982. number : nRat : the network connect technology, 0 = '2G', 2 = '3G'.
  1983. string : strBearer : the current bearer, maybe one of:
  1984. <empty>
  1985. GSM
  1986. GPRS
  1987. EDGE
  1988. WCDMA
  1989. HSDPA
  1990. HSUPA
  1991. HSPA
  1992. TD_SCDMA
  1993. HSPA+
  1994. EVDO Rev.0
  1995. EVDO Rev.A
  1996. EVDO Rev.B
  1997. if get current network information failed, the return value will be null.
  1998. return : void
  1999. @method getCurrentNetwork
  2000. **************************************************************************/
  2001. function getCurrentNetwork() {
  2002. /*asyncRequest("current_network",callback,function(data){
  2003. // the object of network information
  2004. var vNetwork = {};
  2005. vNetwork.strFullName = data.strFullName;
  2006. vNetwork.strShortName = data.strShortName;
  2007. vNetwork.strNumeric = data.strNumeric;
  2008. vNetwork.nRat = Number(data.nRat);
  2009. vNetwork.strBearer = data.strBearer;
  2010. return [true,vNetwork];
  2011. });*/
  2012.  
  2013. return doStuff(arguments, {}, prepare, deal, null, false);
  2014.  
  2015. function prepare(params, isPost) {
  2016. var requestParams = {};
  2017. requestParams.isTest = isTest;
  2018. requestParams.cmd = "current_network";
  2019. return requestParams;
  2020. }
  2021.  
  2022. function deal(data) {
  2023. if (data) {
  2024. return {
  2025. strFullName: data.strFullName,
  2026. strShortName: data.strShortName,
  2027. strNumeric: data.strNumeric,
  2028. nRat: data.nRat == ""? "" : Number(data.nRat),
  2029. strBearer: data.strBearer
  2030. };
  2031. } else {
  2032. return unknownErrorObject;
  2033. }
  2034. }
  2035. }
  2036.  
  2037. /**
  2038. * 保存一条电话本
  2039. * @method savePhoneBook
  2040. * @param {Object} JSON
  2041. * @example
  2042. * //请求参数映射
  2043. * {
  2044. * location = 0;
  2045. * name = "张三";
  2046. * mobile_phone_number = "13500000015";
  2047. * home_phone_number = "012-12345678";
  2048. * office_phone_number = "012-87654321";
  2049. * mail = "mail@mail.com";
  2050. * }
  2051. * @return {Object} JSON
  2052. */
  2053. function savePhoneBook() {
  2054. var callback = arguments[1];
  2055. return doStuff(arguments, {}, prepare, deal, null, true);
  2056.  
  2057. function prepare(params, isPost) {
  2058. var requestParams = {};
  2059. requestParams.isTest = isTest;
  2060. requestParams.notCallback = true;
  2061. requestParams.goformId = "PBM_CONTACT_ADD";
  2062. requestParams.location = params.location;
  2063. requestParams.name = encodeMessage(params.name);
  2064. requestParams.mobilephone_num = params.mobile_phone_number;
  2065. if (requestParams.location == 1) {
  2066. requestParams.add_index_pc = params.index;
  2067. requestParams.homephone_num = params.home_phone_number;
  2068. requestParams.officephone_num = params.office_phone_number;
  2069. requestParams.email = encodeMessage(params.mail);
  2070. requestParams.groupchoose = params.group;
  2071. if(!requestParams.groupchoose){
  2072. requestParams.groupchoose = "common";
  2073. }
  2074. } else {
  2075. requestParams.edit_index = params.index;
  2076. }
  2077. return requestParams;
  2078. }
  2079.  
  2080. function deal(data) {
  2081. if (data && data.result == "success") {
  2082. addTimerThings("pbm_write_flag", checkSavePhoneBook);
  2083. } else {
  2084. callback(data);
  2085. }
  2086. }
  2087.  
  2088. function checkSavePhoneBook(data){
  2089. checkPbmWriteFlag(data, callback, checkSavePhoneBook);
  2090. }
  2091. }
  2092.  
  2093. function checkPbmWriteFlag(data, callback, fn) {
  2094. if (data.pbm_write_flag == "0") {
  2095. removeTimerThings("pbm_write_flag", fn);
  2096. callback({result:"success"});
  2097. } else if (data.pbm_write_flag == "6" || data.pbm_write_flag == "7" || data.pbm_write_flag == "8" || data.pbm_write_flag == "9"|| data.pbm_write_flag == "10"|| data.pbm_write_flag == "11"|| data.pbm_write_flag == "14") {
  2098. removeTimerThings("pbm_write_flag", fn);
  2099. callback({result:"fail"});
  2100. } else {
  2101. //noting to do,continue waiting
  2102. }
  2103. }
  2104.  
  2105. /**
  2106. * 删除电话本
  2107. * @method deletePhoneBooks
  2108. * @param {Object} JSON
  2109. * @example
  2110. * //请求参数映射
  2111. * {
  2112. * indexs:["1","2","3"]
  2113. * }
  2114. * @return {Object} JSON
  2115. */
  2116. function deletePhoneBooks() {
  2117. var callback = arguments[1];
  2118. return doStuff(arguments, {}, prepare, deal, null, true);
  2119.  
  2120. function prepare(params, isPost) {
  2121. var requestParams = {};
  2122. requestParams.isTest = isTest;
  2123. requestParams.notCallback = true;
  2124. requestParams.goformId = "PBM_CONTACT_DEL";
  2125. requestParams.del_option = "delete_num";
  2126. requestParams.delete_id = params.indexs.join(",");
  2127. return requestParams;
  2128. }
  2129.  
  2130. function deal(data) {
  2131. if (data && data.result == "success") {
  2132. addTimerThings("pbm_write_flag", checkDeletePhoneBooks);
  2133. } else {
  2134. callback(data);
  2135. }
  2136. }
  2137.  
  2138. function checkDeletePhoneBooks(data){
  2139. checkPbmWriteFlag(data, callback, checkDeletePhoneBooks);
  2140. }
  2141. }
  2142.  
  2143. /**
  2144. * 删除所有电话本数据
  2145. * @method deleteAllPhoneBooks
  2146. * @param {Object} JSON
  2147. * @example
  2148. * //请求参数映射
  2149. * {
  2150. * location:0
  2151. * }
  2152. * @return {Object} JSON
  2153. */
  2154. function deleteAllPhoneBooks() {
  2155. var callback = arguments[1];
  2156. return doStuff(arguments, {}, prepare, deal, null, true);
  2157.  
  2158. function prepare(params, isPost) {
  2159. var requestParams = {};
  2160. requestParams.isTest = isTest;
  2161. requestParams.notCallback = true;
  2162. requestParams.goformId = "PBM_CONTACT_DEL";
  2163. requestParams.del_option = "delete_all";
  2164. requestParams.del_all_location = params.location;
  2165. return requestParams;
  2166. }
  2167.  
  2168. function deal(data) {
  2169. if (data && data.result == "success") {
  2170. addTimerThings("pbm_write_flag", checkDeleteAllPhoneBooks);
  2171. } else {
  2172. callback(data);
  2173. }
  2174. }
  2175.  
  2176. function checkDeleteAllPhoneBooks(data){
  2177. checkPbmWriteFlag(data, callback, checkDeleteAllPhoneBooks);
  2178. }
  2179. }
  2180.  
  2181. /**
  2182. * 按分组删除所有电话本数据
  2183. * @method deleteAllPhoneBooksByGroup
  2184. * @param {Object} JSON
  2185. * @example
  2186. * //请求参数映射
  2187. * {
  2188. * del_group:'common'
  2189. * }
  2190. * @return {Object} JSON
  2191. */
  2192. function deleteAllPhoneBooksByGroup() {
  2193. var callback = arguments[1];
  2194. return doStuff(arguments, {}, prepare, deal, null, true);
  2195.  
  2196. function prepare(params, isPost) {
  2197. var requestParams = {};
  2198. requestParams.isTest = isTest;
  2199. requestParams.notCallback = true;
  2200. requestParams.goformId = "PBM_CONTACT_DEL";
  2201. requestParams.del_option = "delete_all_by_group";
  2202. requestParams.del_all_location = 3;
  2203. requestParams.del_group = params.group;
  2204. return requestParams;
  2205. }
  2206.  
  2207. function deal(data) {
  2208. if (data && data.result == "success") {
  2209. addTimerThings("pbm_write_flag", checkDeleteAllPhoneBooksByGroup);
  2210. } else {
  2211. callback(data);
  2212. }
  2213. }
  2214.  
  2215. function checkDeleteAllPhoneBooksByGroup(data){
  2216. checkPbmWriteFlag(data, callback, checkDeleteAllPhoneBooksByGroup);
  2217. }
  2218. }
  2219.  
  2220. function setConnectionMode() {
  2221. return doStuff(arguments, {}, prepare, deal, null, true);
  2222.  
  2223. function prepare(params, isPost) {
  2224. var requestParams = {};
  2225. requestParams.goformId = "SET_CONNECTION_MODE";
  2226. requestParams.isTest = isTest;
  2227. requestParams.ConnectionMode = params.connectionMode;
  2228. requestParams.roam_setting_option = params.isAllowedRoaming;
  2229. return requestParams;
  2230. }
  2231.  
  2232. function deal(data) {
  2233. if (data) {
  2234. return data;
  2235. } else {
  2236. callback(data);
  2237. }
  2238. }
  2239. }
  2240.  
  2241.  
  2242. function getConnectionMode() {
  2243. return doStuff(arguments, {}, prepare, deal, null, false);
  2244.  
  2245. function prepare(params, isPost) {
  2246. var requestParams = {};
  2247. requestParams.isTest = isTest;
  2248. requestParams.cmd = "ConnectionMode";
  2249. return requestParams;
  2250. }
  2251.  
  2252. function deal(data) {
  2253. if (data) {
  2254. var result = {};
  2255. result.connectionMode = data.connectionMode;
  2256. result.isAllowedRoaming = data.autoConnectWhenRoaming;
  2257. return result;
  2258. } else {
  2259. return unknownErrorObject;
  2260. }
  2261. }
  2262. }
  2263.  
  2264. function _getPhoneBooks(args, location) {
  2265. if (args[0].data_per_page == 0) {
  2266. return {"pbm_data":[]};
  2267. }
  2268. return doStuff(args, {}, prepare, deal, null, false);
  2269.  
  2270. function prepare(params, isPost) {
  2271. var requestParams = {};
  2272. requestParams.isTest = isTest;
  2273. requestParams.mem_store = location;
  2274. if (location == 2) {
  2275. requestParams.cmd = "pbm_data_total";
  2276. } else {
  2277. requestParams.cmd = "pbm_data_info";
  2278. }
  2279. requestParams.page = params.page;
  2280. requestParams.data_per_page = params.data_per_page;
  2281. requestParams.orderBy = params.orderBy;
  2282. requestParams.isAsc = params.isAsc;
  2283. return requestParams;
  2284. }
  2285.  
  2286. function deal(data) {
  2287. if (data && data.pbm_data) {
  2288. var books = [];
  2289. $.each(data.pbm_data, function (i) {
  2290. books.push({
  2291. pbm_id:data.pbm_data[i].pbm_id,
  2292. pbm_location:data.pbm_data[i].pbm_location,
  2293. pbm_number:data.pbm_data[i].pbm_number,
  2294. pbm_anr:data.pbm_data[i].pbm_anr,
  2295. pbm_anr1:data.pbm_data[i].pbm_anr1,
  2296. pbm_group:data.pbm_data[i].pbm_group,
  2297. pbm_name:decodeMessage(data.pbm_data[i].pbm_name),
  2298. pbm_email:decodeMessage(data.pbm_data[i].pbm_email)
  2299. });
  2300. });
  2301. return {pbm_data:books};
  2302. } else {
  2303. return unknownErrorObject;
  2304. }
  2305. }
  2306. }
  2307. /**
  2308. * 按分组获取设备侧电话本数据
  2309. * @method getPhoneBooksByGroup
  2310. * @return {Object} JSON
  2311. */
  2312. function getPhoneBooksByGroup() {
  2313. if (arguments[0].data_per_page == 0) {
  2314. return {"pbm_data":[]};
  2315. }
  2316. return doStuff(arguments, {}, prepare, deal, null, false);
  2317.  
  2318. function prepare(params, isPost) {
  2319. var requestParams = {};
  2320. requestParams.isTest = isTest;
  2321. requestParams.cmd = "pbm_data_total";
  2322. requestParams.mem_store = 3;
  2323. requestParams.pbm_group = params.group;
  2324. requestParams.page = params.page;
  2325. requestParams.data_per_page = params.data_per_page;
  2326. requestParams.orderBy = params.orderBy;
  2327. requestParams.isAsc = params.isAsc;
  2328. return requestParams;
  2329. }
  2330.  
  2331. function deal(data) {
  2332. if (data && data.pbm_data) {
  2333. var books = [];
  2334. $.each(data.pbm_data, function (i) {
  2335. books.push({
  2336. pbm_id:data.pbm_data[i].pbm_id,
  2337. pbm_location:data.pbm_data[i].pbm_location,
  2338. pbm_number:data.pbm_data[i].pbm_number,
  2339. pbm_anr:data.pbm_data[i].pbm_anr,
  2340. pbm_anr1:data.pbm_data[i].pbm_anr1,
  2341. pbm_group:data.pbm_data[i].pbm_group,
  2342. pbm_name:decodeMessage(data.pbm_data[i].pbm_name),
  2343. pbm_email:decodeMessage(data.pbm_data[i].pbm_email)
  2344. });
  2345. });
  2346. return {pbm_data:books};
  2347. } else {
  2348. return unknownErrorObject;
  2349. }
  2350. }
  2351. }
  2352. /**
  2353. * 获取设备侧电话本数据
  2354. * @method getDevicePhoneBooks
  2355. * @return {Object} JSON
  2356. */
  2357. function getDevicePhoneBooks() {
  2358. return _getPhoneBooks(arguments, 1);
  2359. }
  2360.  
  2361. /**
  2362. * 获取SIM卡侧电话本数据
  2363. * @method getSIMPhoneBooks
  2364. * @return {Object} JSON
  2365. */
  2366. function getSIMPhoneBooks() {
  2367. return _getPhoneBooks(arguments, 0);
  2368. }
  2369.  
  2370. /**
  2371. * 获取电话本数据,包括SIM卡和设备侧
  2372. * @method getPhoneBooks
  2373. * @return {Object} JSON
  2374. */
  2375. function getPhoneBooks() {
  2376. return _getPhoneBooks(arguments, 2);
  2377. }
  2378.  
  2379. function getPhoneBookReady(){
  2380. return doStuff(arguments, {}, prepare, deal, null, false);
  2381.  
  2382. function prepare(params, isPost) {
  2383. var requestParams = {};
  2384. requestParams.isTest = isTest;
  2385. requestParams.cmd = "pbm_init_flag";
  2386. return requestParams;
  2387. }
  2388.  
  2389. function deal(data) {
  2390. if (data) {
  2391. return data;
  2392. } else {
  2393. return unknownErrorObject;
  2394. }
  2395. }
  2396. }
  2397.  
  2398. function getPhoneBookCapacity(args, isSIM) {
  2399. return doStuff(args, {}, prepare, deal, null, false);
  2400.  
  2401. function prepare(params, isPost) {
  2402. var requestParams = {};
  2403. requestParams.isTest = isTest;
  2404. requestParams.cmd = "pbm_capacity_info";
  2405. if (isSIM) {
  2406. requestParams.pbm_location = "pbm_sim";
  2407. } else {
  2408. requestParams.pbm_location = "pbm_native";
  2409. }
  2410. return requestParams;
  2411. }
  2412.  
  2413. function deal(data) {
  2414. if (data) {
  2415. return data;
  2416. } else {
  2417. return unknownErrorObject;
  2418. }
  2419. }
  2420. }
  2421.  
  2422. /**
  2423. * 获取SIM卡侧电话本容量
  2424. * @method getSIMPhoneBookCapacity
  2425. * @return {Object} JSON
  2426. * @example
  2427. //请求参数映射
  2428. {
  2429. simPbmTotalCapacity:100,
  2430. simPbmUsedCapacity:20,
  2431. simType:?, //2G or 3G used to extend pbm
  2432. maxNameLen:?,
  2433. maxNumberLen:?
  2434. }
  2435. */
  2436. function getSIMPhoneBookCapacity() {
  2437. var data = getPhoneBookCapacity(arguments, true);
  2438. return {
  2439. simPbmTotalCapacity:parseInt(data.pbm_sim_max_record_num),
  2440. simPbmUsedCapacity:parseInt(data.pbm_sim_used_record_num),
  2441. simType:data.pbm_sim_type, //2G or 3G used to extend pbm
  2442. maxNameLen:parseInt(data.pbm_sim_max_name_len),
  2443. maxNumberLen:parseInt(data.pbm_sim_max_number_len)
  2444. };
  2445. }
  2446.  
  2447. /**
  2448. * 获取设备电话本容量
  2449. * @method getDevicePhoneBookCapacity
  2450. * @return {Object} JSON
  2451. * @example
  2452. //返回结果
  2453. {
  2454. pcPbmTotalCapacity:100,
  2455. pcPbmUsedCapacity:30
  2456. }
  2457. */
  2458. function getDevicePhoneBookCapacity() {
  2459. var data = getPhoneBookCapacity(arguments, false);
  2460. return {
  2461. pcPbmTotalCapacity:parseInt(data.pbm_dev_max_record_num),
  2462. pcPbmUsedCapacity:parseInt(data.pbm_dev_used_record_num)
  2463. };
  2464. }
  2465.  
  2466. /**
  2467. * 获取登录相关信息
  2468. * @method getLoginData
  2469. * @return {Object} JSON
  2470. */
  2471. function getLoginData(){
  2472. return doStuff(arguments, {}, prepare, deal, null, false);
  2473.  
  2474. function prepare(params, isPost) {
  2475. var requestParams = {};
  2476. requestParams.isTest = isTest;
  2477. requestParams.cmd = "modem_main_state,puknumber,pinnumber,opms_wan_mode,psw_fail_num_str,login_lock_time,diag_sleep_flag";
  2478. requestParams.multi_data = 1;
  2479. return requestParams;
  2480. }
  2481.  
  2482. function deal(data) {
  2483. if (data) {
  2484. data.psw_fail_num_str = data.psw_fail_num_str == '' ? config.MAX_LOGIN_COUNT : data.psw_fail_num_str;
  2485. data.login_lock_time = data.login_lock_time == '' ? '300' : data.login_lock_time;
  2486. return data;
  2487. } else {
  2488. return unknownErrorObject;
  2489. }
  2490. }
  2491. }
  2492.  
  2493. /**
  2494. * 获取登录状态
  2495. * @method login
  2496. * @param {Object} JSON
  2497. * @example
  2498. * //返回结果格式
  2499. *{
  2500. * password:"123456"
  2501. *}
  2502. * @return {Object} JSON
  2503. */
  2504. function login() {
  2505. return doStuff(arguments, {}, prepare, deal, {errorType: 'badPassword'}, true);
  2506.  
  2507. function prepare(params, isPost){
  2508. var obj = {
  2509. isTest : isTest,
  2510. goformId : "LOGIN",
  2511. password : config.PASSWORD_ENCODE ? Base64.encode(params.password) : params.password
  2512. };
  2513. return obj;
  2514. }
  2515.  
  2516. function deal(data){
  2517. //in doc, notes:If the user is 'already logged in' at the device, it calls back as success.
  2518. if(data && (data.result == "0" || data.result == "4")){
  2519. timerInfo.isLoggedIn = true;
  2520. return {result: true};
  2521. }else{
  2522. var loginError = {};
  2523. switch(data.result){
  2524. case "1":
  2525. loginError = {errorType : "Login Fail"};
  2526. break;
  2527. case "2":
  2528. loginError = {errorType : "duplicateUser"};
  2529. break;
  2530. case "3":
  2531. loginError = {errorType : "badPassword"};
  2532. break;
  2533. /* case "4":
  2534. loginError = {errorType : "already logged in"};
  2535. break; */
  2536. default :
  2537. loginError = {errorType : "Login Fail"};
  2538. break;
  2539. }
  2540. timerInfo.isLoggedIn = false;
  2541. return $.extend(unknownErrorObject, loginError);
  2542. }
  2543. }
  2544. }
  2545.  
  2546. /**
  2547. * 获取登录状态
  2548. * @method getLoginStatus
  2549. * @return {Object} JSON
  2550. * @example
  2551. //返回结果格式
  2552. {
  2553. status = "loggedIn";
  2554. }
  2555. */
  2556. function getLoginStatus() {
  2557. if(timerInfo.isLoggedIn != undefined){
  2558. return doStuff(arguments, {
  2559. status : timerInfo.isLoggedIn ? 'loggedIn' : 'loggedOut'
  2560. });
  2561. }else{
  2562. var resultObject = {};
  2563. if(!config.HAS_LOGIN){
  2564. resultObject.status = 'loggedIn';
  2565. resultObject.errorType = 'no_login';
  2566. timerInfo.isLoggedIn = true;
  2567. }
  2568. return doStuff(arguments, resultObject, prepare, deal, null, false);
  2569. }
  2570.  
  2571. function prepare(params, isPost){
  2572. var requestParams = {};
  2573. requestParams.isTest = isTest;
  2574. requestParams.cmd = "loginfo";
  2575. requestParams.multi_data = 1;
  2576. return requestParams;
  2577. }
  2578.  
  2579. function deal(data){
  2580. if(data && data.loginfo || data.loginfo == ""){
  2581. var loginStatus = {};
  2582. //it should be an enum rather than Boolean
  2583. switch(data.loginfo){
  2584. case "ok":
  2585. timerInfo.isLoggedIn = true;
  2586. loginStatus.status = "loggedIn";
  2587. break;
  2588. default:
  2589. timerInfo.isLoggedIn = false;
  2590. loginStatus.status = "loggedOut";
  2591. break;
  2592. }
  2593. // currentLoginStatus = loginStatus.status;
  2594. return loginStatus;
  2595. }else{
  2596. timerInfo.isLoggedIn = undefined;
  2597. // currentLoginStatus = undefined;
  2598. return $.extend(unknownErrorObject, {errorType : "LoginStatusError"});
  2599. }
  2600. }
  2601. }
  2602.  
  2603. /**
  2604. * 验证PIN输入是否正确
  2605. * @method enterPIN
  2606. * @param {Object} JSON 参数对象
  2607. * @example
  2608. //请求参数映射
  2609. {
  2610. PinNumber = "1234";
  2611. }
  2612. * @return {Object} JSON
  2613. */
  2614. function enterPIN() {
  2615. return doStuff(arguments, {}, prepare, deal,{}, true);
  2616.  
  2617. function prepare(params, isPost){
  2618. var obj = {};
  2619. obj.isTest = isTest;
  2620. obj.goformId = "ENTER_PIN";
  2621. obj.PinNumber = params.PinNumber;
  2622. return obj;
  2623. }
  2624.  
  2625. function deal(data) {
  2626. if (data && data.result === "success") {
  2627. return { result:true };
  2628. } else {
  2629. return { result:false};
  2630. }
  2631. }
  2632. }
  2633.  
  2634. /**
  2635. * 根据PUK设置新的PIN
  2636. * @method enterPUK
  2637. * @param {Object} JSON 参数对象
  2638. * @example
  2639. //请求参数映射
  2640. {
  2641. PUKNumber = "12345678";
  2642. PinNumber = "1234";
  2643. }
  2644. * @return {Object} JSON
  2645. */
  2646. function enterPUK() {
  2647. return doStuff(arguments, {}, prepare, deal,{}, true);
  2648.  
  2649. function prepare(params, isPost){
  2650. var obj = {};
  2651. obj.isTest = isTest;
  2652. obj.goformId = "ENTER_PUK";
  2653. obj.PUKNumber = params.PUKNumber;
  2654. obj.PinNumber = params.PinNumber;
  2655. return obj;
  2656. }
  2657.  
  2658. function deal(data) {
  2659. if (data && data.result === "success") {
  2660. return { result:true };
  2661. } else {
  2662. return { result:false};
  2663. }
  2664. }
  2665. }
  2666.  
  2667. /**
  2668. * 获取全部短消息
  2669. * @method getSMSMessages
  2670. * @example
  2671. //请求参数映射
  2672. {
  2673. cmd : "sms_page_data",
  2674. page : params.page,
  2675. data_per_page : params.smsCount,
  2676. mem_store : params.nMessageStoreType,
  2677. tags : params.tags,
  2678. order_by : params.orderBy
  2679. }
  2680. */
  2681. function getSMSMessages() {
  2682. return doStuff(arguments, {}, prepare, deal, {}, false);
  2683.  
  2684. function prepare(params, isPost) {
  2685. var obj = {
  2686. isTest : isTest,
  2687. cmd : "sms_data_total",
  2688. page : params.page,
  2689. data_per_page: config.SMS_DATABASE_SORT_SUPPORT ? params.smsCount : 500,
  2690. mem_store : params.nMessageStoreType,
  2691. tags : params.tags,
  2692. order_by : params.orderBy
  2693. };
  2694. return obj;
  2695. }
  2696.  
  2697. function deal(data) {
  2698. if (data && data.messages && data.messages.length > 0) {
  2699. return {messages: parseMessages(data.messages) };
  2700. } else {
  2701. return {messages: [] };
  2702. }
  2703. }
  2704. }
  2705.  
  2706. function parseMessages(messages, isReport){
  2707. var result = [];
  2708. for(var i = 0 ; i < messages.length; i++){
  2709. if(!config.SHOW_UN_COMPLETE_CONCAT_SMS && typeof messages[i].received_all_concat_sms != "undefined" && messages[i].received_all_concat_sms == '0'){
  2710. continue;
  2711. }
  2712. var oneMessage = {};
  2713. oneMessage.id = messages[i].id;
  2714. oneMessage.number = messages[i].number;
  2715. oneMessage.content = isReport ? messages[i].content : decodeMessageContent(messages[i].content);
  2716. oneMessage.time = transTime('20' + messages[i].date);//parseTime(messages[i].date);
  2717. oneMessage.isNew = messages[i].tag == "1";
  2718. oneMessage.groupId = messages[i].draft_group_id;
  2719. oneMessage.tag = messages[i].tag;
  2720. oneMessage.receivedAll = messages[i].received_all_concat_sms == '1';
  2721. result.push(oneMessage);
  2722. }
  2723. if (!config.SMS_DATABASE_SORT_SUPPORT) {
  2724. var ids = [];
  2725. var tmpResult = [];
  2726. for (var i = result.length; i--;) {
  2727. var n = result[i];
  2728. var idx = $.inArray(n.id, ids);
  2729. if (idx == -1) {
  2730. ids.push(n.id);
  2731. tmpResult.push(n);
  2732. } else {
  2733. if (n.content.length > tmpResult[idx].content.length) {
  2734. tmpResult[idx] = n;
  2735. }
  2736. }
  2737. }
  2738. return _.sortBy(tmpResult, function (n) {
  2739. return 0 - n.id;
  2740. });
  2741. } else {
  2742. return result;
  2743. }
  2744. }
  2745.  
  2746. function decodeMessageContent(msgContent) {
  2747. return decodeMessage(escapeMessage(msgContent));//.replace(/"/g, "\\\"");
  2748. }
  2749.  
  2750. /**
  2751. * 发送短消息
  2752. * @method sendSMS
  2753. */
  2754. function sendSMS() {
  2755. var callback = arguments[1];
  2756. var errorCabllback = arguments[2] ? arguments[2] : callback;
  2757. return doStuff(arguments, {}, prepare, deal, null, true);
  2758.  
  2759. function prepare(params, isPost){
  2760. var obj = {
  2761. isTest : isTest,
  2762. goformId : "SEND_SMS",
  2763. notCallback : true,
  2764. Number : params.number,
  2765. sms_time : getCurrentTimeString(),
  2766. MessageBody : escapeMessage(encodeMessage(params.message)),
  2767. ID : params.id,
  2768. encode_type : getEncodeType(params.message).encodeType
  2769. };
  2770. return obj;
  2771. }
  2772.  
  2773. function deal(data){
  2774. if(!data){
  2775. errorCabllback($.extend(unknownErrorObject, {errorType: "sendFail", errorText: "send_fail_try_again"}));
  2776. return;
  2777. }
  2778. if (data.result == "success") {
  2779. setTimeout(function(){
  2780. getSmsStatusInfo({
  2781. smsCmd : 4,
  2782. errorType : "sendFail",
  2783. errorText : "send_fail_try_again"
  2784. }, callback, errorCabllback);
  2785. }, 1000);
  2786. } else {
  2787. errorCabllback($.extend(unknownErrorObject, {errorType: "sendFail", errorText: "send_fail_try_again"}));
  2788. }
  2789. }
  2790. }
  2791.  
  2792. /**
  2793. * 保存草稿
  2794. * @method saveSMS
  2795. */
  2796. function saveSMS() {
  2797. var callback = arguments[1];
  2798. var errorCabllback = arguments[2] ? arguments[2] : callback;
  2799. return doStuff(arguments, {}, prepare, deal, null, true);
  2800.  
  2801. function prepare(params, isPost){
  2802. var obj = {
  2803. isTest : isTest,
  2804. notCallback : true,
  2805. goformId : "SAVE_SMS",
  2806. SMSMessage : escapeMessage(encodeMessage(params.message)), //短信内容
  2807. SMSNumber : params.numbers.join(";") + ";",//短消息号码
  2808. Index : params.index,//-1表示新建后保存;否则,表示编辑后保存,要传递实际的ID
  2809. encode_type : getEncodeType(params.message).encodeType,
  2810. sms_time : params.currentTimeString,
  2811. draft_group_id : params.groupId //短信组编号
  2812. };
  2813. return obj;
  2814. }
  2815.  
  2816. function deal(data){
  2817. if(!data){
  2818. errorCabllback($.extend(unknownErrorObject, {errorType: "saveFail", errorText: "save_fail"}));
  2819. return;
  2820. }
  2821. if (data.result == "success") {
  2822. getSmsStatusInfo({
  2823. smsCmd : 5,
  2824. errorType : "saveFail",
  2825. errorText : "save_fail"
  2826. }, callback, errorCabllback);
  2827. } else {
  2828. errorCabllback($.extend(unknownErrorObject, {errorType: "saveFail", errorText: "save_fail"}));
  2829. }
  2830. }
  2831. }
  2832.  
  2833. /**
  2834. * 删除全部短消息
  2835. * -- 目前经UE确认,移除了删除全部短信功能。此方法暂时保留
  2836. *
  2837. * @method deleteAllMessages
  2838. */
  2839. function deleteAllMessages(){
  2840. var callback = arguments[1];
  2841. var errorCabllback = arguments[2] ? arguments[2] : callback;
  2842.  
  2843. return doStuff(arguments, {}, prepare, deal, null, true);
  2844.  
  2845. function prepare(params, isPost){
  2846. //TODO: 由于不分箱子,所有和92实现会不同
  2847. var obj = {
  2848. isTest : isTest,
  2849. goformId : "ALL_DELETE_SMS",
  2850. notCallback : true,
  2851. which_cgi: params.location
  2852. };
  2853. return obj;
  2854. }
  2855.  
  2856. function deal(data){
  2857. if(!data){
  2858. errorCabllback($.extend(unknownErrorObject, {errorType: "deleteFail", errorText: "delete_fail_try_again"}));
  2859. return;
  2860. }
  2861. if (data.result == "success") {
  2862. addTimerThings("sms_cmd_status_info", checkDeleteStatus);
  2863. } else {
  2864. errorCabllback($.extend(unknownErrorObject, {errorType: "deleteFail", errorText: "delete_fail_try_again"}));
  2865. }
  2866. }
  2867.  
  2868. function checkDeleteStatus(data) {
  2869. var status = data.sms_cmd_status_info;
  2870. if(status == "2"){
  2871. removeTimerThings("sms_cmd_status_info", checkDeleteStatus);
  2872. errorCabllback($.extend(unknownErrorObject, {errorType: "deleteFail", errorText: "delete_fail_try_again"}));
  2873. } else if(status == "3"){
  2874. removeTimerThings("sms_cmd_status_info", checkDeleteStatus);
  2875. callback({result: true});
  2876. }
  2877. }
  2878. }
  2879.  
  2880. function deleteMessage() {
  2881. var callback = arguments[1];
  2882. var errorCabllback = arguments[2] ? arguments[2] : callback;
  2883.  
  2884. return doStuff(arguments, {}, prepare, deal, null, true);
  2885.  
  2886. function prepare(params, isPost){
  2887. var msgIds = params.ids.join(";") + ";";
  2888. var obj = {
  2889. isTest : isTest,
  2890. goformId : "DELETE_SMS",
  2891. msg_id : msgIds,
  2892. notCallback : true
  2893. };
  2894. return obj;
  2895. }
  2896.  
  2897. function deal(data){
  2898. if(!data){
  2899. errorCabllback($.extend(unknownErrorObject, {errorType: "deleteFail", errorText: "delete_fail_try_again"}));
  2900. return;
  2901. }
  2902. if (data.result == "success") {
  2903. getSmsStatusInfo({
  2904. smsCmd : 6,
  2905. errorType : "deleteFail",
  2906. errorText : "delete_fail_try_again"
  2907. }, callback, errorCabllback);
  2908. } else {
  2909. errorCabllback($.extend(unknownErrorObject, {errorType: "deleteFail", errorText: "delete_fail_try_again"}));
  2910. }
  2911. }
  2912. }
  2913.  
  2914. function getSmsStatusInfo(obj, callback, errorCabllback){
  2915. asyncRequest({
  2916. cmd: "sms_cmd_status_info",
  2917. sms_cmd: obj.smsCmd,
  2918. isTest: isTest
  2919. }, function(data){
  2920. if(data){
  2921. var status = data.sms_cmd_status_result;
  2922. if(status == "2"){
  2923. errorCabllback($.extend(unknownErrorObject, {errorType: obj.errorType, errorText: obj.errorText}));
  2924. }else if(status == "3"){
  2925. callback({result: "success"});
  2926. } else {
  2927. window.setTimeout(function(){
  2928. getSmsStatusInfo(obj, callback, errorCabllback);
  2929. }, 1000);
  2930. }
  2931. }else{
  2932. errorCabllback($.extend(unknownErrorObject, {errorType: obj.errorType, errorText: obj.errorText}));
  2933. }
  2934. }, function(data){
  2935. errorCabllback($.extend(unknownErrorObject, {errorType: obj.errorType, errorText: obj.errorText}));
  2936. }, false);
  2937. }
  2938.  
  2939.  
  2940. function getSMSReady(){
  2941. if(config.smsIsReady){
  2942. var callback = arguments[1];
  2943. if(callback){
  2944. return callback({"sms_cmd":"1","sms_cmd_status_result":"3"});
  2945. }else{
  2946. return {"sms_cmd":"1","sms_cmd_status_result":"3"};
  2947. }
  2948. } else {
  2949. return doStuff(arguments, {}, prepare, deal, null, false);
  2950. }
  2951.  
  2952. function prepare(params, isPost) {
  2953. var requestParams = {};
  2954. requestParams.isTest = isTest;
  2955. requestParams.cmd = "sms_cmd_status_info";
  2956. requestParams.sms_cmd = 1;
  2957. return requestParams;
  2958. }
  2959.  
  2960. function deal(data) {
  2961. if (data) {
  2962. if(data.sms_cmd_status_result == "3"){
  2963. config.smsIsReady = true;
  2964. }
  2965. return data;
  2966. } else {
  2967. return unknownErrorObject;
  2968. }
  2969. }
  2970. }
  2971. /**
  2972. * 新短信设置为已读
  2973. * @method setSmsRead
  2974. * @param {String} ids 以分号分隔的短信编号
  2975. */
  2976. function setSmsRead() {
  2977.  
  2978. return doStuff(arguments, {}, prepare, deal, null, true);
  2979.  
  2980. function prepare(params, isPost){
  2981. var msgIds = params.ids.join(";");
  2982. if(params.ids.length > 0){
  2983. msgIds += ";";
  2984. }
  2985. var obj = {
  2986. isTest : isTest,
  2987. goformId : "SET_MSG_READ",
  2988. msg_id : msgIds,
  2989. tag : 0
  2990. };
  2991. return obj;
  2992. }
  2993.  
  2994. function deal(data){
  2995. if (data.result == "success") {
  2996. return {result: true};
  2997. } else {
  2998. return {result: false};
  2999. }
  3000. }
  3001. }
  3002.  
  3003. /**
  3004. * 获取短信发送报告列表
  3005. * @method getSMSDeliveryReport
  3006. */
  3007. function getSMSDeliveryReport(){
  3008. return doStuff(arguments, {}, prepare, deal, {}, false);
  3009.  
  3010. function prepare(params, isPost) {
  3011. var obj = {
  3012. isTest : isTest,
  3013. cmd : "sms_status_rpt_data",
  3014. page : params.page,
  3015. data_per_page : params.smsCount
  3016. };
  3017. return obj;
  3018. }
  3019.  
  3020. function deal(data) {
  3021. if (data) {
  3022. return {messages: parseMessages(data.messages, true) };
  3023. } else {
  3024. return unknownErrorObject;
  3025. }
  3026. }
  3027. }
  3028.  
  3029. /**
  3030. * 退出系统
  3031. *
  3032. * @method logout
  3033. * @return {Object} JSON
  3034. */
  3035. function logout() {
  3036.  
  3037. return doStuff(arguments, {}, prepare, deal, null, true);
  3038.  
  3039. function prepare(params, isPost){
  3040. var obj = $.extend({}, params);
  3041. obj.isTest = isTest;
  3042. obj.goformId = "LOGOUT";
  3043. return obj;
  3044. }
  3045.  
  3046. function deal(data){
  3047. if(data && data.result == "success"){
  3048. timerInfo.isLoggedIn = false;
  3049. return {result: true};
  3050. }else{
  3051. return $.extend(unknownErrorObject, {errorType: "loggedOutError"});
  3052. }
  3053. }
  3054. }
  3055.  
  3056. /**
  3057. * 获取PIN相关信息
  3058. * @method changePassword
  3059. * @param {Object} JSON
  3060. * @example
  3061. //请求参数映射
  3062. {
  3063. oldPassword:"123456",
  3064. newPassword:"234567"
  3065. }
  3066. * @return {Object} JSON
  3067. */
  3068. function changePassword() {
  3069.  
  3070. return doStuff(arguments, {}, prepare, deal, null, true);
  3071.  
  3072. function prepare(params, isPost) {
  3073. var obj = {};
  3074. obj.newPassword = config.PASSWORD_ENCODE ? Base64.encode(params.newPassword) : params.newPassword;
  3075. obj.oldPassword = config.PASSWORD_ENCODE ? Base64.encode(params.oldPassword) : params.oldPassword;
  3076. obj.goformId = "CHANGE_PASSWORD";
  3077. obj.isTest = isTest;
  3078. return obj;
  3079. }
  3080.  
  3081. function deal(data) {
  3082. if (data && data.result === "success") {
  3083. return {
  3084. result : true
  3085. };
  3086. } else {
  3087. return $.extend(unknownErrorObject, {
  3088. errorType : "badPassword"
  3089. });
  3090. }
  3091. }
  3092. }
  3093.  
  3094. /**
  3095. * 获取PIN相关信息
  3096. * @method getPinData
  3097. * @return {Object} JSON
  3098. */
  3099. function getPinData(){
  3100. return doStuff(arguments, {}, prepare, deal, null, false);
  3101.  
  3102. function prepare(params, isPost) {
  3103. var requestParams = {};
  3104. requestParams.isTest = isTest;
  3105. requestParams.cmd = "pinnumber,pin_status,puknumber";
  3106. requestParams.multi_data = 1;
  3107. return requestParams;
  3108. }
  3109.  
  3110. function deal(data) {
  3111. if (data) {
  3112. return data;
  3113. } else {
  3114. return unknownErrorObject;
  3115. }
  3116. }
  3117. }
  3118.  
  3119. /**
  3120. * 启用PIN
  3121. * @method enablePin
  3122. * @param {Object} JSON
  3123. * @example
  3124. //请求参数映射
  3125. {
  3126. oldPin = "1234";
  3127. }
  3128. * @return {Object} JSON
  3129. */
  3130. function enablePin() {
  3131.  
  3132. return doStuff(arguments, {}, prepare, deal, null, true);
  3133.  
  3134. function prepare(params, isPost) {
  3135. var obj = {};
  3136. obj.goformId = "ENABLE_PIN";
  3137. obj.OldPinNumber = params.oldPin;
  3138. obj.isTest = isTest;
  3139. return obj;
  3140. }
  3141.  
  3142. function deal(data) {
  3143. if (data && data.result === "success") {
  3144. return { result:true };
  3145. } else {
  3146. return { result:false};
  3147. }
  3148. }
  3149. }
  3150.  
  3151. /**
  3152. * 禁用PIN
  3153. * @method disablePin
  3154. * @param {Object} JSON
  3155. * @example
  3156. //请求参数映射
  3157. {
  3158. oldPin = "1234";
  3159. }
  3160. * @return {Object} JSON
  3161. */
  3162. function disablePin() {
  3163.  
  3164. return doStuff(arguments, {}, prepare, deal, null, true);
  3165.  
  3166. function prepare(params, isPost) {
  3167. var obj = {};
  3168. obj.goformId = "DISABLE_PIN";
  3169. obj.OldPinNumber = params.oldPin;
  3170. obj.isTest = isTest;
  3171. return obj;
  3172. }
  3173.  
  3174. function deal(data) {
  3175. if (data && data.result === "success") {
  3176. return { result:true };
  3177. } else {
  3178. return { result:false};
  3179. }
  3180. }
  3181. }
  3182.  
  3183. /**
  3184. * 修改PIN
  3185. * @method changePin
  3186. * @param {Object} JSON
  3187. * @example
  3188. //请求参数映射
  3189. {
  3190. oldPin = "2345";
  3191. newPin = "1234";
  3192. }
  3193. * @return {Object} JSON
  3194. */
  3195. function changePin() {
  3196.  
  3197. return doStuff(arguments, {}, prepare, deal, null, true);
  3198.  
  3199. function prepare(params, isPost) {
  3200. var obj = {};
  3201. obj.goformId = "ENABLE_PIN";
  3202. obj.OldPinNumber = params.oldPin;
  3203. obj.NewPinNumber = params.newPin;
  3204. obj.isTest = isTest;
  3205. return obj;
  3206. }
  3207.  
  3208. function deal(data) {
  3209. if (data && data.result === "success") {
  3210. return { result:true };
  3211. } else {
  3212. return { result:false};
  3213. }
  3214. }
  3215. }
  3216.  
  3217. /**
  3218. * 获取路由信息
  3219. * @method getLanInfo
  3220. */
  3221. function getLanInfo() {
  3222. return doStuff(arguments, {}, prepare, deal, null, false);
  3223.  
  3224. function prepare(params, isPost) {
  3225. var requestParams = {};
  3226. requestParams.isTest = isTest;
  3227. requestParams.cmd = "gateway_domain,lan_ipaddr,lan_netmask,mac_address,dhcpEnabled,dhcpStart,dhcpEnd,dhcpLease_hour," +
  3228. "guest_switch,guest_ssid_router_enable,guest_lan_ipaddr,guest_dhcpEnabled,guest_dhcpStart,guest_dhcpEnd,guest_dhcpLease_hour";
  3229. requestParams.multi_data = 1;
  3230. return requestParams;
  3231. }
  3232.  
  3233. function deal(data) {
  3234. if (data) {
  3235. var result = {};
  3236. result.ipAddress = data.lan_ipaddr;
  3237. result.subnetMask = data.lan_netmask;
  3238. result.domainName = data.gateway_domain;
  3239. result.macAddress = data.mac_address;
  3240. result.dhcpServer = data.dhcpEnabled;// == "1"? "enable" : "disable";
  3241. result.dhcpStart = data.dhcpStart;
  3242. result.dhcpEnd = data.dhcpEnd;
  3243. result.dhcpLease = parseInt(data.dhcpLease_hour, 10);
  3244.  
  3245. result.multi_ssid_enable = data.guest_switch;
  3246. result.guest_ssid_router_enable = data.guest_ssid_router_enable;
  3247. result.guest_lan_ipaddr = data.guest_lan_ipaddr;
  3248. result.guest_dhcpEnabled = data.guest_dhcpEnabled;
  3249. result.guest_dhcpStart = data.guest_dhcpStart;
  3250. result.guest_dhcpEnd = data.guest_dhcpEnd;
  3251. result.guest_dhcpLease = parseInt(data.guest_dhcpLease_hour, 10);
  3252. result.opmsWanMode = timerInfo.opms_wan_mode;
  3253. return result;
  3254. } else {
  3255. return unknownErrorObject;
  3256. }
  3257. }
  3258. }
  3259.  
  3260. /**
  3261. * 设置路由信息
  3262. * @method setLanInfo
  3263. */
  3264. function setLanInfo() {
  3265. return doStuff(arguments, {}, prepare, deal, null, true);
  3266.  
  3267. function prepare(params, isPost) {
  3268. var requestParams = {};
  3269. requestParams.isTest = isTest;
  3270. requestParams.goformId = "DHCP_SETTING";
  3271. requestParams.lanIp = params.ipAddress;
  3272. requestParams.lanNetmask = params.subnetMask;
  3273. requestParams.lanDhcpType = params.dhcpServer == "1"? "SERVER" : "DISABLE";
  3274. requestParams.gateway_domain = params.domainName;
  3275. if(requestParams.lanDhcpType == "SERVER") {
  3276. requestParams.dhcpStart = params.dhcpStart;
  3277. requestParams.dhcpEnd = params.dhcpEnd;
  3278. requestParams.dhcpLease = params.dhcpLease;
  3279. }
  3280. requestParams.dhcp_reboot_flag = 1;
  3281. requestParams.mac_ip_reset = params.mac_ip_reset;
  3282. return requestParams;
  3283. }
  3284.  
  3285. function deal(data) {
  3286. if (data) {
  3287. return data;
  3288. } else {
  3289. return unknownErrorObject;
  3290. }
  3291. }
  3292. }
  3293.  
  3294. function setLanInfoGuest() {
  3295. return doStuff(arguments, {}, prepare, deal, null, true);
  3296.  
  3297. function prepare(params, isPost) {
  3298. var requestParams = {};
  3299. requestParams.isTest = isTest;
  3300. requestParams.goformId = "DHCP_GUEST_SETTING";
  3301. if(params.guestRouterEnable == "0"){
  3302. requestParams.guest_ssid_router_enable = "0";
  3303. }else{
  3304. requestParams.guest_ssid_router_enable = "1";
  3305. requestParams.guest_lan_ipaddr = params.ipAddressGuest;
  3306. //requestParams.lanNetmask = params.subnetMask;
  3307. requestParams.guest_dhcpEnabled = params.dhcpServerGuest == "1"? "SERVER" : "DISABLE";
  3308. //requestParams.gateway_domain = params.domainName;
  3309. if(requestParams.guest_dhcpEnabled == "SERVER") {
  3310. requestParams.guest_dhcpStart = params.dhcpStartGuest;
  3311. requestParams.guest_dhcpEnd = params.dhcpEndGuest;
  3312. requestParams.guest_dhcpLease = params.dhcpLeaseGuest;
  3313. }
  3314. }
  3315.  
  3316. requestParams.dhcp_reboot_flag = 1;
  3317. return requestParams;
  3318. }
  3319.  
  3320. function deal(data) {
  3321. if (data) {
  3322. return data;
  3323. } else {
  3324. return unknownErrorObject;
  3325. }
  3326. }
  3327. }
  3328.  
  3329. /**
  3330. * 获取短信设置参数
  3331. * @method getSmsSetting
  3332. */
  3333. function getSmsSetting() {
  3334. return doStuff(arguments, {}, prepare, deal, null, false);
  3335.  
  3336. function prepare(params, isPost) {
  3337. var requestParams = {};
  3338. requestParams.isTest = isTest;
  3339. requestParams.cmd = "sms_parameter_info";
  3340. return requestParams;
  3341. }
  3342.  
  3343. function deal(data) {
  3344. if (data) {
  3345. var result = {};
  3346. result.centerNumber = data.sms_para_sca;
  3347. result.memStroe = data.sms_para_mem_store;
  3348. result.deliveryReport = data.sms_para_status_report;
  3349. switch(parseInt(data.sms_para_validity_period)){
  3350. case 143:
  3351. result.validity = "twelve_hours";
  3352. break;
  3353. case 167:
  3354. result.validity = "one_day";
  3355. break;
  3356. case 173:
  3357. result.validity = "one_week";
  3358. break;
  3359. case 244:
  3360. result.validity = "largest";
  3361. break;
  3362. case 255:
  3363. result.validity = "largest";
  3364. break;
  3365. default:
  3366. result.validity = "twelve_hours";
  3367. break;
  3368. }
  3369. return result;
  3370. } else {
  3371. return unknownErrorObject;
  3372. }
  3373. }
  3374. }
  3375.  
  3376. /**
  3377. * 设置短信参数
  3378. * @method setSmsSetting
  3379. */
  3380. function setSmsSetting() {
  3381. var callback = arguments[1];
  3382. var errorCabllback = arguments[2] ? arguments[2] : callback;
  3383. return doStuff(arguments, {}, prepare, deal, null, true);
  3384.  
  3385. function prepare(params, isPost) {
  3386. var requestParams = {};
  3387. requestParams.isTest = isTest;
  3388. requestParams.goformId = "SET_MESSAGE_CENTER";
  3389. requestParams.save_time = params.validity;
  3390. requestParams.MessageCenter = params.centerNumber;
  3391. requestParams.status_save = params.deliveryReport;
  3392. requestParams.save_location = 'native';
  3393. requestParams.notCallback = true;
  3394. return requestParams;
  3395. }
  3396.  
  3397. function deal(data) {
  3398. if(!data){
  3399. errorCabllback($.extend(unknownErrorObject, {errorType: "smsSettingFail", errorText: "error_info"}));
  3400. return;
  3401. }
  3402. if (data.result == "success") {
  3403. getSmsStatusInfo({
  3404. smsCmd : 3,
  3405. errorType : "smsSettingFail",
  3406. errorText : "error_info"
  3407. }, callback, errorCabllback);
  3408. } else {
  3409. errorCabllback($.extend(unknownErrorObject, {errorType: "deleteFail", errorText: "delete_fail_try_again"}));
  3410. }
  3411. }
  3412. }
  3413.  
  3414. /**
  3415. * 恢复出厂设置
  3416. * @method restoreFactorySettings
  3417. * @return {Object} JSON
  3418. */
  3419. function restoreFactorySettings() {
  3420. var preErrorObj = {};
  3421. if(config.HAS_PARENTAL_CONTROL && config.currentUserInChildGroup != false){
  3422. preErrorObj = {errorType: 'no_auth'};
  3423. }
  3424. return doStuff(arguments, preErrorObj , prepare, deal, null, true);
  3425.  
  3426. function prepare(params, isPost) {
  3427. var requestParams = {};
  3428. requestParams.isTest = isTest;
  3429. requestParams.goformId = "RESTORE_FACTORY_SETTINGS";
  3430. return requestParams;
  3431. }
  3432.  
  3433. function deal(data) {
  3434. if (data) {
  3435. return data;
  3436. } else {
  3437. return unknownErrorObject;
  3438. }
  3439. }
  3440. }
  3441.  
  3442. /**
  3443. * 检测恢复出厂设置是否完成
  3444. * @method checkRestoreStatus
  3445. */
  3446. function checkRestoreStatus(successCallback) {
  3447. var requestParams = {};
  3448. requestParams.isTest = isTest;
  3449. requestParams.cmd = "restore_flag";
  3450. requestParams.multi_data = 1;
  3451. asyncRequest(requestParams, function (data) {
  3452. if (data && data.restore_flag === "1") {
  3453. successCallback();
  3454. } else {
  3455. setTimeout(function () {
  3456. checkRestoreStatus(successCallback);
  3457. }, 5000);
  3458. }
  3459. }, function () {
  3460. setTimeout(function () {
  3461. checkRestoreStatus(successCallback);
  3462. }, 5000);
  3463. }, false);
  3464. }
  3465.  
  3466. /**
  3467. * 获取wps相关信息
  3468. * @method getWpsInfo
  3469. */
  3470. function getWpsInfo() {
  3471. return doStuff(arguments, {}, prepare, deal, null, false);
  3472.  
  3473. function prepare(params, isPost) {
  3474. var requestParams = {};
  3475. requestParams.isTest = isTest;
  3476. requestParams.cmd = "guest_switch,WscModeOption,m_WscModeOption,AuthMode,wifi_ap_mode,EncrypType,guest_switch,SSID1,SSID2,m_SSID,m_SSID2,m_EncrypType,m_AuthMode," +
  3477. "wps_mode,m_wps_mode,WPS_SSID,m_WPS_SSID,wifi_wps_index,m_wifi_wps_index,wifi_ap_pin,m_wifi_ap_pin";
  3478. if(typeof params != "undefined" && typeof params.otherNv != "undefined"){
  3479. requestParams.cmd += ",";
  3480. requestParams.cmd += params.otherNv.join(",");
  3481. }
  3482. requestParams.multi_data = 1;
  3483. return requestParams;
  3484. }
  3485.  
  3486. function deal(data) {
  3487. if (data) {
  3488. var result = {};
  3489. result.multi_ssid_enable = data.guest_switch;
  3490. result.wpsFlag = data.WscModeOption;
  3491. result.wpsType = data.wps_mode;
  3492. result.radioFlag = data.wifi_ap_mode;
  3493. result.encrypType = data.EncrypType;
  3494. result.wpsSSID = data.WPS_SSID;
  3495. result.ssidEnable = data.guest_switch;
  3496. result.ssid = data.SSID1;
  3497. result.multiSSID = data.m_SSID;
  3498. result.ssid2 = data.SSID2;
  3499. result.multiSSID2 = data.m_SSID2;
  3500. result.m_encrypType = data.m_EncrypType;
  3501. result.wifi_wps_index = data.wifi_wps_index;
  3502. result.AuthMode = data.AuthMode;
  3503. result.m_AuthMode = data.m_AuthMode;
  3504.  
  3505. result.wpsFlag_5g = data.m_WscModeOption;
  3506. result.wpsType_5g = data.m_wps_mode;
  3507. result.wpsSSID_5g = data.m_WPS_SSID;
  3508. result.wifi_wps_index_5g = data.m_wifi_wps_index;
  3509. if(typeof data.auto_best_ch_24 != "undefined"){
  3510. result.autoBestChannel24G = data.auto_best_ch_24;
  3511. }
  3512. if(typeof data.auto_best_ch_5 != "undefined"){
  3513. result.autoBestChannel50G = data.auto_best_ch_5;
  3514. }
  3515. result.wifi_dfs_status = timerInfo.wifi_dfs_status;
  3516. return result;
  3517. } else {
  3518. return unknownErrorObject;
  3519. }
  3520. }
  3521. }
  3522.  
  3523.  
  3524. /**
  3525. * 开启wps
  3526. * @method openWps
  3527. */
  3528. function openWps() {
  3529. return doStuff(arguments, {}, prepare, deal, null, true);
  3530.  
  3531. function prepare(params, isPost) {
  3532. var requestParams = {};
  3533. requestParams.isTest = isTest;
  3534. requestParams.goformId = "WIFI_WPS_SET";
  3535. requestParams.WPS_SSID = params.wpsSSID;
  3536. requestParams.wps_mode = params.wpsType;
  3537. requestParams.wifi_wps_index = params.wpsIndex;
  3538. if(requestParams.wps_mode == 'PIN') {
  3539. requestParams.wps_pin = params.wpsPin;
  3540. }else if(requestParams.wps_mode == 'APPIN'){
  3541. requestParams.wps_pin = params.wpsApPin;
  3542. }
  3543. return requestParams;
  3544. }
  3545.  
  3546. function deal(data) {
  3547. if (data) {
  3548. return data;
  3549. } else {
  3550. return unknownErrorObject;
  3551. }
  3552. }
  3553. }
  3554.  
  3555. function openWps_5g() {
  3556. return doStuff(arguments, {}, prepare, deal, null, true);
  3557.  
  3558. function prepare(params, isPost) {
  3559. var requestParams = {};
  3560. requestParams.isTest = isTest;
  3561. requestParams.goformId = "WIFI_M_WPS_SET";
  3562. requestParams.m_WPS_SSID = params.wpsSSID;
  3563. requestParams.m_wps_mode = params.wpsType;
  3564. requestParams.m_wifi_wps_index = params.wpsIndex;
  3565. if(requestParams.m_wps_mode == 'PIN') {
  3566. requestParams.m_wps_pin = params.wpsPin;
  3567. }else if(requestParams.m_wps_mode == 'APPIN'){
  3568. requestParams.m_wps_pin = params.wpsApPin;
  3569. }
  3570. return requestParams;
  3571. }
  3572.  
  3573. function deal(data) {
  3574. if (data) {
  3575. return data;
  3576. } else {
  3577. return unknownErrorObject;
  3578. }
  3579. }
  3580. }
  3581.  
  3582. function generatePinBySer() {
  3583. return doStuff(arguments, {}, prepare, deal, null, true);
  3584.  
  3585. function prepare(params, isPost) {
  3586. var requestParams = {};
  3587. requestParams.isTest = isTest;
  3588. requestParams.goformId = "WIFI_WPS_APPIN_GENERATE";
  3589. requestParams.wifi_wps_index = params.wpsIndex;
  3590. return requestParams;
  3591. }
  3592.  
  3593. function deal(data) {
  3594. if (data) {
  3595. return data;
  3596. } else {
  3597. return unknownErrorObject;
  3598. }
  3599. }
  3600. }
  3601. function generatePinBySer_5g() {
  3602. return doStuff(arguments, {}, prepare, deal, null, true);
  3603.  
  3604. function prepare(params, isPost) {
  3605. var requestParams = {};
  3606. requestParams.isTest = isTest;
  3607. requestParams.goformId = "WIFI_M_WPS_APPIN_GENERATE";
  3608. requestParams.m_wifi_wps_index = params.wpsIndex;
  3609. return requestParams;
  3610. }
  3611.  
  3612. function deal(data) {
  3613. if (data) {
  3614. return data;
  3615. } else {
  3616. return unknownErrorObject;
  3617. }
  3618. }
  3619. }
  3620. /**
  3621. * 获取wifi 休眠信息
  3622. * @method getSleepInfo
  3623. */
  3624. function getSleepMode() {
  3625. return doStuff(arguments, {}, prepare, deal, null, false);
  3626.  
  3627. function prepare(params, isPost) {
  3628. var requestParams = {};
  3629. requestParams.isTest = isTest;
  3630. requestParams.cmd = "sysIdleTimeToSleep";
  3631. return requestParams;
  3632. }
  3633.  
  3634. function deal(data) {
  3635. if (data) {
  3636. var result = {};
  3637. result.sleepMode = data.sysIdleTimeToSleep;
  3638. return result;
  3639. } else {
  3640. return unknownErrorObject;
  3641. }
  3642. }
  3643. }
  3644. function getGeneratedPin() {
  3645. return doStuff(arguments, {}, prepare, deal, null, false);
  3646.  
  3647. function prepare(params, isPost) {
  3648. var requestParams = {};
  3649. requestParams.isTest = isTest;
  3650. requestParams.cmd = "wifi_ap_pin,m_wifi_ap_pin";
  3651. requestParams.multi_data = 1;
  3652. return requestParams;
  3653. }
  3654.  
  3655. function deal(data) {
  3656. if (data) {
  3657. var result = {};
  3658. result.apPin24G = data.wifi_ap_pin;
  3659. result.apPin50G = data.m_wifi_ap_pin;
  3660. return result;
  3661. } else {
  3662. return unknownErrorObject;
  3663. }
  3664. }
  3665. }
  3666. /**
  3667. * 设置wifi休眠信息
  3668. * @method
  3669. */
  3670. function setSleepMode() {
  3671. return doStuff(arguments, {}, prepare, deal, null, true);
  3672.  
  3673. function prepare(params, isPost) {
  3674. var requestParams = {};
  3675. requestParams.isTest = isTest;
  3676. requestParams.goformId = "SET_WIFI_SLEEP_INFO";
  3677. requestParams.sysIdleTimeToSleep = params.sleepMode;
  3678. return requestParams;
  3679. }
  3680.  
  3681. function deal(data) {
  3682. if (data) {
  3683. return data;
  3684. } else {
  3685. return unknownErrorObject;
  3686. }
  3687. }
  3688. }
  3689.  
  3690. /**
  3691. * 获取防火墙安全信息
  3692. * @method getSysSecurity
  3693. */
  3694. function getSysSecurity() {
  3695. return doStuff(arguments, {}, prepare, deal, null, false);
  3696.  
  3697. function prepare(params, isPost) {
  3698. var requestParams = {};
  3699. requestParams.isTest = isTest;
  3700. requestParams.cmd = "RemoteManagement,WANPingFilter";
  3701. requestParams.multi_data = 1;
  3702. return requestParams;
  3703. }
  3704.  
  3705. function deal(data) {
  3706. if (data) {
  3707. var result = {};
  3708. result.remoteFlag = data.RemoteManagement == "1"? "1" : "0";
  3709. result.pingFlag = data.WANPingFilter == "1"? "1" : "0";
  3710. return result;
  3711. } else {
  3712. return unknownErrorObject;
  3713. }
  3714. }
  3715. }
  3716.  
  3717. /**
  3718. * 设置防火墙安全信息
  3719. * @method setSysSecurity
  3720. */
  3721. function setSysSecurity() {
  3722. return doStuff(arguments, {}, prepare, deal, null, true);
  3723.  
  3724. function prepare(params, isPost) {
  3725. var requestParams = {};
  3726. requestParams.isTest = isTest;
  3727. requestParams.goformId = "FW_SYS";
  3728. requestParams.remoteManagementEnabled = params.remoteFlag;
  3729. requestParams.pingFrmWANFilterEnabled = params.pingFlag;
  3730. return requestParams;
  3731. }
  3732.  
  3733. function deal(data) {
  3734. if (data) {
  3735. return data;
  3736. } else {
  3737. return unknownErrorObject;
  3738. }
  3739. }
  3740. }
  3741.  
  3742. /**
  3743. * 获取端口转发信息
  3744. * @method getPortForward
  3745. */
  3746. function getPortForward() {
  3747. return doStuff(arguments, {}, prepare, deal, null, false);
  3748.  
  3749. function prepare(params, isPost) {
  3750. var requestParams = {};
  3751. requestParams.isTest = isTest;
  3752. requestParams.cmd = "PortForwardEnable,PortForwardRules_0,PortForwardRules_1,PortForwardRules_2,PortForwardRules_3,PortForwardRules_4,PortForwardRules_5,PortForwardRules_6,PortForwardRules_7,PortForwardRules_8,PortForwardRules_9";
  3753. requestParams.multi_data = 1;
  3754. return requestParams;
  3755. }
  3756.  
  3757. function deal(data) {
  3758. if (data) {
  3759. var result = {};
  3760. result.portForwardEnable = data.PortForwardEnable;
  3761. //from 93, refactory later
  3762. var rules = [];
  3763. if(data.PortForwardRules_0 != ""){
  3764. rules.push([0,data.PortForwardRules_0]);
  3765. }
  3766. if(data.PortForwardRules_1 != ""){
  3767. rules.push([1,data.PortForwardRules_1]);
  3768. }
  3769. if(data.PortForwardRules_2 != ""){
  3770. rules.push([2,data.PortForwardRules_2]);
  3771. }
  3772. if(data.PortForwardRules_3 != ""){
  3773. rules.push([3,data.PortForwardRules_3]);
  3774. }
  3775. if(data.PortForwardRules_4 != ""){
  3776. rules.push([4,data.PortForwardRules_4]);
  3777. }
  3778. if(data.PortForwardRules_5 != ""){
  3779. rules.push([5,data.PortForwardRules_5]);
  3780. }
  3781. if(data.PortForwardRules_6 != ""){
  3782. rules.push([6,data.PortForwardRules_6]);
  3783. }
  3784. if(data.PortForwardRules_7 != ""){
  3785. rules.push([7,data.PortForwardRules_7]);
  3786. }
  3787. if(data.PortForwardRules_8 != ""){
  3788. rules.push([8,data.PortForwardRules_8]);
  3789. }
  3790. if(data.PortForwardRules_9 != ""){
  3791. rules.push([9,data.PortForwardRules_9]);
  3792. }
  3793. result.portForwardRules = parsePortForwardRules(rules);
  3794. return result;
  3795. } else {
  3796. return unknownErrorObject;
  3797. }
  3798. }
  3799.  
  3800. //from 93, refactory later
  3801. function parsePortForwardRules(data) {
  3802. var rules = [];
  3803. if(data && data.length > 0){
  3804. for(var i = 0; i < data.length; i++){
  3805. var aRule = {};
  3806. var elements = data[i][1].split(",");
  3807. aRule.index = data[i][0];
  3808. aRule.ipAddress = elements[0];
  3809. aRule.portRange = elements[1] + ' - ' + elements[2];
  3810. aRule.protocol = transProtocol(elements[3]);
  3811. aRule.comment = elements[4];
  3812. rules.push(aRule);
  3813. }
  3814. }
  3815. return rules;
  3816. }
  3817. }
  3818.  
  3819. /**
  3820. * 设置端口转发信息
  3821. * @method setPortForward
  3822. */
  3823. function setPortForward() {
  3824. return doStuff(arguments, {}, prepare, deal, null, true);
  3825.  
  3826. function prepare(params, isPost) {
  3827. var requestParams = {};
  3828. requestParams.isTest = isTest;
  3829. requestParams.goformId = "FW_FORWARD_ADD";
  3830. requestParams.ipAddress = params.ipAddress;
  3831. requestParams.portStart = params.portStart;
  3832. requestParams.portEnd = params.portEnd;
  3833. requestParams.protocol = params.protocol;
  3834. requestParams.comment = params.comment;
  3835. return requestParams;
  3836. }
  3837.  
  3838. function deal(data) {
  3839. if (data) {
  3840. return data;
  3841. } else {
  3842. return unknownErrorObject;
  3843. }
  3844. }
  3845. }
  3846.  
  3847. /**
  3848. * 删除端口转发规则
  3849. * @method setPortForward
  3850. */
  3851. function deleteForwardRules() {
  3852. return doStuff(arguments, {}, prepare, deal, null, true);
  3853.  
  3854. function prepare(params, isPost) {
  3855. var requestParams = {};
  3856. requestParams.isTest = isTest;
  3857. requestParams.goformId = "FW_FORWARD_DEL";
  3858. requestParams.delete_id = params.indexs.join(';') + ";";
  3859. return requestParams;
  3860. }
  3861.  
  3862. function deal(data) {
  3863. if (data) {
  3864. return data;
  3865. } else {
  3866. return unknownErrorObject;
  3867. }
  3868. }
  3869. }
  3870.  
  3871. /**
  3872. * 虚拟服务器设置
  3873. * @method enableVirtualServer
  3874. */
  3875. function enableVirtualServer() {
  3876. return doStuff(arguments, {}, prepare, deal, null, true);
  3877.  
  3878. function prepare(params, isPost) {
  3879. var requestParams = {};
  3880. requestParams.isTest = isTest;
  3881. requestParams.goformId = "VIRTUAL_SERVER";
  3882. requestParams.PortForwardEnable = params.portForwardEnable;
  3883. return requestParams;
  3884. }
  3885.  
  3886. function deal(data) {
  3887. if (data) {
  3888. return data;
  3889. } else {
  3890. return unknownErrorObject;
  3891. }
  3892. }
  3893. }
  3894.  
  3895. /**
  3896. * 获取快速设置需要的数据
  3897. * @method getQuickSettingInfo
  3898. */
  3899. function getQuickSettingInfo() {
  3900. return doStuff(arguments, {}, prepare, deal, null, false);
  3901.  
  3902. function prepare(params, isPost) {
  3903. var requestParams = {};
  3904. requestParams.isTest = isTest;
  3905. var wpask = config.PASSWORD_ENCODE ? ",WPAPSK1_encode" : ",WPAPSK1";
  3906. requestParams.cmd = "pdp_type,ipv6_pdp_type,wifi_ap_mode,SSID1,HideSSID,AuthMode,WscModeOption,ppp_status,apn_index,ipv6_apn_index,ipv6_APN_index,m_profile_name,apn_mode" + wpask +
  3907. ",APN_config0,APN_config1,APN_config2,APN_config3,APN_config4,APN_config5,APN_config6,APN_config7,APN_config8,APN_config9,APN_config10,APN_config11,APN_config12,APN_config13,APN_config14,APN_config15,APN_config16,APN_config17,APN_config18,APN_config19" +
  3908. ",ipv6_APN_config0,ipv6_APN_config1,ipv6_APN_config2,ipv6_APN_config3,ipv6_APN_config4,ipv6_APN_config5,ipv6_APN_config6,ipv6_APN_config7,ipv6_APN_config8,ipv6_APN_config9,ipv6_APN_config10,ipv6_APN_config11,ipv6_APN_config12,ipv6_APN_config13,ipv6_APN_config14,ipv6_APN_config15,ipv6_APN_config16,ipv6_APN_config17,ipv6_APN_config18,ipv6_APN_config19";
  3909. requestParams.multi_data = 1;
  3910. return requestParams;
  3911. }
  3912.  
  3913. function deal(data) {
  3914. if (data) {
  3915. if(config.PASSWORD_ENCODE){
  3916. data.WPAPSK1 = Base64.decode(data.WPAPSK1_encode);
  3917. }
  3918. return data;
  3919. } else {
  3920. return unknownErrorObject;
  3921. }
  3922. }
  3923. }
  3924.  
  3925. /**
  3926. * 快速设置
  3927. * @method getQuickSettingInfo
  3928. */
  3929. function setQuickSetting() {
  3930. doStuffAndCheckServerIsOnline(arguments, prepare, deal);
  3931.  
  3932. function prepare(params) {
  3933. var requestParams = {
  3934. isTest:isTest,
  3935. goformId:"QUICK_SETUP",
  3936. apn_mode:params.apnMode,
  3937. Profile_Name:params.Profile_Name,
  3938. APN_name:params.APN_name,
  3939. ppp_auth_mode:params.ppp_auth_mode,
  3940. ppp_username:params.ppp_username,
  3941. ppp_passwd:params.ppp_passwd,
  3942. SSID_name:params.SSID_name,
  3943. SSID_Broadcast:params.SSID_Broadcast,
  3944. Encryption_Mode_hid:params.Encryption_Mode_hid,
  3945. security_shared_mode:params.security_shared_mode,
  3946. WPA_PreShared_Key:config.PASSWORD_ENCODE ? Base64.encode(params.WPA_PreShared_Key) : (params.WPA_PreShared_Key),
  3947. wep_default_key:params.wep_default_key,
  3948. WPA_ENCRYPTION_hid:params.WPA_ENCRYPTION_hid
  3949. };
  3950. return requestParams;
  3951. }
  3952.  
  3953. function deal(data) {
  3954. if (data) {
  3955. return data;
  3956. } else {
  3957. return $.extend(unknownErrorObject, {errorType:"SetSetUpError"});
  3958. }
  3959. }
  3960.  
  3961. }
  3962.  
  3963. /**
  3964. * 快速设置(支持IPv6)
  3965. * @method setQuickSetting4IPv6
  3966. */
  3967. function setQuickSetting4IPv6() {
  3968. doStuffAndCheckServerIsOnline(arguments, prepare, deal);
  3969.  
  3970. function prepare(params) {
  3971. var requestParams = {
  3972. isTest:isTest,
  3973. goformId:"QUICK_SETUP_EX",
  3974. index:params.apn_index,
  3975. pdp_type:params.pdp_type,
  3976. apn_mode:params.apnMode,
  3977. profile_name:params.profile_name,
  3978. wan_apn:params.wan_apn,
  3979. ppp_auth_mode:params.ppp_auth_mode,
  3980. ppp_username:params.ppp_username,
  3981. ppp_passwd:params.ppp_passwd,
  3982. ipv6_wan_apn:params.ipv6_wan_apn,
  3983. ipv6_ppp_auth_mode:params.ipv6_ppp_auth_mode,
  3984. ipv6_ppp_username:params.ipv6_ppp_username,
  3985. ipv6_ppp_passwd:params.ipv6_ppp_passwd,
  3986. SSID_name:params.SSID_name,
  3987. SSID_Broadcast:params.SSID_Broadcast,
  3988. Encryption_Mode_hid:params.Encryption_Mode_hid,
  3989. security_shared_mode:params.security_shared_mode,
  3990. WPA_PreShared_Key:config.PASSWORD_ENCODE ? Base64.encode(params.WPA_PreShared_Key) : params.WPA_PreShared_Key,
  3991. wep_default_key:params.wep_default_key,
  3992. WPA_ENCRYPTION_hid:params.WPA_ENCRYPTION_hid
  3993. }
  3994. return requestParams;
  3995. }
  3996.  
  3997. function deal(data) {
  3998. if (data) {
  3999. return data;
  4000. } else {
  4001. return $.extend(unknownErrorObject, {errorType:"SetSetUpError"});
  4002. }
  4003. }
  4004. }
  4005.  
  4006. /**
  4007. * 业务处理后,轮询检测服务器是否可以连接,可连接时执行回调函数
  4008. * @method doStuffAndCheckServerIsOnline
  4009. */
  4010. function doStuffAndCheckServerIsOnline(arg, prepare, deal) {
  4011. //server是否正常
  4012. var isServerOnline = false;
  4013. //callback是否执行
  4014. var isCallbackExecuted = false;
  4015. var params = prepare(arg[0]);
  4016. var callback = arg[1];
  4017. var successCallback = function (data) {
  4018. isServerOnline = true;
  4019. if (!isCallbackExecuted && callback) {
  4020. callback(deal(data));
  4021. }
  4022. isCallbackExecuted = true;
  4023. };
  4024. var errorMethod = arg[2];
  4025. var errorCallback = function () {
  4026. isServerOnline = true;
  4027. if (errorMethod) {
  4028. errorMethod();
  4029. }
  4030. };
  4031.  
  4032. asyncRequest(params, successCallback, errorCallback, true);
  4033.  
  4034. addTimeout(function () {
  4035. if (isServerOnline == false) {
  4036. var timer = addInterval(function () {
  4037. if (isServerOnline == false) {
  4038. getLanguage({}, function (data) {
  4039. window.clearInterval(timer);
  4040. successCallback({result:"success"});
  4041. });
  4042. }
  4043. }, 1000);
  4044. }
  4045. }, 5000);
  4046. }
  4047.  
  4048. /**
  4049. * 获取SD Card配置信息
  4050. * @method getSDConfiguration
  4051. */
  4052. function getSDConfiguration(){
  4053. return doStuff(arguments, {}, prepare, deal, null, false);
  4054.  
  4055. function prepare(params, isPost) {
  4056. var requestParams = {
  4057. isTest : isTest,
  4058. cmd : "sdcard_mode_option,sd_card_state,HTTP_SHARE_STATUS,HTTP_SHARE_CARD_USER,HTTP_SHARE_WR_AUTH,HTTP_SHARE_FILE",
  4059. multi_data: 1
  4060. };
  4061. return requestParams;
  4062. }
  4063.  
  4064. function deal(data) {
  4065. if (data) {
  4066. var fileToShare;
  4067. if("mmc2" == data.HTTP_SHARE_FILE || "/mmc2" == data.HTTP_SHARE_FILE || "/mmc2/" == data.HTTP_SHARE_FILE){
  4068. fileToShare = "1";
  4069. } else {
  4070. fileToShare = "0";
  4071. }
  4072. var result = {
  4073. sd_mode: data.sdcard_mode_option == "1" ? "0" : "1",
  4074. sd_status: data.sd_card_state,
  4075. share_status: data.HTTP_SHARE_STATUS == "Enabled" ? "1" : "0",
  4076. share_user: data.HTTP_SHARE_CARD_USER,
  4077. share_auth: data.HTTP_SHARE_WR_AUTH == "readWrite" ? "1" : "0",
  4078. file_to_share: fileToShare,
  4079. share_file: data.HTTP_SHARE_FILE
  4080. };
  4081. return result;
  4082. } else {
  4083. return unknownErrorObject;
  4084. }
  4085. }
  4086. }
  4087. /**
  4088. * 设置SD Card Mode
  4089. * @method setSdCardMode
  4090. */
  4091. function setSdCardMode(){
  4092. return doStuff(arguments, {}, prepare, deal, null, true);
  4093.  
  4094. function prepare(params, isPost) {
  4095. var requestParams = {
  4096. isTest : isTest,
  4097. goformId : "HTTPSHARE_MODE_SET",
  4098. mode_set: params.mode == "0" ? "http_share_mode" : "usb_mode"
  4099. };
  4100. return requestParams;
  4101. }
  4102.  
  4103. function deal(data) {
  4104. if (data && data.result == 'success') {
  4105. return {result: true};
  4106. } else {
  4107. return {result: false};
  4108. }
  4109. }
  4110. }
  4111.  
  4112. /**
  4113. * 检查文件是否存在
  4114. * @method checkFileExists
  4115. */
  4116. function checkFileExists(){
  4117. return doStuff(arguments, {}, prepare, deal, null, true);
  4118.  
  4119. function prepare(params, isPost) {
  4120. var requestParams = {
  4121. isTest : isTest,
  4122. goformId : "GOFORM_HTTPSHARE_CHECK_FILE",
  4123. path_SD_CARD: params.path
  4124. };
  4125. return requestParams;
  4126. }
  4127.  
  4128. function deal(data) {
  4129. if (data) {
  4130. if (data.result == "no_sdcard") {
  4131. return {
  4132. status : "no_sdcard"
  4133. };
  4134. } else if (data.result == "noexist") {
  4135. return {
  4136. status : "noexist"
  4137. };
  4138. } else {
  4139. return {
  4140. status : "exist"
  4141. };
  4142. }
  4143. } else {
  4144. return unknownErrorObject;
  4145. }
  4146. }
  4147. }
  4148.  
  4149. /**
  4150. * 进入文件夹,并获取文件夹内文件列表
  4151. *
  4152. * @method getFileList
  4153. * @return {Object}
  4154. * @example
  4155. * {"result":{"totalRecord":"4", "fileInfo":[
  4156. * {"fileName":"card","attribute":"document","size":"0","lastUpdateTime":"20120510"},
  4157. * {"fileName":"cf","attribute":"document","size":"0","lastUpdateTime":"20120510"},
  4158. * {"fileName":"net","attribute":"document","size":"0","lastUpdateTime":"20120510"},
  4159. * {"fileName":"ram","attribute":"document","size":"0","lastUpdateTime":"20120510"}]}}
  4160. */
  4161. function getFileList() {
  4162. return doStuff(arguments, {}, prepare, deal, null, true);
  4163.  
  4164. function prepare(params, isPost) {
  4165. var requestParams = {
  4166. isTest : isTest,
  4167. goformId : "HTTPSHARE_ENTERFOLD",
  4168. path_SD_CARD : params.path,
  4169. indexPage : params.index
  4170. };
  4171. return requestParams;
  4172. }
  4173.  
  4174. function deal(data) {
  4175. if (data) {
  4176. if (data.result == 'failure') {
  4177. return $.extend(unknownErrorObject, {
  4178. errorType : "get_file_list_failure"
  4179. });
  4180. } else if (data.result == "no_sdcard") {
  4181. return $.extend(unknownErrorObject, {
  4182. errorType : "no_sdcard"
  4183. });
  4184. } else {
  4185. return parseSdCardFile(data.result);
  4186. }
  4187. } else {
  4188. return unknownErrorObject;
  4189. }
  4190. }
  4191.  
  4192. function parseSdCardFile(result) {
  4193. var fileInfo = {};
  4194. fileInfo.totalRecord = result.totalRecord;
  4195. var fileArr = [];
  4196. var details = result.fileInfo;
  4197. for ( var i = 0; details && i < details.length; i++) {
  4198. if(details[i].fileName == ""){
  4199. continue;
  4200. }
  4201. var obj = {};
  4202. obj.fileName = details[i].fileName;
  4203. obj.attribute = details[i].attribute;
  4204. obj.size = details[i].size;
  4205. obj.lastUpdateTime = details[i].lastUpdateTime;
  4206. fileArr.push(obj);
  4207. }
  4208. fileInfo.details = fileArr;
  4209. return fileInfo;
  4210. }
  4211. }
  4212.  
  4213. /**
  4214. * sd card 文件重命名
  4215. * @method fileRename
  4216. * @return {Object}
  4217. * @example
  4218. * requestParams = {
  4219. goformId : "HTTPSHARE_FILE_RENAME",
  4220. path_SD_CARD : params.path,
  4221. OLD_NAME_SD_CARD : oldpath,
  4222. NEW_NAME_SD_CARD : newpath
  4223. }
  4224. */
  4225. function fileRename(){
  4226. return doStuff(arguments, {}, prepare, deal, null, true);
  4227.  
  4228. function prepare(params, isPost) {
  4229. var d = new Date();
  4230. var currentTime = d.getTime();
  4231. var zoneOffsetSeconds = d.getTimezoneOffset() * 60;
  4232. return {
  4233. isTest: isTest,
  4234. goformId: "HTTPSHARE_FILE_RENAME",
  4235. path_SD_CARD: params.path,
  4236. OLD_NAME_SD_CARD: params.oldPath,
  4237. NEW_NAME_SD_CARD: params.newPath,
  4238. path_SD_CARD_time: transUnixTime(currentTime),
  4239. path_SD_CARD_time_unix: Math.round((currentTime - zoneOffsetSeconds * 1000) / 1e3)
  4240. };
  4241. }
  4242.  
  4243. function deal(data) {
  4244. if (data) {
  4245. if (data.result == "success") {
  4246. return {
  4247. result : true
  4248. };
  4249. } else if (data.result == "no_sdcard") {
  4250. return $.extend(unknownErrorObject, {
  4251. errorType : "no_sdcard"
  4252. });
  4253. } else {
  4254. return {
  4255. result : false
  4256. };
  4257. }
  4258. } else {
  4259. return unknownErrorObject;
  4260. }
  4261. }
  4262. }
  4263.  
  4264. /**
  4265. * 获取SD Card容量
  4266. * @method getSdMemorySizes
  4267. * @return {Object}
  4268. * @example
  4269. * {
  4270. totalMemorySize : data.sd_card_total_size,
  4271. availableMemorySize : data.sd_card_avi_space
  4272. }
  4273. */
  4274. function getSdMemorySizes() {
  4275. return doStuff(arguments, {}, prepare, deal, null, false);
  4276.  
  4277. function prepare(params, isPost) {
  4278. var requestParams = {
  4279. isTest : isTest,
  4280. cmd : "HTTPSHARE_GETCARD_VALUE"
  4281. };
  4282. return requestParams;
  4283. }
  4284.  
  4285. function deal(data) {
  4286. if (!data || (data.result && data.result == "no_sdcard")) {
  4287. return $.extend(unknownErrorObject, {
  4288. errorType : "no_sdcard"
  4289. });
  4290. } else {
  4291. return {
  4292. totalMemorySize : data.sd_card_total_size == "" ? 0 : data.sd_card_total_size * 32 * 1024,
  4293. availableMemorySize : data.sd_card_avi_space == "" ? 0 : data.sd_card_avi_space * 32 * 1024
  4294. };
  4295. }
  4296. }
  4297. }
  4298.  
  4299. /**
  4300. * 删除文件和文件夹
  4301. *
  4302. * @method deleteFilesAndFolders
  4303. * @return {Object}
  4304. * @example
  4305. * {
  4306. * goformId : "HTTPSHARE_DEL",
  4307. * path_SD_CARD: params.path,
  4308. * name_SD_CARD: params.names
  4309. * }
  4310. */
  4311. function deleteFilesAndFolders(){
  4312. return doStuff(arguments, {}, prepare, deal, null, true);
  4313.  
  4314. function prepare(params, isPost) {
  4315. var currentTime = new Date().getTime();
  4316. var requestParams = {
  4317. isTest : isTest,
  4318. goformId : "HTTPSHARE_DEL",
  4319. path_SD_CARD : params.path,
  4320. name_SD_CARD : params.names,
  4321. path_SD_CARD_time: transUnixTime(currentTime),
  4322. path_SD_CARD_time_unix: Math.round(currentTime / 1e3)
  4323. };
  4324. return requestParams;
  4325. }
  4326.  
  4327. function deal(data) {
  4328. if (data.result && data.result == "failure") {
  4329. return $.extend(unknownErrorObject, {
  4330. errorType : "delete_folder_failure"
  4331. });
  4332. } else if (data.result && data.result == "no_sdcard") {
  4333. return $.extend(unknownErrorObject, {
  4334. errorType : "no_sdcard"
  4335. });
  4336. } else if (data.result && data.result == "success") {
  4337. return {
  4338. result : true
  4339. };
  4340. } else {
  4341. return unknownErrorObject;
  4342. }
  4343. }
  4344. }
  4345.  
  4346. /**
  4347. * 创建文件夹
  4348. *
  4349. * @method createFolder
  4350. * @return {Object}
  4351. * @example
  4352. * {
  4353. * goformId : "HTTPSHARE_DEL",
  4354. * path_SD_CARD: params.path,
  4355. * name_SD_CARD: params.names
  4356. * }
  4357. */
  4358. function createFolder() {
  4359. return doStuff(arguments, {}, prepare, deal, null, true);
  4360.  
  4361. function prepare(params, isPost) {
  4362. var d = new Date();
  4363. var currentTime = d.getTime();
  4364. var zoneOffsetSeconds = d.getTimezoneOffset() * 60;
  4365. return {
  4366. isTest: isTest,
  4367. goformId: "HTTPSHARE_NEW",
  4368. path_SD_CARD: params.path,
  4369. path_SD_CARD_time: transUnixTime(currentTime),
  4370. path_SD_CARD_time_unix: Math.round((currentTime - zoneOffsetSeconds * 1000) / 1e3)
  4371. };
  4372. }
  4373.  
  4374. function deal(data) {
  4375. if (data.result && data.result == "failure") {
  4376. return $.extend(unknownErrorObject, {
  4377. errorType : "create_folder_failure"
  4378. });
  4379. } else if (data.result && data.result == "no_sdcard") {
  4380. return $.extend(unknownErrorObject, {
  4381. errorType : "no_sdcard"
  4382. });
  4383. } else if (data.result && data.result == "success") {
  4384. return {
  4385. result : true
  4386. };
  4387. } else {
  4388. return unknownErrorObject;
  4389. }
  4390. }
  4391. }
  4392.  
  4393. /**
  4394. * 检查文件上传状态
  4395. *
  4396. * @method checkUploadFileStatus
  4397. * @return {Object}
  4398. */
  4399. function checkUploadFileStatus(){
  4400. return doStuff(arguments, {}, prepare, deal, null, false);
  4401.  
  4402. function prepare(params, isPost) {
  4403. var requestParams = {
  4404. isTest : isTest,
  4405. cmd : "CheckUploadFileStatus"
  4406. };
  4407. return requestParams;
  4408. }
  4409.  
  4410. function deal(data) {
  4411. if (data) {
  4412. if (data.result == "5") {
  4413. return {
  4414. result : false
  4415. };
  4416. } else if (data.result == "6") {
  4417. return {
  4418. result : true
  4419. };
  4420. } else {
  4421. return {
  4422. result : false
  4423. };
  4424. }
  4425. } else {
  4426. return unknownErrorObject;
  4427. }
  4428. }
  4429. }
  4430.  
  4431. /**
  4432. * 设置SD 卡共享参数
  4433. *
  4434. * @method setSdCardSharing
  4435. * @return {Object}
  4436. * @example
  4437. * requestParams = {
  4438. isTest : isTest,
  4439. goformId : "HTTPSHARE_AUTH_SET",
  4440. HTTP_SHARE_STATUS: params.share_status == "1" ? "Enabled" : "Disabled",
  4441. HTTP_SHARE_WR_AUTH: params.share_auth == "1" ? "readWrite" : "readOnly",
  4442. HTTP_SHARE_FILE: params.share_file
  4443. };
  4444. */
  4445. function setSdCardSharing(){
  4446. return doStuff(arguments, {}, prepare, deal, null, true);
  4447.  
  4448. function prepare(params, isPost) {
  4449. var requestParams = {
  4450. isTest : isTest,
  4451. goformId : "HTTPSHARE_AUTH_SET",
  4452. HTTP_SHARE_STATUS: params.share_status == "1" ? "Enabled" : "Disabled",
  4453. HTTP_SHARE_WR_AUTH: params.share_auth == "1" ? "readWrite" : "readOnly",
  4454. HTTP_SHARE_FILE: params.share_file
  4455. };
  4456. return requestParams;
  4457. }
  4458.  
  4459. function deal(data) {
  4460. if (data) {
  4461. if (data.result == "no_sdcard") {
  4462. return $.extend(unknownErrorObject, {
  4463. errorType : "no_sdcard"
  4464. });
  4465. } else {
  4466. return {
  4467. result : true
  4468. };
  4469. }
  4470. } else {
  4471. return unknownErrorObject;
  4472. }
  4473. }
  4474. }
  4475.  
  4476. /**
  4477. * 获取端口过滤信息
  4478. * @method getPortFilter
  4479. */
  4480. function getPortFilter() {
  4481. return doStuff(arguments, {}, prepare, deal, null, false);
  4482.  
  4483. function prepare(params, isPost) {
  4484. var requestParams = {};
  4485. requestParams.isTest = isTest;
  4486. requestParams.cmd = "IPPortFilterEnable,DefaultFirewallPolicy,IPPortFilterRules_0,IPPortFilterRules_1,IPPortFilterRules_2,IPPortFilterRules_3,IPPortFilterRules_4,IPPortFilterRules_5,IPPortFilterRules_6,IPPortFilterRules_7,IPPortFilterRules_8,IPPortFilterRules_9";
  4487.  
  4488. if(config.USE_IPV6_INTERFACE) {
  4489. requestParams.cmd += ",IPPortFilterRulesv6_0,IPPortFilterRulesv6_1,IPPortFilterRulesv6_2,IPPortFilterRulesv6_3,IPPortFilterRulesv6_4,IPPortFilterRulesv6_5,IPPortFilterRulesv6_6,IPPortFilterRulesv6_7,IPPortFilterRulesv6_8,IPPortFilterRulesv6_9";
  4490. }
  4491.  
  4492. requestParams.multi_data = 1;
  4493. return requestParams;
  4494. }
  4495.  
  4496. function deal(data) {
  4497. if (data) {
  4498. var result = {};
  4499. result.portFilterEnable = data.IPPortFilterEnable;
  4500. result.defaultPolicy = data.DefaultFirewallPolicy;
  4501. //from 93, refactory later
  4502. var rules = [];
  4503. if(data.IPPortFilterRules_0 != ""){
  4504. rules.push([0,data.IPPortFilterRules_0]);
  4505. }
  4506. if(data.IPPortFilterRules_1 != ""){
  4507. rules.push([1,data.IPPortFilterRules_1]);
  4508. }
  4509. if(data.IPPortFilterRules_2 != ""){
  4510. rules.push([2,data.IPPortFilterRules_2]);
  4511. }
  4512. if(data.IPPortFilterRules_3 != ""){
  4513. rules.push([3,data.IPPortFilterRules_3]);
  4514. }
  4515. if(data.IPPortFilterRules_4 != ""){
  4516. rules.push([4,data.IPPortFilterRules_4]);
  4517. }
  4518. if(data.IPPortFilterRules_5 != ""){
  4519. rules.push([5,data.IPPortFilterRules_5]);
  4520. }
  4521. if(data.IPPortFilterRules_6 != ""){
  4522. rules.push([6,data.IPPortFilterRules_6]);
  4523. }
  4524. if(data.IPPortFilterRules_7 != ""){
  4525. rules.push([7,data.IPPortFilterRules_7]);
  4526. }
  4527. if(data.IPPortFilterRules_8 != ""){
  4528. rules.push([8,data.IPPortFilterRules_8]);
  4529. }
  4530. if(data.IPPortFilterRules_9 != ""){
  4531. rules.push([9,data.IPPortFilterRules_9]);
  4532. }
  4533. result.portFilterRules = parsePortFilterRules(rules, "IPv4");
  4534.  
  4535. //ipv6
  4536. if(config.USE_IPV6_INTERFACE) {
  4537. var v6Rules = [];
  4538. if(data.IPPortFilterRulesv6_0 != ""){
  4539. v6Rules.push([10,data.IPPortFilterRulesv6_0]);
  4540. }
  4541. if(data.IPPortFilterRulesv6_1 != ""){
  4542. v6Rules.push([11,data.IPPortFilterRulesv6_1]);
  4543. }
  4544. if(data.IPPortFilterRulesv6_2 != ""){
  4545. v6Rules.push([12,data.IPPortFilterRulesv6_2]);
  4546. }
  4547. if(data.IPPortFilterRulesv6_3 != ""){
  4548. v6Rules.push([13,data.IPPortFilterRulesv6_3]);
  4549. }
  4550. if(data.IPPortFilterRulesv6_4 != ""){
  4551. v6Rules.push([14,data.IPPortFilterRulesv6_4]);
  4552. }
  4553. if(data.IPPortFilterRulesv6_5 != ""){
  4554. v6Rules.push([15,data.IPPortFilterRulesv6_5]);
  4555. }
  4556. if(data.IPPortFilterRulesv6_6 != ""){
  4557. v6Rules.push([16,data.IPPortFilterRulesv6_6]);
  4558. }
  4559. if(data.IPPortFilterRulesv6_7 != ""){
  4560. v6Rules.push([17,data.IPPortFilterRulesv6_7]);
  4561. }
  4562. if(data.IPPortFilterRulesv6_8 != ""){
  4563. v6Rules.push([18,data.IPPortFilterRulesv6_8]);
  4564. }
  4565. if(data.IPPortFilterRulesv6_9 != ""){
  4566. v6Rules.push([19,data.IPPortFilterRulesv6_9]);
  4567. }
  4568. result.portFilterRules = _.union(result.portFilterRules, parsePortFilterRules(v6Rules, "IPv6"));
  4569. }
  4570.  
  4571. return result;
  4572. } else {
  4573. return unknownErrorObject;
  4574. }
  4575. }
  4576.  
  4577. //from 93, refactory later
  4578. function parsePortFilterRules(data, ipTypeTmp) {
  4579. var rules = [];
  4580. if(data && data.length > 0){
  4581. for(var i = 0; i < data.length; i++){
  4582. var aRule = {};
  4583. //192.168.0.5,0,1,6,192.168.0.53,0,1,655,1,1,kk,00:1E:90:FF:FF:FF
  4584. var elements = data[i][1].split(",");
  4585. aRule.index = data[i][0];
  4586. aRule.macAddress = elements[11];
  4587. aRule.destIpAddress = elements[4] == "any/0"? "" : elements[4];
  4588. aRule.sourceIpAddress = elements[0] == "any/0"? "" : elements[0];
  4589. aRule.destPortRange = elements[6] == '0' ? '' : elements[6] + " - " + elements[7];
  4590. aRule.sourcePortRange = elements[2] == '0' ? '' : elements[2] + " - " + elements[3];
  4591. aRule.action = elements[9] == 1 ? "filter_accept" : "filter_drop";
  4592. aRule.protocol = transProtocol(elements[8]);
  4593. aRule.comment = elements[10];
  4594. aRule.ipType = ipTypeTmp;
  4595. rules.push(aRule);
  4596. }
  4597. }
  4598. return rules;
  4599. }
  4600. }
  4601.  
  4602. /**
  4603. * 设置端口过滤基本信息
  4604. * @method setPortFilterBasic
  4605. */
  4606. function setPortFilterBasic() {
  4607. return doStuff(arguments, {}, prepare, deal, null, true);
  4608.  
  4609. function prepare(params, isPost) {
  4610. var requestParams = {};
  4611. requestParams.isTest = isTest;
  4612. requestParams.goformId = "BASIC_SETTING";
  4613. requestParams.portFilterEnabled = params.portFilterEnable;
  4614. requestParams.defaultFirewallPolicy = params.defaultPolicy;
  4615. return requestParams;
  4616. }
  4617.  
  4618. function deal(data) {
  4619. if (data) {
  4620. return data;
  4621. } else {
  4622. return unknownErrorObject;
  4623. }
  4624. }
  4625. }
  4626.  
  4627. /**
  4628. * 设置端口过滤信息
  4629. * @method setPortFilter
  4630. */
  4631. function setPortFilter() {
  4632. return doStuff(arguments, {}, prepare, deal, null, true);
  4633.  
  4634. function prepare(params, isPost) {
  4635. var requestParams = {};
  4636. requestParams.isTest = isTest;
  4637. if(config.USE_IPV6_INTERFACE) {
  4638. requestParams.goformId = "ADD_IP_PORT_FILETER_V4V6";
  4639. requestParams.ip_version = params.ipType;
  4640. }else {
  4641. requestParams.goformId = "ADD_IP_PORT_FILETER";
  4642. }
  4643.  
  4644. requestParams.mac_address = params.macAddress;
  4645. requestParams.dip_address = params.destIpAddress;
  4646. requestParams.sip_address = params.sourceIpAddress;
  4647. requestParams.dFromPort = params.destPortStart;
  4648. requestParams.dToPort = params.destPortEnd;
  4649. requestParams.sFromPort = params.sourcePortStart;
  4650. requestParams.sToPort = params.sourcePortEnd;
  4651. requestParams.action = params.action;
  4652. requestParams.protocol = params.protocol;
  4653. requestParams.comment = params.comment;
  4654. return requestParams;
  4655. }
  4656.  
  4657. function deal(data) {
  4658. if (data) {
  4659. return data;
  4660. } else {
  4661. return unknownErrorObject;
  4662. }
  4663. }
  4664. }
  4665.  
  4666. /**
  4667. * 删除端口过滤信息
  4668. * @method deleteFilterRules
  4669. */
  4670. function deleteFilterRules() {
  4671. return doStuff(arguments, {}, prepare, deal, null, true);
  4672.  
  4673. function prepare(params, isPost) {
  4674. var requestParams = {};
  4675. requestParams.isTest = isTest;
  4676.  
  4677. var deleteIds = _.filter(params.indexs, function(item){
  4678. return item.length == 1;
  4679. });
  4680.  
  4681. if(config.USE_IPV6_INTERFACE) {
  4682. requestParams.goformId = "DEL_IP_PORT_FILETER_V4V6";
  4683. var deletev6Ids = [];
  4684. _.each(params.indexs, function(item) {
  4685. if(item.length == 2) {
  4686. deletev6Ids.push(item.substring(1));
  4687. }
  4688. });
  4689.  
  4690. requestParams.delete_id_v6 = deletev6Ids.length > 0 ? deletev6Ids.join(';') + ";" : "";
  4691. }else {
  4692. requestParams.goformId = "DEL_IP_PORT_FILETER";
  4693. }
  4694.  
  4695. requestParams.delete_id = deleteIds.length > 0 ? deleteIds.join(';') + ";" : "";
  4696. return requestParams;
  4697. }
  4698.  
  4699. function deal(data) {
  4700. if (data) {
  4701. return data;
  4702. } else {
  4703. return unknownErrorObject;
  4704. }
  4705. }
  4706. }
  4707.  
  4708. /**
  4709. * 设置wifi高级信息
  4710. * @method setWifiAdvance_24G
  4711. * @param {Object} JSON 参数对象
  4712. */
  4713. function setWifiAdvance_24G() {
  4714. doStuffAndCheckServerIsOnline(arguments, prepare, deal);
  4715.  
  4716. function prepare(params) {
  4717. var requestParams = {
  4718. goformId : "SET_WIFI_INFO",
  4719. isTest : isTest,
  4720. wifiMode : params.mode,
  4721. countryCode : params.countryCode
  4722. };
  4723. if(config.WIFI_BAND_SUPPORT){
  4724. requestParams.wifi_band = params.wifiBand;
  4725. }
  4726. if(config.WIFI_BAND_SUPPORT && params.wifiBand == 'a'){ // 5G
  4727. requestParams.selectedChannel = 'auto';
  4728. } else {
  4729. requestParams.selectedChannel = params.channel;
  4730. requestParams.abg_rate = params.rate;
  4731. }
  4732. if(config.WIFI_BANDWIDTH_SUPPORT){
  4733. requestParams.wifi_11n_cap = params.bandwidth;
  4734. }
  4735. return requestParams;
  4736. }
  4737.  
  4738. function deal(data) {
  4739. if (data) {
  4740. return data;
  4741. } else {
  4742. return unknownErrorObject;
  4743. }
  4744. }
  4745. }
  4746. /**
  4747. * 设置wifi高级信息
  4748. * @method setWifiAdvance_5G
  4749. * @param {Object} JSON 参数对象
  4750. */
  4751. function setWifiAdvance_5G() {
  4752. doStuffAndCheckServerIsOnline(arguments, prepare, deal);
  4753.  
  4754. function prepare(params) {
  4755. var requestParams = {
  4756. goformId : "SET_M_WIFI_INFO",
  4757. isTest : isTest,
  4758. m_WirelessMode : params.mode,
  4759. m_CountryCode : params.countryCode
  4760. };
  4761. if(config.WIFI_BAND_SUPPORT){
  4762. requestParams.m_wifi_band = params.wifiBand;
  4763. }
  4764. if(config.WIFI_BAND_SUPPORT && params.wifiBand == 'a'){ // 5G
  4765. requestParams.m_Channel = 'auto';
  4766. } else {
  4767. requestParams.m_Channel = params.channel;
  4768. requestParams.abg_rate = params.rate;
  4769. }
  4770. if(config.WIFI_BANDWIDTH_SUPPORT){
  4771. requestParams.m_wifi_11n_cap = params.bandwidth;
  4772. }
  4773. return requestParams;
  4774. }
  4775.  
  4776. function deal(data) {
  4777. if (data) {
  4778. return data;
  4779. } else {
  4780. return unknownErrorObject;
  4781. }
  4782. }
  4783. }
  4784. /**
  4785. * 获取设备基本信息
  4786. * @method getDeviceInfo
  4787. */
  4788. function getDeviceInfo(){
  4789. return doStuff(arguments, {}, prepare, deal, null, false);
  4790.  
  4791. function prepare(params, isPost) {
  4792. var requestParams = {
  4793. isTest: isTest,
  4794. cmd : "wifi_ap_mode,guest_switch,wifi_coverage,guest_switch,imei,network_type,rssi,rscp,lte_rsrp,imsi,sim_imsi,cr_version,wa_version,hardware_version,web_version,wa_inner_version,MAX_Access_num,MAX_Access2_num," +
  4795. "SSID1,SSID2,AuthMode,WPAPSK1_encode,m_SSID,m_SSID2,m_AuthMode,m_HideSSID,m_WPAPSK1_encode,m_MAX_Access_num,m_MAX_Access2_num,lan_ipaddr," +
  4796. "mac_address,msisdn,LocalDomain,wan_ipaddr,static_wan_ipaddr,ipv6_wan_ipaddr,ipv6_pdp_type,pdp_type,opms_wan_mode,ppp_status,Z_rssi,Z_rscp,Z_rsrp,Z_rsrq",
  4797. multi_data : 1
  4798. };
  4799. return requestParams;
  4800. }
  4801.  
  4802. function deal(data) {
  4803. if (data) {
  4804. return {
  4805. wifi_enable:data.wifi_ap_mode,
  4806. multi_ssid_enable:data.guest_switch,
  4807. ssid: data.SSID1,
  4808. ssidGuest: data.SSID2,
  4809. authMode:data.AuthMode,
  4810. passPhrase: Base64.decode(data.WPAPSK1_encode),
  4811. m_ssid: data.m_SSID,
  4812. m_ssid_guest: data.m_SSID2,
  4813. m_authMode: data.m_AuthMode,
  4814. m_passPhrase: Base64.decode(data.m_WPAPSK1_encode),
  4815. m_max_access_num: data.m_MAX_Access_num,
  4816. m_max_access_num_guest: data.m_MAX_Access2_num,
  4817. multi_ssid_enable: data.guest_switch,
  4818. ipAddress: data.lan_ipaddr,
  4819. wanIpAddress: data.wan_ipaddr,
  4820. staticWanIpAddress: data.static_wan_ipaddr,
  4821. ipv6WanIpAddress: data.ipv6_wan_ipaddr,
  4822. ipv6PdpType: data.ipv6_pdp_type,
  4823. macAddress: data.mac_address,
  4824. simSerialNumber: data.msisdn,
  4825. lanDomain: data.LocalDomain,
  4826. imei: data.imei,
  4827. signal: config.PRODUCT_TYPE == "CPE"? data.rssi : convertSignal(data),
  4828. imsi: data.imsi || data.sim_imsi,
  4829. sw_version: data.cr_version || data.web_version,
  4830. fw_version: data.wa_version || data.wa_inner_version,
  4831. hw_version: data.hardware_version,
  4832. max_access_num: data.MAX_Access_num,
  4833. max_access_num_guest: data.MAX_Access2_num,
  4834. wifiRange: data.wifi_coverage,
  4835. pdpType: data.pdp_type,
  4836. opms_wan_mode:data.opms_wan_mode,
  4837. connectStatus: data.ppp_status,
  4838. rssiValue: data.Z_rssi,
  4839. rscpValue: data.Z_rscp,
  4840. rsrpValue: data.Z_rsrp,
  4841. rsrqValue: data.Z_rsrq,
  4842. networkTypeHome: data.network_type
  4843. };
  4844. } else {
  4845. return unknownErrorObject;
  4846. }
  4847. }
  4848. }
  4849.  
  4850. /**
  4851. * 获取wifi覆盖范围
  4852. * @method getWifiRange
  4853. */
  4854. function getWifiRange() {
  4855. return doStuff(arguments, {}, prepare, deal, null, false);
  4856.  
  4857. function prepare(params, isPost) {
  4858. var requestParams = {};
  4859. requestParams.isTest = isTest;
  4860. requestParams.cmd = "wifi_coverage,circle_led_light";
  4861. requestParams.multi_data = "1";
  4862. return requestParams;
  4863. }
  4864.  
  4865. function deal(data) {
  4866. if (data) {
  4867. var result = {};
  4868. result.wifiRangeMode = data.wifi_coverage;
  4869. result.circleLightSwitch = data.circle_led_light;
  4870. return result;
  4871. } else {
  4872. return unknownErrorObject;
  4873. }
  4874. }
  4875. }
  4876.  
  4877. /**
  4878. * 设置wifi覆盖范围
  4879. * @method getWifiRange
  4880. */
  4881. function setWifiRange() {
  4882. return doStuff(arguments, {}, prepare, deal, null, true);
  4883.  
  4884. function prepare(params, isPost) {
  4885. var requestParams = {};
  4886. requestParams.goformId = "SET_WIFI_COVERAGE";
  4887. requestParams.isTest = isTest;
  4888. requestParams.wifi_coverage = params.wifiRangeMode;
  4889. return requestParams;
  4890. }
  4891.  
  4892. function deal(data) {
  4893. if (data) {
  4894. return data;
  4895. } else {
  4896. return unknownErrorObject;
  4897. }
  4898. }
  4899. }
  4900.  
  4901. /**
  4902. * 设置led开关
  4903. * @method setLedSwitch
  4904. */
  4905. function setLedSwitch() {
  4906. return doStuff(arguments, {}, prepare, deal, null, true);
  4907.  
  4908. function prepare(params, isPost) {
  4909. var requestParams = {};
  4910. requestParams.goformId = "CIRCLE_LIGHT_SWITCH";
  4911. requestParams.isTest = isTest;
  4912. requestParams.circle_led_light = params.circle_led_light;
  4913. return requestParams;
  4914. }
  4915.  
  4916. function deal(data) {
  4917. if (data) {
  4918. return data;
  4919. } else {
  4920. return unknownErrorObject;
  4921. }
  4922. }
  4923. }
  4924.  
  4925. /**
  4926. *获取upnp信息
  4927. * @method getUpnpSetting
  4928. */
  4929. function getUpnpSetting() {
  4930. return doStuff(arguments, {}, prepare, deal, null, false);
  4931.  
  4932. function prepare(params, isPost) {
  4933. var requestParams = {};
  4934. requestParams.isTest = isTest;
  4935. requestParams.cmd = "upnpEnabled";
  4936. requestParams.multi_data = 1;
  4937. return requestParams;
  4938. }
  4939.  
  4940. function deal(data) {
  4941. if (data) {
  4942. var result = {};
  4943. result.upnpSetting = data.upnpEnabled == "1"? "1" : "0";
  4944. return result;
  4945. } else {
  4946. return unknownErrorObject;
  4947. }
  4948. }
  4949. }
  4950.  
  4951. /**
  4952. *设置upnp信息
  4953. * @method setUpnpSetting
  4954. */
  4955. function setUpnpSetting() {
  4956. return doStuff(arguments, {}, prepare, deal, null, true);
  4957.  
  4958. function prepare(params, isPost) {
  4959. var requestParams = {};
  4960. requestParams.goformId = "UPNP_SETTING";
  4961. requestParams.isTest = isTest;
  4962. requestParams.upnp_setting_option = params.upnpSetting;
  4963. return requestParams;
  4964. }
  4965.  
  4966. function deal(data) {
  4967. if (data) {
  4968. return data;
  4969. } else {
  4970. return unknownErrorObject;
  4971. }
  4972. }
  4973. }
  4974.  
  4975. /**
  4976. *获取dmz信息
  4977. * @method getUpnpSetting
  4978. */
  4979. function getDmzSetting() {
  4980. return doStuff(arguments, {}, prepare, deal, null, false);
  4981.  
  4982. function prepare(params, isPost) {
  4983. var requestParams = {};
  4984. requestParams.isTest = isTest;
  4985. requestParams.cmd = "DMZEnable,DMZIPAddress";
  4986. requestParams.multi_data = 1;
  4987. return requestParams;
  4988. }
  4989.  
  4990. function deal(data) {
  4991. if (data) {
  4992. var result = {};
  4993. result.dmzSetting = data.DMZEnable == "1"? "1" : "0";
  4994. result.ipAddress = data.DMZIPAddress;
  4995. return result;
  4996. } else {
  4997. return unknownErrorObject;
  4998. }
  4999. }
  5000. }
  5001.  
  5002. /**
  5003. *设置dmz信息
  5004. * @method setDmzSetting
  5005. */
  5006. function setDmzSetting() {
  5007. return doStuff(arguments, {}, prepare, deal, null, true);
  5008.  
  5009. function prepare(params, isPost) {
  5010. var requestParams = {};
  5011. requestParams.goformId = "DMZ_SETTING";
  5012. requestParams.isTest = isTest;
  5013. requestParams.DMZEnabled = params.dmzSetting;
  5014. if(requestParams.DMZEnabled == '1') {
  5015. requestParams.DMZIPAddress = params.ipAddress;
  5016. }
  5017.  
  5018. return requestParams;
  5019. }
  5020.  
  5021. function deal(data) {
  5022. if (data) {
  5023. return data;
  5024. } else {
  5025. return unknownErrorObject;
  5026. }
  5027. }
  5028. }
  5029.  
  5030. /**
  5031. * 获取端口映射规则
  5032. * @method getPortMap
  5033. */
  5034. function getPortMap() {
  5035. return doStuff(arguments, {}, prepare, deal, null, false);
  5036.  
  5037. function prepare(params, isPost) {
  5038. var requestParams = {};
  5039. requestParams.isTest = isTest;
  5040. requestParams.cmd = "PortMapEnable,PortMapRules_0,PortMapRules_1,PortMapRules_2,PortMapRules_3,PortMapRules_4,PortMapRules_5,PortMapRules_6,PortMapRules_7,PortMapRules_8,PortMapRules_9",
  5041. requestParams.multi_data = 1;
  5042. return requestParams;
  5043. }
  5044.  
  5045. function deal(data) {
  5046. if (data) {
  5047. var result = {};
  5048. result.portMapEnable = data.PortMapEnable;
  5049. //from 93, refactory later
  5050. var rules = [];
  5051. if(data.PortMapRules_0 != ""){
  5052. rules.push([0,data.PortMapRules_0]);
  5053. }
  5054. if(data.PortMapRules_1 != ""){
  5055. rules.push([1,data.PortMapRules_1]);
  5056. }
  5057. if(data.PortMapRules_2 != ""){
  5058. rules.push([2,data.PortMapRules_2]);
  5059. }
  5060. if(data.PortMapRules_3 != ""){
  5061. rules.push([3,data.PortMapRules_3]);
  5062. }
  5063. if(data.PortMapRules_4 != ""){
  5064. rules.push([4,data.PortMapRules_4]);
  5065. }
  5066. if(data.PortMapRules_5 != ""){
  5067. rules.push([5,data.PortMapRules_5]);
  5068. }
  5069. if(data.PortMapRules_6 != ""){
  5070. rules.push([6,data.PortMapRules_6]);
  5071. }
  5072. if(data.PortMapRules_7 != ""){
  5073. rules.push([7,data.PortMapRules_7]);
  5074. }
  5075. if(data.PortMapRules_8 != ""){
  5076. rules.push([8,data.PortMapRules_8]);
  5077. }
  5078. if(data.PortMapRules_9 != ""){
  5079. rules.push([9,data.PortMapRules_9]);
  5080. }
  5081. result.portMapRules = parsePortMapRules(rules);
  5082. return result;
  5083. } else {
  5084. return unknownErrorObject;
  5085. }
  5086. }
  5087.  
  5088. //from 93, refactory later
  5089. function parsePortMapRules(data) {
  5090. var rules = [];
  5091. if(data && data.length > 0){
  5092. for(var i = 0; i < data.length; i++){
  5093. var aRule = {};
  5094. var elements = data[i][1].split(",");
  5095. aRule.index = data[i][0];
  5096. aRule.sourcePort = elements[1];
  5097. aRule.destIpAddress = elements[0];
  5098. aRule.destPort = elements[2];
  5099. aRule.protocol = transProtocol(elements[3]);
  5100. aRule.comment = elements[4];
  5101. rules.push(aRule);
  5102. }
  5103. }
  5104. return rules;
  5105. }
  5106. }
  5107.  
  5108. /**
  5109. * 设置端口映射信息
  5110. * @method setPortMap
  5111. */
  5112. function setPortMap() {
  5113. return doStuff(arguments, {}, prepare, deal, null, true);
  5114.  
  5115. function prepare(params, isPost) {
  5116. var requestParams = {};
  5117. requestParams.isTest = isTest;
  5118. requestParams.goformId = "ADD_PORT_MAP";
  5119. requestParams.portMapEnabled = params.portMapEnable;
  5120. requestParams.fromPort = params.sourcePort;
  5121. requestParams.ip_address = params.destIpAddress;
  5122. requestParams.toPort = params.destPort;
  5123. requestParams.protocol = params.protocol;
  5124. requestParams.comment = params.comment;
  5125. return requestParams;
  5126. }
  5127.  
  5128. function deal(data) {
  5129. if (data) {
  5130. return data;
  5131. } else {
  5132. return unknownErrorObject;
  5133. }
  5134. }
  5135. }
  5136.  
  5137. /**
  5138. * 启用/禁用端口映射
  5139. * @method enablePortMap
  5140. */
  5141. function enablePortMap() {
  5142. return doStuff(arguments, {}, prepare, deal, null, true);
  5143.  
  5144. function prepare(params, isPost) {
  5145. var requestParams = {};
  5146. requestParams.isTest = isTest;
  5147. requestParams.goformId = "ADD_PORT_MAP";
  5148. requestParams.portMapEnabled = params.portMapEnable;
  5149. return requestParams;
  5150. }
  5151.  
  5152. function deal(data) {
  5153. if (data) {
  5154. return data;
  5155. } else {
  5156. return unknownErrorObject;
  5157. }
  5158. }
  5159. }
  5160.  
  5161. /**
  5162. * 删除端口映射信息
  5163. * @method deleteMapRules
  5164. */
  5165. function deleteMapRules() {
  5166. return doStuff(arguments, {}, prepare, deal, null, true);
  5167.  
  5168. function prepare(params, isPost) {
  5169. var requestParams = {};
  5170. requestParams.isTest = isTest;
  5171. requestParams.goformId = "DEL_PORT_MAP";
  5172. requestParams.delete_id = params.indexs.join(';') + ";";
  5173. return requestParams;
  5174. }
  5175.  
  5176. function deal(data) {
  5177. if (data) {
  5178. return data;
  5179. } else {
  5180. return unknownErrorObject;
  5181. }
  5182. }
  5183. }
  5184.  
  5185. /**
  5186. * 获取流量提醒数据
  5187. * @method getTrafficAlertInfo
  5188. */
  5189. function getTrafficAlertInfo() {
  5190. return doStuff(arguments, {}, prepare, deal, null, false);
  5191.  
  5192. function prepare(params, isPost) {
  5193. return {
  5194. isTest : isTest,
  5195. cmd : "data_volume_limit_switch,data_volume_limit_unit,data_volume_limit_size,data_volume_alert_percent,monthly_tx_bytes,monthly_rx_bytes,monthly_time",
  5196. multi_data : 1
  5197. };
  5198. }
  5199.  
  5200. function deal(data) {
  5201. if (data) {
  5202. var isData = data.data_volume_limit_unit == 'data';
  5203. var result = {
  5204. dataLimitChecked : data.data_volume_limit_switch,
  5205. dataLimitTypeChecked : isData ? '1' : '0',
  5206. limitDataMonth : isData ? data.data_volume_limit_size : '0',
  5207. alertDataReach : isData ? data.data_volume_alert_percent : '0',
  5208. limitTimeMonth : isData ? '0' : data.data_volume_limit_size,
  5209. alertTimeReach : isData ? '0' : data.data_volume_alert_percent,
  5210. monthlySent: data.monthly_tx_bytes == '' ? 0 : data.monthly_tx_bytes,
  5211. monthlyReceived: data.monthly_rx_bytes == '' ? 0 : data.monthly_rx_bytes,
  5212. monthlyConnectedTime: data.monthly_time == '' ? 0 : data.monthly_time
  5213. };
  5214. return result;
  5215. } else {
  5216. return unknownErrorObject;
  5217. }
  5218. }
  5219. }
  5220.  
  5221. /**
  5222. * 设置流量提醒
  5223. * @method setTrafficAlertInfo
  5224. */
  5225. function setTrafficAlertInfo(){
  5226. return doStuff(arguments, {}, prepare, deal, null, true);
  5227.  
  5228. function prepare(params, isPost) {
  5229. var isData = params.dataLimitTypeChecked == '1';
  5230. var requestParams = {
  5231. isTest : isTest,
  5232. goformId : "DATA_LIMIT_SETTING",
  5233. data_volume_limit_switch: params.dataLimitChecked
  5234. };
  5235. if(params.dataLimitChecked == '1'){
  5236. requestParams.data_volume_limit_unit = isData ? 'data' : 'time';
  5237. requestParams.data_volume_limit_size = isData ? params.limitDataMonth : params.limitTimeMonth;
  5238. requestParams.data_volume_alert_percent = isData ? params.alertDataReach : params.alertTimeReach;
  5239. }
  5240. return requestParams;
  5241. }
  5242.  
  5243. function deal(data) {
  5244. if (data) {
  5245. return data;
  5246. } else {
  5247. return unknownErrorObject;
  5248. }
  5249. }
  5250. }
  5251.  
  5252. /**
  5253. * 发送USSD命令,获取响应
  5254. * @method getUSSDResponse
  5255. */
  5256. function getUSSDResponse(){
  5257. var callback = arguments[1];
  5258. return doStuff(arguments, {}, prepare, deal, null, true);
  5259.  
  5260. function prepare(params, isPost) {
  5261. if(params.sendOrReply=="send"){
  5262. return {
  5263. isTest : isTest,
  5264. goformId : "USSD_PROCESS",
  5265. USSD_operator : params.operator,
  5266. USSD_send_number : params.strUSSDCommand,
  5267. notCallback : true
  5268. };
  5269. }else if(params.sendOrReply=="reply"){
  5270. return {
  5271. isTest : isTest,
  5272. goformId : "USSD_PROCESS",
  5273. USSD_operator: params.operator,
  5274. USSD_reply_number: params.strUSSDCommand,
  5275. notCallback : true
  5276. };
  5277. }
  5278. }
  5279.  
  5280. function deal(data) {
  5281. if(!data){
  5282. callback(false, "ussd_fail");
  5283. return;
  5284. }
  5285. if (data.result == "success") {
  5286. callbackTemp=callback;
  5287. getResponse();
  5288. } else {
  5289. callback(false, "ussd_fail");
  5290. }
  5291. }
  5292.  
  5293. }
  5294.  
  5295. /**
  5296. * 获取响应
  5297. * @method getResponse
  5298. */
  5299. function getResponse(){
  5300. $.ajax({
  5301. url : "/goform/goform_get_cmd_process",
  5302. data: {cmd : "ussd_write_flag"},
  5303. cache: false,
  5304. async: true,
  5305. dataType: "json",
  5306. success: function(result){
  5307. if (result.ussd_write_flag == "1" ) {
  5308. callbackTemp(false, "ussd_no_service");
  5309. }else if (result.ussd_write_flag == "4" || result.ussd_write_flag == "unknown" || result.ussd_write_flag == "3") {
  5310. callbackTemp(false, "ussd_timeout");
  5311. }else if (result.ussd_write_flag == "15") {
  5312. setTimeout(getResponse, 1000);
  5313. }else if (result.ussd_write_flag == "10") {
  5314. callbackTemp(false, "ussd_retry");
  5315. }else if (result.ussd_write_flag == "99") {
  5316. callbackTemp(false, "ussd_unsupport");
  5317. }else if (result.ussd_write_flag == "41") {
  5318. callbackTemp(false, "operation_not_supported");
  5319. } else if (result.ussd_write_flag == "2") {
  5320. callbackTemp(false, "network_terminated");
  5321. } else if (result.ussd_write_flag == "16") {
  5322. $.ajax({
  5323. url : "/goform/goform_get_cmd_process",
  5324. data : {cmd : "ussd_data_info"},
  5325. dataType : "json",
  5326. async : true,
  5327. cache : false,
  5328. success : function(data) {
  5329. var content ={};
  5330. content.data = data.ussd_data;
  5331. content.ussd_action = data.ussd_action;
  5332. content.ussd_dcs = data.ussd_dcs;
  5333. callbackTemp(true, content);
  5334. },
  5335. error:function(){
  5336. callbackTemp(false, "ussd_info_error");
  5337. }
  5338. });
  5339. }else{
  5340. callbackTemp(false, "ussd_fail");
  5341. }
  5342. },
  5343. error: function(){
  5344. callbackTemp(false, "ussd_fail");
  5345. }
  5346. });
  5347. }
  5348.  
  5349. /**
  5350. * 发送USSD取消命令
  5351. * @method USSDReplyCancel
  5352. */
  5353. function USSDReplyCancel(callback){
  5354. $.ajax({
  5355. url : "/goform/goform_set_cmd_process",
  5356. data: {goformId : "USSD_PROCESS", USSD_operator: "ussd_cancel"},
  5357. cache: false,
  5358. dataType: "json",
  5359. success : function(data) {
  5360. if (data.result == "success") {
  5361. getCancelResponse();
  5362. }else{
  5363. callback(false);
  5364. }
  5365. }
  5366. });
  5367.  
  5368. function getCancelResponse(){
  5369. $.ajax({
  5370. url : "/goform/goform_get_cmd_process",
  5371. data: {cmd : "ussd_write_flag"},
  5372. cache: false,
  5373. async: true,
  5374. dataType: "json",
  5375. success: function(result){
  5376. if (result.ussd_write_flag == "15") {
  5377. setTimeout(getCancelResponse, 1000);
  5378. } else if (result.ussd_write_flag == "13") {
  5379. callback(true);
  5380. } else{
  5381. callback(false);
  5382. }
  5383. },
  5384. error: function(){
  5385. callback(false);
  5386. }
  5387. });
  5388. }
  5389. }
  5390.  
  5391. /**
  5392. * 获取dlna参数
  5393. * @method getDlnaSetting
  5394. */
  5395. function getDlnaSetting() {
  5396. return doStuff(arguments, {}, prepare, deal, null, false);
  5397.  
  5398. function prepare(params, isPost) {
  5399. var requestParams = {};
  5400. requestParams.isTest = isTest;
  5401. requestParams.cmd = "dlna_language,dlna_name,dlna_share_audio,dlna_share_video,dlna_share_image,dlna_scan_state,sd_card_state,sdcard_mode_option,dlna_rescan_end";
  5402. requestParams.multi_data = 1;
  5403. return requestParams;
  5404. }
  5405.  
  5406. function deal(data) {
  5407. if (data) {
  5408. var result = {
  5409. language : data.dlna_language,
  5410. deviceName : data.dlna_name,
  5411. shareAudio : data.dlna_share_audio,
  5412. shareVideo : data.dlna_share_video,
  5413. shareImage : data.dlna_share_image,
  5414. needRescan: data.dlna_scan_state == "1",
  5415. dlnaEnable: true,//data.sd_card_state == "1" && data.sdcard_mode_option == "1"//CPE 无SD卡功能
  5416. dlna_scan: data.dlna_rescan_end
  5417. };
  5418. return result;
  5419. } else {
  5420. return unknownErrorObject;
  5421. }
  5422. }
  5423. }
  5424.  
  5425. /**
  5426. * 设置dlna参数
  5427. * @method setDlnaSetting
  5428. */
  5429. function setDlnaSetting() {
  5430. var callback = arguments[1];
  5431. return doStuff(arguments, {}, prepare, deal, null, true);
  5432.  
  5433. function prepare(params, isPost) {
  5434. return {
  5435. isTest : isTest,
  5436. notCallback: true,
  5437. goformId : "DLNA_SETTINGS",
  5438. dlna_language: params.language,
  5439. dlna_name: params.deviceName,
  5440. dlna_share_audio: params.shareAudio,
  5441. dlna_share_video: params.shareVideo,
  5442. dlna_share_image: params.shareImage
  5443. };
  5444. }
  5445.  
  5446. function deal(data) {
  5447. if (data && data.result == "success") {
  5448. addTimerThings("dlna_rescan_end", checkSetDlnaSetting);
  5449. } else {
  5450. callback(data);
  5451. }
  5452. }
  5453.  
  5454. function checkSetDlnaSetting(data){
  5455. checkRescanStatus(data, callback, checkSetDlnaSetting);
  5456. }
  5457. }
  5458.  
  5459. /**
  5460. * 重新扫描dlna, 使共享文件与T卡文件同步
  5461. * @method rescanDlna
  5462. */
  5463. function rescanDlna() {
  5464. var callback = arguments[1];
  5465. return doStuff(arguments, {}, prepare, deal, null, true);
  5466.  
  5467. function prepare(params, isPost) {
  5468. return {
  5469. isTest : isTest,
  5470. notCallback: true,
  5471. goformId : "DLNA_RESCAN"
  5472. };
  5473. }
  5474.  
  5475. function deal(data) {
  5476. if (data && data.result == "success") {
  5477. addTimerThings("dlna_rescan_end", checkRescanDlna);
  5478. } else {
  5479. callback(data);
  5480. }
  5481. }
  5482.  
  5483. function checkRescanDlna(data){
  5484. checkRescanStatus(data, callback, checkRescanDlna);
  5485. }
  5486. }
  5487.  
  5488. function checkRescanStatus(data, callback, fn) {
  5489. if (data.dlna_rescan_end == "1") {
  5490. removeTimerThings("dlna_rescan_end", fn);
  5491. callback({result:"success"});
  5492. }
  5493. }
  5494.  
  5495. /**
  5496. * 网络解锁
  5497. * @method unlockNetwork
  5498. */
  5499. function unlockNetwork() {
  5500. var callback = arguments[1];
  5501. var checkPoint = 0;
  5502. return doStuff(arguments, {}, prepare, deal, null, true);
  5503.  
  5504. function prepare(params) {
  5505. return {
  5506. isTest: isTest,
  5507. goformId: "UNLOCK_NETWORK",
  5508. notCallback: true,
  5509. unlock_network_code: params.unlock_network_code
  5510. };
  5511. }
  5512.  
  5513. function deal(data) {
  5514. if (data && data.result == "success") {
  5515. addCallback(checkUnlockNetworkStatus);
  5516. } else {
  5517. callback({result: 'fail'});
  5518. }
  5519. }
  5520.  
  5521. function checkUnlockNetworkStatus() {
  5522. if (checkPoint > 5) {
  5523. removeCallback(checkUnlockNetworkStatus);
  5524. callback({result: 'fail'});
  5525. } else if (timerInfo.simStatus != 'modem_imsi_waitnck') {
  5526. removeCallback(checkUnlockNetworkStatus);
  5527. callback({result: 'success'});
  5528. }
  5529. checkPoint++;
  5530. }
  5531. }
  5532.  
  5533. /**
  5534. * 获取解锁次数
  5535. * @method getNetworkUnlockTimes
  5536. */
  5537. function getNetworkUnlockTimes() {
  5538. return doStuff(arguments, {}, prepare, deal, null, false);
  5539.  
  5540. function prepare(params, isPost) {
  5541. return {
  5542. isTest:isTest,
  5543. cmd:"unlock_nck_time"
  5544. };
  5545. }
  5546.  
  5547. function deal(data) {
  5548. if (data) {
  5549. return data;
  5550. } else {
  5551. return unknownErrorObject;
  5552. }
  5553. }
  5554. }
  5555.  
  5556. /**
  5557. * 设置升级提醒信息
  5558. * @method setUpdateInfoWarning
  5559. */
  5560. function setUpdateInfoWarning(){
  5561. var callback = arguments[1];
  5562. return doStuff(arguments, {}, prepare, deal, null, true);
  5563.  
  5564. function prepare(params) {
  5565. return {
  5566. isTest : isTest,
  5567. goformId : "SET_UPGRADE_NOTICE",
  5568. upgrade_notice_flag : params.upgrade_notice_flag,
  5569. notCallback : true
  5570. };
  5571. }
  5572.  
  5573. function deal(data) {
  5574. if (data.result=="success") {
  5575. callback(true);
  5576. } else {
  5577. callback(false);
  5578. }
  5579. }
  5580. }
  5581.  
  5582. /**
  5583. * 获取升级提醒信息
  5584. * @method getUpdateInfoWarning
  5585. */
  5586. function getUpdateInfoWarning(){
  5587. return doStuff(arguments, {}, prepare, deal, null, false);
  5588.  
  5589. function prepare(params, isPost) {
  5590. return {
  5591. isTest:isTest,
  5592. cmd:"upgrade_notice_flag"
  5593. };
  5594. }
  5595.  
  5596. function deal(data) {
  5597. if (data) {
  5598. return data;
  5599. } else {
  5600. return unknownErrorObject;
  5601. }
  5602. }
  5603. }
  5604.  
  5605. /**
  5606. * 获取AP Station基本设置
  5607. * @method getAPStationBasic
  5608. */
  5609. function getAPStationBasic() {
  5610. return doStuff(arguments, {}, prepare, deal, null, false);
  5611.  
  5612. function prepare(params, isPost) {
  5613. return {
  5614. isTest:isTest,
  5615. multi_data:1,
  5616. cmd:"wifi_sta_connection,ap_station_mode"
  5617. };
  5618. }
  5619.  
  5620. function deal(data) {
  5621. if (data) {
  5622. return {
  5623. ap_station_enable:data.wifi_sta_connection,
  5624. ap_station_mode:data.ap_station_mode
  5625. }
  5626. } else {
  5627. return unknownErrorObject;
  5628. }
  5629. }
  5630. }
  5631.  
  5632. /**
  5633. * 获取AP Station基本设置
  5634. * @method setAPStationBasic
  5635. */
  5636. function setAPStationBasic() {
  5637. var parameters = arguments[0];
  5638. return doStuff(arguments, {}, prepare, deal, null, true);
  5639.  
  5640. function prepare(params) {
  5641. return {
  5642. isTest:isTest,
  5643. goformId:"WIFI_STA_CONTROL",
  5644. wifi_sta_connection:params.ap_station_enable,
  5645. ap_station_mode:params.ap_station_mode
  5646. };
  5647. }
  5648.  
  5649. function deal(data) {
  5650. if (data && data.result == "success") {
  5651. timerInfo.ap_station_enable = parameters.ap_station_enable == 1;
  5652. timerInfo.ap_station_mode = parameters.ap_station_mode;
  5653. return data;
  5654. } else {
  5655. return unknownErrorObject;
  5656. }
  5657. }
  5658. }
  5659.  
  5660. /**
  5661. * 刷新AP Station使能状态到缓存
  5662. * @method refreshAPStationStatus
  5663. * @returns {getAPStationBasic|*}
  5664. */
  5665. function refreshAPStationStatus() {
  5666. return getAPStationBasic({}, function(data){
  5667. timerInfo.ap_station_enable = data.ap_station_enable == 1;
  5668. timerInfo.ap_station_mode = data.ap_station_mode;
  5669. });
  5670. }
  5671.  
  5672. /**
  5673. * 获取预置和保存的热点列表
  5674. * @method getHotspotList
  5675. */
  5676. function getHotspotList() {
  5677. return doStuff(arguments, {}, prepare, deal, null, false);
  5678.  
  5679. function prepare(params, isPost) {
  5680. return {
  5681. isTest:isTest,
  5682. multi_data:1,
  5683. cmd:"wifi_profile,wifi_profile1,wifi_profile2,wifi_profile3,wifi_profile4,wifi_profile5,wifi_profile_num"
  5684. };
  5685. }
  5686.  
  5687. function deal(data) {
  5688. if (data) {
  5689. var wifiList = [];
  5690. for (var i = 0; i <= 5; i++) {
  5691. var wifiStr = "";
  5692. if (i == 0) {
  5693. wifiStr = data.wifi_profile;
  5694. } else {
  5695. wifiStr = data["wifi_profile" + i];
  5696. }
  5697. var wifiArray = wifiStr.split(";");
  5698. for (var j = 0; j < wifiArray.length; j++) {
  5699. var item = wifiArray[j].split(",");
  5700. if (!item[0]) {
  5701. break;
  5702. }
  5703. var wifiJson = {
  5704. profileName:item[0],
  5705. fromProvider:item[1],
  5706. connectStatus:item[2],
  5707. signal:item[3],
  5708. ssid:item[4],
  5709. authMode:item[5],
  5710. encryptType:item[6],
  5711. password:item[7]=="0"?"":item[7],
  5712. keyID:item[8]
  5713. };
  5714. wifiList.push(wifiJson);
  5715. }
  5716. }
  5717.  
  5718. return { hotspotList:wifiList };
  5719.  
  5720. } else {
  5721. return unknownErrorObject;
  5722. }
  5723. }
  5724. }
  5725.  
  5726. /**
  5727. * 搜索热点
  5728. * @method searchHotspot
  5729. */
  5730. function searchHotspot() {
  5731. return doStuff(arguments, {}, prepare, deal, null, true);
  5732.  
  5733. function prepare(params) {
  5734. return {
  5735. isTest:isTest,
  5736. goformId:"WLAN_SET_STA_REFRESH"
  5737. };
  5738. }
  5739.  
  5740. function deal(data) {
  5741. if (data) {
  5742. return data;
  5743. } else {
  5744. return unknownErrorObject;
  5745. }
  5746. }
  5747. }
  5748.  
  5749. /**
  5750. * 获取搜寻到的热点列表
  5751. * @method getSearchHotspotList
  5752. */
  5753. function getSearchHotspotList() {
  5754. return doStuff(arguments, {}, prepare, deal, null, false);
  5755.  
  5756. function prepare(params, isPost) {
  5757. return {
  5758. isTest:isTest,
  5759. multi_data:1,
  5760. cmd:"scan_finish,EX_APLIST,EX_APLIST1"
  5761. }
  5762. }
  5763.  
  5764. function deal(data) {
  5765. if (data) {
  5766. if (data.scan_finish == "0") {
  5767. return { scan_finish:false, hotspotList:[] };
  5768. }
  5769. var wifiList = [];
  5770. for (var i = 0; i <= 1; i++) {
  5771. var wifiStr;
  5772. if (i == 0) {
  5773. wifiStr = data.EX_APLIST;
  5774. } else {
  5775. wifiStr = data.EX_APLIST1;
  5776. }
  5777. var wifiArray = wifiStr.split(";");
  5778. for (var j = 0; j < wifiArray.length; j++) {
  5779. var item = wifiArray[j].split(",");
  5780. if (!item[0]) {
  5781. break;
  5782. }
  5783. var wifiJson = {
  5784. fromProvider:item[0],
  5785. connectStatus:item[1],
  5786. ssid:item[2],
  5787. signal:item[3],
  5788. channel:item[4],
  5789. authMode:item[5],
  5790. encryptType:item[6]
  5791. }
  5792. wifiList.push(wifiJson);
  5793. }
  5794. }
  5795.  
  5796. return {scan_finish:true, hotspotList:wifiList };
  5797.  
  5798. } else {
  5799. return unknownErrorObject;
  5800. }
  5801. }
  5802. }
  5803.  
  5804. /**
  5805. * 将热点信息组成字符串
  5806. * @method creatHotspotString
  5807. */
  5808. function creatHotspotString(hotspot) {
  5809. var item = [];
  5810. item.push(hotspot.profileName);
  5811. item.push(hotspot.fromProvider || "0");
  5812. item.push(hotspot.connectStatus || "0");
  5813. item.push(hotspot.signal);
  5814. item.push(hotspot.ssid);
  5815. item.push(hotspot.authMode);
  5816. item.push(hotspot.encryptType);
  5817. item.push(hotspot.password || "0");
  5818. item.push(hotspot.keyID);
  5819. return item.join(",");
  5820. }
  5821.  
  5822. /**
  5823. * 保存热点
  5824. * @method saveHotspot
  5825. */
  5826. function saveHotspot() {
  5827. return doStuff(arguments, {}, prepare, deal, null, true);
  5828.  
  5829. function prepare(params) {
  5830. var apList = params.apList;
  5831. var action = "modify";
  5832. if (params.profileName == "") {
  5833. action = "add";
  5834. var newName = ( jQuery.fn.jquery + Math.random() ).replace(/\D/g, "");
  5835. params.profileName = newName;
  5836. apList.push({
  5837. profileName:newName,
  5838. fromProvider:"0",
  5839. connectStatus:"0",
  5840. signal:params.signal,
  5841. ssid:params.ssid,
  5842. authMode:params.authMode,
  5843. encryptType:params.encryptType,
  5844. password:params.password || "0",
  5845. keyID:params.keyID
  5846. });
  5847. }
  5848.  
  5849. var wifi = {"profile0":[], "profile1":[], "profile2":[], "profile3":[], "profile4":[], "profile5":[]};
  5850. var activeHotspotStr = "";
  5851. for (var i = 0; i < apList.length; i++) {
  5852. var hotspotStr = "";
  5853. if (params.profileName == apList[i].profileName) {
  5854. hotspotStr = creatHotspotString(params);
  5855. activeHotspotStr = hotspotStr;
  5856. } else {
  5857. hotspotStr = creatHotspotString(apList[i]);
  5858. }
  5859. var index = parseInt(i / 5);
  5860. wifi["profile" + index].push(hotspotStr);
  5861. }
  5862.  
  5863. return {
  5864. isTest:isTest,
  5865. goformId:"WIFI_SPOT_PROFILE_UPDATE",
  5866. wifi_profile:wifi.profile0.join(";"),
  5867. wifi_profile1:wifi.profile1.join(";"),
  5868. wifi_profile2:wifi.profile2.join(";"),
  5869. wifi_profile3:wifi.profile3.join(";"),
  5870. wifi_profile4:wifi.profile4.join(";"),
  5871. wifi_profile5:wifi.profile5.join(";"),
  5872. wifi_profile_num:apList.length,
  5873. wifi_update_profile:activeHotspotStr,
  5874. action:action
  5875. };
  5876. }
  5877.  
  5878. function deal(data) {
  5879. if (data) {
  5880. return data;
  5881. } else {
  5882. return unknownErrorObject;
  5883. }
  5884. }
  5885. }
  5886.  
  5887. /**
  5888. * 删除热点
  5889. * @method deleteHotspot
  5890. */
  5891. function deleteHotspot() {
  5892. return doStuff(arguments, {}, prepare, deal, null, true);
  5893.  
  5894. function prepare(params) {
  5895. var apList = params.apList;
  5896. var wifi = {"profile0":[], "profile1":[], "profile2":[], "profile3":[], "profile4":[], "profile5":[]};
  5897. var foundDelete = false;
  5898. var activeHotspotStr = "";
  5899. for (var i = 0; i < apList.length; i++) {
  5900. var hotspotStr = creatHotspotString(apList[i]);
  5901. if (apList[i].profileName == params.profileName) {
  5902. foundDelete = true;
  5903. activeHotspotStr = hotspotStr;
  5904. continue;
  5905. }
  5906. var idIndex = i;
  5907. if (foundDelete) {
  5908. idIndex = i - 1;
  5909. }
  5910. var index = parseInt(idIndex / 5);
  5911. wifi["profile" + index].push(hotspotStr);
  5912. }
  5913. var num = foundDelete ? apList.length - 1 : apList.length;
  5914.  
  5915. return {
  5916. isTest:isTest,
  5917. goformId:"WIFI_SPOT_PROFILE_UPDATE",
  5918. wifi_profile:wifi.profile0.join(";"),
  5919. wifi_profile1:wifi.profile1.join(";"),
  5920. wifi_profile2:wifi.profile2.join(";"),
  5921. wifi_profile3:wifi.profile3.join(";"),
  5922. wifi_profile4:wifi.profile4.join(";"),
  5923. wifi_profile5:wifi.profile5.join(";"),
  5924. wifi_profile_num:num,
  5925. wifi_update_profile:activeHotspotStr,
  5926. action:"delete"
  5927. };
  5928. }
  5929.  
  5930. function deal(data) {
  5931. if (data) {
  5932. return data;
  5933. } else {
  5934. return unknownErrorObject;
  5935. }
  5936. }
  5937. }
  5938.  
  5939. /**
  5940. * 链接热点
  5941. * @method connectHotspot
  5942. */
  5943. function connectHotspot() {
  5944. return doStuff(arguments, {}, prepare, deal, null, true);
  5945.  
  5946. function prepare(params) {
  5947. return {
  5948. isTest:isTest,
  5949. goformId:"WLAN_SET_STA_CON",
  5950. EX_SSID1:params.EX_SSID1,
  5951. EX_AuthMode:params.EX_AuthMode,
  5952. EX_EncrypType:params.EX_EncrypType,
  5953. EX_DefaultKeyID:params.EX_DefaultKeyID,
  5954. EX_WEPKEY:params.EX_WEPKEY,
  5955. EX_WPAPSK1:params.EX_WPAPSK1,
  5956. EX_wifi_profile:params.EX_wifi_profile
  5957. };
  5958. }
  5959.  
  5960. function deal(data) {
  5961. if (data && data.result == "success") {
  5962. return data;
  5963. } else {
  5964. return unknownErrorObject;
  5965. }
  5966. }
  5967. }
  5968.  
  5969. /**
  5970. * 断开热点
  5971. * @method disconnectHotspot
  5972. */
  5973. function disconnectHotspot() {
  5974. return doStuff(arguments, {}, prepare, deal, null, true);
  5975.  
  5976. function prepare(params) {
  5977. return {
  5978. isTest:isTest,
  5979. goformId:"WLAN_SET_STA_DISCON"
  5980. };
  5981. }
  5982.  
  5983. function deal(data) {
  5984. if (data && data.result == "success") {
  5985. return data;
  5986. } else {
  5987. return unknownErrorObject;
  5988. }
  5989. }
  5990. }
  5991.  
  5992. function getOpMode(){
  5993. return doStuff(arguments, {}, prepare, deal, null, false);
  5994.  
  5995. function prepare(params, isPost) {
  5996. return {
  5997. isTest:isTest,
  5998. multi_data:1,
  5999. cmd:"opms_wan_mode,loginfo,ppp_status,ipv6_pdp_type,pdp_type"
  6000. };
  6001. }
  6002.  
  6003. function deal(data) {
  6004. if (data) {
  6005. return {
  6006. opms_wan_mode: config.PRODUCT_TYPE == 'CPE' ? data.opms_wan_mode : 'PPP',
  6007. loginfo: data.loginfo,
  6008. ppp_status: data.ppp_status,
  6009. ipv6PdpType: data.ipv6_pdp_type,
  6010. pdpType: data.pdp_type
  6011. }
  6012. } else {
  6013. return unknownErrorObject;
  6014. }
  6015. }
  6016. }
  6017.  
  6018. function SetOperationMode(params, callback){
  6019. return doStuff(arguments, {}, prepare, deal, null, true);
  6020.  
  6021. function prepare(params) {
  6022. var requestParams = $.extend({
  6023. isTest:isTest,
  6024. goformId: "OPERATION_MODE"
  6025. }, params);
  6026. return requestParams;
  6027. }
  6028.  
  6029. function deal(data) {
  6030. if (data && data.result == "success") {
  6031. return data;
  6032. } else {
  6033. return unknownErrorObject;
  6034. }
  6035. }
  6036. }
  6037.  
  6038. function SendUpgradeMessage(params, callback){
  6039. return doStuff(arguments, {}, prepare, deal, null, true);
  6040.  
  6041. function prepare(params) {
  6042. var requestParams = $.extend({
  6043. isTest:isTest
  6044. }, params);
  6045. return requestParams;
  6046. }
  6047.  
  6048. function deal(data) {
  6049. if (data && data.result == "success") {
  6050. return data;
  6051. } else {
  6052. return unknownErrorObject;
  6053. }
  6054. }
  6055. }
  6056.  
  6057. function getPppoeParams(){
  6058. return doStuff(arguments, {}, prepare, deal, null, false);
  6059.  
  6060. function prepare(params, isPost) {
  6061. return {
  6062. isTest:isTest,
  6063. multi_data:1,
  6064. cmd:"pppoe_username,pppoe_password,pppoe_dial_mode,ppp_status,static_wan_ipaddr,static_wan_netmask,static_wan_gateway,static_wan_primary_dns,static_wan_secondary_dns,dhcp_wan_status,static_wan_status"
  6065. };
  6066. }
  6067.  
  6068. function deal(data) {
  6069. if (data) {
  6070. return {
  6071. pppoe_username: data.pppoe_username,
  6072. pppoe_password: data.pppoe_password,
  6073. pppoe_dial_mode: data.pppoe_dial_mode,
  6074. ppp_status: data.ppp_status,
  6075. static_wan_ipaddr: data.static_wan_ipaddr,
  6076. static_wan_netmask: data.static_wan_netmask,
  6077. static_wan_gateway: data.static_wan_gateway,
  6078. static_wan_primary_dns: data.static_wan_primary_dns,static_wan_secondary_dns: data.static_wan_secondary_dns,
  6079. dhcp_wan_status : data.dhcp_wan_status,
  6080. static_wan_status : data.static_wan_status
  6081. }
  6082. } else {
  6083. return unknownErrorObject;
  6084. }
  6085. }
  6086. }
  6087.  
  6088. function setPppoeDialMode(params, callback){
  6089. return doStuff(arguments, {}, prepare, deal, null, true);
  6090.  
  6091. function prepare(params) {
  6092. var requestParams = $.extend({
  6093. isTest:isTest,
  6094. notCallback: true
  6095. }, params);
  6096. return requestParams;
  6097. }
  6098.  
  6099. function deal(data) {
  6100. if (data.result == "success") {
  6101. if(params.goformId == "WAN_GATEWAYMODE_PPPOE" && params.action_link == "connect"){
  6102. showLoading('connecting');
  6103. addCallback(checkConnectStatus);
  6104. } else if(params.goformId == "WAN_GATEWAYMODE_PPPOE" && params.action_link == "disconnect"){
  6105. addCallback(checkDisconnectStatus);
  6106. }else {
  6107. callback({
  6108. result: true
  6109. });
  6110. }
  6111.  
  6112. } else {
  6113. callback({
  6114. result : false
  6115. });
  6116. }
  6117. }
  6118.  
  6119. function checkConnectStatus(data) {
  6120. if (data.ppp_status == "ppp_connecting") {
  6121. timerInfo.connectStatus = "ppp_connecting";
  6122. } else if (checkConnectedStatus(data.ppp_status)) {
  6123. removeCallback(checkConnectStatus);
  6124. timerInfo.connectStatus = "ppp_connected";
  6125. callback({
  6126. result : true,
  6127. status : timerInfo.connectStatus
  6128. });
  6129. } else {
  6130. removeCallback(checkConnectStatus);
  6131. callback({
  6132. result : false
  6133. });
  6134. }
  6135. }
  6136.  
  6137. function checkDisconnectStatus(data) {
  6138. if (data.ppp_status == "ppp_disconnecting") {
  6139. timerInfo.connectStatus = "ppp_disconnecting";
  6140. } else if (data.ppp_status == "ppp_disconnected") {
  6141. removeCallback(checkDisconnectStatus);
  6142. timerInfo.connectStatus = "ppp_disconnected";
  6143. callback({
  6144. result : true,
  6145. status : timerInfo.connectStatus
  6146. });
  6147. } else {
  6148. removeCallback(checkDisconnectStatus);
  6149. callback({
  6150. result : false
  6151. });
  6152. }
  6153. }
  6154. }
  6155.  
  6156. function getSntpParams(params, callback){
  6157. return doStuff(arguments, {}, prepare, deal, null, false);
  6158.  
  6159. function prepare(params, isPost) {
  6160. return {
  6161. isTest:isTest,
  6162. multi_data:1,
  6163. cmd:"sntp_year,sntp_month_temp,sntp_day,sntp_hour,sntp_minute,sntp_second,sntp_time_set_mode,sntp_server_list1,sntp_server_list2,sntp_server_list3,sntp_server_list4,sntp_server_list5,sntp_server_list6,sntp_server_list7,sntp_server_list8,sntp_server_list9,sntp_server_list10,sntp_server0,sntp_server1,sntp_server2,sntp_other_server0,sntp_other_server1,sntp_other_server2,sntp_timezone,sntp_dst_enable,ppp_status,opms_wan_mode,syn_done"
  6164. };
  6165. }
  6166.  
  6167. function deal(data) {
  6168. if (data) {
  6169. var sntp_servers = getSntpServers(data);
  6170. return {
  6171. sntp_year: data.sntp_year,
  6172. sntp_month: data.sntp_month_temp,
  6173. sntp_day: data.sntp_day,
  6174. sntp_hour: data.sntp_hour,
  6175. sntp_minute: data.sntp_minute,
  6176. sntp_second: data.sntp_second,
  6177. sntp_time_set_mode: data.sntp_time_set_mode,
  6178. sntp_servers: sntp_servers,
  6179. sntp_server0: data.sntp_server0,
  6180. sntp_server1: data.sntp_server1,
  6181. sntp_server2: data.sntp_server2,
  6182. sntp_other_server0: data.sntp_other_server0,
  6183. sntp_other_server1: data.sntp_other_server1,
  6184. sntp_other_server2: data.sntp_other_server2,
  6185. sntp_timezone: data.sntp_timezone,
  6186. sntp_dst_enable: data.sntp_dst_enable,
  6187. ppp_status: data.ppp_status,
  6188. opms_wan_mode: data.opms_wan_mode,
  6189. syn_done: data.syn_done
  6190. }
  6191. } else {
  6192. return unknownErrorObject;
  6193. }
  6194. }
  6195.  
  6196. function getSntpServers(data) {
  6197. var serverArray = [];
  6198.  
  6199. for(var i =0; i < 10; i++){
  6200. var tmp = "sntp_server_list" + (i+1).toString();
  6201. if(data[tmp] != "") {
  6202. var obj = {};
  6203. obj.name = data[tmp];
  6204. obj.value = data[tmp];
  6205. serverArray.push(obj);
  6206. }
  6207. }
  6208. var otherArray = [{name: "Other", value: "Other"}, {name: "NONE", value: ""}];
  6209. for(var j=0; j< 2 ; j++){
  6210. serverArray.push(otherArray[j]);
  6211. }
  6212. return serverArray;
  6213. }
  6214. }
  6215.  
  6216. function setSNTPDate(params, callback){
  6217. return doStuff(arguments, {}, prepare, deal, null, true);
  6218.  
  6219. function prepare(params) {
  6220. var requestParams = $.extend({
  6221. isTest:isTest
  6222. }, params);
  6223. return requestParams;
  6224. }
  6225.  
  6226. function deal(data) {
  6227. if (data && data.result == "success") {
  6228. return data;
  6229. } else {
  6230. return unknownErrorObject;
  6231. }
  6232. }
  6233. }
  6234.  
  6235. function setSntpSetting(params, callback){
  6236. var requestParams = $.extend({
  6237. isTest:isTest
  6238. }, params);
  6239. if(requestParams.isTest){
  6240. result = simulate.simulateRequest(params, callback, callback, true, true);
  6241. setTimeout(function() {callback(result);}, getRandomInt(120) + 50);
  6242. } else {
  6243. $.post("goform/goform_set_cmd_process", requestParams, function(data){
  6244. if (data && data.result == "success") {
  6245. if(params.manualsettime == "auto") {
  6246. setTimeout(checkSyncStatus, 2000);
  6247. }else {
  6248. callback(true);
  6249. }
  6250. } else {
  6251. callback(false);
  6252. }
  6253. }, "json");
  6254. }
  6255.  
  6256. function checkSyncStatus() {
  6257. $.ajax({
  6258. url : "goform/goform_get_cmd_process",
  6259. dataType : "json",
  6260. data : {cmd : "syn_done"},
  6261. cache : false,
  6262. async : false,
  6263. success : function(data){
  6264. if(data.syn_done == "0") {
  6265. callback(false);
  6266. } else if(data.syn_done == "1") {
  6267. callback(true);
  6268. } else {
  6269. setTimeout(checkSyncStatus, 2000);
  6270. }
  6271. },
  6272. error : function(){
  6273. callback(false);
  6274. }
  6275. });
  6276. }
  6277. }
  6278.  
  6279. function addUrlFilterRule(params, callback) {
  6280. return doStuff(arguments, {}, prepare, deal, null, true);
  6281.  
  6282. function prepare(params) {
  6283. var requestParams = $.extend({
  6284. isTest:isTest
  6285. }, params);
  6286. return requestParams;
  6287. }
  6288.  
  6289. function deal(data) {
  6290. if (data && data.result == "success") {
  6291. return data;
  6292. } else {
  6293. return unknownErrorObject;
  6294. }
  6295. }
  6296. }
  6297.  
  6298. function getUrlFilterList() {
  6299. return doStuff(arguments, {}, prepare, deal, null, false);
  6300.  
  6301. function prepare(params, isPost) {
  6302. return {
  6303. isTest:isTest,
  6304. cmd:"websURLFilters"
  6305. };
  6306. }
  6307.  
  6308. function deal(data) {
  6309. var urlFilterRules = [];
  6310. if (data) {
  6311. if(data.websURLFilters.length == 0) {
  6312. return {urlFilterRules: []};
  6313. } else {
  6314. var tempArray = data.websURLFilters.split(";");
  6315. for(var i = 0; i < tempArray.length; i++){
  6316. var aRule = {};
  6317. aRule.index = i;
  6318. aRule.url = tempArray[i];
  6319. urlFilterRules.push(aRule);
  6320. }
  6321. return {urlFilterRules: urlFilterRules};
  6322. }
  6323. } else {
  6324. return unknownErrorObject;
  6325. }
  6326. }
  6327. }
  6328.  
  6329. function deleteSelectedRules(params, callback) {
  6330. return doStuff(arguments, {}, prepare, deal, null, true);
  6331.  
  6332. function prepare(params) {
  6333. var requestParams = $.extend({
  6334. isTest:isTest
  6335. }, params);
  6336. return requestParams;
  6337. }
  6338.  
  6339. function deal(data) {
  6340. if (data && data.result == "success") {
  6341. return data;
  6342. } else {
  6343. return unknownErrorObject;
  6344. }
  6345. }
  6346. }
  6347.  
  6348. function getWdsInfo() {
  6349. return doStuff(arguments, {}, prepare, deal, null, false);
  6350.  
  6351. function prepare(params, isPost) {
  6352. return {
  6353. isTest:isTest,
  6354. multi_data: "1",
  6355. cmd:"wifi_wds_mode,wifi_wds_ssid,wifi_wds_AuthMode,wifi_wds_EncrypType,wifi_wds_WPAPSK1,wifi_ap_mode"
  6356. };
  6357. }
  6358.  
  6359. function deal(data) {
  6360. if (data) {
  6361. return {
  6362. currentMode : data.wifi_wds_mode,
  6363. wdsSSID : data.wifi_wds_ssid,
  6364. wdsAuthMode : data.wifi_wds_AuthMode,
  6365. wdsEncrypType : data.wifi_wds_EncrypType,
  6366. wdsWPAPSK1 : data.wifi_wds_WPAPSK1,
  6367. RadioOff : data.wifi_ap_mode
  6368. };
  6369. } else {
  6370. return unknownErrorObject;
  6371. }
  6372. }
  6373. }
  6374.  
  6375. function setWDS(params, callback){
  6376. return doStuff(arguments, {}, prepare, deal, null, true);
  6377.  
  6378. function prepare(params) {
  6379. var requestParams = $.extend({
  6380. isTest:isTest
  6381. }, params);
  6382. return requestParams;
  6383. }
  6384.  
  6385. function deal(data) {
  6386. if (data && data.result == "success") {
  6387. return data;
  6388. } else {
  6389. return unknownErrorObject;
  6390. }
  6391. }
  6392. }
  6393.  
  6394. function getSyslogInfo() {
  6395. return doStuff(arguments, {}, prepare, deal, null, false);
  6396.  
  6397. function prepare(params, isPost) {
  6398. return {
  6399. isTest:isTest,
  6400. multi_data: "1",
  6401. cmd:"syslog_mode,debug_level"
  6402. };
  6403. }
  6404.  
  6405. function deal(data) {
  6406. if (data) {
  6407. return {
  6408. currentMode : data.syslog_mode,
  6409. debugLevel : data.debug_level
  6410. };
  6411. } else {
  6412. return unknownErrorObject;
  6413. }
  6414. }
  6415. }
  6416.  
  6417. function setSysLog(params, callback) {
  6418. return doStuff(arguments, {}, prepare, deal, null, true);
  6419.  
  6420. function prepare(params) {
  6421. var requestParams = $.extend({
  6422. isTest:isTest
  6423. }, params);
  6424. return requestParams;
  6425. }
  6426.  
  6427. function deal(data) {
  6428. if (data && data.result == "success") {
  6429. return data;
  6430. } else {
  6431. return unknownErrorObject;
  6432. }
  6433. }
  6434. }
  6435.  
  6436. function getTR069Config() {
  6437. return doStuff(arguments, {}, prepare, deal, null, false);
  6438.  
  6439. function prepare(params, isPost) {
  6440. return {
  6441. isTest:isTest,
  6442. multi_data: "1",
  6443. cmd:"tr069_ServerURL,tr069_CPEPortNo,tr069_ServerUsername,tr069_ServerPassword,tr069_ConnectionRequestUname,tr069_ConnectionRequestPassword,wan_ipaddr,tr069_PeriodicInformEnable,tr069_PeriodicInformInterval,tr069_CertEnable,tr069_PeriodicInformTime"
  6444. };
  6445. }
  6446.  
  6447. function deal(data) {
  6448. if (data) {
  6449. return {
  6450. serverUrl : data.tr069_ServerURL,
  6451. tr069_CPEPortNo : data.tr069_CPEPortNo,
  6452. serverUserName : data.tr069_ServerUsername,
  6453. serverPassword: data.tr069_ServerPassword,
  6454. requestUserName: data.tr069_ConnectionRequestUname,
  6455. requestPassword: data.tr069_ConnectionRequestPassword,
  6456. wanIpAddress: data.wan_ipaddr,
  6457. tr069_PeriodicInformEnable: data.tr069_PeriodicInformEnable,
  6458. tr069_PeriodicInformInterval: data.tr069_PeriodicInformInterval,
  6459. tr069_CertEnable: data.tr069_CertEnable,
  6460. tr069_PeriodicInformTime: data.tr069_PeriodicInformTime
  6461. //tr069_PeriodicInformTime: "2011-02-03T02:05:10" //for test
  6462. };
  6463. } else {
  6464. return unknownErrorObject;
  6465. }
  6466. }
  6467. }
  6468.  
  6469. function setTR069Configuration(params, callback) {
  6470. return doStuff(arguments, {}, prepare, deal, null, true);
  6471.  
  6472. function prepare(params) {
  6473. var requestParams = $.extend({
  6474. isTest:isTest
  6475. }, params);
  6476. return requestParams;
  6477. }
  6478.  
  6479. function deal(data) {
  6480. if (data && data.result == "success") {
  6481. return data;
  6482. } else {
  6483. return unknownErrorObject;
  6484. }
  6485. }
  6486. }
  6487.  
  6488. function getVoipSettings() {
  6489. return doStuff(arguments, {}, prepare, deal, null, false);
  6490.  
  6491. function prepare(params, isPost) {
  6492. return {
  6493. isTest:isTest,
  6494. multi_data: "1",
  6495. cmd:"voip_sip_outbound_enable,voip_sip_outbound_server,voip_sip_outbound_port,voip_sip_stun_enable,voip_sip_stun_server,voip_sip_register_time,voip_sip_port,voip_sip_rtp_port_min,voip_sip_rtp_port_max"
  6496. };
  6497. }
  6498.  
  6499. function deal(data) {
  6500. if (data) {
  6501. return {
  6502. outboundEnable : data.voip_sip_outbound_enable,
  6503. outboundServer : data.voip_sip_outbound_server,
  6504. outboundPort: data.voip_sip_outbound_port,
  6505. stunModeEnable: data.voip_sip_stun_enable,
  6506. stunServer: data.voip_sip_stun_server,
  6507. registerTime: data.voip_sip_register_time,
  6508. sipPort: data.voip_sip_port,
  6509. rtpPortMin: data.voip_sip_rtp_port_min,
  6510. rtpPortMax: data.voip_sip_rtp_port_max
  6511. };
  6512. } else {
  6513. return unknownErrorObject;
  6514. }
  6515. }
  6516. }
  6517.  
  6518. function setVoipSettings(params, callback) {
  6519. return doStuff(arguments, {}, prepare, deal, null, true);
  6520.  
  6521. function prepare(params) {
  6522. var requestParams = $.extend({
  6523. isTest:isTest
  6524. }, params);
  6525. return requestParams;
  6526. }
  6527.  
  6528. function deal(data) {
  6529. if (data && data.result == "success") {
  6530. return data;
  6531. } else {
  6532. return unknownErrorObject;
  6533. }
  6534. }
  6535. }
  6536.  
  6537. function getVoipUserDetails() {
  6538. return doStuff(arguments, {}, prepare, deal, null, false);
  6539.  
  6540. function prepare(params, isPost) {
  6541. return {
  6542. isTest:isTest,
  6543. multi_data: "1",
  6544. cmd:"voip_sip_register_server1,voip_sip_domain1,voip_sip_realm1,voip_sip_proxy_enable1,voip_sip_proxy_server1,voip_account_display_account1,voip_account_auth1,voip_account_password1,voip_user1_register_status"
  6545. };
  6546. }
  6547.  
  6548. function deal(data) {
  6549. if (data) {
  6550. return {
  6551. sipRegisterServer : data.voip_sip_register_server1,
  6552. sipDomain : data.voip_sip_domain1,
  6553. sipRealm: data.voip_sip_realm1,
  6554. sipProxyMode: data.voip_sip_proxy_enable1,
  6555. voipSipProxyServer: data.voip_sip_proxy_server1,
  6556. displayName: data.voip_account_display_account1,
  6557. authorizedUserName: data.voip_account_auth1,
  6558. authorizedPassword: data.voip_account_password1,
  6559. voipRegisterStatus: data.voip_user1_register_status
  6560. };
  6561. } else {
  6562. return unknownErrorObject;
  6563. }
  6564. }
  6565. }
  6566.  
  6567. function getVoipUserRegisterStatus() {
  6568. return doStuff(arguments, {}, prepare, deal, null, false);
  6569.  
  6570. function prepare(params, isPost) {
  6571. return {
  6572. isTest:isTest,
  6573. cmd:"voip_user1_register_status"
  6574. };
  6575. }
  6576.  
  6577. function deal(data) {
  6578. if (data) {
  6579. return {
  6580. voipRegisterStatus: data.voip_user1_register_status
  6581. };
  6582. } else {
  6583. return unknownErrorObject;
  6584. }
  6585. }
  6586. }
  6587.  
  6588. function setVoipUserDetails() {
  6589. return doStuff(arguments, {}, prepare, deal, null, true);
  6590.  
  6591. function prepare(params) {
  6592. var requestParams = $.extend({
  6593. isTest:isTest
  6594. }, params);
  6595. return requestParams;
  6596. }
  6597.  
  6598. function deal(data) {
  6599. if (data && data.result == "success") {
  6600. return data;
  6601. } else {
  6602. return unknownErrorObject;
  6603. }
  6604. }
  6605. }
  6606.  
  6607.  
  6608. function getVoipAdvancedSettings() {
  6609. return doStuff(arguments, {}, prepare, deal, null, false);
  6610.  
  6611. function prepare(params, isPost) {
  6612. return {
  6613. isTest:isTest,
  6614. multi_data: "1",
  6615. cmd:"voip_sip_t38_enable1,voip_sip_dtmf_method,voip_sip_encoder1,voip_sip_vad_enable1,voip_sip_cng_enable1"
  6616. };
  6617. }
  6618.  
  6619. function deal(data) {
  6620. if (data) {
  6621. return {
  6622. sipT38Mode : data.voip_sip_t38_enable1,
  6623. currentDtmfMethod : data.voip_sip_dtmf_method,
  6624. currentVoipSipEncoderMethod: data.voip_sip_encoder1,
  6625. sipVadMode: data.voip_sip_vad_enable1,
  6626. sipCngMode: data.voip_sip_cng_enable1
  6627. };
  6628. } else {
  6629. return unknownErrorObject;
  6630. }
  6631. }
  6632. }
  6633. function setVoipAdvancedSettings() {
  6634. return doStuff(arguments, {}, prepare, deal, null, true);
  6635.  
  6636. function prepare(params) {
  6637. var requestParams = $.extend({
  6638. isTest:isTest
  6639.  
  6640. }, params);
  6641. return requestParams;
  6642. }
  6643.  
  6644. function deal(data) {
  6645. if (data && data.result == "success") {
  6646. return data;
  6647. } else {
  6648. return unknownErrorObject;
  6649. }
  6650. }
  6651. }
  6652. function getVoipSupplementaryService() {
  6653. return doStuff(arguments, {}, prepare, deal, null, false);
  6654.  
  6655. function prepare(params, isPost) {
  6656. return {
  6657. isTest:isTest,
  6658. multi_data: "1",
  6659. cmd:"voip_forwarding_model,voip_forwarding_uri1,voip_not_disturb_enable,voip_call_waiting_in_enable"
  6660. };
  6661. }
  6662.  
  6663. function deal(data) {
  6664. if (data) {
  6665. return {
  6666. selectedMode : data.voip_forwarding_model,
  6667. voipForwardingUri : data.voip_forwarding_uri1,
  6668. sipProtocolIncomingCallMode: data.voip_not_disturb_enable,
  6669. sipProtocolCallWaitingMode: data.voip_call_waiting_in_enable
  6670. };
  6671. } else {
  6672. return unknownErrorObject;
  6673. }
  6674. }
  6675. }
  6676.  
  6677. function setVoipSupplementaryService() {
  6678. return doStuff(arguments, {}, prepare, deal, null, true);
  6679.  
  6680. function prepare(params) {
  6681. var requestParams = $.extend({
  6682. isTest:isTest
  6683.  
  6684. }, params);
  6685. return requestParams;
  6686. }
  6687.  
  6688. function deal(data) {
  6689. if (data && data.result == "success") {
  6690. return data;
  6691. } else {
  6692. return unknownErrorObject;
  6693. }
  6694. }
  6695. }
  6696.  
  6697. function getMacFilterInfo() {
  6698. return doStuff(arguments, {}, prepare, deal, null, false);
  6699.  
  6700. function prepare(params, isPost) {
  6701. return {
  6702. isTest:isTest,
  6703. multi_data: "1",
  6704. cmd:"ACL_mode,wifi_mac_black_list,wifi_hostname_black_list,wifi_ap_mode,user_ip_addr"
  6705. };
  6706. }
  6707.  
  6708. function deal(data) {
  6709. if (data) {
  6710. return {
  6711. ACL_mode : data.ACL_mode,
  6712. wifi_mac_black_list : data.wifi_mac_black_list,
  6713. wifi_hostname_black_list : data.wifi_hostname_black_list,
  6714. RadioOff : data.wifi_ap_mode,
  6715. user_ip_addr : data.user_ip_addr
  6716. };
  6717. } else {
  6718. return unknownErrorObject;
  6719. }
  6720. }
  6721. }
  6722.  
  6723. function setMacFilter() {
  6724. return doStuff(arguments, {}, prepare, deal, null, true);
  6725.  
  6726. function prepare(params) {
  6727. var requestParams = {
  6728. goformId: 'WIFI_MAC_FILTER',
  6729. isTest: isTest,
  6730. ACL_mode: params.ACL_mode, // CPE
  6731. macFilteringMode: params.ACL_mode, //MTK 平台
  6732. wifi_hostname_black_list: params.wifi_hostname_black_list,
  6733. wifi_mac_black_list: params.wifi_mac_black_list
  6734. };
  6735. return requestParams;
  6736. }
  6737.  
  6738. function deal(data) {
  6739. if (data && data.result == "success") {
  6740. return data;
  6741. } else {
  6742. return unknownErrorObject;
  6743. }
  6744. }
  6745. }
  6746.  
  6747. /**
  6748. * 获取快速开机设置
  6749. * @method getFastbootSetting
  6750. */
  6751. function getFastbootSetting() {
  6752. return doStuff(arguments, {}, prepare, deal, null, false);
  6753.  
  6754. function prepare(params) {
  6755. return {
  6756. isTest: isTest,
  6757. cmd: "mgmt_quicken_power_on,need_hard_reboot",
  6758. multi_data: 1
  6759. };
  6760. }
  6761.  
  6762. function deal(data) {
  6763. return {
  6764. fastbootEnabled: data.mgmt_quicken_power_on == '1' ? '1' : '0',
  6765. need_hard_reboot: data.need_hard_reboot
  6766. };
  6767. }
  6768. }
  6769.  
  6770. /**
  6771. * 设置快速开机信息
  6772. * @method setFastbootSetting
  6773. */
  6774. function setFastbootSetting() {
  6775. return doStuff(arguments, {}, prepare, deal, null, true);
  6776.  
  6777. function prepare(params) {
  6778. return {
  6779. isTest: isTest,
  6780. goformId: "MGMT_CONTROL_POWER_ON_SPEED",
  6781. mgmt_quicken_power_on: params.fastbootEnabled,
  6782. need_hard_reboot: params.need_hard_reboot
  6783. };
  6784. }
  6785.  
  6786. function deal(data) {
  6787. if (data && data.result == "success") {
  6788. return data;
  6789. } else {
  6790. return unknownErrorObject;
  6791. }
  6792. }
  6793. }
  6794.  
  6795. /**
  6796. * 重启设备
  6797. * @method restart
  6798. */
  6799. function restart() {
  6800. return doStuff(arguments, {}, prepare, deal, null, true);
  6801.  
  6802. function prepare(params, isPost) {
  6803. var requestParams = {};
  6804. requestParams.isTest = isTest;
  6805. requestParams.goformId = "REBOOT_DEVICE";
  6806. return requestParams;
  6807. }
  6808.  
  6809. function deal(data) {
  6810. if (data) {
  6811. return data;
  6812. } else {
  6813. return unknownErrorObject;
  6814. }
  6815. }
  6816. }
  6817. /**
  6818. * 获取OTA新版本信息
  6819. * @method getNewVersionState
  6820. * @return {Object} JSON 对象
  6821. */
  6822. function getNewVersionState() {
  6823. return doStuff(arguments, {}, prepare, deal, null, false);
  6824.  
  6825. function prepare(params, isPost) {
  6826. var requestParams = {};
  6827. requestParams.isTest = isTest;
  6828. requestParams.cmd = "new_version_state";
  6829. return requestParams;
  6830. }
  6831.  
  6832. function deal(data) {
  6833. if (data) {
  6834. var hasNewVersion = (data.new_version_state == "1" || data.new_version_state == 'version_has_new_critical_software' || data.new_version_state == 'version_has_new_optional_software');
  6835. data.hasNewVersion = hasNewVersion;
  6836. return data;
  6837. } else {
  6838. return unknownErrorObject;
  6839. }
  6840. }
  6841. }
  6842. /**
  6843. * 获取OTA新版本信息
  6844. * @method getPackSizeInfo
  6845. * @return {Object} JSON 对象
  6846. */
  6847. function getNewVersionInfo() {
  6848. return doStuff(arguments, {}, prepare, deal, null, false);
  6849.  
  6850. function prepare(params, isPost) {
  6851. var requestParams = {};
  6852. requestParams.isTest = isTest;
  6853. requestParams.cmd = "update_info";
  6854. return requestParams;
  6855. }
  6856.  
  6857. function deal(data) {
  6858. if (data) {
  6859. return data;
  6860. } else {
  6861. return unknownErrorObject;
  6862. }
  6863. }
  6864. }
  6865.  
  6866. /**
  6867. * 获取OTA强制升级状态
  6868. * @method getMandatory
  6869. * @return {Object} JSON 对象
  6870. */
  6871. function getMandatory() {
  6872. return doStuff(arguments, {}, prepare, deal, null, false);
  6873.  
  6874. function prepare(params, isPost) {
  6875. var requestParams = {};
  6876. requestParams.isTest = isTest;
  6877. if (config.UPGRADE_TYPE == "OTA") {
  6878. requestParams.cmd = "is_mandatory";
  6879. } else {
  6880. requestParams.cmd = "new_version_state";
  6881. }
  6882. return requestParams;
  6883. }
  6884.  
  6885. function deal(data) {
  6886. if (data) {
  6887. if (config.UPGRADE_TYPE == "OTA") {
  6888. return {"is_mandatory": data.is_mandatory == "1"};
  6889. } else {
  6890. return {"is_mandatory": data.new_version_state == "version_has_new_critical_software"};
  6891. }
  6892. } else {
  6893. return unknownErrorObject;
  6894. }
  6895. }
  6896. }
  6897.  
  6898. /**
  6899. * 获取OTA升级结果
  6900. * @method getUpgradeResult
  6901. * @return {Object} JSON 对象
  6902. */
  6903. function getUpgradeResult() {
  6904. return doStuff(arguments, {}, prepare, deal, null, false);
  6905.  
  6906. function prepare(params, isPost) {
  6907. var requestParams = {};
  6908. requestParams.isTest = isTest;
  6909. requestParams.cmd = "upgrade_result";
  6910. return requestParams;
  6911. }
  6912.  
  6913. function deal(data) {
  6914. if (data) {
  6915. return data;
  6916. } else {
  6917. return unknownErrorObject;
  6918. }
  6919. }
  6920. }
  6921. /**
  6922. * 获取OTA升级状态
  6923. * @method getCurrentUpgradeState
  6924. * @return {Object} JSON 对象
  6925. */
  6926. function getCurrentUpgradeState() {
  6927. return doStuff(arguments, {}, prepare, deal, null, false);
  6928.  
  6929. function prepare(params, isPost) {
  6930. var requestParams = {};
  6931. requestParams.isTest = isTest;
  6932. requestParams.cmd = "current_upgrade_state";
  6933. return requestParams;
  6934. }
  6935.  
  6936. function deal(data) {
  6937. if (data) {
  6938. if(data.current_upgrade_state == 'downloading'){
  6939. data.current_upgrade_state = 'upgrading';
  6940. }
  6941. return data;
  6942. } else {
  6943. return unknownErrorObject;
  6944. }
  6945. }
  6946. }
  6947.  
  6948. /**
  6949. * 获取OTA下载状态
  6950. * @method getPackSizeInfo
  6951. * @return {Object} JSON 对象
  6952. */
  6953. function getPackSizeInfo() {
  6954. return doStuff(arguments, {}, prepare, deal, null, false);
  6955.  
  6956. function prepare(params, isPost) {
  6957. var requestParams = {};
  6958. requestParams.isTest = isTest;
  6959. requestParams.cmd = "pack_size_info";
  6960. return requestParams;
  6961. }
  6962.  
  6963. function deal(data) {
  6964. if (data) {
  6965. return data;
  6966. } else {
  6967. return unknownErrorObject;
  6968. }
  6969. }
  6970. }
  6971.  
  6972. /**
  6973. * 获取OTA选择状态
  6974. * @method getUserChoice
  6975. * @return {Object} JSON 对象
  6976. */
  6977. function getUserChoice() {
  6978. return doStuff(arguments, {}, prepare, deal, null, false);
  6979.  
  6980. function prepare(params, isPost) {
  6981. var requestParams = {};
  6982. requestParams.isTest = isTest;
  6983. requestParams.cmd = "if_has_select";
  6984. return requestParams;
  6985. }
  6986.  
  6987. function deal(data) {
  6988. if (data) {
  6989. return data;
  6990. } else {
  6991. return unknownErrorObject;
  6992. }
  6993. }
  6994. }
  6995.  
  6996.  
  6997.  
  6998. /**
  6999. *用户选择是否进行升级和升级中取消
  7000. * @method setUpgradeSelectOp
  7001. */
  7002. function setUpgradeSelectOp() {
  7003. return doStuff(arguments, {}, prepare, deal, null, true);
  7004.  
  7005. function prepare(params, isPost) {
  7006. var requestParams = {};
  7007. requestParams.goformId = "IF_UPGRADE";
  7008. requestParams.isTest = isTest;
  7009. requestParams.select_op = params.selectOp;
  7010. if(requestParams.select_op == 'check'){
  7011. requestParams.ota_manual_check_roam_state = 1;
  7012. }
  7013. return requestParams;
  7014. }
  7015.  
  7016. function deal(data) {
  7017. if (data) {
  7018. return data;
  7019. } else {
  7020. return unknownErrorObject;
  7021. }
  7022. }
  7023. }
  7024. function getOTAUpdateSetting() {
  7025. return doStuff(arguments, {}, prepare, deal, null, false);
  7026.  
  7027. function prepare(params, isPost) {
  7028. var requestParams = {};
  7029. requestParams.isTest = isTest;
  7030. requestParams.cmd = "GetUpgAutoSetting";
  7031. return requestParams;
  7032. }
  7033.  
  7034. function deal(data) {
  7035. if (data) {
  7036. return {
  7037. "updateMode":data.UpgMode,
  7038. "updateIntervalDay":data.UpgIntervalDay,
  7039. "allowRoamingUpdate":data.UpgRoamPermission
  7040. };
  7041. } else {
  7042. return unknownErrorObject;
  7043. }
  7044. }
  7045. }
  7046.  
  7047. function setOTAUpdateSetting() {
  7048. return doStuff(arguments, {}, prepare, deal, null, true);
  7049.  
  7050. function prepare(params, isPost) {
  7051. var requestParams = {};
  7052. requestParams.isTest = isTest;
  7053. requestParams.goformId = "SetUpgAutoSetting";
  7054. requestParams.UpgMode = params.updateMode;
  7055. requestParams.UpgIntervalDay = params.updateIntervalDay;
  7056. requestParams.UpgRoamPermission = params.allowRoamingUpdate;
  7057.  
  7058. return requestParams;
  7059. }
  7060.  
  7061. function deal(data) {
  7062. if (data && data.result == "success") {
  7063. return data;
  7064. } else {
  7065. return unknownErrorObject;
  7066. }
  7067. }
  7068. }
  7069.  
  7070. function getOTAlastCheckTime(){
  7071. return getParams({nv: ['dm_last_check_time']}, arguments[1], arguments[2]);
  7072. }
  7073.  
  7074. function getSignalStrength(){
  7075. return getParams({nv: ['network_type', 'rssi', 'rscp', 'lte_rsrp','Z_rssi','Z_rscp','Z_rsrp','Z_rsrq']}, arguments[1], arguments[2]);
  7076. }
  7077.  
  7078. function clearUpdateResult(){
  7079. return doStuff(arguments, {}, prepare, deal, null, true);
  7080.  
  7081. function prepare(params, isPost) {
  7082. var requestParams = {};
  7083. requestParams.isTest = isTest;
  7084. requestParams.goformId = "RESULT_RESTORE";
  7085. return requestParams;
  7086. }
  7087.  
  7088. function deal(data) {
  7089. if (data && data.result == "success") {
  7090. return data;
  7091. } else {
  7092. return unknownErrorObject;
  7093. }
  7094. }
  7095. }
  7096. /**清除流量
  7097. * @method clearTraffic
  7098. */
  7099. function clearTraffic(){
  7100. return doStuff(arguments, {}, prepare, deal, null, true);
  7101.  
  7102. function prepare(params) {
  7103. return {
  7104. isTest:isTest,
  7105. goformId:"RESET_DATA_COUNTER"
  7106. };
  7107. }
  7108.  
  7109. function deal(data) {
  7110. if (data && data.result == "success") {
  7111. return data;
  7112. } else {
  7113. return unknownErrorObject;
  7114. }
  7115. }
  7116. }
  7117.  
  7118. /**
  7119. * 抓log的端口转换
  7120. */
  7121. /**
  7122. * 重启设备
  7123. * @method restart
  7124. */
  7125. function switchPortForLog() {
  7126. return doStuff(arguments, {}, prepare, deal, null, true);
  7127.  
  7128. function prepare(params, isPost) {
  7129. var requestParams = {};
  7130. requestParams.isTest = isTest;
  7131. requestParams.goformId = "CHANGE_MODE";
  7132. requestParams.change_mode = params.change_mode;
  7133. return requestParams;
  7134. }
  7135.  
  7136. function deal(data) {
  7137. if (data) {
  7138. return data;
  7139. } else {
  7140. return unknownErrorObject;
  7141. }
  7142. }
  7143. }
  7144.  
  7145. function childGroupList(){
  7146. return doStuff(arguments, {}, prepare, deal, null, false);
  7147.  
  7148. function prepare(params, isPost) {
  7149. var requestParams = {
  7150. isTest: isTest,
  7151. cmd: "childGroupList"
  7152. };
  7153. return requestParams;
  7154. }
  7155.  
  7156. function deal(data) {
  7157. if (data && (data.childGroupList || data.devices)) {
  7158. return isTest ? data.childGroupList: data;
  7159. } else {
  7160. return {devices: []};
  7161. }
  7162. }
  7163. }
  7164.  
  7165. function addChildGroup(){
  7166. return doStuff(arguments, config.currentUserInChildGroup == false ? {} : {errorType: 'no_auth'}, prepare, deal, null, true);
  7167.  
  7168. function prepare(params, isPost) {
  7169. var requestParams = {
  7170. isTest: isTest,
  7171. goformId: "ADD_DEVICE",
  7172. mac: params.macAddress
  7173. };
  7174. return requestParams;
  7175. }
  7176.  
  7177. function deal(data) {
  7178. if (data && data.result == 'success') {
  7179. return data;
  7180. } else {
  7181. return unknownErrorObject;
  7182. }
  7183. }
  7184. }
  7185.  
  7186. function removeChildGroup(){
  7187. return doStuff(arguments, config.currentUserInChildGroup == false ? {} : {errorType: 'no_auth'}, prepare, deal, null, true);
  7188.  
  7189. function prepare(params, isPost) {
  7190. var requestParams = {
  7191. isTest: isTest,
  7192. goformId: "DEL_DEVICE",
  7193. mac: params.mac
  7194. };
  7195. return requestParams;
  7196. }
  7197.  
  7198. function deal(data) {
  7199. if (data && data.result == 'success') {
  7200. return data;
  7201. } else {
  7202. return unknownErrorObject;
  7203. }
  7204. }
  7205. }
  7206.  
  7207. function checkCurrentUserInChildGroup(devices) {
  7208. if (typeof config.currentUserInChildGroup == "undefined") {
  7209. var childGroupDevice = [];
  7210. if (typeof devices != "undefined") {
  7211. childGroupDevice = devices;
  7212. } else {
  7213. childGroupDevice = childGroupList({}).devices;
  7214. }
  7215. var currentMacAddr = getUserMacAddr({}).get_user_mac_addr;
  7216. var userMacAddr = typeof currentMacAddr == "undefined" ? "" : currentMacAddr;
  7217. var found = _.find(childGroupDevice, function (item) {
  7218. return item.mac.toUpperCase() == userMacAddr.toUpperCase();
  7219. });
  7220. config.currentUserInChildGroup = typeof found != 'undefined';
  7221. return {result: typeof found != 'undefined'};
  7222. }
  7223. return {result: config.currentUserInChildGroup};
  7224. }
  7225.  
  7226. function getUserMacAddr() {
  7227. return getParams({nv: 'get_user_mac_addr'}, arguments[1], arguments[2]);
  7228. }
  7229.  
  7230. function getHostNameList(){
  7231. return doStuff(arguments, {}, prepare, deal, null, false);
  7232.  
  7233. function prepare(params, isPost) {
  7234. var requestParams = {
  7235. isTest: isTest,
  7236. cmd: "hostNameList"
  7237. };
  7238. return requestParams;
  7239. }
  7240.  
  7241. function deal(data) {
  7242. if (data && (data.hostNameList || data.devices)) {
  7243. return isTest ? data.hostNameList : data;
  7244. } else {
  7245. return {devices: []};
  7246. }
  7247. }
  7248. }
  7249.  
  7250. function editHostName(){
  7251. return doStuff(arguments, {}, prepare, deal, null, true);
  7252.  
  7253. function prepare(params, isPost) {
  7254. var requestParams = {
  7255. isTest: isTest,
  7256. goformId: "EDIT_HOSTNAME",
  7257. mac: params.mac,
  7258. hostname: params.hostname
  7259. };
  7260. return requestParams;
  7261. }
  7262.  
  7263. function deal(data) {
  7264. if (data && data.result == 'success') {
  7265. return data;
  7266. } else {
  7267. return unknownErrorObject;
  7268. }
  7269. }
  7270. }
  7271.  
  7272. function getSiteWhiteList(){
  7273. return doStuff(arguments, {}, prepare, deal, null, false);
  7274.  
  7275. function prepare(params, isPost) {
  7276. var requestParams = {
  7277. isTest: isTest,
  7278. cmd: "site_white_list"
  7279. };
  7280. return requestParams;
  7281. }
  7282.  
  7283. function deal(data) {
  7284. if (data && (data.site_white_list || data.siteList)) {
  7285. return isTest ? data.site_white_list: data;
  7286. } else {
  7287. return {siteList: []};
  7288. }
  7289. }
  7290. }
  7291.  
  7292. function removeSiteWhite(){
  7293. return doStuff(arguments, config.currentUserInChildGroup == false ? {} : {errorType: 'no_auth'}, prepare, deal, null, true);
  7294.  
  7295. function prepare(params, isPost) {
  7296. var requestParams = {
  7297. isTest: isTest,
  7298. goformId: "REMOVE_WHITE_SITE",
  7299. ids: params.ids.join(',')
  7300. };
  7301. return requestParams;
  7302. }
  7303.  
  7304. function deal(data) {
  7305. if (data && data.result == 'success') {
  7306. return data;
  7307. } else {
  7308. return unknownErrorObject;
  7309. }
  7310. }
  7311. }
  7312.  
  7313. function saveSiteWhite(){
  7314. return doStuff(arguments, config.currentUserInChildGroup == false ? {} : {errorType: 'no_auth'}, prepare, deal, null, true);
  7315.  
  7316. function prepare(params, isPost) {
  7317. var requestParams = {
  7318. isTest: isTest,
  7319. goformId: "ADD_WHITE_SITE",
  7320. name: params.name,
  7321. site: params.site
  7322. };
  7323. return requestParams;
  7324. }
  7325.  
  7326. function deal(data) {
  7327. if (data && data.result == 'success') {
  7328. return data;
  7329. } else {
  7330. return unknownErrorObject;
  7331. }
  7332. }
  7333. }
  7334.  
  7335. function getTimeLimited(){
  7336. var defaultResult = {
  7337. '0': [], '1': [], '2': [], '3': [], '4': [], '5': [], '6': []
  7338. };
  7339.  
  7340. return doStuff(arguments, {}, prepare, deal, null, false);
  7341.  
  7342. function prepare(params, isPost) {
  7343. var requestParams = {
  7344. isTest: isTest,
  7345. cmd: "time_limited"
  7346. };
  7347. return requestParams;
  7348. }
  7349.  
  7350. function deal(data) {
  7351. if (data) {
  7352. return parseTimeLimited(data);
  7353. } else {
  7354. return defaultResult;
  7355. }
  7356. }
  7357.  
  7358. //0+0,8,20;1+9,13;2+10,15,18,22
  7359. function parseTimeLimited(data) {
  7360. if (data.time_limited == '') {
  7361. return {time_limited: []};
  7362. }
  7363. var weeks = data.time_limited.split(';');
  7364. _.each(weeks, function (week) {
  7365. var weekTime = week.split('+');
  7366. if (weekTime.length == 2) {
  7367. defaultResult[weekTime[0]] = weekTime[1].split(',');
  7368. }
  7369. });
  7370. return defaultResult;
  7371. }
  7372. }
  7373.  
  7374.  
  7375. function saveTimeLimited(){
  7376. return doStuff(arguments, config.currentUserInChildGroup == false ? {} : {errorType: 'no_auth'}, prepare, deal, null, true);
  7377.  
  7378. function prepare(params, isPost) {
  7379. var requestParams = {
  7380. isTest: isTest,
  7381. goformId: "SAVE_TIME_LIMITED",
  7382. time_limited: params.time
  7383. };
  7384. return requestParams;
  7385. }
  7386.  
  7387. function deal(data) {
  7388. if (data && data.result == 'success') {
  7389. return data;
  7390. } else {
  7391. return unknownErrorObject;
  7392. }
  7393. }
  7394. }
  7395.  
  7396. function getTsw(){
  7397. return doStuff(arguments, {}, prepare, deal, null, false);
  7398.  
  7399. function prepare(params, isPost) {
  7400. var requestParams = {
  7401. isTest: isTest,
  7402. cmd: "web_wake_switch,web_sleep_switch,web_wake_time,web_sleep_time",
  7403. multi_data: '1'
  7404. };
  7405. return requestParams;
  7406. }
  7407.  
  7408. function deal(data) {
  7409. if (data) {
  7410. if(data.web_wake_time.indexOf(':') != -1){
  7411. var open = data.web_wake_time.split(':');
  7412. data.openH = leftInsert(open[0], 2, '0');
  7413. data.openM = leftInsert(open[1], 2, '0');
  7414. } else {
  7415. data.openH = '06';
  7416. data.openM = '00';
  7417. }
  7418. if(data.web_sleep_time.indexOf(':') != -1){
  7419. var close = data.web_sleep_time.split(':');
  7420. data.closeH = leftInsert(close[0], 2, '0');
  7421. data.closeM = leftInsert(close[1], 2, '0');
  7422. } else {
  7423. data.closeH = '22';
  7424. data.closeM = '00';
  7425. }
  7426. return data;
  7427. } else {
  7428. return unknownErrorObject;
  7429. }
  7430. }
  7431. }
  7432.  
  7433.  
  7434. function saveTsw(){
  7435. return doStuff(arguments, {}, prepare, deal, null, true);
  7436.  
  7437. function prepare(params, isPost) {
  7438. var requestParams = {
  7439. isTest: isTest,
  7440. goformId: "SAVE_TSW",
  7441. web_wake_switch: params.openEnable,
  7442. web_sleep_switch: params.closeEnable
  7443. };
  7444.  
  7445. if(params.openEnable == '1') {
  7446. requestParams.web_wake_time = params.openTime;
  7447. requestParams.web_sleep_time = params.closeTime;
  7448. }
  7449.  
  7450. return requestParams;
  7451. }
  7452.  
  7453. function deal(data) {
  7454. if (data && data.result == 'success') {
  7455. return data;
  7456. } else {
  7457. return unknownErrorObject;
  7458. }
  7459. }
  7460. }
  7461.  
  7462. function getSysTimeMode (){
  7463. return doStuff(arguments, {}, prepare, deal, null, false);
  7464.  
  7465. function prepare(params, isPost) {
  7466. var requestParams = {
  7467. isTest: isTest,
  7468. cmd: "systime_mode"
  7469. };
  7470. return requestParams;
  7471. }
  7472.  
  7473. function deal(data) {
  7474. if (data && (data.systime_mode == 'sntp' || data.systime_mode == 'nitz')) {
  7475. return {result: true};
  7476. } else {
  7477. return {result: false};
  7478. }
  7479. }
  7480. }
  7481.  
  7482. function trafficCalibration(){
  7483. return doStuff(arguments, {}, prepare, deal, null, true);
  7484.  
  7485. function prepare(params, isPost) {
  7486. var requestParams = {
  7487. isTest: isTest,
  7488. goformId: "FLOW_CALIBRATION_MANUAL",
  7489. calibration_way: params.way,
  7490. time: params.way == 'time' ? params.value : 0,
  7491. data: params.way == 'data' ? params.value : 0
  7492. };
  7493. return requestParams;
  7494. }
  7495.  
  7496. function deal(data) {
  7497. if (data && data.result == 'success') {
  7498. return data;
  7499. } else {
  7500. return unknownErrorObject;
  7501. }
  7502. }
  7503. }
  7504.  
  7505. function getParams() {
  7506. return doStuff(arguments, {}, prepare, deal, null, false);
  7507.  
  7508. function prepare(params, isPost) {
  7509. var requestParams = {};
  7510. requestParams.isTest = isTest;
  7511. if (_.isArray(params.nv)) {
  7512. requestParams.cmd = params.nv.join(',');
  7513. requestParams.multi_data = 1;
  7514. } else {
  7515. requestParams.cmd = params.nv;
  7516. }
  7517. return requestParams;
  7518. }
  7519.  
  7520. function deal(data) {
  7521. if (data) {
  7522. return data;
  7523. } else {
  7524. return unknownErrorObject;
  7525. }
  7526. }
  7527. }
  7528.  
  7529. function getMtuInfo(){
  7530. return doStuff(arguments, {}, prepare, deal, null, false);
  7531.  
  7532. function prepare(params, isPost) {
  7533. var requestParams = {
  7534. isTest: isTest,
  7535. cmd: "mtu,tcp_mss",
  7536. multi_data: '1'
  7537. };
  7538. return requestParams;
  7539. }
  7540.  
  7541. function deal(data) {
  7542. if (data) {
  7543. return data;
  7544. } else {
  7545. return unknownErrorObject;
  7546. }
  7547. }
  7548. }
  7549.  
  7550. /**
  7551. * getDdnsParams
  7552. * @param params
  7553. * @param callback
  7554. * @returns {*}
  7555. */
  7556. function getDdnsParams(params, callback){
  7557. return doStuff(arguments, {}, prepare, deal, null, false);
  7558.  
  7559. function prepare(params, isPost) {
  7560. return {
  7561. isTest:isTest,
  7562. multi_data:1,
  7563. cmd:"DDNS_Enable,DDNS_Mode,DDNSProvider,DDNSAccount,DDNSPassword,DDNS,DDNS_Hash_Value"
  7564. };
  7565. }
  7566. function deal(data) {
  7567. if (data) {
  7568. return {
  7569. DDNS_Enable: data.DDNS_Enable,
  7570. DDNS_Mode: data.DDNS_Mode,
  7571. DDNSProvider: data.DDNSProvider,
  7572. DDNSAccount: data.DDNSAccount,
  7573. DDNSPassword: data.DDNSPassword,
  7574. DDNS: data.DDNS,
  7575. DDNS_Hash_Value: data.DDNS_Hash_Value
  7576. }
  7577. } else {
  7578. return unknownErrorObject;
  7579. }
  7580. }
  7581. }
  7582. /**
  7583. * 设置DDNS
  7584. * @method DDNS
  7585. */
  7586. function setDDNSForward() {
  7587. return doStuff(arguments, {}, prepare, deal, null, true);
  7588.  
  7589. function prepare(params, isPost) {
  7590. var requestParams = $.extend({
  7591. isTest:isTest
  7592.  
  7593. }, params);
  7594. return requestParams;
  7595. }
  7596. function deal(data) {
  7597. if (data) {
  7598. return data;
  7599. } else {
  7600. return unknownErrorObject;
  7601. }
  7602. }
  7603. }
  7604.  
  7605. function getRemoteManagementList() {
  7606. return doStuff(arguments, {}, prepare, deal, null, false);
  7607.  
  7608. function prepare(params, isPost) {
  7609. return {
  7610. isTest:isTest,
  7611. cmd:"websRemoteManagementFilters"
  7612. };
  7613. }
  7614.  
  7615. function deal(data) {
  7616. var remoteManagementRules = [];
  7617. if (data) {
  7618. if(data.websRemoteManagementFilters==null ) {
  7619. return {websRemoteManagementFilters: []};
  7620. } else {
  7621. var tempArray = data.websRemoteManagementFilters;
  7622. for(var i = 0; i < tempArray.length; i++){
  7623. var aRule = {};
  7624. aRule.index = i;
  7625. aRule.sourceIPAddress = tempArray[i].sourceIPAddress;
  7626. aRule.endIPAddress = tempArray[i].endIPAddress;
  7627. remoteManagementRules.push(aRule);
  7628. }
  7629. return {remoteManagementFilterRules: remoteManagementRules};
  7630. }
  7631. } else {
  7632. return unknownErrorObject;
  7633. }
  7634. }
  7635. }
  7636.  
  7637. function getStaticMacIpAddressList() {
  7638. return doStuff(arguments, {}, prepare, deal, null, false);
  7639.  
  7640. function prepare(params, isPost) {
  7641. return {
  7642. isTest:isTest,
  7643. cmd:"current_static_addr_list"
  7644. };
  7645. }
  7646.  
  7647. function deal(data) {
  7648. var StaticAddressRules = [];
  7649. if (data) {
  7650. if(data.current_static_addr_list==null || data.current_static_addr_list=="") {
  7651. return {StaticAddressFilterRules: []};
  7652. } else {
  7653. var tempArray = data.current_static_addr_list;
  7654. for(var i = 0; i < tempArray.length; i++){
  7655. var aRule = {};
  7656. aRule.index = i;
  7657. aRule.hostName = tempArray[i].hostname;
  7658. aRule.macAddress = tempArray[i].mac;
  7659. aRule.ipAddress = tempArray[i].ip;
  7660. aRule.domainName = tempArray[i].domain;
  7661. StaticAddressRules.push(aRule);
  7662. }
  7663. return {StaticAddressFilterRules: StaticAddressRules};
  7664. }
  7665. } else {
  7666. return unknownErrorObject;
  7667. }
  7668. }
  7669. }
  7670.  
  7671. function getStaticIpAddrList() {
  7672. return doStuff(arguments, {}, prepare, deal, null, false);
  7673.  
  7674. function prepare(params, isPost) {
  7675. return {
  7676. isTest:isTest,
  7677. cmd:"current_static_addr_list"
  7678. };
  7679. }
  7680.  
  7681. function deal(data) {
  7682. if (data) {
  7683. var result = {};
  7684. if(data.current_static_addr_list==null || data.current_static_addr_list=="") {
  7685. result.bindStaticIPInfo = [];
  7686. } else {
  7687. var tempArray = data.current_static_addr_list;
  7688. var aIp = [];
  7689. for(var i = 0; i < tempArray.length; i++){
  7690. aIp.push(tempArray[i].ip);
  7691. }
  7692. result.bindStaticIPInfo = aIp;
  7693. }
  7694. return result;
  7695. } else {
  7696. return unknownErrorObject;
  7697. }
  7698. }
  7699. }
  7700.  
  7701. /**
  7702. * 获取DHCP静态地址功能状态
  7703. * @method getSysSecurity
  7704. */
  7705. function getDHCPStaticAddressRules() {
  7706. return doStuff(arguments, {}, prepare, deal, null, false);
  7707.  
  7708. function prepare(params, isPost) {
  7709. var requestParams = {};
  7710. requestParams.isTest = isTest;
  7711. requestParams.cmd = "mac_ip_status";
  7712. requestParams.multi_data = 1;
  7713. return requestParams;
  7714. }
  7715.  
  7716. function deal(data) {
  7717. if (data) {
  7718. var result = {};
  7719. result.mac_ip_status = data.mac_ip_status == "1"? "1" : "0";
  7720. //result.pingFlag = data.WANPingFilter == "1"? "1" : "0";
  7721. return result;
  7722. } else {
  7723. return unknownErrorObject;
  7724. }
  7725. }
  7726. }
  7727.  
  7728. /**
  7729. * 设置静态地址绑定信息
  7730. * @method setSysSecurity
  7731. */
  7732. function setDHCPStaticAddressRules() {
  7733. return doStuff(arguments, {}, prepare, deal, null, true);
  7734.  
  7735. function prepare(params, isPost) {
  7736. var requestParams = {};
  7737. requestParams.isTest = isTest;
  7738. requestParams.goformId = "SET_STATIC_ADDRESS";
  7739. requestParams.mac_ip_status = params.StaticAddressFlag;
  7740. return requestParams;
  7741.  
  7742. }
  7743.  
  7744. function deal(data) {
  7745. if (data) {
  7746. return data;
  7747. } else {
  7748. return unknownErrorObject;
  7749. }
  7750. }
  7751. }
  7752. function addStaticAddress(params, callback) {
  7753. return doStuff(arguments, {}, prepare, deal, null, true);
  7754.  
  7755. function prepare(params) {
  7756. var requestParams = $.extend({
  7757. isTest:isTest
  7758. }, params);
  7759. return requestParams;
  7760. }
  7761.  
  7762. function deal(data) {
  7763. if (data && data.result == "success") {
  7764. return data;
  7765. } else {
  7766. return unknownErrorObject;
  7767. }
  7768. }
  7769. }
  7770. function delStaticAddrRules(params, callback) {
  7771. return doStuff(arguments, {}, prepare, deal, null, true);
  7772.  
  7773. function prepare(params) {
  7774. var requestParams = $.extend({
  7775. isTest:isTest
  7776. }, params);
  7777. return requestParams;
  7778. }
  7779.  
  7780. function deal(data) {
  7781. if (data && data.result == "success") {
  7782. return data;
  7783. } else {
  7784. return unknownErrorObject;
  7785. }
  7786. }
  7787. }
  7788. /**
  7789. * 设置MTU
  7790. * @method setMtu
  7791. */
  7792. function setMtu() {
  7793. return doStuff(arguments, {}, prepare, deal, null, true);
  7794.  
  7795. function prepare(params, isPost) {
  7796. var requestParams = {};
  7797. requestParams.isTest = isTest;
  7798. requestParams.goformId = "SET_DEVICE_MTU";
  7799. requestParams.mtu = params.MtuValue;
  7800. requestParams.tcp_mss = params.MssValue;
  7801. return requestParams;
  7802. }
  7803.  
  7804. function deal(data) {
  7805. if (data) {
  7806. return data;
  7807. } else {
  7808. return unknownErrorObject;
  7809. }
  7810. }
  7811. }
  7812.  
  7813. function addRemoteManagement(params, callback) {
  7814. return doStuff(arguments, {}, prepare, deal, null, true);
  7815.  
  7816. function prepare(params) {
  7817. var requestParams = $.extend({
  7818. isTest:isTest
  7819. }, params);
  7820. return requestParams;
  7821. }
  7822.  
  7823. function deal(data) {
  7824. if (data && data.result == "success") {
  7825. return data;
  7826. } else {
  7827. return unknownErrorObject;
  7828. }
  7829. }
  7830. }
  7831. function delRemoteManageRules(params, callback) {
  7832. return doStuff(arguments, {}, prepare, deal, null, true);
  7833.  
  7834. function prepare(params) {
  7835. var requestParams = $.extend({
  7836. isTest:isTest
  7837. }, params);
  7838. return requestParams;
  7839. }
  7840.  
  7841. function deal(data) {
  7842. if (data && data.result == "success") {
  7843. return data;
  7844. } else {
  7845. return unknownErrorObject;
  7846. }
  7847. }
  7848. }
  7849.  
  7850. /**
  7851. *获取watch dog信息
  7852. * @method getWatchDogSetting
  7853. */
  7854. function getWatchDogSetting() {
  7855. return doStuff(arguments, {}, prepare, deal, null, false);
  7856.  
  7857. function prepare(params, isPost) {
  7858. var requestParams = {};
  7859. requestParams.isTest = isTest;
  7860. requestParams.cmd = "net_link_detect_enable,net_link_detect_url,net_link_detect_time_gap,net_link_detect_ping_times";
  7861. requestParams.multi_data = 1;
  7862. return requestParams;
  7863. }
  7864.  
  7865. function deal(data) {
  7866. if (data) {
  7867. var result = {};
  7868. result.watchDogSetting = data.net_link_detect_enable == "1"? "1" : "0";
  7869. result.linkUrl = data.net_link_detect_url;
  7870. result.net_link_detect_time_gap = data.net_link_detect_time_gap;
  7871. result.net_link_detect_ping_times = data.net_link_detect_ping_times;
  7872. return result;
  7873. } else {
  7874. return unknownErrorObject;
  7875. }
  7876. }
  7877. }
  7878.  
  7879. /**
  7880. *设置watch dog信息
  7881. * @method setWatchDogSetting
  7882. */
  7883. function setWatchDogSetting() {
  7884. return doStuff(arguments, {}, prepare, deal, null, true);
  7885.  
  7886. function prepare(params, isPost) {
  7887. var requestParams = {};
  7888. requestParams.goformId = "WATCH_DOG_SWITCH";
  7889. requestParams.isTest = isTest;
  7890. requestParams.net_link_detect_enable = params.net_link_detect_enable;
  7891. if(requestParams.net_link_detect_enable == '1') {
  7892. requestParams.net_link_detect_url = params.net_link_detect_url;
  7893. requestParams.net_link_detect_ping_times = params.net_link_detect_ping_times;
  7894. requestParams.net_link_detect_time_gap = params.net_link_detect_time_gap;
  7895. }
  7896.  
  7897. return requestParams;
  7898. }
  7899.  
  7900. function deal(data) {
  7901. if (data) {
  7902. return data;
  7903. } else {
  7904. return unknownErrorObject;
  7905. }
  7906. }
  7907. }
  7908.  
  7909.  
  7910. function setBindIPInfo() {
  7911. return doStuff(arguments, {}, prepare, deal, null, true);
  7912.  
  7913. function prepare(params, isPost) {
  7914. var requestParams = $.extend({
  7915. goformId : "DHCP_RESERVATION_TO_STATIC",
  7916. isTest:isTest
  7917. }, params);
  7918.  
  7919. return requestParams;
  7920. }
  7921.  
  7922. function deal(data) {
  7923. if (data) {
  7924. return data;
  7925. } else {
  7926. return unknownErrorObject;
  7927. }
  7928. }
  7929. }
  7930.  
  7931. function getBindIPInfo() {
  7932. return doStuff(arguments, {}, prepare, deal, null, false);
  7933.  
  7934. function prepare(params, isPost) {
  7935. var requestParams = {};
  7936. requestParams.isTest = isTest;
  7937. requestParams.cmd = "host_name_web,mac_addr_web,ip_addr_web,lan_ipaddr,lan_netmask";
  7938. requestParams.multi_data = 1;
  7939. return requestParams;
  7940. }
  7941.  
  7942. function deal(data) {
  7943. if (data) {
  7944. var result = {};
  7945. result.ipAddress = data.lan_ipaddr;
  7946. result.subnetMask = data.lan_netmask;
  7947. result.host_name_web = data.host_name_web;
  7948. result.mac_addr_web = data.mac_addr_web;
  7949. result.ip_addr_web = data.ip_addr_web;
  7950. return result;
  7951. } else {
  7952. return unknownErrorObject;
  7953. }
  7954. }
  7955. }
  7956.  
  7957. function getWifiProcessStatus() {
  7958. return doStuff(arguments, {}, prepare, deal, null, false);
  7959.  
  7960. function prepare(params, isPost) {
  7961. var requestParams = {};
  7962. requestParams.isTest = isTest;
  7963. requestParams.cmd = "wlan_process";
  7964. requestParams.multi_data = 0;
  7965. return requestParams;
  7966. }
  7967.  
  7968. function deal(data) {
  7969. if (data) {
  7970. return data;
  7971. } else {
  7972. return unknownErrorObject;
  7973. }
  7974. }
  7975. }
  7976.  
  7977. /**
  7978. * 设置guest路由信息
  7979. * @method setGuestLanInfo
  7980. */
  7981. function setGuestLanInfo() {
  7982. return doStuff(arguments, {}, prepare, deal, null, true);
  7983.  
  7984. function prepare(params, isPost) {
  7985. var requestParams = {};
  7986. requestParams.isTest = isTest;
  7987. requestParams.goformId = "DHCP_SETTING";
  7988. requestParams.lanIp = params.ipAddress;
  7989. requestParams.lanNetmask = params.subnetMask;
  7990. requestParams.lanDhcpType = params.dhcpServer == "1"? "SERVER" : "DISABLE";
  7991. if(requestParams.lanDhcpType == "SERVER") {
  7992. requestParams.dhcpStart = params.dhcpStart;
  7993. requestParams.dhcpEnd = params.dhcpEnd;
  7994. requestParams.dhcpLease = params.dhcpLease;
  7995. }
  7996. requestParams.dhcp_reboot_flag = 1;
  7997. return requestParams;
  7998. }
  7999.  
  8000. function deal(data) {
  8001. if (data) {
  8002. return data;
  8003. } else {
  8004. return unknownErrorObject;
  8005. }
  8006. }
  8007. }
  8008.  
  8009. function getWifiChannel24GInfo(){
  8010. return doStuff(arguments, {}, prepare, deal, null, false);
  8011.  
  8012. function prepare(params, isPost) {
  8013. var obj = {
  8014. isTest : isTest,
  8015. cmd : "EX_APLIST_24"
  8016. };
  8017. return obj;
  8018. }
  8019.  
  8020. function deal(data) {
  8021. var channelNumArr = [];
  8022. var channel24GInfo = data.EX_APLIST_24;
  8023. for(var i = 0; channel24GInfo && i < channel24GInfo.length; i++ ){
  8024. var channelTemp = channel24GInfo[i].channel;
  8025. var obj = {};
  8026. var obj1 = {};
  8027. var channelIndex = getExistChannelIndex(channelNumArr,channelTemp);
  8028. if(channelIndex != -1){
  8029. if(channel24GInfo[i].isp_flag != '1'){
  8030. obj1.macAddress = channel24GInfo[i].mac_addr;
  8031. obj1.ssid = channel24GInfo[i].ssid;
  8032. obj1.rssi = channel24GInfo[i].ap_rssi + " dBm";
  8033. channelNumArr[channelIndex].ssidList.push(obj1);
  8034. }else {
  8035. obj1.macAddress = channel24GInfo[i].mac_addr;
  8036. obj1.ssid = channel24GInfo[i].ssid;
  8037. obj1.rssi = "--";
  8038. channelNumArr[channelIndex].ssidList.push(obj1);
  8039. channelNumArr[channelIndex].isp_flag = channel24GInfo[i].isp_flag;
  8040. }
  8041. channelNumArr[channelIndex].apNum++;
  8042. }else{
  8043.  
  8044. obj.channel = channelTemp;
  8045. if(channel24GInfo[i].ap_rssi == "" && channel24GInfo[i].channel_rssi_level == ""){
  8046. obj.apNum = 0;
  8047. }else{
  8048. obj.apNum = 1;
  8049. }
  8050. obj.ssidList = [];
  8051. obj.isp_flag = channel24GInfo[i].isp_flag;
  8052. obj.ch_rssi_level = channel24GInfo[i].channel_rssi_level;
  8053. if(obj.isp_flag != '1'){
  8054. obj1.macAddress = channel24GInfo[i].mac_addr;
  8055. obj1.ssid = channel24GInfo[i].ssid;
  8056. obj1.rssi = channel24GInfo[i].ap_rssi + " dBm";
  8057. obj.ssidList.push(obj1);
  8058. }else{
  8059. obj1.macAddress = channel24GInfo[i].mac_addr;
  8060. obj1.ssid = channel24GInfo[i].ssid;
  8061. obj1.rssi = "--";
  8062. obj.ssidList.push(obj1);
  8063. }
  8064. channelNumArr.push(obj);
  8065. }
  8066.  
  8067. }
  8068. return {wifi24gChannelList: channelNumArr};
  8069. }
  8070. }
  8071.  
  8072. function getWifiChannel5GInfo(){
  8073. return doStuff(arguments, {}, prepare, deal, null, false);
  8074.  
  8075. function prepare(params, isPost) {
  8076. var obj = {
  8077. isTest : isTest,
  8078. cmd : "EX_APLIST_5"
  8079. };
  8080. return obj;
  8081. }
  8082.  
  8083. function deal(data) {
  8084. var channelNumArr = [];
  8085. var channel24GInfo = data.EX_APLIST_5;
  8086. for(var i = 0; channel24GInfo && i < channel24GInfo.length; i++ ){
  8087. var channelTemp = channel24GInfo[i].channel;
  8088. var obj = {};
  8089. var obj1 = {};
  8090. if(channelTemp >=52 && channelTemp <=140){//是DFS信道
  8091. var indexTemp = getExistChannelIndex(channelNumArr,"DFS");
  8092. obj.channel = "DFS";
  8093. obj.isp_flag = channel24GInfo[i].isp_flag;
  8094. obj.ssidList = [];
  8095. if(obj.isp_flag == '1'){
  8096. obj1.macAddress = channel24GInfo[i].mac_addr;
  8097. obj1.ssid = channel24GInfo[i].ssid;
  8098. obj1.rssi = "--";
  8099. if(indexTemp != -1){
  8100. channelNumArr[indexTemp].apNum = 1;
  8101. channelNumArr[indexTemp].ch_rssi_level = channel24GInfo[i].channel_rssi_level;
  8102. channelNumArr[indexTemp].isp_flag = 1;
  8103. channelNumArr[indexTemp].orginChannel = channelTemp;
  8104. channelNumArr[indexTemp].ssidList.push(obj1)
  8105. }else{
  8106. obj.apNum = 1;
  8107. obj.ch_rssi_level = channel24GInfo[i].channel_rssi_level;
  8108. obj.ssidList.push(obj1);
  8109. obj.orginChannel = channelTemp;
  8110. channelNumArr.push(obj);
  8111. }
  8112. }else{
  8113. obj.apNum = 0;
  8114. obj.ssidList = [];
  8115. obj.ch_rssi_level = 1; //固定写成最优的信道
  8116. indexTemp != -1 ? "" : channelNumArr.push(obj);
  8117. }
  8118.  
  8119. }else{
  8120. var channelIndex = getExistChannelIndex(channelNumArr,channelTemp);
  8121. if(channelIndex != -1){
  8122. if(channel24GInfo[i].isp_flag != '1'){
  8123. obj1.macAddress = channel24GInfo[i].mac_addr;
  8124. obj1.ssid = channel24GInfo[i].ssid;
  8125. obj1.rssi = channel24GInfo[i].ap_rssi + " dBm";
  8126. channelNumArr[channelIndex].ssidList.push(obj1);
  8127. }else {
  8128. obj1.macAddress = channel24GInfo[i].mac_addr;
  8129. obj1.ssid = channel24GInfo[i].ssid;
  8130. obj1.rssi = "--";
  8131. channelNumArr[channelIndex].ssidList.push(obj1);
  8132. channelNumArr[channelIndex].isp_flag = channel24GInfo[i].isp_flag;
  8133. }
  8134. channelNumArr[channelIndex].apNum++;
  8135. }else{
  8136. obj.channel = channelTemp;
  8137. if(channel24GInfo[i].ap_rssi == "" && channel24GInfo[i].channel_rssi_level == ""){
  8138. obj.apNum = 0;
  8139. }else{
  8140. obj.apNum = 1;
  8141. }
  8142. obj.ssidList = [];
  8143. obj.isp_flag = channel24GInfo[i].isp_flag;
  8144. obj.ch_rssi_level = channel24GInfo[i].channel_rssi_level;
  8145. if(obj.isp_flag != '1'){
  8146. obj1.macAddress = channel24GInfo[i].mac_addr;
  8147. obj1.ssid = channel24GInfo[i].ssid;
  8148. obj1.rssi = channel24GInfo[i].ap_rssi + " dBm";
  8149. obj.ssidList.push(obj1);
  8150. }else{
  8151. obj1.macAddress = channel24GInfo[i].mac_addr;
  8152. obj1.ssid = channel24GInfo[i].ssid;
  8153. obj1.rssi = "--";
  8154. obj.ssidList.push(obj1);
  8155. }
  8156. channelNumArr.push(obj);
  8157. }
  8158. }
  8159.  
  8160.  
  8161. }
  8162. return {wifi5gChannelList: channelNumArr};
  8163. }
  8164. }
  8165.  
  8166. function getExistChannelIndex(array,value){
  8167. for(var i=0;array && i < array.length;i++){
  8168. if(value == array[i].channel){
  8169. return i;
  8170. }
  8171. }
  8172. return -1;
  8173. }
  8174. function removeLimitedGuestSSID(){
  8175. return doStuff(arguments, {}, prepare, deal, null, true);
  8176.  
  8177. function prepare(params, isPost) {
  8178. var requestParams = {
  8179. isTest: isTest,
  8180. goformId: "DEL_GUEST_SSID",
  8181. mac: params.mac
  8182. };
  8183. return requestParams;
  8184. }
  8185.  
  8186. function deal(data) {
  8187. if (data && data.result == 'success') {
  8188. return data;
  8189. } else {
  8190. return unknownErrorObject;
  8191. }
  8192. }
  8193. }
  8194.  
  8195. function setGuestManageInfo() {
  8196. return doStuff(arguments, {}, prepare, deal, null, true);
  8197.  
  8198. function prepare(params, isPost) {
  8199. var requestParams = {};
  8200. requestParams.isTest = isTest;
  8201. requestParams.goformId = "MANAGE_GUEST_SSID";
  8202. requestParams.guest_acl_mode = params.guestAclMode;
  8203. requestParams.guest_access_time = params.guestAccessTime;
  8204.  
  8205. return requestParams;
  8206. }
  8207.  
  8208. function deal(data) {
  8209. if (data) {
  8210. return data;
  8211. } else {
  8212. return unknownErrorObject;
  8213. }
  8214. }
  8215. }
  8216.  
  8217. function ScanWifiChannel24G() {
  8218. return doStuff(arguments, {}, prepare, deal, null, true);
  8219.  
  8220. function prepare(params, isPost) {
  8221. var requestParams = {};
  8222. requestParams.isTest = isTest;
  8223. requestParams.goformId = "2_4_SCAN_WIFI_CHANNEL";
  8224. return requestParams;
  8225. }
  8226.  
  8227. function deal(data) {
  8228. if (data) {
  8229. return data;
  8230. } else {
  8231. return unknownErrorObject;
  8232. }
  8233. }
  8234. }
  8235.  
  8236. function setOptiChannel24G() {
  8237. return doStuff(arguments, {}, prepare, deal, null, true);
  8238.  
  8239. function prepare(params, isPost) {
  8240. var requestParams = {};
  8241. requestParams.isTest = isTest;
  8242. requestParams.goformId = "2_4_OPTIMIZATION_WIFI";
  8243. requestParams.channel = params.channel;
  8244.  
  8245. return requestParams;
  8246. }
  8247.  
  8248. function deal(data) {
  8249. if (data) {
  8250. return data;
  8251. } else {
  8252. return unknownErrorObject;
  8253. }
  8254. }
  8255. }
  8256. function setOptiSelectChannel24G() {
  8257. return doStuff(arguments, {}, prepare, deal, null, true);
  8258.  
  8259. function prepare(params, isPost) {
  8260. var requestParams = {};
  8261. requestParams.isTest = isTest;
  8262. requestParams.goformId = "WIFI_SELECT_CHANEL_24_SET";
  8263. requestParams.wifi_select_ch_24 = params.wifi_select_ch_24;
  8264.  
  8265. return requestParams;
  8266. }
  8267.  
  8268. function deal(data) {
  8269. if (data) {
  8270. return data;
  8271. } else {
  8272. return unknownErrorObject;
  8273. }
  8274. }
  8275. }
  8276.  
  8277. function ScanWifiChannel5G() {
  8278. return doStuff(arguments, {}, prepare, deal, null, true);
  8279.  
  8280. function prepare(params, isPost) {
  8281. var requestParams = {};
  8282. requestParams.isTest = isTest;
  8283. requestParams.goformId = "5_0_SCAN_WIFI_CHANNEL";
  8284. return requestParams;
  8285. }
  8286.  
  8287. function deal(data) {
  8288. if (data) {
  8289. return data;
  8290. } else {
  8291. return unknownErrorObject;
  8292. }
  8293. }
  8294. }
  8295.  
  8296. function setOptiChannel5G() {
  8297. return doStuff(arguments, {}, prepare, deal, null, true);
  8298.  
  8299. function prepare(params, isPost) {
  8300. var requestParams = {};
  8301. requestParams.isTest = isTest;
  8302. requestParams.goformId = "5_0_OPTIMIZATION_WIFI";
  8303. requestParams.channel = params.channel;
  8304.  
  8305. return requestParams;
  8306. }
  8307.  
  8308. function deal(data) {
  8309. if (data) {
  8310. return data;
  8311. } else {
  8312. return unknownErrorObject;
  8313. }
  8314. }
  8315. }
  8316. function setOptiSelectChannel5G() {
  8317. return doStuff(arguments, {}, prepare, deal, null, true);
  8318.  
  8319. function prepare(params, isPost) {
  8320. var requestParams = {};
  8321. requestParams.isTest = isTest;
  8322. requestParams.goformId = "WIFI_SELECT_CHANEL_5_SET";
  8323. requestParams.wifi_select_ch_5 = params.wifi_select_ch_5;
  8324.  
  8325. return requestParams;
  8326. }
  8327.  
  8328. function deal(data) {
  8329. if (data) {
  8330. return data;
  8331. } else {
  8332. return unknownErrorObject;
  8333. }
  8334. }
  8335. }
  8336. function getCurretnMAC(){
  8337. return getUserMacAddr({}).get_user_mac_addr;
  8338. }
  8339.  
  8340. function setDfsSwitch() {
  8341. doStuffAndCheckServerIsOnline(arguments, prepare, deal);
  8342.  
  8343. function prepare(params) {
  8344. var requestParams = {
  8345. goformId : "WIFI_DFS_SET",
  8346. isTest : isTest,
  8347. wifi_dfs_enable : params.dfsEnable
  8348. };
  8349.  
  8350. return requestParams;
  8351. }
  8352.  
  8353. function deal(data) {
  8354. if (data) {
  8355. return data;
  8356. } else {
  8357. return unknownErrorObject;
  8358. }
  8359. }
  8360. }
  8361. /**
  8362. *获取bridge lan settings信息
  8363. * @method getBridgeLanSettings
  8364. */
  8365. function getBridgeLanSettings() {
  8366. return doStuff(arguments, {}, prepare, deal, null, false);
  8367.  
  8368. function prepare(params, isPost) {
  8369. var requestParams = {};
  8370. requestParams.isTest = isTest;
  8371. requestParams.cmd = "bridge_dhcp_lease_time,lte_bridge_lan_state";
  8372. requestParams.multi_data = 1;
  8373. return requestParams;
  8374. }
  8375.  
  8376. function deal(data) {
  8377. if (data) {
  8378. var result = {};
  8379. result.bridgeDhcpLeaseTime = data.bridge_dhcp_lease_time == "" ? "5" : data.bridge_dhcp_lease_time;
  8380. result.bridgeLanSwitch = data.lte_bridge_lan_state == "0" ? "0" : "1";
  8381. return result;
  8382. } else {
  8383. return unknownErrorObject;
  8384. }
  8385. }
  8386. }
  8387.  
  8388. /**
  8389. *设置Dhcp lease time信息
  8390. * @method setBridgeLeaseTime
  8391. */
  8392. function setBridgeLeaseTime() {
  8393. return doStuff(arguments, {}, prepare, deal, null, true);
  8394.  
  8395. function prepare(params, isPost) {
  8396. var requestParams = {};
  8397. requestParams.goformId = "BRIDGE_DHCP_LEASE_TIME_SET";
  8398. requestParams.isTest = isTest;
  8399. requestParams.bridge_dhcp_lease_time = params.bridgeLeaseTime;
  8400. return requestParams;
  8401. }
  8402.  
  8403. function deal(data) {
  8404. if (data) {
  8405. return data;
  8406. } else {
  8407. return unknownErrorObject;
  8408. }
  8409. }
  8410. }
  8411. /**
  8412. *设置bridge lan switch信息
  8413. * @method setBridgeLanSwitch
  8414. */
  8415. function setBridgeLanSwitch() {
  8416. return doStuff(arguments, {}, prepare, deal, null, true);
  8417.  
  8418. function prepare(params, isPost) {
  8419. var requestParams = {};
  8420. requestParams.goformId = "BRIDGE_LAN_STATE_SET";
  8421. requestParams.isTest = isTest;
  8422. requestParams.lte_bridge_lan_state = params.bridgeLanSwitch;
  8423. return requestParams;
  8424. }
  8425.  
  8426. function deal(data) {
  8427. if (data) {
  8428. return data;
  8429. } else {
  8430. return unknownErrorObject;
  8431. }
  8432. }
  8433. }
  8434.  
  8435. function checkDefaultPwd() {
  8436. return doStuff(arguments, {}, prepare, deal, null, false);
  8437.  
  8438. function prepare(params, isPost) {
  8439. var requestParams = {};
  8440. requestParams.isTest = isTest;
  8441. requestParams.cmd = "check_web_psw_security";
  8442. return requestParams;
  8443. }
  8444.  
  8445. function deal(data) {
  8446. if (data) {
  8447. var result = {};
  8448. result.isDefaultPsw = data.check_web_psw_security == '0' ? '0' : '1';
  8449. return result;
  8450. } else {
  8451. return unknownErrorObject;
  8452. }
  8453. }
  8454. }
  8455.  
  8456. /**
  8457. * 验证用户输入的pw是否是默认密码
  8458. */
  8459. function checkUserInputPwd() {
  8460. return doStuff(arguments, {}, prepare, deal,{}, true);
  8461.  
  8462. function prepare(params, isPost){
  8463. var obj = {};
  8464. obj.isTest = isTest;
  8465. obj.goformId = "WEB_LOGIN_CHECK";
  8466. obj.check = config.PASSWORD_ENCODE ? Base64.encode(params.check) : params.check;
  8467. return obj;
  8468. }
  8469.  
  8470.  
  8471.  
  8472. function deal(data) {
  8473. if (data && data.result == "success") {
  8474. return { result:true };
  8475. } else {
  8476. return { result:false};
  8477. }
  8478. }
  8479. }
  8480. return {
  8481. checkUserInputPwd : checkUserInputPwd,
  8482. checkDefaultPwd : checkDefaultPwd,
  8483. getBridgeLanSettings:getBridgeLanSettings,
  8484. setBridgeLeaseTime:setBridgeLeaseTime,
  8485. setBridgeLanSwitch:setBridgeLanSwitch,
  8486. setDfsSwitch : setDfsSwitch,
  8487. getStaticIpAddrList:getStaticIpAddrList,
  8488. getGeneratedPin:getGeneratedPin,
  8489. generatePinBySer:generatePinBySer,
  8490. generatePinBySer_5g: generatePinBySer_5g,
  8491. getCurretnMAC:getCurretnMAC,
  8492. getWifiChannel5GInfo:getWifiChannel5GInfo,
  8493. setOptiChannel5G:setOptiChannel5G,
  8494. setOptiSelectChannel5G:setOptiSelectChannel5G,
  8495. ScanWifiChannel5G:ScanWifiChannel5G,
  8496. getWifiOptiSetting:getWifiOptiSetting,
  8497. setOptiChannel24G:setOptiChannel24G,
  8498. setOptiSelectChannel24G:setOptiSelectChannel24G,
  8499. getWifiProcessStatus:getWifiProcessStatus,
  8500. ScanWifiChannel24G:ScanWifiChannel24G,
  8501. setGuestManageInfo:setGuestManageInfo,
  8502. removeLimitedGuestSSID:removeLimitedGuestSSID,
  8503. getWifiGuestManage:getWifiGuestManage,
  8504. getWifiChannel24GInfo:getWifiChannel24GInfo,
  8505. setLanInfoGuest:setLanInfoGuest,
  8506. setGuestLanInfo:setGuestLanInfo,
  8507. getBindIPInfo:getBindIPInfo,
  8508. setBindIPInfo:setBindIPInfo,
  8509. setWatchDogSetting:setWatchDogSetting,
  8510. getWatchDogSetting:getWatchDogSetting,
  8511. delRemoteManageRules:delRemoteManageRules,
  8512. addRemoteManagement:addRemoteManagement,
  8513. setMtu:setMtu,
  8514. delStaticAddrRules:delStaticAddrRules,
  8515. addStaticAddress:addStaticAddress,
  8516. setDHCPStaticAddressRules:setDHCPStaticAddressRules,
  8517. getRemoteManagementList: getRemoteManagementList,
  8518. getStaticMacIpAddressList: getStaticMacIpAddressList,
  8519. setDDNSForward: setDDNSForward,
  8520. getDdnsParams:getDdnsParams,
  8521. getMtuInfo: getMtuInfo,
  8522. getWifiSwitch:getWifiSwitch,
  8523. getWifiSetting_24G : getWifiSetting_24G,//Test Done
  8524. getWifiSetting_5G: getWifiSetting_5G,
  8525. getWifiSetting_guest: getWifiSetting_guest,
  8526. setWifiBasic_24G : setWifiBasic_24G,//Test Done
  8527. setWifiBasic_5G : setWifiBasic_5G,
  8528. setWifiBasic4SSID2_24G:setWifiBasic4SSID2_24G,//Test Done
  8529. setWifiBasic4SSID2_5G:setWifiBasic4SSID2_5G,//Test Done
  8530. setWifiBasicMultiSSIDSwitch:setWifiBasicMultiSSIDSwitch,//Test Done
  8531. getSecurityInfo : getSecurityInfo,//Test Done
  8532. setSecurityInfo : setSecurityInfo,//Test Done
  8533. getCurrentlyAttachedDevicesInfo : getCurrentlyAttachedDevicesInfo,//Test Done
  8534. getAttachedCableDevices: getAttachedCableDevices,
  8535. getLanguage : getLanguage,//Test Done
  8536. setLanguage : setLanguage,//Test Done
  8537. getNetSelectInfo : getNetSelectInfo,//Test Done
  8538. setBearerPreference : setBearerPreference,//Test Done
  8539. scanForNetwork : scanForNetwork,//No Test
  8540. getConnectionInfo : getConnectionInfo,//Test Done
  8541. getStatusInfo : getStatusInfo,//Test Done
  8542. connect : connect,//No Test
  8543. disconnect : disconnect,//No Test
  8544. setNetwork : setNetwork,//Test Done
  8545. getCurrentNetwork : getCurrentNetwork,//Test Done
  8546. savePhoneBook : savePhoneBook,//Test Done
  8547. deletePhoneBooks :deletePhoneBooks,//Test Done
  8548. deleteAllPhoneBooks:deleteAllPhoneBooks, //Test Done
  8549. deleteAllPhoneBooksByGroup:deleteAllPhoneBooksByGroup,//Test Done
  8550. getDevicePhoneBooks : getDevicePhoneBooks,//Test Done
  8551. getSIMPhoneBooks : getSIMPhoneBooks,//Test Done
  8552. getPhoneBooks : getPhoneBooks,//Test Done
  8553. getPhoneBookReady: getPhoneBookReady,//Test Done
  8554. getPhoneBooksByGroup: getPhoneBooksByGroup,//Test Done
  8555. getConnectionMode: getConnectionMode,//Test Done
  8556. setConnectionMode: setConnectionMode,//Test Done
  8557. getApnSettings : getApnSettings,//Test Done
  8558. deleteApn : deleteApn,//Test Done
  8559. setDefaultApn : setDefaultApn,//Test Done
  8560. addOrEditApn : addOrEditApn,//Test Done
  8561. getSIMPhoneBookCapacity : getSIMPhoneBookCapacity,//Test Done
  8562. getDevicePhoneBookCapacity : getDevicePhoneBookCapacity,//Test Done
  8563. getLoginData:getLoginData,//Test Done
  8564. login:login,//Test Done
  8565. logout:logout,//Test Done
  8566. getLoginStatus:getLoginStatus,//Test Done
  8567. enterPIN:enterPIN,//Test Done
  8568. enterPUK:enterPUK,//Test Done
  8569. getSMSReady:getSMSReady,//Test Done
  8570. getSMSMessages : getSMSMessages,//Test Done
  8571. sendSMS : sendSMS,//Test Done
  8572. saveSMS : saveSMS,//Test Done
  8573. deleteAllMessages : deleteAllMessages,//Test Done
  8574. deleteMessage : deleteMessage,//Test Done
  8575. setSmsRead : setSmsRead,//Test Done
  8576. resetNewSmsReceivedVar : resetNewSmsReceivedVar,
  8577. resetSmsReportReceivedVar : resetSmsReportReceivedVar,
  8578. getSMSDeliveryReport : getSMSDeliveryReport,
  8579. getSmsCapability : getSmsCapability,//Test Done
  8580. changePassword : changePassword,//Test Done
  8581. getPinData : getPinData,//Test Done
  8582. enablePin : enablePin,//Test Done
  8583. disablePin : disablePin,//Test Done
  8584. changePin : changePin,//Test Done
  8585. getLanInfo: getLanInfo,//Test Done
  8586. setLanInfo: setLanInfo,//Test Done
  8587. getSmsSetting: getSmsSetting,//Test Done
  8588. setSmsSetting: setSmsSetting,//Test Done
  8589. restoreFactorySettings : restoreFactorySettings,//Test Done
  8590. checkRestoreStatus : checkRestoreStatus,//Test Done
  8591. getWpsInfo: getWpsInfo,//Test Done
  8592. openWps: openWps,//Test Done
  8593. openWps_5g: openWps_5g,//Test Done
  8594. getSleepMode: getSleepMode,//Test Done
  8595. setSleepMode: setSleepMode,//Test Done
  8596. getSysSecurity: getSysSecurity,//Test Done
  8597. setSysSecurity: setSysSecurity,//Test Done
  8598. getPortForward: getPortForward,//Test Done
  8599. setPortForward: setPortForward,//Test Done
  8600. deleteForwardRules: deleteForwardRules,//Test Done
  8601. enableVirtualServer: enableVirtualServer,//Test Done
  8602. getSDConfiguration: getSDConfiguration,//Test Done
  8603. setSdCardMode: setSdCardMode,//Test Done
  8604. checkFileExists: checkFileExists,//No Test
  8605. getFileList: getFileList,//Test Done
  8606. fileRename: fileRename,//Test Done
  8607. getSdMemorySizes : getSdMemorySizes,//Test Done
  8608. deleteFilesAndFolders : deleteFilesAndFolders,//Test Done
  8609. createFolder : createFolder,//Test Done
  8610. checkUploadFileStatus : checkUploadFileStatus,//No Test
  8611. setSdCardSharing:setSdCardSharing,//Test Done
  8612. getQuickSettingInfo:getQuickSettingInfo,//Test Done
  8613. setQuickSetting:setQuickSetting,//Test Done
  8614. setQuickSetting4IPv6:setQuickSetting4IPv6, //Test Done
  8615. getPortFilter: getPortFilter,//Test Done
  8616. setPortFilterBasic: setPortFilterBasic,//Test Done
  8617. setPortFilter: setPortFilter,//Test Done
  8618. deleteFilterRules: deleteFilterRules,//Test Done
  8619. setWifiAdvance_24G: setWifiAdvance_24G,//Test Done
  8620. setWifiAdvance_5G: setWifiAdvance_5G,//Test Done
  8621. getWifiRange: getWifiRange,//Test Done
  8622. setWifiRange: setWifiRange,//Test Done
  8623. setLedSwitch: setLedSwitch,
  8624. getUpnpSetting: getUpnpSetting,//Test Done
  8625. setUpnpSetting: setUpnpSetting,//Test Done
  8626. getDmzSetting: getDmzSetting,//Test Done
  8627. setDmzSetting: setDmzSetting,//Test Done
  8628. getDeviceInfo: getDeviceInfo, //Test Done
  8629. getPortMap: getPortMap,//Test Done
  8630. setPortMap: setPortMap,//Test Done
  8631. enablePortMap: enablePortMap,//Test Done
  8632. deleteMapRules: deleteMapRules, //Test Done
  8633. getTrafficAlertInfo : getTrafficAlertInfo,//Test Done
  8634. setTrafficAlertInfo : setTrafficAlertInfo,//Test Done
  8635. getDlnaSetting: getDlnaSetting, //Test Done
  8636. setDlnaSetting: setDlnaSetting, //Test Done
  8637. rescanDlna: rescanDlna,//Test Done
  8638. getUSSDResponse : getUSSDResponse,//No Test
  8639. USSDReplyCancel : USSDReplyCancel,//No Test
  8640. getNetworkUnlockTimes:getNetworkUnlockTimes,//No Test
  8641. unlockNetwork : unlockNetwork,//No Test
  8642. setUpdateInfoWarning : setUpdateInfoWarning,//No Test
  8643. getUpdateInfoWarning : getUpdateInfoWarning,//No Test
  8644. getAPStationBasic:getAPStationBasic,//Test Done
  8645. setAPStationBasic:setAPStationBasic,//Test Done
  8646. getHotspotList:getHotspotList,//Test Done
  8647. searchHotspot:searchHotspot,//No Test
  8648. getSearchHotspotList:getSearchHotspotList,//Test Done
  8649. saveHotspot:saveHotspot,
  8650. deleteHotspot:deleteHotspot,
  8651. connectHotspot:connectHotspot,
  8652. disconnectHotspot:disconnectHotspot,
  8653. getOpMode:getOpMode,
  8654. SetOperationMode:SetOperationMode,
  8655. SendUpgradeMessage:SendUpgradeMessage,
  8656. getPppoeParams:getPppoeParams,
  8657. setPppoeDialMode:setPppoeDialMode,
  8658. getSntpParams:getSntpParams,
  8659. setSntpSetting:setSntpSetting,
  8660. setSNTPDate:setSNTPDate,
  8661. addUrlFilterRule:addUrlFilterRule,
  8662. getUrlFilterList:getUrlFilterList,
  8663. deleteSelectedRules:deleteSelectedRules,
  8664. getWdsInfo:getWdsInfo,
  8665. setWDS:setWDS,
  8666. getSyslogInfo:getSyslogInfo,
  8667. setSysLog:setSysLog,
  8668. getTR069Config:getTR069Config,
  8669. setTR069Configuration:setTR069Configuration,
  8670. getVoipSettings:getVoipSettings,
  8671. setVoipSettings:setVoipSettings,
  8672. getVoipUserDetails:getVoipUserDetails,
  8673. getVoipUserRegisterStatus:getVoipUserRegisterStatus,
  8674. setVoipUserDetails:setVoipUserDetails,
  8675. setVoipAdvancedSettings:setVoipAdvancedSettings,
  8676. getVoipAdvancedSettings:getVoipAdvancedSettings,
  8677. getVoipSupplementaryService:getVoipSupplementaryService,
  8678. setVoipSupplementaryService:setVoipSupplementaryService,
  8679. getMacFilterInfo:getMacFilterInfo,
  8680. setMacFilter:setMacFilter,
  8681. getFastbootSetting: getFastbootSetting,
  8682. setFastbootSetting: setFastbootSetting,
  8683. restart: restart,
  8684. timerUpdaterEnable: timerUpdaterEnable,
  8685. clearTraffic: clearTraffic,
  8686. switchPortForLog: switchPortForLog,
  8687. childGroupList: childGroupList,
  8688. addChildGroup: addChildGroup,
  8689. removeChildGroup: removeChildGroup,
  8690. checkCurrentUserInChildGroup: checkCurrentUserInChildGroup,
  8691. editHostName: editHostName,
  8692. getSiteWhiteList: getSiteWhiteList,
  8693. removeSiteWhite: removeSiteWhite,
  8694. saveSiteWhite: saveSiteWhite,
  8695. getTimeLimited: getTimeLimited,
  8696. saveTimeLimited: saveTimeLimited,
  8697. getHostNameList: getHostNameList,
  8698. getTsw: getTsw,
  8699. saveTsw: saveTsw,
  8700. getSysTimeMode: getSysTimeMode,
  8701. trafficCalibration: trafficCalibration,
  8702. getParams: getParams,
  8703. getNewVersionState:getNewVersionState,
  8704. getUpgradeResult:getUpgradeResult,
  8705. getCurrentUpgradeState:getCurrentUpgradeState,
  8706. setUpgradeSelectOp:setUpgradeSelectOp,
  8707. addTimerThings:addTimerThings,
  8708. removeTimerThings:removeTimerThings,
  8709. getPackSizeInfo:getPackSizeInfo,
  8710. getNewVersionInfo:getNewVersionInfo,
  8711. getMandatory:getMandatory,
  8712. getUserChoice:getUserChoice,
  8713. getOTAUpdateSetting:getOTAUpdateSetting,
  8714. setOTAUpdateSetting:setOTAUpdateSetting,
  8715. getSignalStrength: getSignalStrength,
  8716. getOTAlastCheckTime: getOTAlastCheckTime,
  8717. clearUpdateResult:clearUpdateResult,
  8718. refreshAPStationStatus: refreshAPStationStatus,
  8719. getDHCPStaticAddressRules:getDHCPStaticAddressRules,
  8720. getCurrentlyLimitGuestSSID:getCurrentlyLimitGuestSSID,
  8721. setWifiEacsStatus:setWifiEacsStatus
  8722. };
  8723. });
Add Comment
Please, Sign In to add comment