You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Settings.js 2.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. import { jitsiLocalStorage } from '@jitsi/js-utils';
  2. import { getLogger } from 'jitsi-meet-logger';
  3. const logger = getLogger(__filename);
  4. import UsernameGenerator from '../util/UsernameGenerator';
  5. let _callStatsUserName;
  6. let _machineId;
  7. /**
  8. *
  9. */
  10. export default {
  11. /**
  12. * Returns fake username for callstats
  13. * @returns {string} fake username for callstats
  14. */
  15. get callStatsUserName() {
  16. if (!_callStatsUserName) {
  17. _callStatsUserName = jitsiLocalStorage.getItem('callStatsUserName');
  18. if (!_callStatsUserName) {
  19. _callStatsUserName = generateCallStatsUserName();
  20. jitsiLocalStorage.setItem('callStatsUserName', _callStatsUserName);
  21. }
  22. }
  23. return _callStatsUserName;
  24. },
  25. /**
  26. * Returns current machine id.
  27. * @returns {string} machine id
  28. */
  29. get machineId() {
  30. if (!_machineId) {
  31. _machineId = jitsiLocalStorage.getItem('jitsiMeetId');
  32. if (!_machineId) {
  33. _machineId = generateJitsiMeetId();
  34. jitsiLocalStorage.setItem('jitsiMeetId', _machineId);
  35. }
  36. }
  37. return _machineId;
  38. },
  39. /**
  40. * Returns current session id.
  41. * @returns {string} current session id
  42. */
  43. get sessionId() {
  44. // We may update sessionId in localStorage from another JitsiConference
  45. // instance and that's why we should always re-read it.
  46. return jitsiLocalStorage.getItem('sessionId');
  47. },
  48. /**
  49. * Save current session id.
  50. * @param {string} sessionId session id
  51. */
  52. set sessionId(sessionId) {
  53. if (sessionId) {
  54. jitsiLocalStorage.setItem('sessionId', sessionId);
  55. } else {
  56. jitsiLocalStorage.removeItem('sessionId');
  57. }
  58. }
  59. };
  60. /**
  61. * Generate fake username for callstats.
  62. * @returns {string} fake random username
  63. */
  64. function generateCallStatsUserName() {
  65. const username = UsernameGenerator.generateUsername();
  66. logger.log('generated callstats uid', username);
  67. return username;
  68. }
  69. /**
  70. * Generate unique id.
  71. * @returns {string} random unique id
  72. */
  73. function generateJitsiMeetId() {
  74. const jitsiMeetId = generateUniqueId();
  75. logger.log('generated id', jitsiMeetId);
  76. return jitsiMeetId;
  77. }
  78. /**
  79. *
  80. */
  81. function generateUniqueId() {
  82. return _p8() + _p8() + _p8() + _p8();
  83. }
  84. /**
  85. *
  86. */
  87. function _p8() {
  88. return `${Math.random().toString(16)}000000000`.substr(2, 8);
  89. }