Compare commits

..

4 Commits

Author SHA1 Message Date
Dave Horton
4a9854b942 add support for disconnect verb on bi-directional listen 2021-07-31 12:57:34 -04:00
Dave Horton
551037f8db lib/tasks/listen.js 2021-07-30 10:56:24 -04:00
Dave Horton
02f5efba48 bugfix: message + LICENSE 2021-07-21 12:37:23 -04:00
Dave Horton
99a6ffe56b update to db-helpers@0.6.12 to get smpp info 2021-07-06 15:25:28 -04:00
5 changed files with 38 additions and 11 deletions

View File

@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2019 jambonz
Copyright (c) 2021 Drachtio Communications Services, LLC
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@@ -122,6 +122,11 @@ class TaskListen extends Task {
if (this.finishOnKey || this.passDtmf) {
ep.on('dtmf', this._dtmfHandler);
}
/* support bi-directional audio */
ep.addCustomEventListener(ListenEvents.PlayAudio, this._onPlayAudio.bind(this, ep));
ep.addCustomEventListener(ListenEvents.KillAudio, this._onKillAudio.bind(this, ep));
ep.addCustomEventListener(ListenEvents.Disconnect, this._onDisconnect.bind(this, ep));
}
_removeListeners(ep) {
@@ -154,6 +159,29 @@ class TaskListen extends Task {
this.logger.info(evt, 'TaskListen:_onConnectFailure');
this.notifyTaskDone();
}
async _onPlayAudio(ep, evt) {
this.logger.info(`received play_audio event: ${JSON.stringify(evt)}`);
try {
const results = await ep.play(evt.file);
this.logger.debug(`Finished playing file, result: ${JSON.stringify(results)}`);
ep.forkAudioSendText({type: 'playDone', data: Object.assign({id: evt.id}, results)});
}
catch (err) {
this.logger.error({err}, 'Error playing file');
}
}
_onKillAudio(ep) {
this.logger.info('received kill_audio event');
ep.api('uuid_break', ep.uuid);
}
_onDisconnect(ep, cs) {
this.logger.debug('_onDisconnect: TaskListen terminating task');
this.kill(cs);
}
_onError(ep, evt) {
this.logger.info(evt, 'TaskListen:_onError');
this.notifyTaskDone();

View File

@@ -37,8 +37,7 @@ class TaskMessage extends Task {
const r = await lookupSmppGateways(accountSid);
let gw, url, relativeUrl;
if (r.length > 0) {
if (this.payload.provider) gw = r.find((o) => o.vc.name === this.payload.provider);
else gw = r[0];
gw = r.find((o) => 1 === o.sg.outbound && (!this.payload.provider || o.vc.name === this.payload.provider));
}
if (gw) {
this.logger.info({gw, accountSid}, 'Message:exec - using smpp to send message');

14
package-lock.json generated
View File

@@ -8,7 +8,7 @@
"version": "0.3.1",
"license": "MIT",
"dependencies": {
"@jambonz/db-helpers": "^0.6.4",
"@jambonz/db-helpers": "^0.6.13",
"@jambonz/mw-registrar": "^0.2.1",
"@jambonz/realtimedb-helpers": "^0.4.1",
"@jambonz/stats-collector": "^0.1.5",
@@ -376,9 +376,9 @@
}
},
"node_modules/@jambonz/db-helpers": {
"version": "0.6.4",
"resolved": "https://registry.npmjs.org/@jambonz/db-helpers/-/db-helpers-0.6.4.tgz",
"integrity": "sha512-cgDFshQIS8hFEeE1IvQXAsMBerdnB7tkHAbOMMuGz8z9rmRMqOZRfJ48199h/+Yi2sJzNIi/jS3iwE+o6PxIIg==",
"version": "0.6.13",
"resolved": "https://registry.npmjs.org/@jambonz/db-helpers/-/db-helpers-0.6.13.tgz",
"integrity": "sha512-7VXb1q8Jii76XFYMyIjsLr33w5s1DFUN1fjtU+r5PpZQuM7YXhVHfOW3q0652RMrEP2vqW2h6cpBNclvLPJzjg==",
"dependencies": {
"cidr-matcher": "^2.1.1",
"debug": "^4.3.1",
@@ -5046,9 +5046,9 @@
"dev": true
},
"@jambonz/db-helpers": {
"version": "0.6.4",
"resolved": "https://registry.npmjs.org/@jambonz/db-helpers/-/db-helpers-0.6.4.tgz",
"integrity": "sha512-cgDFshQIS8hFEeE1IvQXAsMBerdnB7tkHAbOMMuGz8z9rmRMqOZRfJ48199h/+Yi2sJzNIi/jS3iwE+o6PxIIg==",
"version": "0.6.13",
"resolved": "https://registry.npmjs.org/@jambonz/db-helpers/-/db-helpers-0.6.13.tgz",
"integrity": "sha512-7VXb1q8Jii76XFYMyIjsLr33w5s1DFUN1fjtU+r5PpZQuM7YXhVHfOW3q0652RMrEP2vqW2h6cpBNclvLPJzjg==",
"requires": {
"cidr-matcher": "^2.1.1",
"debug": "^4.3.1",

View File

@@ -26,7 +26,7 @@
"jslint": "eslint app.js lib"
},
"dependencies": {
"@jambonz/db-helpers": "^0.6.4",
"@jambonz/db-helpers": "^0.6.13",
"@jambonz/mw-registrar": "^0.2.1",
"@jambonz/realtimedb-helpers": "^0.4.1",
"@jambonz/stats-collector": "^0.1.5",