@onereach/step-voice 7.0.9-VOIC1575.2 → 7.0.9-VOIC1575.21

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.
@@ -19,6 +19,11 @@ interface INPUT {
19
19
  enableSpoofCallerId?: boolean;
20
20
  spoofCallerId?: string;
21
21
  isAMD?: boolean;
22
+ enableWhisperTransfer?: boolean;
23
+ whisperAnnounceAudio?: TODO[];
24
+ textType?: string;
25
+ whisperCustomerConversation?: string;
26
+ whisperCustomerConversationThread?: string;
22
27
  }
23
28
  export default class InitiateCall extends VoiceStep<INPUT, TODO, CallStartEvent> {
24
29
  get conversation(): string | import("@onereach/flow-sdk/types").IMergeField;
@@ -47,7 +47,7 @@ class InitiateCall extends voice_1.default {
47
47
  this.exitStep('cancel');
48
48
  }
49
49
  async waitForCall() {
50
- const { asr, tts, from: botNumber, endUserNumber, sipHost, sipUser, sipPassword, timeout, headers, enableSpoofCallerId, spoofCallerId, isAMD, otherCallRef, otherCallRefThread, handleCancel } = this.data;
50
+ const { asr, tts, from: botNumber, endUserNumber, sipHost, sipUser, sipPassword, timeout, headers, enableSpoofCallerId, spoofCallerId, isAMD, otherCallRef, otherCallRefThread, handleCancel, enableWhisperTransfer, whisperAnnounceAudio, textType, whisperCustomerConversation, } = this.data;
51
51
  const call = await this.fetchData();
52
52
  this.triggers.once(`in/voice/${call.id}/event`, async (event) => {
53
53
  switch (event.params.type) {
@@ -84,7 +84,7 @@ class InitiateCall extends voice_1.default {
84
84
  reportingSettingsKey: 'transcript',
85
85
  actionFromBot: true
86
86
  });
87
- await this.sendCommands(newCall, [
87
+ const commands = [
88
88
  ...isAMD
89
89
  ? [{
90
90
  name: 'start-avmd',
@@ -100,8 +100,52 @@ class InitiateCall extends voice_1.default {
100
100
  type: asr.serverSettings.engine
101
101
  }
102
102
  }]
103
- : []
104
- ]);
103
+ : [],
104
+ ];
105
+ if (enableWhisperTransfer === true) {
106
+ const ttsSettings = tts.getSettings(call.tts);
107
+ const announceSpeechSections = whisperAnnounceAudio?.map(section => ({
108
+ text: section.voiceTextMsg,
109
+ url: section.audioUrl,
110
+ bargeInVoice: false,
111
+ bargeInKeypad: false,
112
+ textType,
113
+ provider: ttsSettings.provider,
114
+ ...ttsSettings
115
+ }));
116
+ const announceMessageCommand = {
117
+ name: 'speak',
118
+ params: {
119
+ sections: announceSpeechSections,
120
+ reporterTranscriptEventId: '',
121
+ }
122
+ };
123
+ const customerCall = await this.getConversationByName(whisperCustomerConversation ?? '');
124
+ const transferCommand = {
125
+ name: 'whisper.transfer',
126
+ params: {
127
+ aLegId: customerCall['id']
128
+ }
129
+ };
130
+ /* {
131
+ name: 'whisper.hold',
132
+ params: {
133
+ id: callALegId
134
+ }
135
+ }, */
136
+ /* {
137
+ name: 'whisper.hold_off',
138
+ params: {
139
+ id: callALegId
140
+ }
141
+ }, */
142
+ commands.push(...[
143
+ announceMessageCommand,
144
+ transferCommand,
145
+ { name: 'hangup' }
146
+ ]);
147
+ }
148
+ await this.sendCommands(newCall, commands);
105
149
  return this.exitStep('success');
106
150
  }
107
151
  case 'hangup': {
@@ -179,7 +223,7 @@ class InitiateCall extends voice_1.default {
179
223
  timeout: originateTimeout,
180
224
  version: 2,
181
225
  sessionExpireTime: this.session.expireTime,
182
- useWhisperFeature: true
226
+ useWhisperFeature: false
183
227
  };
184
228
  if (otherCallRef) {
185
229
  // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
package/dst/step.d.ts CHANGED
@@ -25,6 +25,7 @@ export default class ConvStep<TData extends IConversationData, TIn = unknown, TO
25
25
  get useQueue(): boolean;
26
26
  fetchData(): Promise<TData>;
27
27
  getConversation(): Promise<IConversation>;
28
+ getConversationByName(conversation: string): Promise<IConversation>;
28
29
  updateData(): Promise<void>;
29
30
  hasConversation(): Promise<boolean>;
30
31
  runBefore(): Promise<void>;
package/dst/step.js CHANGED
@@ -51,6 +51,10 @@ class ConvStep extends step_1.default {
51
51
  async getConversation() {
52
52
  return (await this.fetchData())._conv;
53
53
  }
54
+ async getConversationByName(conversation) {
55
+ const convDataThread = this.process.getSafeThread(this.dataThreadId);
56
+ return await convDataThread.get(conversation);
57
+ }
54
58
  async updateData() {
55
59
  if (this.convDataCache == null)
56
60
  throw new Error(`missing conversation cache in state ${this.state.name}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onereach/step-voice",
3
- "version": "7.0.9-VOIC1575.2",
3
+ "version": "7.0.9-VOIC1575.21",
4
4
  "author": "Roman Zolotarov <roman.zolotarov@onereach.com>",
5
5
  "contributors": [
6
6
  "Roman Zolotarov",