Node.js VOIP Library
npm install node.js-sipbash
npm install node.js-sip
`
Getting Started
$3
Here's a quick example to demonstrate how to set up a client and make a SIP call.
`javascript
const VOIP = require('node.js-sip');
const voipClient = new VOIP({
type: 'client',
transport: {
type: 'UDP',
port: 5060,
},
username: '1000',
register_password: 'yourPassword',
register_ip: '192.168.1.2',
register_port: 5060,
}, (response) => {
if (response.type === 'REGISTERED') {
console.log('Successfully registered with the SIP server.');
v.call({
to:'14444444444',
ip:'192.168.1.12',
port:'5060',
callId:'1234567890',
username:'1001',
client_callback:(m) => {
console.log(client_callback)
console.log(m)
}
})
}
});
`
$3
`javascript
//Nik Hendricks 10/13/23
const SIP = require('../SIP')
const VOIP = require('../')
const USERS = {
'1000':{
password:'rootPassword',
name:'test testerson',
ip:undefined,
port:undefined,
registered:false,
call_id:undefined,
extension: '1000'
},
'1001':{
password:'rootPassword',
name:'Bill Billerson',
ip:undefined,
port:undefined,
registered:false,
call_id:undefined,
extension: '1001'
}
}
var server = new VOIP({
type:'server',
transport:{
type: 'UDP',
port: 5060,
},
},
(d) => {
if(d.type == 'UAS_READY'){
}else if(d.message !== undefined){
let parsed_headers = SIP.Parser.ParseHeaders(d.message.headers);
if(d.type == 'REGISTER'){
server.uas_handle_registration(d.message, USERS, (response) => {
console.log('response')
console.log(response)
})
}else if(d.type == 'INVITE'){
server.uas_handle_invite(d.message, USERS, (response) => {
console.log('response')
console.log(response)
})
}
}
})
server.TrunkManager.addTrunk({
name:'trunk1',
type:'SIP',
username:'1001',
password:'rootPassword',
ip:'192.168.1.2',
port:5060,
callId:'1234567890'
})
server.Router.addRoute({
name: 'Main Trunk Route',
type: 'trunk',
match: '^[0-9]{11}$',
endpoint: 'trunk:trunk1', //will decide if i want the prefix or to use the type property
})
setTimeout(() => {
server.TrunkManager.trunks['trunk1'].register();
}, 1000)
`
API Reference
$3
#### new VOIP(props, callback)
- props: Configuration object for the VOIP instance.
- type: 'client' or 'server'.
- transport: Transport configuration.
- type: 'UDP' (currently supported).
- ip: Local IP address for the transport.
- port: Port for the transport.
- username: SIP username (for client).
- register_password: SIP password (for client).
- register_ip: Registrar IP (for client).
- register_port: Registrar port (default: 5060).
- callback(response): Callback invoked on significant events.
$3
#### call(props)
Initiates a SIP call.
- props: Call properties.
- to: Destination phone number.
- ip: Destination IP address.
- port: Destination port.
- callId: Call ID.
- username: SIP username.
- client_callback: Callback for client events.
#### accept(message)
Accepts an incoming SIP INVITE message.
#### reject(message)
Rejects an incoming SIP INVITE message.
#### bye(message)
Terminates an ongoing call.
#### message(extension, body)
Sends a SIP MESSAGE to the specified extension.
- extension: The SIP extension to message.
- body`: The message body.