-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathindex.js
More file actions
114 lines (94 loc) · 4.83 KB
/
index.js
File metadata and controls
114 lines (94 loc) · 4.83 KB
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
const addon = require('node-gyp-build')(__dirname);
var events = require('events');
var eventEmitter = new events.EventEmitter();
process.on('SIGINT', function() {
console.log("SIGINT");
var res = addon.shutdown(1)
process.exit(1)
});
addon.event_source = eventEmitter
var timerId = setInterval(() => {
res = addon.do_poll();
if(res) {
//console.log("poll res", res)
var evt
var pos = res.indexOf("\n")
if(pos > 0) {
var json = res.substring(0, pos)
evt = JSON.parse(json)
var msg = res.substring(pos+1)
if(msg != "") {
evt.msg = msg
}
} else {
evt = JSON.parse(res)
}
eventEmitter.emit("event", evt)
}
}, 50)
addon.stop = (clean_up = false) => {
clearInterval(timerId)
var res = addon.shutdown(clean_up ? 1 : 0)
}
addon.transport = {
create: (params) => { return addon.transport_create(JSON.stringify(params)) },
}
addon.account = {
create: (t_id, params) => { return addon.account_create(t_id, JSON.stringify(params)) },
register: (a_id, params) => { return addon.account_register(a_id, JSON.stringify(params ? params : {})) },
unregister: addon.account_unregister,
}
addon.request = {
create: (t_id, params) => { return addon.request_create(t_id, JSON.stringify(params)) },
respond: (r_id, params) => { return addon.request_respond(r_id, JSON.stringify(params)) },
}
addon.call = {
create: (t_id, params) => { return addon.call_create(t_id, JSON.stringify(params)) },
respond: (c_id, params) => { return addon.call_respond(c_id, JSON.stringify(params)) },
terminate: (c_id, params) => { return addon.call_terminate(c_id, JSON.stringify(params ? params : {})) },
send_dtmf: (c_id, params) => { return addon.call_send_dtmf(c_id, JSON.stringify(params)) },
send_bfsk: (c_id, params) => { return addon.call_send_bfsk(c_id, JSON.stringify(params)) },
reinvite: (c_id, params) => { return addon.call_reinvite(c_id, JSON.stringify(params ? params : {})) },
update: (c_id, params) => { return addon.call_update(c_id, JSON.stringify(params ? params : {})) },
send_request: (c_id, params) => { return addon.call_send_request(c_id, JSON.stringify(params)) },
start_record_wav: (c_id, params) => { return addon.call_start_record_wav(c_id, JSON.stringify(params)) },
start_play_wav: (c_id, params) => { return addon.call_start_play_wav(c_id, JSON.stringify(params)) },
stop_record_wav: (c_id, params) => { return addon.call_stop_record_wav(c_id, JSON.stringify(params ? params : {})) },
stop_play_wav: (c_id, params) => { return addon.call_stop_play_wav(c_id, JSON.stringify(params ? params : {})) },
start_fax: (c_id, params) => { return addon.call_start_fax(c_id, JSON.stringify(params)) },
stop_fax: (c_id, params) => { return addon.call_stop_fax(c_id, JSON.stringify(params ? params : {})) },
start_speech_synth: (c_id, params) => { return addon.call_start_speech_synth(c_id, JSON.stringify(params)) },
stop_speech_synth: (c_id, params) => { return addon.call_stop_speech_synth(c_id, JSON.stringify(params ? params : {})) },
start_inband_dtmf_detection: (c_id, params) => { return addon.call_start_inband_dtmf_detection(c_id, JSON.stringify(params ? params : {})) },
stop_inband_dtmf_detection: (c_id, params) => { return addon.call_stop_inband_dtmf_detection(c_id, JSON.stringify(params ? params : {})) },
start_bfsk_detection: (c_id, params) => { return addon.call_start_bfsk_detection(c_id, JSON.stringify(params ? params : {})) },
stop_bfsk_dtmf_detection: (c_id, params) => { return addon.call_stop_bfsk_detection(c_id, JSON.stringify(params ? params : {})) },
start_speech_recog: (c_id, params) => {
var ps = {}
if(params) {
ps = {...params}
}
if(ps.model_path) {
process.env.POCKETSPHINX_PATH = ps.model_path
delete ps.model_path
} else {
process.env.POCKETSPHINX_PATH = __dirname + "/pocketsphinx/model"
}
return addon.call_start_speech_recog(c_id, JSON.stringify(ps))
},
stop_speech_recog: (c_id, params) => { return addon.call_stop_speech_recog(c_id, JSON.stringify(params ? params : {})) },
get_stream_stat: (c_id, params) => { return addon.call_get_stream_stat(c_id, JSON.stringify(params ? params : {})) },
//refer: (c_id, params) => { return addon.call_refer(c_id, JSON.stringify(params)) },
get_info: addon.call_get_info,
gen_string_replaces: addon.call_gen_string_replaces,
send_mrcp_msg: (c_id, params) => { return addon.call_send_tcp_msg(c_id, JSON.stringify(params ? params : {})) },
}
addon.subscriber = {
notify: (s_id, params) => { return addon.notify(s_id, JSON.stringify(params)) },
notify_xfer: (s_id, params) => { return addon.notify_xfer(s_id, JSON.stringify(params)) },
}
addon.subscription = {
create: (t_id, params) => { return addon.subscription_create(t_id, JSON.stringify(params)) },
subscribe: (s_id, params) => { return addon.subscription_subscribe(s_id, JSON.stringify(params)) },
}
module.exports = addon;