{"adoption": {"forks": 792, "observed_at": "2026-08-28T04:07:03.251822+00:00", "stars": 2599}, "canonical_url": "https://ross.abutalabs.com/products/jssip", "card": {"archived": false, "artifact_type": "library", "description": "JsSIP, the JavaScript SIP library", "domain": ["web-development", "apis", "frontend"], "enriched": true, "function": ["websocket", "http-client", "sdk"], "health_score": 69, "homepage": "https://jssip.net", "language": "JavaScript", "license": "NOASSERTION", "license_family": "other", "maturity": "stable", "member_repos": ["versatica/JsSIP"], "name": "versatica/JsSIP", "platform": ["browser"], "pushed_at": "2026-05-06T11:10:02+00:00", "repo": "versatica/JsSIP", "stars": 2599, "tags": ["sip", "webrtc", "voip", "sip-over-websocket", "instant-messaging", "telephony", "rfc3261", "rfc7118", "user-agent", "audio-video-calls", "real-time", "nodejs", "javascript"], "topics": [], "urls": [], "use_cases": ["build a browser-based SIP softphone with WebRTC audio/video calls", "add SIP calling and messaging to a web application", "connect a web app to an Asterisk or Kamailio SIP server over WebSocket", "implement SIP instant messaging (MESSAGE) in JavaScript", "create a click-to-call widget on a website", "run a SIP client in Node.js"], "what_it_is": "JsSIP is a pure JavaScript SIP (Session Initiation Protocol) library that implements a full SIP user agent for browsers and Node.js. It supports SIP over WebSocket transport (RFC 7118), WebRTC audio/video calls, and instant messaging, interoperating with servers like Kamailio, Asterisk, and reSIProcate.", "when_to_avoid": ["your SIP server lacks WebSocket transport support and you cannot add a WebSocket-capable proxy", "you need a turnkey softphone UI rather than a library to build one", "you need non-JavaScript environments or native mobile SIP without a WebView", "you need server-side media processing (consider mediasoup or a media server instead)"], "when_to_choose": ["you need real SIP signaling (RFC 3261) in the browser without plugins", "your SIP infrastructure supports or can proxy SIP over WebSocket", "you want a lightweight, well-documented client-side SIP stack with WebRTC media", "you need to build custom SIP logic with a flexible event-driven API"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/jssip", "repo": "versatica/JsSIP", "role": "main", "score": 69}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:03.251822+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:21:18.033730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1c1a96953d0c69a6eb36cd00364dd362d5991731481156ee0604301788e5f922", "fetched_at": "2026-08-28T04:07:03.251822+00:00", "kind": "readme", "missing": false, "url": "https://github.com/versatica/JsSIP"}, {"content_hash": "48f6c17b5a133c8ca459d4067c203adc4fdad77245c4ef9e0d425a1dccd85433", "fetched_at": "2026-08-29T10:04:38.422352+00:00", "kind": "homepage", "missing": false, "url": "https://jssip.net"}, {"content_hash": "13e7a5a8e9a6b67857675c819bb136cc965a40f8f2d0c013001ed189d3661361", "fetched_at": "2026-08-29T10:04:38.431319+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation"}, {"content_hash": "96e55409a665e9d4b65f5a7bec0b704c07382fb3c1bedd82e8766f6f0d247424", "fetched_at": "2026-08-29T10:04:38.433739+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/faq"}, {"content_hash": "89432d397f2e895500a572e3b1d3e11cba3dca7647134213767a130dbbd65fda", "fetched_at": "2026-08-29T10:04:38.435835+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/misc/sip_websocket"}, {"content_hash": "ba5aab12719065daec10baf03ea8483316a9fc697af155d810506864178072e7", "fetched_at": "2026-08-29T10:04:38.437673+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/misc/webrtc"}, {"content_hash": "3b2062cae393aef3dc57e356cb49eca4cfb96f7ae5f734d6fbaf0cb610645306", "fetched_at": "2026-08-29T10:04:38.439437+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/misc/interoperability"}, {"content_hash": "96adbcd5908076e499946639105d8c71460f3b3b20623feab9c03eb718097138", "fetched_at": "2026-08-29T10:04:38.441269+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/overview"}, {"content_hash": "e2ea19f353d905518e6328e84f910ee081a0ef8238ccd533624d1cac830b5aec", "fetched_at": "2026-08-29T10:04:38.442907+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/api"}, {"content_hash": "6ffeae5e1b165c05f440d3ee4ab37f362b8de35b8d977a19104d257499d030e3", "fetched_at": "2026-08-29T10:04:38.444385+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/getting_started"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:03.251822+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:21:18.033730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1c1a96953d0c69a6eb36cd00364dd362d5991731481156ee0604301788e5f922", "fetched_at": "2026-08-28T04:07:03.251822+00:00", "kind": "readme", "missing": false, "url": "https://github.com/versatica/JsSIP"}, {"content_hash": "48f6c17b5a133c8ca459d4067c203adc4fdad77245c4ef9e0d425a1dccd85433", "fetched_at": "2026-08-29T10:04:38.422352+00:00", "kind": "homepage", "missing": false, "url": "https://jssip.net"}, {"content_hash": "13e7a5a8e9a6b67857675c819bb136cc965a40f8f2d0c013001ed189d3661361", "fetched_at": "2026-08-29T10:04:38.431319+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation"}, {"content_hash": "96e55409a665e9d4b65f5a7bec0b704c07382fb3c1bedd82e8766f6f0d247424", "fetched_at": "2026-08-29T10:04:38.433739+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/faq"}, {"content_hash": "89432d397f2e895500a572e3b1d3e11cba3dca7647134213767a130dbbd65fda", "fetched_at": "2026-08-29T10:04:38.435835+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/misc/sip_websocket"}, {"content_hash": "ba5aab12719065daec10baf03ea8483316a9fc697af155d810506864178072e7", "fetched_at": "2026-08-29T10:04:38.437673+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/misc/webrtc"}, {"content_hash": "3b2062cae393aef3dc57e356cb49eca4cfb96f7ae5f734d6fbaf0cb610645306", "fetched_at": "2026-08-29T10:04:38.439437+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/misc/interoperability"}, {"content_hash": "96adbcd5908076e499946639105d8c71460f3b3b20623feab9c03eb718097138", "fetched_at": "2026-08-29T10:04:38.441269+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/overview"}, {"content_hash": "e2ea19f353d905518e6328e84f910ee081a0ef8238ccd533624d1cac830b5aec", "fetched_at": "2026-08-29T10:04:38.442907+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/api"}, {"content_hash": "6ffeae5e1b165c05f440d3ee4ab37f362b8de35b8d977a19104d257499d030e3", "fetched_at": "2026-08-29T10:04:38.444385+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/getting_started"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:21:18.033730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1c1a96953d0c69a6eb36cd00364dd362d5991731481156ee0604301788e5f922", "fetched_at": "2026-08-28T04:07:03.251822+00:00", "kind": "readme", "missing": false, "url": "https://github.com/versatica/JsSIP"}, {"content_hash": "48f6c17b5a133c8ca459d4067c203adc4fdad77245c4ef9e0d425a1dccd85433", "fetched_at": "2026-08-29T10:04:38.422352+00:00", "kind": "homepage", "missing": false, "url": "https://jssip.net"}, {"content_hash": "13e7a5a8e9a6b67857675c819bb136cc965a40f8f2d0c013001ed189d3661361", "fetched_at": "2026-08-29T10:04:38.431319+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation"}, {"content_hash": "96e55409a665e9d4b65f5a7bec0b704c07382fb3c1bedd82e8766f6f0d247424", "fetched_at": "2026-08-29T10:04:38.433739+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/faq"}, {"content_hash": "89432d397f2e895500a572e3b1d3e11cba3dca7647134213767a130dbbd65fda", "fetched_at": "2026-08-29T10:04:38.435835+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/misc/sip_websocket"}, {"content_hash": "ba5aab12719065daec10baf03ea8483316a9fc697af155d810506864178072e7", "fetched_at": "2026-08-29T10:04:38.437673+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/misc/webrtc"}, {"content_hash": "3b2062cae393aef3dc57e356cb49eca4cfb96f7ae5f734d6fbaf0cb610645306", "fetched_at": "2026-08-29T10:04:38.439437+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/misc/interoperability"}, {"content_hash": "96adbcd5908076e499946639105d8c71460f3b3b20623feab9c03eb718097138", "fetched_at": "2026-08-29T10:04:38.441269+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/overview"}, {"content_hash": "e2ea19f353d905518e6328e84f910ee081a0ef8238ccd533624d1cac830b5aec", "fetched_at": "2026-08-29T10:04:38.442907+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/api"}, {"content_hash": "6ffeae5e1b165c05f440d3ee4ab37f362b8de35b8d977a19104d257499d030e3", "fetched_at": "2026-08-29T10:04:38.444385+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/getting_started"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:07:03.251822+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:03.251822+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:03.251822+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:21:18.033730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1c1a96953d0c69a6eb36cd00364dd362d5991731481156ee0604301788e5f922", "fetched_at": "2026-08-28T04:07:03.251822+00:00", "kind": "readme", "missing": false, "url": "https://github.com/versatica/JsSIP"}, {"content_hash": "48f6c17b5a133c8ca459d4067c203adc4fdad77245c4ef9e0d425a1dccd85433", "fetched_at": "2026-08-29T10:04:38.422352+00:00", "kind": "homepage", "missing": false, "url": "https://jssip.net"}, {"content_hash": "13e7a5a8e9a6b67857675c819bb136cc965a40f8f2d0c013001ed189d3661361", "fetched_at": "2026-08-29T10:04:38.431319+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation"}, {"content_hash": "96e55409a665e9d4b65f5a7bec0b704c07382fb3c1bedd82e8766f6f0d247424", "fetched_at": "2026-08-29T10:04:38.433739+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/faq"}, {"content_hash": "89432d397f2e895500a572e3b1d3e11cba3dca7647134213767a130dbbd65fda", "fetched_at": "2026-08-29T10:04:38.435835+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/misc/sip_websocket"}, {"content_hash": "ba5aab12719065daec10baf03ea8483316a9fc697af155d810506864178072e7", "fetched_at": "2026-08-29T10:04:38.437673+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/misc/webrtc"}, {"content_hash": "3b2062cae393aef3dc57e356cb49eca4cfb96f7ae5f734d6fbaf0cb610645306", "fetched_at": "2026-08-29T10:04:38.439437+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/misc/interoperability"}, {"content_hash": "96adbcd5908076e499946639105d8c71460f3b3b20623feab9c03eb718097138", "fetched_at": "2026-08-29T10:04:38.441269+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/overview"}, {"content_hash": "e2ea19f353d905518e6328e84f910ee081a0ef8238ccd533624d1cac830b5aec", "fetched_at": "2026-08-29T10:04:38.442907+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/api"}, {"content_hash": "6ffeae5e1b165c05f440d3ee4ab37f362b8de35b8d977a19104d257499d030e3", "fetched_at": "2026-08-29T10:04:38.444385+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/getting_started"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:03.251822+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:03.251822+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:21:18.033730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1c1a96953d0c69a6eb36cd00364dd362d5991731481156ee0604301788e5f922", "fetched_at": "2026-08-28T04:07:03.251822+00:00", "kind": "readme", "missing": false, "url": "https://github.com/versatica/JsSIP"}, {"content_hash": "48f6c17b5a133c8ca459d4067c203adc4fdad77245c4ef9e0d425a1dccd85433", "fetched_at": "2026-08-29T10:04:38.422352+00:00", "kind": "homepage", "missing": false, "url": "https://jssip.net"}, {"content_hash": "13e7a5a8e9a6b67857675c819bb136cc965a40f8f2d0c013001ed189d3661361", "fetched_at": "2026-08-29T10:04:38.431319+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation"}, {"content_hash": "96e55409a665e9d4b65f5a7bec0b704c07382fb3c1bedd82e8766f6f0d247424", "fetched_at": "2026-08-29T10:04:38.433739+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/faq"}, {"content_hash": "89432d397f2e895500a572e3b1d3e11cba3dca7647134213767a130dbbd65fda", "fetched_at": "2026-08-29T10:04:38.435835+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/misc/sip_websocket"}, {"content_hash": "ba5aab12719065daec10baf03ea8483316a9fc697af155d810506864178072e7", "fetched_at": "2026-08-29T10:04:38.437673+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/misc/webrtc"}, {"content_hash": "3b2062cae393aef3dc57e356cb49eca4cfb96f7ae5f734d6fbaf0cb610645306", "fetched_at": "2026-08-29T10:04:38.439437+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/misc/interoperability"}, {"content_hash": "96adbcd5908076e499946639105d8c71460f3b3b20623feab9c03eb718097138", "fetched_at": "2026-08-29T10:04:38.441269+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/overview"}, {"content_hash": "e2ea19f353d905518e6328e84f910ee081a0ef8238ccd533624d1cac830b5aec", "fetched_at": "2026-08-29T10:04:38.442907+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/api"}, {"content_hash": "6ffeae5e1b165c05f440d3ee4ab37f362b8de35b8d977a19104d257499d030e3", "fetched_at": "2026-08-29T10:04:38.444385+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/getting_started"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:03.251822+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:03.251822+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:03.251822+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:21:18.033730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1c1a96953d0c69a6eb36cd00364dd362d5991731481156ee0604301788e5f922", "fetched_at": "2026-08-28T04:07:03.251822+00:00", "kind": "readme", "missing": false, "url": "https://github.com/versatica/JsSIP"}, {"content_hash": "48f6c17b5a133c8ca459d4067c203adc4fdad77245c4ef9e0d425a1dccd85433", "fetched_at": "2026-08-29T10:04:38.422352+00:00", "kind": "homepage", "missing": false, "url": "https://jssip.net"}, {"content_hash": "13e7a5a8e9a6b67857675c819bb136cc965a40f8f2d0c013001ed189d3661361", "fetched_at": "2026-08-29T10:04:38.431319+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation"}, {"content_hash": "96e55409a665e9d4b65f5a7bec0b704c07382fb3c1bedd82e8766f6f0d247424", "fetched_at": "2026-08-29T10:04:38.433739+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/faq"}, {"content_hash": "89432d397f2e895500a572e3b1d3e11cba3dca7647134213767a130dbbd65fda", "fetched_at": "2026-08-29T10:04:38.435835+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/misc/sip_websocket"}, {"content_hash": "ba5aab12719065daec10baf03ea8483316a9fc697af155d810506864178072e7", "fetched_at": "2026-08-29T10:04:38.437673+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/misc/webrtc"}, {"content_hash": "3b2062cae393aef3dc57e356cb49eca4cfb96f7ae5f734d6fbaf0cb610645306", "fetched_at": "2026-08-29T10:04:38.439437+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/misc/interoperability"}, {"content_hash": "96adbcd5908076e499946639105d8c71460f3b3b20623feab9c03eb718097138", "fetched_at": "2026-08-29T10:04:38.441269+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/overview"}, {"content_hash": "e2ea19f353d905518e6328e84f910ee081a0ef8238ccd533624d1cac830b5aec", "fetched_at": "2026-08-29T10:04:38.442907+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/api"}, {"content_hash": "6ffeae5e1b165c05f440d3ee4ab37f362b8de35b8d977a19104d257499d030e3", "fetched_at": "2026-08-29T10:04:38.444385+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/getting_started"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:03.251822+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:03.251822+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:21:18.033730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1c1a96953d0c69a6eb36cd00364dd362d5991731481156ee0604301788e5f922", "fetched_at": "2026-08-28T04:07:03.251822+00:00", "kind": "readme", "missing": false, "url": "https://github.com/versatica/JsSIP"}, {"content_hash": "48f6c17b5a133c8ca459d4067c203adc4fdad77245c4ef9e0d425a1dccd85433", "fetched_at": "2026-08-29T10:04:38.422352+00:00", "kind": "homepage", "missing": false, "url": "https://jssip.net"}, {"content_hash": "13e7a5a8e9a6b67857675c819bb136cc965a40f8f2d0c013001ed189d3661361", "fetched_at": "2026-08-29T10:04:38.431319+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation"}, {"content_hash": "96e55409a665e9d4b65f5a7bec0b704c07382fb3c1bedd82e8766f6f0d247424", "fetched_at": "2026-08-29T10:04:38.433739+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/faq"}, {"content_hash": "89432d397f2e895500a572e3b1d3e11cba3dca7647134213767a130dbbd65fda", "fetched_at": "2026-08-29T10:04:38.435835+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/misc/sip_websocket"}, {"content_hash": "ba5aab12719065daec10baf03ea8483316a9fc697af155d810506864178072e7", "fetched_at": "2026-08-29T10:04:38.437673+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/misc/webrtc"}, {"content_hash": "3b2062cae393aef3dc57e356cb49eca4cfb96f7ae5f734d6fbaf0cb610645306", "fetched_at": "2026-08-29T10:04:38.439437+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/misc/interoperability"}, {"content_hash": "96adbcd5908076e499946639105d8c71460f3b3b20623feab9c03eb718097138", "fetched_at": "2026-08-29T10:04:38.441269+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/overview"}, {"content_hash": "e2ea19f353d905518e6328e84f910ee081a0ef8238ccd533624d1cac830b5aec", "fetched_at": "2026-08-29T10:04:38.442907+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/api"}, {"content_hash": "6ffeae5e1b165c05f440d3ee4ab37f362b8de35b8d977a19104d257499d030e3", "fetched_at": "2026-08-29T10:04:38.444385+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/getting_started"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:21:18.033730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1c1a96953d0c69a6eb36cd00364dd362d5991731481156ee0604301788e5f922", "fetched_at": "2026-08-28T04:07:03.251822+00:00", "kind": "readme", "missing": false, "url": "https://github.com/versatica/JsSIP"}, {"content_hash": "48f6c17b5a133c8ca459d4067c203adc4fdad77245c4ef9e0d425a1dccd85433", "fetched_at": "2026-08-29T10:04:38.422352+00:00", "kind": "homepage", "missing": false, "url": "https://jssip.net"}, {"content_hash": "13e7a5a8e9a6b67857675c819bb136cc965a40f8f2d0c013001ed189d3661361", "fetched_at": "2026-08-29T10:04:38.431319+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation"}, {"content_hash": "96e55409a665e9d4b65f5a7bec0b704c07382fb3c1bedd82e8766f6f0d247424", "fetched_at": "2026-08-29T10:04:38.433739+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/faq"}, {"content_hash": "89432d397f2e895500a572e3b1d3e11cba3dca7647134213767a130dbbd65fda", "fetched_at": "2026-08-29T10:04:38.435835+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/misc/sip_websocket"}, {"content_hash": "ba5aab12719065daec10baf03ea8483316a9fc697af155d810506864178072e7", "fetched_at": "2026-08-29T10:04:38.437673+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/misc/webrtc"}, {"content_hash": "3b2062cae393aef3dc57e356cb49eca4cfb96f7ae5f734d6fbaf0cb610645306", "fetched_at": "2026-08-29T10:04:38.439437+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/misc/interoperability"}, {"content_hash": "96adbcd5908076e499946639105d8c71460f3b3b20623feab9c03eb718097138", "fetched_at": "2026-08-29T10:04:38.441269+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/overview"}, {"content_hash": "e2ea19f353d905518e6328e84f910ee081a0ef8238ccd533624d1cac830b5aec", "fetched_at": "2026-08-29T10:04:38.442907+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/api"}, {"content_hash": "6ffeae5e1b165c05f440d3ee4ab37f362b8de35b8d977a19104d257499d030e3", "fetched_at": "2026-08-29T10:04:38.444385+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/getting_started"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:21:18.033730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1c1a96953d0c69a6eb36cd00364dd362d5991731481156ee0604301788e5f922", "fetched_at": "2026-08-28T04:07:03.251822+00:00", "kind": "readme", "missing": false, "url": "https://github.com/versatica/JsSIP"}, {"content_hash": "48f6c17b5a133c8ca459d4067c203adc4fdad77245c4ef9e0d425a1dccd85433", "fetched_at": "2026-08-29T10:04:38.422352+00:00", "kind": "homepage", "missing": false, "url": "https://jssip.net"}, {"content_hash": "13e7a5a8e9a6b67857675c819bb136cc965a40f8f2d0c013001ed189d3661361", "fetched_at": "2026-08-29T10:04:38.431319+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation"}, {"content_hash": "96e55409a665e9d4b65f5a7bec0b704c07382fb3c1bedd82e8766f6f0d247424", "fetched_at": "2026-08-29T10:04:38.433739+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/faq"}, {"content_hash": "89432d397f2e895500a572e3b1d3e11cba3dca7647134213767a130dbbd65fda", "fetched_at": "2026-08-29T10:04:38.435835+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/misc/sip_websocket"}, {"content_hash": "ba5aab12719065daec10baf03ea8483316a9fc697af155d810506864178072e7", "fetched_at": "2026-08-29T10:04:38.437673+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/misc/webrtc"}, {"content_hash": "3b2062cae393aef3dc57e356cb49eca4cfb96f7ae5f734d6fbaf0cb610645306", "fetched_at": "2026-08-29T10:04:38.439437+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/misc/interoperability"}, {"content_hash": "96adbcd5908076e499946639105d8c71460f3b3b20623feab9c03eb718097138", "fetched_at": "2026-08-29T10:04:38.441269+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/overview"}, {"content_hash": "e2ea19f353d905518e6328e84f910ee081a0ef8238ccd533624d1cac830b5aec", "fetched_at": "2026-08-29T10:04:38.442907+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/api"}, {"content_hash": "6ffeae5e1b165c05f440d3ee4ab37f362b8de35b8d977a19104d257499d030e3", "fetched_at": "2026-08-29T10:04:38.444385+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/getting_started"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:21:18.033730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1c1a96953d0c69a6eb36cd00364dd362d5991731481156ee0604301788e5f922", "fetched_at": "2026-08-28T04:07:03.251822+00:00", "kind": "readme", "missing": false, "url": "https://github.com/versatica/JsSIP"}, {"content_hash": "48f6c17b5a133c8ca459d4067c203adc4fdad77245c4ef9e0d425a1dccd85433", "fetched_at": "2026-08-29T10:04:38.422352+00:00", "kind": "homepage", "missing": false, "url": "https://jssip.net"}, {"content_hash": "13e7a5a8e9a6b67857675c819bb136cc965a40f8f2d0c013001ed189d3661361", "fetched_at": "2026-08-29T10:04:38.431319+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation"}, {"content_hash": "96e55409a665e9d4b65f5a7bec0b704c07382fb3c1bedd82e8766f6f0d247424", "fetched_at": "2026-08-29T10:04:38.433739+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/faq"}, {"content_hash": "89432d397f2e895500a572e3b1d3e11cba3dca7647134213767a130dbbd65fda", "fetched_at": "2026-08-29T10:04:38.435835+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/misc/sip_websocket"}, {"content_hash": "ba5aab12719065daec10baf03ea8483316a9fc697af155d810506864178072e7", "fetched_at": "2026-08-29T10:04:38.437673+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/misc/webrtc"}, {"content_hash": "3b2062cae393aef3dc57e356cb49eca4cfb96f7ae5f734d6fbaf0cb610645306", "fetched_at": "2026-08-29T10:04:38.439437+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/misc/interoperability"}, {"content_hash": "96adbcd5908076e499946639105d8c71460f3b3b20623feab9c03eb718097138", "fetched_at": "2026-08-29T10:04:38.441269+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/overview"}, {"content_hash": "e2ea19f353d905518e6328e84f910ee081a0ef8238ccd533624d1cac830b5aec", "fetched_at": "2026-08-29T10:04:38.442907+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/api"}, {"content_hash": "6ffeae5e1b165c05f440d3ee4ab37f362b8de35b8d977a19104d257499d030e3", "fetched_at": "2026-08-29T10:04:38.444385+00:00", "kind": "site_page", "missing": false, "url": "https://jssip.net/documentation/getting_started"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 81, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5168, "days_push": 119, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 69, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}