{"_id":"@bengreenier/krtp","_rev":"3-afb28f45cfc7543183edda1394ab0c82","name":"@bengreenier/krtp","dist-tags":{"latest":"1.2.0"},"versions":{"1.0.0":{"name":"@bengreenier/krtp","private":false,"version":"1.0.0","description":"Node implementation of rdp protocol. RFC 3550","main":"dist/index.js","types":"dist/index.d.ts","repository":{"type":"git","url":"git+https://github.com/1995parham/krtp.git"},"author":{"name":"Ben Greenier","email":"ben@bengreenier.com"},"contributors":[{"name":"Parham Alvani","email":"parham.alvani@gmail.com"}],"license":"GPL-3.0","bugs":{"url":"https://github.com/bengreenier/krtp/issues"},"homepage":"https://github.com/bengreenier/krtp#readme","keywords":["rtp","rtcp","rtp-session","rtp-packet","rfc-3550"],"scripts":{"prepublish":"npm run build","build":"tsc","test":"jest --coverage","lint":"tslint -c tslint.json -p tsconfig.json 'lib/**/*.ts'"},"devDependencies":{"@types/jest":"^23.3.10","@types/node":"^10.17.17","jest":"^23.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","tslint-microsoft-contrib":"^5.2.1","typescript":"^3.2.1"},"dependencies":{"strict-event-emitter-types":"^2.0.0"},"gitHead":"397fc33b374bbb42e2deffa4f67c8f50d236073d","_id":"@bengreenier/krtp@1.0.0","_nodeVersion":"12.16.1","_npmVersion":"6.13.4","dist":{"integrity":"sha512-QVgkjP3kPHtXyKHNcpXiYX2bJJbGO2Pjr5TOTBJ+0HOEGPuqF9wdJNwz1+5eIrTtoAPHYh8PilRmmZhzmdrmUg==","shasum":"214711ddabe369b900533ec3d59989e1595937b8","tarball":"https://registry.npmjs.org/@bengreenier/krtp/-/krtp-1.0.0.tgz","fileCount":13,"unpackedSize":52844,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJed32SCRA9TVsSAnZWagAAppkP/3pluSj132lrYHujuSaX\nMCnzdMPR+fRBL9u8AbC27hTTbn4WsxsIaR38Hd7hWiw6IoLix0w9edQxwks7\nLacSH+Hum4dy/vtsp5fThofqDR7f2b0PVv0rNhGSDm3SEdFRbcK6F6CpnEDY\npeblYXl4G/eRRDUWB07MMMTDusSia3Fsebr9pB4HvhcqekEoJofIw7bcSTeu\nNbeS7PKq8cZVFFNooXB4DLc57qtobNVlSDx2oYVAYCHrYdfZMC+sDMHBMTUG\n0RyEF68Xx1Vf9ULO1cUGIP4uVgJzmfBVjdCeHk/k2nIHvJMeIdJgfe3VaONz\nBZ6a4InugdvpdzZBJ0jz+znfDriYABKZJZTWYkFQKHQw+CVj3rM9yS8shisJ\nHHBH4aV2nNE1Pb1NCHov7n0K3xxpNyQmBs0iOvsLLcAOjfUE4x8mym4UmKCJ\nPD0D2+CBd+JXaZCEzXivtRD6OnV8cW6aAJ+fJK7acvogpJlh2qkaH5oiKEJx\nAfzrBbJo2S4Ndp47whI3Yxs77ydTQNEKnzQBfMUoIbBYHxgITlvU6/tRYglP\n5y2FZ7DyeyZLTMljvg8BFPeh0amdokzVtf+7RhSS+AXQA+2e4NtYfRgHVEpc\nsudO0ApFpz9kREhp27+cmE21LohzIoGXzHpIz1fI92q/6XhdEP7UQnzauRID\n9ZtU\r\n=12Vp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCXpq3aqCsatotQvRVMwPqstcgmv3cgpa4oKcUWRQROSwIgIcjAy+IgeheC2NVgR5n65WNomPMMv9j/FvJoBYmtOeI="}]},"maintainers":[{"name":"bengreenier","email":"begreen@microsoft.com"}],"_npmUser":{"name":"bengreenier","email":"begreen@microsoft.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/krtp_1.0.0_1584889234130_0.3173060885033392"},"_hasShrinkwrap":false},"1.0.1":{"name":"@bengreenier/krtp","private":false,"version":"1.0.1","description":"Node implementation of rdp protocol. RFC 3550","main":"dist/index.js","types":"dist/index.d.ts","repository":{"type":"git","url":"git+https://github.com/bengreenier/krtp.git"},"author":{"name":"Ben Greenier","email":"ben@bengreenier.com"},"contributors":[{"name":"Parham Alvani","email":"parham.alvani@gmail.com"}],"license":"GPL-3.0","bugs":{"url":"https://github.com/bengreenier/krtp/issues"},"homepage":"https://github.com/bengreenier/krtp#readme","keywords":["rtp","rtcp","rtp-session","rtp-packet","rfc-3550"],"scripts":{"prepublish":"npm run build","build":"tsc","test":"jest --coverage","lint":"tslint -c tslint.json -p tsconfig.json 'lib/**/*.ts'"},"devDependencies":{"@types/jest":"^23.3.10","@types/node":"^10.17.17","jest":"^23.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","tslint-microsoft-contrib":"^5.2.1","typescript":"^3.2.1"},"dependencies":{"strict-event-emitter-types":"^2.0.0"},"gitHead":"397fc33b374bbb42e2deffa4f67c8f50d236073d","_id":"@bengreenier/krtp@1.0.1","_nodeVersion":"12.16.1","_npmVersion":"6.13.4","dist":{"integrity":"sha512-WHwd4aubyzduP0At6r71urNNNsPkLI0RYCwLlpmR+m+3kgs5QYmeHyUvrVY0uHDHNdm6wPgcpuL5Tx1zU33qUQ==","shasum":"6ee606382fb51f144e6530d595c6765e9b8e2ee0","tarball":"https://registry.npmjs.org/@bengreenier/krtp/-/krtp-1.0.1.tgz","fileCount":13,"unpackedSize":52845,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJed33kCRA9TVsSAnZWagAAx8QP/0OC6ktVprUjEXJpas8C\n0diKhZ4D5Di9mosk5VmOL93oYH+Xk4qrtljVoAVGk2yyjG0uj2myAIupOvs4\nDnV07XMbPQUolt1zlqjfcZpzAxCFOxa1iScDebhvI3m82R3kYmRRxVp9AINz\nhWeUGs4zHOJnDSTNykCrQVdwJATZ6Wuf/q9r+5LDg0oa+zkgpdr0NcBdkXQK\nYiSR5WGtQhEybOoXM5+KSQ0Qb/wELyZ8trwegIF0nk2n5mE9zc9jdJ0lXTFI\nhKKICDvEaAjE69rAhKDrLaZzSv1W//Nj+y+UwbMi2za439XMhB81XS4+H68r\nFVOFNF/MIpdql0pyAcu9boCOwXPPQZ1QSTJHadkCgPHgihbIcMy2rcrt97jW\n3dyyMf6lSLpon5jJ/I/TT2VWlbfFxtZufHPZhqp3H//sT7QqTg810oR62B14\n+VOXXVgH4/QM2Sl4nRdc2ZxT0e5XoCIgQ6Tkg1LLZOTktnIIagxpFENZth9t\nPwWiAilTiD2Nd9q1eAgtSwpOaawJQr6+k9dby34sa9VC2rg78aLNk5p+qb7D\nI4ThjhE028kAOAn+GqGPnqaGSjZaVETMVjvUUp3d0L8eeda4Iv3gT+bi80Xm\n6A9zbutlv5tADFWJbwfISxS3Fh8Z6fn/UVNj25lVxWkwS91udli7F8as9f11\n8q+e\r\n=tVbJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDx6QyZnnqkWUVwwAcw+98lqQk6SpcZyjukj2gjb1lF8AIgcB4eIFjCgce2nb58xu4PksV2dwk41wV7Aq9dquKJGMw="}]},"maintainers":[{"name":"bengreenier","email":"begreen@microsoft.com"}],"_npmUser":{"name":"bengreenier","email":"begreen@microsoft.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/krtp_1.0.1_1584889316028_0.3049996145310627"},"_hasShrinkwrap":false},"1.2.0":{"name":"@bengreenier/krtp","private":false,"version":"1.2.0","description":"Node implementation of rdp protocol. RFC 3550","main":"dist/index.js","types":"dist/index.d.ts","repository":{"type":"git","url":"git+https://github.com/bengreenier/krtp.git"},"author":{"name":"Ben Greenier","email":"ben@bengreenier.com"},"contributors":[{"name":"Parham Alvani","email":"parham.alvani@gmail.com"}],"license":"GPL-3.0","bugs":{"url":"https://github.com/bengreenier/krtp/issues"},"homepage":"https://github.com/bengreenier/krtp#readme","keywords":["rtp","rtcp","rtp-session","rtp-packet","rfc-3550"],"scripts":{"prepublish":"npm run build","build":"tsc","test":"jest --coverage","lint":"tslint -c tslint.json -p tsconfig.json 'lib/**/*.ts'"},"devDependencies":{"@types/jest":"^23.3.10","@types/node":"^10.17.17","jest":"^23.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","tslint-microsoft-contrib":"^5.2.1","typescript":"^3.2.1"},"dependencies":{"strict-event-emitter-types":"^2.0.0"},"gitHead":"a802e2e557d42a864a84fa1b57d3678317b95100","_id":"@bengreenier/krtp@1.2.0","_nodeVersion":"12.16.1","_npmVersion":"6.13.4","dist":{"integrity":"sha512-Q8KJfw7j2ba6CrH6n93sm+Sdmj/aW7QrAaAC+rTXBQBQB04kgyAY35qcaCtOx+7W2ItZG+uTWBi7RDT4GQrwlQ==","shasum":"001db529e54e27465b820246ff48483039f3101a","tarball":"https://registry.npmjs.org/@bengreenier/krtp/-/krtp-1.2.0.tgz","fileCount":13,"unpackedSize":52880,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJed4KDCRA9TVsSAnZWagAA2BoP/idIwlCJS7fPmK/p6e3c\n3ALqQWMOgBWV+YbHEp9p84/puUGxTT3betpdK2EFQ9EWlQ8Ii6mqnix6qNk5\nAFSzbf/3vrMUVaYFFs8fSExXHdyFnSL8lpFoCsZX2UGNSDqnCL/XvvDWnmDe\n2kUslLiKv4EU74d2ZCLusaQWc+R6W50sF7t4n54jW3dLXKpmHF6QeZYbaITA\n16KAS9uFZpWZsROOX0p4MXFeA+8bybOrm9ljv+yYzSPIU0oTws0srHR+6uhG\nEprBf8iXdxrZQYauTJZOgYjCZVf2TsjRVnV05hOBtRJqq9k+xit4bT6/NFVw\ne9GI4imdOJPxr+DPmi0kC/3mPZ5Hpvm87hoMZqj19H/SzdJY4Ghum+g3uzPv\njTocmzqIDKfG81VQuCi2PlXPBaSc0orpgRRlS+YyfJ6tHUN//nEaoxn6iLaI\nKmelBakMQIG52Qi9goSEyiR7N9DQCLSfi+Pmk0xeqaFQPS0TLFxZf3/qulW8\n9ITcTia5Hn1ISu/3qKfN4LgZ+99kwudq/tB7YKUPUsf39NVj4tzBk2Xfkk6a\nS95qCW1gH94rvFSy/1h1fKn9CqxfhkPy0/8Mz7c6sTRAsd5xvctIQAxhcKKY\n9u6kbUMpJ8cZoqBHbMM4wab34EnjU7KE1Yofl7ioid1uLLyXT8fNZPHLRQ1K\nizzp\r\n=wAoZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCTsyOF1xKq5p0u1ZofWQ4W5kDCQn3TwxHmUdSYur/DTgIgBCXbkLBhbElTsEqZHjnbFkgN+lRoa+wiRWptiy6NGng="}]},"maintainers":[{"name":"bengreenier","email":"begreen@microsoft.com"}],"_npmUser":{"name":"bengreenier","email":"begreen@microsoft.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/krtp_1.2.0_1584890499274_0.9380491117211702"},"_hasShrinkwrap":false}},"time":{"created":"2020-03-22T15:00:33.904Z","1.0.0":"2020-03-22T15:00:34.320Z","modified":"2022-04-04T18:22:37.483Z","1.0.1":"2020-03-22T15:01:56.192Z","1.2.0":"2020-03-22T15:21:39.425Z"},"maintainers":[{"name":"bengreenier","email":"begreen@microsoft.com"}],"description":"Node implementation of rdp protocol. RFC 3550","homepage":"https://github.com/bengreenier/krtp#readme","keywords":["rtp","rtcp","rtp-session","rtp-packet","rfc-3550"],"repository":{"type":"git","url":"git+https://github.com/bengreenier/krtp.git"},"contributors":[{"name":"Parham Alvani","email":"parham.alvani@gmail.com"}],"author":{"name":"Ben Greenier","email":"ben@bengreenier.com"},"bugs":{"url":"https://github.com/bengreenier/krtp/issues"},"license":"GPL-3.0","readme":"# KRTP\n\nRealTime Protocol implementation based on [RFC 3550](https://tools.ietf.org/html/rfc3550) for JS. It supports RTP and the SR message of RTCP. Custom sockets supported.\n\n## Introduction\n\nModified from [1995parham/krtp](https://github.com/1995parham/krtp) to remove the dependency on rxjs, and support custom socket implementations.\n\n## Example\n\n> See [`test-socket-factory`](./__tests__/test-socket-factory.ts) for an example socket implementation.\n\n```\nimport { EventEmitter } from \"events\";\nimport { AddressInfo } from \"net\";\nimport { Socket as UDPSocket, createSocket as createUDPSocket } from \"dgram\";\nimport {\n  AbstractSocketFactory,\n  AbstractSocket,\n  AbstractSocketEventEmitter,\n  AbstractSocketRemoteInfo,\n  Session\n} from \"@bengreenier/krtp\";\n\n// Build a test socket implementation\nexport class UDP4Socket\n  extends (EventEmitter as { new (): AbstractSocketEventEmitter })\n  implements AbstractSocket {\n  constructor(private udpSocket: UDPSocket) {\n    super();\n\n    // don't forget this!\n    this.udpSocket.on(\"message\", (msg: Buffer, rinfo: AddressInfo) => {\n      this.emit(\"message\", msg, rinfo as AbstractSocketRemoteInfo);\n    });\n  }\n\n  bind(port: number): void {\n    this.udpSocket.bind(port);\n  }\n  send(\n    msg: string | Buffer | Uint8Array,\n    port: number,\n    address: string,\n    cb: (err: Error | null, bytes: number) => void\n  ): void;\n  send(\n    msg: string | Buffer | Uint8Array,\n    cb: (err: Error | null, bytes: number) => void\n  ): void;\n  send(msg: any, port: any, address?: any, cb?: any) {\n    this.udpSocket.send(msg, port, address, cb);\n  }\n  close(): void {\n    this.udpSocket.close();\n  }\n}\n\n// Build a test socket factory implementation\nexport class UDP4SocketFactory implements AbstractSocketFactory {\n  createSocket(): AbstractSocket {\n    return new TestSocket(createUDPSocket(\"udp4\"));\n  }\n}\n\n// Use them to create a session\nconst sess = new Session(1234, new UDP4SocketFactory(), 95);\ns.on('message', (msg) => {\n  console.log(msg)\n  s.close()\n})\n\ns.sendSR('192.168.73.4').catch(err => {\n  console.log(err)\n})\ns.send(Buffer.from('Hello world'))\n```\n\nSpecial thanks to [@1995parham](https://github.com/1995parham) - the creator of [the original krtp](https://github.com/1995parham/krtp) library that this work is derived from.\n\n## FAQ\n\n### Why is the example so long?\n\nBecause I didn't include a built-in socket implementation, because this library probably isn't for you, and is instead, tailored to the specific needs of a problem I had. Sorry!\n\n### Can I contribute?\n\nSure - But this is firmly a side project, my time spent on maintaining it will be severly limited.\n\n### LICENSE\n\nGPL-3.0\n","readmeFilename":"README.md"}