-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
38 lines (32 loc) · 934 Bytes
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import SipClient from './sip-client.js';
import MqttClient from "mqtt";
import config from './config.js';
const sipClient = new SipClient({
port: config.sipPort,
bind: config.sipBind,
host: config.sipServer,
user: config. sipUser,
pass: config.sipPass,
telnum: config. telNum,
localhost: config.localHost
});
const mqtt = MqttClient.connect(config.mqttUri);
function notify(num, dialog) {
let outstate = 'terminated';
const numdialog = dialog.length;
for (let i = 0; i < dialog.length; i++) {
let state = dialog[i].state[0];
if (typeof state === 'string') {
outstate = state;
}
}
console.log(num, 'status is', outstate);
mqtt.publish('sipstatus/'+num, outstate, {retain: true}, (err) => {
console.error(err);
});
}
await sipClient.start();
// Example: Make a call
for (var i = 0; i < config.extensions.length; i++) {
await sipClient.subscribe(config.extensions[i], notify);
}