{"_id":"@audc/drachtio-srf","_rev":"5-c9607de2a997aa9e4bf994a5c2ff6fed","name":"@audc/drachtio-srf","dist-tags":{"latest":"5.0.14"},"versions":{"5.0.2":{"name":"@audc/drachtio-srf","version":"5.0.2","author":{"name":"Dave Horton"},"license":"MIT","_id":"@audc/drachtio-srf@5.0.2","maintainers":[{"name":"orgads","email":"orgads@gmail.com"}],"homepage":"https://github.com/drachtio/drachtio-srf#readme","bugs":{"url":"https://github.com/drachtio/drachtio-srf/issues"},"dist":{"shasum":"f9f46ab4587e640e0a863746822ee46fb680e08e","tarball":"https://registry.npmjs.org/@audc/drachtio-srf/-/drachtio-srf-5.0.2.tgz","fileCount":97,"integrity":"sha512-QF9V8rFhTiytl1HI8/gSol89kj6zXqDXifsSTGe9Pti5HhDaOmwjSv9XOYIV+SdRyQTqpe7CHNywUVxuX/nehg==","signatures":[{"sig":"MEQCIG4CTFgtoTSxIxRkdRbodY8wS7H/BPFTq+fivWSNua28AiA1GEZAoCBewEhhHHaluZPuhTT+zImR8K/VaqwxybsZeg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":542612},"main":"lib/srf.js","types":"lib/@types/index.d.ts","engines":{"node":">= 10.x"},"gitHead":"d93b2e3fe0677d514871d1591c0102c947a2a2cf","scripts":{"test":"NODE_ENV=test node test/ ","jslint":"eslint lib","coverage":"nyc --reporter html --report-dir ./coverage npm run test","unittests":"mocha ./test/unit-tests/"},"_npmUser":{"name":"orgads","email":"orgads@gmail.com"},"repository":{"url":"git+https://github.com/drachtio/drachtio-srf.git","type":"git"},"_npmVersion":"10.9.2","description":"drachtio signaling resource framework","directories":{},"_nodeVersion":"22.13.0","dependencies":{"only":"^0.0.2","debug":"^3.2.7","delegates":"^0.1.0","node-noop":"^0.0.1","short-uuid":"^4.2.2","sip-status":"^0.1.0","sip-methods":"^0.3.0","utils-merge":"^1.0.0","uuid-random":"^1.3.2","sdp-transform":"^2.15.0"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","tape":"^5.5.3","mocha":"^9.2.2","config":"^3.3.7","eslint":"^8.30.0","should":"^13.2.3","typescript":"^4.3.2","@types/node":"^16.0.0","sip-message-examples":"^0.0.6","eslint-plugin-promise":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/drachtio-srf_5.0.2_1737883184409_0.960274142065038","host":"s3://npm-registry-packages-npm-production"}},"5.0.3":{"name":"@audc/drachtio-srf","version":"5.0.3","author":{"name":"Dave Horton"},"license":"MIT","_id":"@audc/drachtio-srf@5.0.3","maintainers":[{"name":"orgads","email":"orgads@gmail.com"}],"homepage":"https://github.com/drachtio/drachtio-srf#readme","bugs":{"url":"https://github.com/drachtio/drachtio-srf/issues"},"dist":{"shasum":"a4e13cb619423a2ace85180d338357b6a73a31e8","tarball":"https://registry.npmjs.org/@audc/drachtio-srf/-/drachtio-srf-5.0.3.tgz","fileCount":98,"integrity":"sha512-S9HGdf6ikFqwR2yPQpAGrdE75BgGq1l3nhL/CV0oXbdcsMxxrwHz9AsGOyDR4MjTlYcFagGJ4K8OfR6yXsivJQ==","signatures":[{"sig":"MEUCIEa3JIaAABp3bReWEnxe/JRYq/dQsbMhyNVkgYrMxFGsAiEApsqsmLOI0KeD90Kn3sTu14hM+07mrePc+93L9rM2nbI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":547739},"main":"lib/srf.js","types":"lib/@types/index.d.ts","engines":{"node":">= 10.x"},"gitHead":"4ac5f9583de150619b474b8cbfbbcfa44915282f","scripts":{"test":"NODE_ENV=test node test/ ","jslint":"eslint lib","coverage":"nyc --reporter html --report-dir ./coverage npm run test","unittests":"mocha ./test/unit-tests/"},"_npmUser":{"name":"orgads","email":"orgads@gmail.com"},"repository":{"url":"git+https://github.com/drachtio/drachtio-srf.git","type":"git"},"_npmVersion":"10.9.2","description":"drachtio signaling resource framework","directories":{},"_nodeVersion":"22.13.1","dependencies":{"only":"^0.0.2","debug":"^3.2.7","delegates":"^0.1.0","node-noop":"^0.0.1","short-uuid":"^4.2.2","sip-status":"^0.1.0","sip-methods":"^0.3.0","utils-merge":"^1.0.0","uuid-random":"^1.3.2","sdp-transform":"^2.15.0"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","tape":"^5.7.3","mocha":"^9.2.2","config":"^3.3.7","eslint":"^8.30.0","should":"^13.2.3","typescript":"^5.7.3","@types/node":"^22.12.0","sip-message-examples":"^0.0.6","eslint-plugin-promise":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/drachtio-srf_5.0.3_1740329704622_0.012501073480959635","host":"s3://npm-registry-packages-npm-production"}},"5.0.4":{"name":"@audc/drachtio-srf","version":"5.0.4","author":{"name":"Dave Horton"},"license":"MIT","_id":"@audc/drachtio-srf@5.0.4","maintainers":[{"name":"orgads","email":"orgads@gmail.com"}],"homepage":"https://github.com/drachtio/drachtio-srf#readme","bugs":{"url":"https://github.com/drachtio/drachtio-srf/issues"},"dist":{"shasum":"ee3ea11ef4534c29f9d7a80b8996e7618b4a84fb","tarball":"https://registry.npmjs.org/@audc/drachtio-srf/-/drachtio-srf-5.0.4.tgz","fileCount":98,"integrity":"sha512-jI0imG366L9geQjzxDC/dC+HSJcqN6npTzpGotdVSJhBoDDEcOLSeXQE+je02ycI0Hs2z7wdY6FQHCfEAUpS1Q==","signatures":[{"sig":"MEYCIQDDPLVtzLePx4kW2qQ9aY3omoRRKuUk810s+Xxjd92UTwIhAKnBMyR/1GZ4owPQEfx5FI56qZXuUyJets4klbC4foXh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":547741},"main":"lib/srf.js","types":"lib/@types/index.d.ts","engines":{"node":">= 10.x"},"gitHead":"7930fbc323d28e8dc0cd59f231b88dab9156c6b0","scripts":{"test":"NODE_ENV=test node test/ ","jslint":"eslint lib","coverage":"nyc --reporter html --report-dir ./coverage npm run test","unittests":"mocha ./test/unit-tests/"},"_npmUser":{"name":"orgads","email":"orgads@gmail.com"},"repository":{"url":"git+https://github.com/drachtio/drachtio-srf.git","type":"git"},"_npmVersion":"10.9.2","description":"drachtio signaling resource framework","directories":{},"_nodeVersion":"22.13.1","dependencies":{"only":"^0.0.2","debug":"^4.4.0","delegates":"^1.0.0","node-noop":"^1.0.0","short-uuid":"^5.2.0","sip-status":"^0.1.0","sip-methods":"^0.3.0","utils-merge":"^1.0.1","uuid-random":"^1.3.2","sdp-transform":"^2.15.0"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^17.1.0","tape":"^5.9.0","mocha":"^11.1.0","config":"^3.3.12","eslint":"^9.21.0","should":"^13.2.3","typescript":"^5.7.3","@types/node":"^22.13.5","sip-message-examples":"^0.0.7","eslint-plugin-promise":"^7.2.1"},"_npmOperationalInternal":{"tmp":"tmp/drachtio-srf_5.0.4_1740332333723_0.0595584166532499","host":"s3://npm-registry-packages-npm-production"}},"5.0.5":{"name":"@audc/drachtio-srf","version":"5.0.5","author":{"name":"Dave Horton"},"license":"MIT","_id":"@audc/drachtio-srf@5.0.5","maintainers":[{"name":"orgads","email":"orgads@gmail.com"}],"homepage":"https://github.com/drachtio/drachtio-srf#readme","bugs":{"url":"https://github.com/drachtio/drachtio-srf/issues"},"dist":{"shasum":"e3c5956048870c2ec66600e09d7c3bbc583ed88b","tarball":"https://registry.npmjs.org/@audc/drachtio-srf/-/drachtio-srf-5.0.5.tgz","fileCount":97,"integrity":"sha512-1n56YLk49obOkx+LN/6vB2Sf6XpRyH6x1TMHllttZAyd54+0XkzuIvB+CYHKEUV4LiqYYaVWbzqisIA7qloPVA==","signatures":[{"sig":"MEUCIQCbI33IIHtmZlFBWxVymRW/4xN54nB31gFQgCpVKK101gIgWuMqX7Obqk8h/zFlHRCd9eRyp/jKdfQ/a5cXBvMSyYU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":548076},"main":"lib/srf.js","types":"lib/@types/index.d.ts","engines":{"node":">= 10.x"},"gitHead":"9adb185b598ef8276569fb6c1b2ceff91e6525f0","scripts":{"test":"NODE_ENV=test node test/ ","jslint":"eslint lib","coverage":"nyc --reporter html --report-dir ./coverage npm run test","unittests":"mocha ./test/unit-tests/"},"_npmUser":{"name":"orgads","email":"orgads@gmail.com"},"repository":{"url":"git+https://github.com/drachtio/drachtio-srf.git","type":"git"},"_npmVersion":"10.9.2","description":"drachtio signaling resource framework","directories":{},"_nodeVersion":"22.13.1","dependencies":{"only":"^0.0.2","debug":"^4.4.0","delegates":"^1.0.0","node-noop":"^1.0.0","short-uuid":"^5.2.0","sip-status":"^0.1.0","sip-methods":"^0.3.0","utils-merge":"^1.0.1","uuid-random":"^1.3.2","sdp-transform":"^2.15.0"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^17.1.0","tape":"^5.9.0","mocha":"^11.1.0","config":"^3.3.12","eslint":"^9.21.0","should":"^13.2.3","globals":"^16.0.0","@eslint/js":"^9.21.0","typescript":"^5.7.3","@types/node":"^22.13.5","sip-message-examples":"^0.0.7","eslint-plugin-promise":"^7.2.1","@stylistic/eslint-plugin-js":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/drachtio-srf_5.0.5_1740335626139_0.15799499263811478","host":"s3://npm-registry-packages-npm-production"}},"5.0.14":{"name":"@audc/drachtio-srf","version":"5.0.14","description":"drachtio signaling resource framework","main":"lib/srf.js","types":"lib/@types/index.d.ts","scripts":{"test":"NODE_ENV=test node test/ ","coverage":"nyc --reporter html --report-dir ./coverage npm run test","unittests":"mocha ./test/unit-tests/","lint":"eslint lib"},"engines":{"node":">= 18.x"},"repository":{"type":"git","url":"git+https://github.com/drachtio/drachtio-srf.git"},"author":{"name":"Dave Horton"},"license":"MIT","bugs":{"url":"https://github.com/drachtio/drachtio-srf/issues"},"homepage":"https://github.com/drachtio/drachtio-srf#readme","dependencies":{"debug":"^3.2.7","delegates":"^0.1.0","node-noop":"^0.0.1","only":"^0.0.2","sdp-transform":"^2.15.0","short-uuid":"^4.2.2","sip-methods":"^0.3.0","sip-status":"^0.1.0","utils-merge":"^1.0.0","uuid-random":"^1.3.2"},"devDependencies":{"@eslint/js":"^9.38.0","@stylistic/eslint-plugin":"^5.5.0","@types/node":"^22.18.12","config":"^3.3.7","eslint":"^9.38.0","eslint-plugin-promise":"^7.2.1","globals":"^16.4.0","mocha":"^9.2.2","nyc":"^15.1.0","should":"^13.2.3","sip-message-examples":"^0.0.6","tape":"^5.7.3","typescript":"^5.9.3"},"_id":"@audc/drachtio-srf@5.0.14","gitHead":"0ad5311d3a1735862ba974b9adde54590c5d5247","_nodeVersion":"22.20.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-2anienoJycFOtSdHvqQq9ofuq4aCPNac1DNmQDmgVPDaeTiC5+DD6cvr7wPJjc5JWwy5Jh+oPEgwEmkR2OabaA==","shasum":"47d856b7b5691cdd0d9d176612df22ce5924a7d6","tarball":"https://registry.npmjs.org/@audc/drachtio-srf/-/drachtio-srf-5.0.14.tgz","fileCount":101,"unpackedSize":570050,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCW9eicVhCS9kJkEt13WB2MR5kRpI5eJs5gnUboKBlzNQIhAJwR7BGXKjELAfRTEn4sgBq9cSbex/ofEjV2/HqNNSRT"}]},"_npmUser":{"name":"orgads","email":"orgads@gmail.com"},"directories":{},"maintainers":[{"name":"orgads","email":"orgads@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/drachtio-srf_5.0.14_1761115005623_0.5012277275844534"},"_hasShrinkwrap":false}},"time":{"created":"2025-01-26T09:19:44.308Z","modified":"2025-10-22T06:36:46.093Z","5.0.2":"2025-01-26T09:19:44.669Z","5.0.3":"2025-02-23T16:55:04.831Z","5.0.4":"2025-02-23T17:38:53.908Z","5.0.5":"2025-02-23T18:33:46.310Z","5.0.14":"2025-10-22T06:36:45.881Z"},"bugs":{"url":"https://github.com/drachtio/drachtio-srf/issues"},"author":{"name":"Dave Horton"},"license":"MIT","homepage":"https://github.com/drachtio/drachtio-srf#readme","repository":{"type":"git","url":"git+https://github.com/drachtio/drachtio-srf.git"},"description":"drachtio signaling resource framework","maintainers":[{"name":"orgads","email":"orgads@gmail.com"}],"readme":"# drachtio-srf ![Build Status](https://github.com/drachtio/drachtio-srf/workflows/CI/badge.svg)\n\n[![drachtio logo](http://davehorton.github.io/drachtio-srf/img/definition-only-cropped.png)](https://drachtio.org)\n\nWelcome to the Drachtio Signaling Resource framework (drachtio-srf), the Node.js framework for SIP Server applications.\n\nPlease visit [drachtio.org](https://drachtio.org) for getting started instructions, API documentation, sample apps and more!\n\n*Example proxy*\n```js\n  const Srf = require('drachtio-srf');\n  const srf = new Srf();\n\n  srf.connect({\n    host: '192.168.32.5',\n    port: 9022,\n    secret: 'cymru'\n  });\n  \n  srf.invite((req, res) => {\n    srf.proxyRequest(req, ['sip.example1.com', 'sip.example2.com'], {\n      recordRoute: true,\n      followRedirects: true,\n      provisionalTimeout: '2s'\n    }).then((results) => {\n      console.log(JSON.stringify(result)); \n      // {finalStatus: 200, finalResponse:{..}, responses: [..]}\n    });\n  });\n  ```\n*Example Back-to-back user agent*\n  ```js\n  const Srf = require('drachtio-srf');\n  const srf = new Srf();\n\n  srf.connect({\n    host: '192.168.32.5',\n    port: 9022,\n    secret: 'cymru'\n  });\n    const Srf = require('drachtio-srf');\n  const srf = new Srf();\n\n  srf.invite((req, res) => {\n    srf.createB2BUA('sip:1234@10.10.100.1', req, res, {localSdpB: req.body})\n      .then(({uas, uac}) => {\n        console.log('call connected');\n\n        // when one side terminates, hang up the other\n        uas.on('destroy', () => { uac.destroy(); });\n        uac.on('destroy', () => { uas.destroy(); });\n        return;\n      })\n      .catch((err) => {\n        console.log(`call failed to connect: ${err}`);\n      });\n  });\n  ```\n*Example sending a request (OPTIONS ping)*\n  ```js\n  const Srf = require('drachtio-srf');\n  const srf = new Srf();\n\n  srf.connect({host: '127.0.0.1', port: 9022, secret: 'cymru'});\n\n  srf.on('connect', (err, hp) => {\n    if (err) return console.log(`Error connecting: ${err}`);\n    console.log(`connected to server listening on ${hp}`);\n\n    setInterval(optionsPing, 10000);\n  });\n\n  function optionsPing() {\n    srf.request('sip:tighthead.drachtio.org', {\n      method: 'OPTIONS',\n      headers: {\n        'Subject': 'OPTIONS Ping'\n      }\n    }, (err, req) => {\n      if (err) return console.log(`Error sending OPTIONS: ${err}`);\n      req.on('response', (res) => {\n        console.log(`Response to OPTIONS ping: ${res.status}`);\n      });\n    });\n  }\n  ```\n","readmeFilename":"README.md"}