@onereach/step-voice 1.2202.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const voice_1 = (0, tslib_1.__importDefault)(require("./voice"));
5
+ const _ = require('lodash');
6
+ class RequestVoiceRecordingInput extends voice_1.default {
7
+ async runStep() {
8
+ /** @type {import('./voice').IVoiceChannel} */
9
+ const channel = await this.fetchData();
10
+ const { tts, sensitiveData, textType } = this.data;
11
+ const ttsSettings = tts.getSettings(channel.tts);
12
+ const sections = this.buildSections({ sections: this.data.audio, textType, ttsSettings });
13
+ sections.push({
14
+ // TODO make this configurable?
15
+ url: 'https://bot-service-recordings.s3.us-west-2.amazonaws.com/beep_sound.wav',
16
+ bargeInVoice: false,
17
+ bargeInKeypad: false
18
+ });
19
+ const command = {
20
+ name: 'start-record',
21
+ params: {
22
+ terminator: this.data.terminationKey,
23
+ duration: parseInt(this.data.recordDurationSeconds),
24
+ global: channel.global,
25
+ sections
26
+ }
27
+ };
28
+ return this.triggers
29
+ .once(`in/voice/${channel.id}/event`, async (event) => {
30
+ const url = event.params.mediaPath;
31
+ switch (event.params.type) {
32
+ case 'hangup':
33
+ // TODO do we need zombie?
34
+ this.state.zombie = true;
35
+ await this.handleHangup(channel);
36
+ return this.exitFlow();
37
+ case 'record':
38
+ if (channel.recordCall && sensitiveData) {
39
+ await this.sendCommands(channel, [{ name: 'record-session' }]);
40
+ }
41
+ if (url) {
42
+ await this.transcript(channel, {
43
+ message: 'Voicemail',
44
+ reportingSettingsKey: 'transcriptRecording',
45
+ recording: url,
46
+ action: 'Call Recording',
47
+ actionFromBot: false
48
+ });
49
+ // TODO do we need zombie?
50
+ this.event.params.zombie = this.state.zombie;
51
+ // TODO figure out Global Command compatibility
52
+ _.unset(this.state.hooks, 'skipVoiceEventTypes');
53
+ return this.exitStep('success', url);
54
+ }
55
+ else {
56
+ // TODO What happens with reporting here?
57
+ this.log.warn('Event params', event.params);
58
+ throw new Error(_.get(event, ['params', 'error', 'message']) || 'Cannot finalize recording');
59
+ }
60
+ case 'error':
61
+ return this.exitStep('error', {
62
+ name: event.params.error.name,
63
+ message: event.params.error.message
64
+ });
65
+ default:
66
+ return this.exitFlow();
67
+ }
68
+ })
69
+ .otherwise(async () => {
70
+ // TODO figure out Global Command compatibility
71
+ _.set(this.state.hooks, 'skipVoiceEventTypes', ['hangup']);
72
+ await this.transcript(channel, {
73
+ sections,
74
+ reportingSettingsKey: 'transcriptPrompt',
75
+ action: 'Call Prompt',
76
+ actionFromBot: true
77
+ });
78
+ if (channel.recordCall && sensitiveData) {
79
+ await this.sendCommands(channel, [{ name: 'stop-record-session' }]);
80
+ }
81
+ await this.sendCommands(channel, [command]);
82
+ return this.exitFlow();
83
+ });
84
+ }
85
+ }
86
+ exports.default = RequestVoiceRecordingInput;
87
+ //# sourceMappingURL=Voice%20Recording.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Voice Recording.js","sourceRoot":"","sources":["../src/Voice Recording.js"],"names":[],"mappings":"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"}
package/dst/voice.d.ts ADDED
@@ -0,0 +1,38 @@
1
+ import { ICallback, IVoiceReporterTranscriptEventArgs, IPromtpSection } from '@onereach/flow-sdk/dst/types';
2
+ import ConvStep from '@onereach/step-conversation/dst/step';
3
+ export interface IVoiceChannel {
4
+ id: string;
5
+ hangup: boolean;
6
+ endUserNumber: string;
7
+ botNumber: string;
8
+ lastTranscriptId: string;
9
+ type: string;
10
+ callback: ICallback;
11
+ global?: any;
12
+ recordCall?: boolean;
13
+ asr?: any;
14
+ tts?: any;
15
+ sessionEndedBy?: string;
16
+ }
17
+ export default class VoiceStep extends ConvStep {
18
+ get conversation(): string;
19
+ sendCommands({ id, type, callback }: IVoiceChannel, commands: any[]): Promise<any>;
20
+ extractSectionMessages(sections: IPromtpSection[]): string;
21
+ extractSectionFiles(sections: IPromtpSection[]): Array<{
22
+ fileUrl: string;
23
+ fileType: string;
24
+ }>;
25
+ transcript(channel: IVoiceChannel, data?: Partial<IVoiceReporterTranscriptEventArgs>): Promise<string>;
26
+ handleHangup(channel: IVoiceChannel): Promise<void>;
27
+ buildSections({ sections, textType, ttsSettings, allowKeypadBargeIn }: any): any;
28
+ buildReprompts({ prompts, allowKeypadBargeIn }: any): any;
29
+ buildChoices({ choices }: any): any;
30
+ buildChoice(choice: any): any;
31
+ exitChoiceData(type: string, params?: any): any;
32
+ rptsSend(channel: IVoiceChannel, { command, reporting, repromptsList, noReplyDelay, speechSections, textType, ttsSettings }: any): Promise<void>;
33
+ rptsTimeout({ noReplyDelay, repromptsList }: any): number;
34
+ rptsRestart(): void;
35
+ rptsHasMore({ repromptsList }: any): boolean;
36
+ get rptsIndex(): number;
37
+ get rptsStarted(): boolean;
38
+ }
package/dst/voice.js ADDED
@@ -0,0 +1,228 @@
1
+ "use strict";
2
+ /* eslint-disable @typescript-eslint/strict-boolean-expressions */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const tslib_1 = require("tslib");
5
+ const lodash_1 = (0, tslib_1.__importDefault)(require("lodash"));
6
+ const types_1 = require("@onereach/flow-sdk/dst/types");
7
+ const uuid_1 = require("uuid");
8
+ const step_1 = (0, tslib_1.__importDefault)(require("@onereach/step-conversation/dst/step"));
9
+ class VoiceStep extends step_1.default {
10
+ get conversation() {
11
+ return this.data.conversation;
12
+ }
13
+ async sendCommands({ id, type, callback }, commands) {
14
+ if (lodash_1.default.isEmpty(commands))
15
+ return;
16
+ return this.thread.eventManager.emit({
17
+ target: 'provider',
18
+ name: `out/voice/${type}`,
19
+ params: {
20
+ id,
21
+ commands
22
+ },
23
+ reporting: this.session.getSessionRef()
24
+ }, {
25
+ target: callback,
26
+ invocationType: types_1.INVOCATION_TYPE.ASYNC,
27
+ timeout: 5000
28
+ });
29
+ }
30
+ extractSectionMessages(sections) {
31
+ return lodash_1.default.chain(sections)
32
+ .filter(s => Boolean(s.text))
33
+ .map(s => {
34
+ // Should escape html, max length 4000 symbols
35
+ return s.text?.slice(0, 4000).replace(/(<[^>]+>|<\/[^>]+>)/gi, ' ');
36
+ })
37
+ .join(' ')
38
+ .value();
39
+ }
40
+ extractSectionFiles(sections) {
41
+ return lodash_1.default.chain(sections)
42
+ .filter(s => Boolean(s.url))
43
+ .map(s => ({
44
+ fileUrl: s.url ?? '',
45
+ fileType: 'Audio'
46
+ }))
47
+ .value();
48
+ }
49
+ async transcript(channel, data = {}) {
50
+ const { previousTranscriptId = channel.lastTranscriptId, action, keyPress, message, voiceProcessResult, reportingSettingsKey, sections, reprompt, recording, conferenceId, actionFromBot } = data;
51
+ const eventId = (0, uuid_1.v4)();
52
+ const reportingObject = {
53
+ botIdentifier: channel.botNumber,
54
+ channel: 'Phone',
55
+ fromIdentifier: actionFromBot ? channel.botNumber : channel.endUserNumber,
56
+ toIdentifier: actionFromBot ? channel.endUserNumber : channel.botNumber,
57
+ reportingSettingsKey,
58
+ conversationId: channel.id,
59
+ previousTranscriptId,
60
+ reprompt,
61
+ recording,
62
+ conferenceId,
63
+ action,
64
+ eventId
65
+ };
66
+ if (sections != null) {
67
+ const allMessages = this.extractSectionMessages(sections);
68
+ const allFiles = this.extractSectionFiles(sections);
69
+ if (!lodash_1.default.isEmpty(allMessages))
70
+ reportingObject.message = allMessages;
71
+ if (!lodash_1.default.isEmpty(allFiles))
72
+ reportingObject.media = allFiles;
73
+ }
74
+ // message might be : 'test:weight|anotherText:weight', we need only 'test'
75
+ if (message) {
76
+ reportingObject.message = lodash_1.default.chain([data.message])
77
+ .split('|')
78
+ .head()
79
+ .split(':')
80
+ .head()
81
+ .value();
82
+ }
83
+ if (keyPress)
84
+ reportingObject.keyPress = keyPress;
85
+ else if (voiceProcessResult)
86
+ reportingObject.voiceProcessResult = voiceProcessResult;
87
+ await this.reporter.reportTranscriptEvent(reportingObject);
88
+ channel.lastTranscriptId = eventId;
89
+ return eventId;
90
+ }
91
+ async handleHangup(channel) {
92
+ if (channel.hangup)
93
+ return;
94
+ await this.transcript(channel, {
95
+ action: 'Call End',
96
+ reportingSettingsKey: 'transcript',
97
+ actionFromBot: false
98
+ });
99
+ channel.hangup = true;
100
+ await this.updateData();
101
+ }
102
+ buildSections({ sections, textType, ttsSettings, allowKeypadBargeIn }) {
103
+ return lodash_1.default.map(sections, section => ({
104
+ text: section.voiceTextMsg,
105
+ url: section.audioUrl,
106
+ textType,
107
+ bargeInVoice: section.allowVoiceBargeIn,
108
+ bargeInKeypad: section.allowKeypadBargeIn || allowKeypadBargeIn,
109
+ ...ttsSettings
110
+ }));
111
+ }
112
+ buildReprompts({ prompts, allowKeypadBargeIn }) {
113
+ return lodash_1.default.map(prompts, prompt => ({
114
+ time: prompt.time,
115
+ message: prompt.item.message,
116
+ repeatMsg: prompt.item.repeat,
117
+ fileName: prompt.item.audioUrl || '',
118
+ allowVoiceBargeIn: prompt.item.allowVoiceBargeIn,
119
+ allowKeypadBargeIn: prompt.item.allowKeypadBargeIn || allowKeypadBargeIn
120
+ }));
121
+ }
122
+ buildChoices({ choices }) {
123
+ return lodash_1.default.map(choices, (choice) => ({
124
+ exitId: choice.exitId,
125
+ dtmf: choice.dtmf,
126
+ grxml: choice.grammar?.grxmlValue,
127
+ options: this.buildChoice(choice)
128
+ }));
129
+ }
130
+ buildChoice(choice) {
131
+ if (choice.grammar && choice.grxmlValue) {
132
+ throw new Error('grxml is not supported');
133
+ }
134
+ let parts;
135
+ if (choice.grammar?.value) {
136
+ parts = choice.grammar.value;
137
+ }
138
+ else {
139
+ parts = lodash_1.default.chain(choice.text).split(/\s*,\s*/);
140
+ }
141
+ parts = lodash_1.default.chain(parts).map(lodash_1.default.trim).compact().value();
142
+ return lodash_1.default.chain(parts)
143
+ .map((text) => lodash_1.default.split(text, ':'))
144
+ .map(([text, weight]) => ({
145
+ text: lodash_1.default.trim(text),
146
+ weight: lodash_1.default.trim(weight) || 1
147
+ }))
148
+ .value();
149
+ }
150
+ exitChoiceData(type, params = {}) {
151
+ const digit = params.digit || params.digits;
152
+ const data = {
153
+ type
154
+ };
155
+ if (!lodash_1.default.isEmpty(params.tags)) {
156
+ data.tags = params.tags;
157
+ }
158
+ if (!lodash_1.default.isEmpty(params.out)) {
159
+ data.out = params.out;
160
+ }
161
+ if (!lodash_1.default.isEmpty(digit)) {
162
+ data.digit = digit;
163
+ data.value = digit;
164
+ }
165
+ if (!lodash_1.default.isEmpty(params.phrases)) {
166
+ const phrases = params.phrases;
167
+ data.value = phrases[0].text;
168
+ data.interpretation = phrases;
169
+ }
170
+ return data;
171
+ }
172
+ ;
173
+ async rptsSend(channel, { command, reporting, repromptsList, noReplyDelay, speechSections, textType, ttsSettings }) {
174
+ const index = this.rptsIndex;
175
+ const current = repromptsList[index];
176
+ const params = command.params;
177
+ const repromptSection = {
178
+ textType,
179
+ url: current.fileName,
180
+ text: current.message,
181
+ bargeInVoice: current.allowVoiceBargeIn,
182
+ bargeInKeypad: current.allowKeypadBargeIn,
183
+ ...ttsSettings
184
+ };
185
+ if (repromptSection.text || repromptSection.url) {
186
+ params.sections.push(repromptSection);
187
+ }
188
+ if (current.repeatMsg) {
189
+ params.sections.push(...speechSections);
190
+ }
191
+ this.state.repIdx = index + 1;
192
+ params.timeout = this.rptsTimeout({ noReplyDelay, repromptsList });
193
+ const reportingObject = {
194
+ sections: command.params.sections,
195
+ reprompt: {
196
+ maxAttempts: repromptsList.length,
197
+ attempt: index
198
+ },
199
+ action: 'Call Prompt',
200
+ reportingSettingsKey: 'transcriptReprompt',
201
+ actionFromBot: true
202
+ };
203
+ if (reporting) {
204
+ lodash_1.default.assign(reportingObject, reporting);
205
+ }
206
+ await this.transcript(channel, reportingObject);
207
+ await this.sendCommands(channel, [command]);
208
+ }
209
+ rptsTimeout({ noReplyDelay, repromptsList }) {
210
+ const current = repromptsList[this.rptsIndex];
211
+ return Number(lodash_1.default.get(current, 'time', noReplyDelay)) * 1000 || 60000;
212
+ }
213
+ rptsRestart() {
214
+ this.state.repIdx = undefined;
215
+ }
216
+ rptsHasMore({ repromptsList }) {
217
+ return this.rptsIndex <= repromptsList.length;
218
+ }
219
+ get rptsIndex() {
220
+ return this.state.repIdx ?? 0;
221
+ }
222
+ get rptsStarted() {
223
+ return this.rptsIndex !== 0;
224
+ }
225
+ }
226
+ exports.default = VoiceStep;
227
+ module.exports = VoiceStep;
228
+ //# sourceMappingURL=voice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice.js","sourceRoot":"","sources":["../src/voice.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,73 @@
1
+ {
2
+ "name": "@onereach/step-voice",
3
+ "version": "1.2202.1",
4
+ "author": "Roman Zolotarov <roman.zolotarov@onereach.com>",
5
+ "contributors": [
6
+ "Roman Zolotarov",
7
+ "Andrey Agapov"
8
+ ],
9
+ "description": "Onereach.ai Voice Steps",
10
+ "main": "index.js",
11
+ "engines": {
12
+ "node": ">= 8.9.0",
13
+ "npm": ">= 6.0.0"
14
+ },
15
+ "dependencies": {
16
+ "@onereach/step-conversation": "^1.0.4",
17
+ "lodash": "^4.17.21",
18
+ "uuid": "^8.3.2"
19
+ },
20
+ "devDependencies": {
21
+ "@onereach/flow-sdk": "^2.7.62",
22
+ "@swc/cli": "^0.1.55",
23
+ "@swc/core": "^1.2.139",
24
+ "@swc/jest": "^0.2.17",
25
+ "@types/jest": "^27.4.0",
26
+ "@types/lodash": "^4.14.178",
27
+ "@types/uuid": "^8.3.4",
28
+ "aws-sdk": "^2.1073.0",
29
+ "babel-runtime": "^6.26.0",
30
+ "docdash": "^1.2.0",
31
+ "husky": "^7.0.4",
32
+ "jest": "^27.5.1",
33
+ "pinst": "^2.1.6",
34
+ "ts-standard": "^11.0.0",
35
+ "typescript": "^4.5.5"
36
+ },
37
+ "files": [
38
+ "/dst"
39
+ ],
40
+ "scripts": {
41
+ "clean": "rm -rf dst",
42
+ "build": "npm run clean && tsc -p ./tsconfig.build.json",
43
+ "build-fast": "npm run clean && swc ./src -d ./dst",
44
+ "deploy": "sh scripts/deploy.sh",
45
+ "download-prod": "sh scripts/download.sh prod",
46
+ "download-dev": "sh scripts/download.sh dev",
47
+ "upload-prod": "sh scripts/upload.sh prod",
48
+ "upload-dev": "sh scripts/upload.sh dev"
49
+ },
50
+ "repository": {
51
+ "type": "git",
52
+ "url": "git@gitlab.com:onereach/voice/voice-steps.git"
53
+ },
54
+ "keywords": [
55
+ "onereach",
56
+ "ai",
57
+ "voice",
58
+ "steps"
59
+ ],
60
+ "standard-engine": {
61
+ "name": "ts-standard"
62
+ },
63
+ "ts-standard": {
64
+ "env": [
65
+ "node",
66
+ "jest"
67
+ ],
68
+ "ignore": [
69
+ "dst",
70
+ "node_modules"
71
+ ]
72
+ }
73
+ }