//Get the Medooze Media Server interface const MediaServer = require("medooze-media-server"); //Get Semantic SDP objects const SemanticSDP = require("semantic-sdp"); const SDPInfo = SemanticSDP.SDPInfo; const MediaInfo = SemanticSDP.MediaInfo; const CandidateInfo = SemanticSDP.CandidateInfo; const DTLSInfo = SemanticSDP.DTLSInfo; const ICEInfo = SemanticSDP.ICEInfo; const StreamInfo = SemanticSDP.StreamInfo; const TrackInfo = SemanticSDP.TrackInfo; const Direction = SemanticSDP.Direction; const CodecInfo = SemanticSDP.CodecInfo; //Create new streamer const streamer = MediaServer.createStreamer(); //Create new video session codecs const video = new MediaInfo("video","video"); //Add h264 codec video.addCodec(new CodecInfo("h264",96)); //Create session for video const session = streamer.createSession(video,{ local : { port: 5004 } }); module.exports = function(request,protocol,endpoint) { const connection = request.accept(protocol); connection.on('message', (frame) => { //Get cmd var msg = JSON.parse(frame.utf8Data); //Get cmd if (msg.cmd==="OFFER") { //Process the sdp var offer = SDPInfo.process(msg.offer); //Create an DTLS ICE transport in that enpoint const transport = endpoint.createTransport({ dtls : offer.getDTLS(), ice : offer.getICE() }); //Set RTP remote properties transport.setRemoteProperties({ audio : offer.getMedia("audio"), video : offer.getMedia("video") }); //Get local DTLS and ICE info const dtls = transport.getLocalDTLSInfo(); const ice = transport.getLocalICEInfo(); //Get local candidates const candidates = endpoint.getLocalCandidates(); //Create local SDP info let answer = new SDPInfo(); //Add ice and dtls info answer.setDTLS(dtls); answer.setICE(ice); //For each local candidate for (let i=0;i { //Stop transport.stop(); }); } }); };