https://github.com/neki-dev/sip-gateway
📟 Simple gateway server for SIP via WebSocket
https://github.com/neki-dev/sip-gateway
gateway server sip websocket
Last synced: 11 months ago
JSON representation
📟 Simple gateway server for SIP via WebSocket
- Host: GitHub
- URL: https://github.com/neki-dev/sip-gateway
- Owner: neki-dev
- License: mit
- Created: 2019-09-17T09:05:55.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2025-01-02T18:00:00.000Z (about 1 year ago)
- Last Synced: 2025-03-16T16:11:34.508Z (11 months ago)
- Topics: gateway, server, sip, websocket
- Language: JavaScript
- Homepage:
- Size: 67.4 KB
- Stars: 6
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## 📟 SIP gateway
[](https://npmjs.com/package/sip-gateway)
[](https://github.com/neki-dev/sip-gateway/blob/master/src/index.js)
Simple gateway server for SIP via WebSocket
.
* ### Install
```sh
npm i sip-gateway
```
* ### Configuration
| Parameter | Type | Default | Description |
| --- | --- | --- | --- |
| port | number | - | Port of gateway server |
| host | string | (localhost) | Host of gateway server |
| portSIP | number | 5060 | Port of SIP server |
| hostSIP | string | (autodetect) | Host of SIP server |
| ssl | Object | - | Using SSL |
| ssl.cert | string | - | Path to .crt file |
| ssl.key | string | - | Path to .key file |
| timeout | number | 60000 | Connection timeout |
| maxListeners | number | - | Max listeners |
| onListen | function | - | Callback for listen event |
| onSend | function | - | Callback for send event |
| onReceive | function | - | Callback for receive event |
* ### Events
| Name | Parameters | Description |
| --- | --- | --- |
| connect | socket | New socket connection |
| disconnect | socket | Socket disconnection |
| streamCreate | stream | Create stream |
| streamDestroy | stream | Destroy stream |
| transferData | data, stream | Transfer stream data |
* ### Usage
```js
const sipGateway = require('sip-gateway');
sipGateway.start({
// Configuration
});
```
* ### Example
```js
const sipGateway = require('sip-gateway');
sipGateway.start({
port: 3000,
portSIP: 5061,
ssl: {
cert: '/root/ssl/test.crt',
key: '/root/ssl/test.key',
},
onSend: (data, stream) => {
if (!someFunctionForCheckData(data)) {
// Return false for stop send (if needed)
return false;
}
},
onReceive: (data, stream) => {
if (!someFunctionForCheckData(data)) {
// Return false for stop receive (if needed)
return false;
}
},
onListen: (socket) => {
console.log('Listening on wss://127.0.0.1:3000');
},
});
```
```js
sipGateway.on('connect', (socket) => {
console.log('Add socket', socket);
});
sipGateway.on('disconnect', (socket) => {
console.log('Remove socket', socket);
});
sipGateway.on('streamCreate', (stream) => {
console.log('Add stream', stream);
});
sipGateway.on('streamDestroy', (stream) => {
console.log('Remove stream', stream);
});
sipGateway.on('transferData', (data, stream) => {
console.log('Message:', data);
});
```