Simple library to pull files from a Cisco UC Products (VOS) via DIME.
DIME information can be found at Log Collection and DimeGetFileService API Reference.
Using npm:
npm i -g npm
npm i --save cisco-dime
This package uses the built in Fetch API of Node. This feature was first introduced in Node v16.15.0. You may need to enable expermential vm module. Also you can disable warnings with an optional enviromental variable.
Also if you are using self signed certificates on Cisco VOS products you may need to disable TLS verification. This makes TLS, and HTTPS by extension, insecure. The use of this environment variable is strongly discouraged. Please only do this in a lab enviroment.
Suggested enviromental variables:
NODE_OPTIONS=--experimental-vm-modules
NODE_NO_WARNINGS=1
NODE_TLS_REJECT_UNAUTHORIZED=0
In Node.js:
const ciscoDime = require("cisco-dime");
// The listNodeServiceLogs method returns the node names in the cluster and the lists of associated service names.
(async () => {
var serviceLogsNames = await ciscoDime
.listNodeServiceLogs("10.10.20.1", "administrator", "ciscopsdt")
.catch((err) => {
console.log(err);
});
console.log(serviceLogsNames);
})();
// The selectLogFiles method lists available service log files, or requests 'push' delivery of service log files based on a selection criteria.
(async () => {
let serviceLogs = await ciscoDime
.selectLogFiles(
"10.10.20.1",
"administrator",
"ciscopsdt",
"Cisco CallManager",
"10/04/22 11:00 AM", // From Date
"10/05/22 11:05 AM", // To Date
"Client: (GMT+0:0)Greenwich Mean Time-Europe/London" // "Client: (GMT-8:0)America/Los_Angeles"
)
.catch((err) => {
console.log(err);
});
console.log(serviceLogs);
})();
// The DimeGetFileService API is used to retrieve either a server or system log file through the standard Direct Internet Message Encapsulation (DIME) protocol.
// Note: this function returns a buffer
(async () => {
let fileBuffer = await ciscoDime
.getOneFile(
"10.10.20.1",
"administrator",
"ciscopsdt",
"/var/log/active/platform/cli/ciscotacpub.cap"
)
.catch((err) => {
console.log(err);
});
console.log(fileBuffer.filename);
console.log(fileBuffer.data);
console.log(fileBuffer.server);
})();
npm run test
Note: Test are using Cisco's DevNet sandbox information. Find more information here: Cisco DevNet
This library is made possible by code used from:
I would like to thank Cristian Salazar for making his code available!