UNPKG

onvif

Version:

Client to ONVIF NVT devices Profile S: cameras

46 lines (42 loc) 1.41 kB
/** * @namespace cam * @description Replay section for Cam class * @author Roger Hardiman <opensource@rjh.org.uk> * @licence MIT */ module.exports = function(Cam) { const linerase = require('./utils').linerase; /** * @callback Cam~ResponseUriCallback * @property {string} uri */ /** * Receive Replay Stream URI * @param {Object} [options] * @param {string} [options.stream] * @param {string} [options.protocol] * @param {string} [options.recordingToken] * @param {Cam~ResponseUriCallback} [callback] */ Cam.prototype.getReplayUri = function(options, callback) { if (callback === undefined) { callback = options; options = {}; } this._request({ service: 'replay' , body: this._envelopeHeader() + '<GetReplayUri xmlns="http://www.onvif.org/ver10/replay/wsdl">' + '<StreamSetup>' + '<Stream xmlns="http://www.onvif.org/ver10/schema">' + (options.stream || 'RTP-Unicast') + '</Stream>' + '<Transport xmlns="http://www.onvif.org/ver10/schema">' + '<Protocol>' + (options.protocol || 'RTSP') + '</Protocol>' + '</Transport>' + '</StreamSetup>' + '<RecordingToken>' + (options.recordingToken) + '</RecordingToken>' + '</GetReplayUri>' + this._envelopeFooter() }, function(err, data, xml) { if (callback) { callback.call(this, err, err ? null : linerase(data).getReplayUriResponse.uri, xml); } }.bind(this)); }; };