let reference = 0; let order = true; let handle; function showSystemInformation() { return new Promise((resolve, reject) => fetch('/status/system') .then((response) => response.json()) .then((data) => { reference = data.reference; order = data.order == 'LittleEndian'; document.getElementById('version').innerHTML = data.version + ' <ID ' + data.instance + '>'; document.getElementById('system').innerHTML = data.system; resolve(); })); } function updateContextList() { fetch('/status/contexts') .then((response) => response.json()) .then((data) => { let element = document.getElementById('body'); element.innerHTML = ''; data.forEach((entry) => { element.innerHTML += '' + '' + entry.identifier + '' + '' + getSystemTime(entry.outcome, reference) + '' + '' + entry.number + '' + '' + entry.link + '' + '' + entry.agent + '' + '' + entry.values.join(', ') + '' + '' + getContextDetailString(entry, reference, order) + '' + ''; }); }); } function updateSessionList() { let classes = [ 'Primary', 'Secondary '] let types = [ '-', 'Circular Call', 'Group Call', 'SDS', 'Packet Data' ]; let states = [ 'INITIAL', 'FINAL', 'GROUP_TX', 'GROUP_IDLE', 'SETUP_REQUEST', 'SETUP_ACCEPT', 'SETUP_REJECT', 'CALL_ALERT', 'CONNECT_REQUEST', 'CONNECT_CONFIRM', 'CALL_RELEASE', 'SHORT_TRANSFER', 'SIMPLEX_GRANTED', 'SIMPLEX_IDLE', 'PDP_REQUEST', 'PDP_ACCEPT', 'PDP_REJECT', 'PDP_RELEASE' ]; let getEndPoint = (data) => (data !== null) ? data.link + ' #' + data.number + ' (' + data.identifier + ') :' + data.tag : ''; fetch('/status/sessions') .then((response) => response.json()) .then((data) => { let element = document.getElementById('body'); element.innerHTML = ''; data.forEach((entry) => { element.innerHTML += '' + '' + entry.identifier + '' + '' + getSystemTime(entry.outcome, reference) + '' + '' + classes[entry.type >> 8] + ' ' + types[entry.type & 0xff] + '' + '' + states[entry.state] + '' + '' + entry.description.source + '' + '' + entry.description.destination + '' + '' + entry.description.priority + '' + '' + formatInterval(entry.count * 0.06) + '' + '' + getEndPoint(entry.points.source) + '' + '' + getEndPoint(entry.points.destination) + '' + '' + entry.values[0].join(', ') + '' + '' + entry.values[1].join(', ') + '' + '' + getSessionDetailString(0, entry, reference, order) + '' + '' + getSessionDetailString(1, entry, reference, order) + '' + ''; }); }); } function showContextList() { document.getElementById('head').innerHTML = 'IdentifierOutcomeNumberLinkAgent' + 'ValuesDetails'; updateContextList(); if (handle) clearInterval(handle); handle = setInterval(updateContextList, 60000); } function showSessionList() { document.getElementById('head').innerHTML = 'IdentifierOutcomeTypeState' + 'SourceDestinationPriorityDuration' + 'Source EndPointDestination EndPoint' + 'Source ValuesDestination Values' + 'Source DetailsDestination Details'; updateSessionList(); if (handle) clearInterval(handle); handle = setInterval(updateSessionList, 10000); } function start() { let actions = { '' : showContextList, 'contexts' : showContextList, 'sessions' : showSessionList }; showSystemInformation().then(actions[window.location.hash.substring(1) || '']); }