Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save anovikov1984/b6419cfbb8f505dbb970d6901d30b76e to your computer and use it in GitHub Desktop.
Save anovikov1984/b6419cfbb8f505dbb970d6901d30b76e to your computer and use it in GitHub Desktop.
A telephony to JSSIP gateway.
A Node.js based server serving a single HTTPS web page that provides bidirectional web calling (audio only). A single HTTP parameter to the page (id) identifies the user.
There is no authentication or storage for user accounts. User may open a page with any non-negative, numerical id, a user opening a page with negative, duplicating (two identical at same time), or non-numerical id MAY result in unspecified behavior.
Javascript in page MUST be compatible with the reasonably recent Google Chrome browser. Need not be compatible with any other browser.
HTTPS certificate for the page MAY be stored locally as part of delivery, provision or maintenance of certificate is not a part of scope. Just one received manually from letseencrypt is acceptable.
When a page with a given ID is opened somewhere by the user, say
```https://example.com?id=1001```
an instruction shall be provided of how to connect to that page from an external SIP client (SHOULD be compatible with Linphone 4.1.1 for Windows and macos) but MAY be some other one provided it's free and available for Windows and macos, and reasonably well-known - not a custom/narrow circulation binary)
duplicate calls (calls from two Linphones on different computers to same id) should result in BUSY signal for the second caller.
calls to nonexistent extensions (for which no web page is open anywhere) should result in call failure.
simulateous calls from two SIP clients to two pages with different id-s, should work.
an account should be set up with some SIP trunk provider, so the aforementioned calling sequence can be done from a landline phone.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment