Compare commits

...

26 Commits

Author SHA1 Message Date
Dave Horton
203b8600a8 0.0.46 2023-11-14 08:31:08 -05:00
Dave Horton
b877ca52d0 add target.proxy to dial verb (#35) 2023-11-14 08:30:41 -05:00
Anton Voylenko
cdb671d25d sipRequestWithinDialogHook support (#34) 2023-11-14 08:27:33 -05:00
Dave Horton
6ae0aff8b1 0.0.45 2023-11-01 07:57:29 -04:00
Hoan Luu Huu
9a2a22dd88 feat assemblyAi (#33) 2023-11-01 07:56:52 -04:00
Dave Horton
369583d536 minor readme typo 2023-10-30 13:48:08 -04:00
Dave Horton
77d203ca80 0.0.44 2023-10-30 12:49:54 -04:00
Dave Horton
9cb550f49e fix prev commit 2023-10-30 12:49:35 -04:00
Dave Horton
de88976293 0.0.43 2023-10-30 11:15:49 -04:00
Dave Horton
60efb4b9af add recognizer.azureOptions.speechSegmentationSilenceTimeoutMs (to support https://github.com/jambonz/jambonz-feature-server/issues/508) (#31) 2023-10-30 11:15:18 -04:00
Dave Horton
49ac048477 0.0.42 2023-10-29 21:38:28 -04:00
Hoan Luu Huu
e653a62c49 feat google custom voice (#30) 2023-10-29 21:37:49 -04:00
Dave Horton
f41aae81c6 0.0.41 2023-10-27 15:19:12 -04:00
Dave Horton
5707f7d4d4 remove properties with undefined values before validation: the SttTask superclass of gather and transcribe creates them for label and callbackVendor 2023-10-27 15:18:58 -04:00
Dave Horton
f75871dc46 0.0.40 2023-10-27 10:23:39 -04:00
Dave Horton
98fa56bd3d add deepgramOptions.shortUtterance - triggers transcript based on is_final not speech_final 2023-10-27 10:23:31 -04:00
Dave Horton
e1b9abef9e 0.0.39 2023-10-26 13:54:19 -04:00
Dave Horton
22b118534b add deepgramOptions.utteranceEndMs 2023-10-26 13:54:10 -04:00
Dave Horton
733a4760fe 0.0.38 2023-10-25 10:09:21 -04:00
Dave Horton
3deb8759db add deepgramOptions.smartFormatting (#28) 2023-10-25 10:08:56 -04:00
Dave Horton
79cdfc73d4 0.0.37 2023-10-06 08:54:14 -04:00
Hoan Luu Huu
9b7358d6b4 feat: add sip Indialog actionHook (#27)
* feat: add sip Indialog actionHook

* to use Hook

* to use Hook

* fix
2023-10-06 08:49:49 -04:00
Dave Horton
4bb25941bf 0.0.36 2023-09-22 09:09:22 -04:00
Hoan Luu Huu
42ff6170b6 support bot delay action (#26)
* support bot delay action

* support bot delay action
2023-09-22 09:09:04 -04:00
Dave Horton
873d8dc0c8 0.0.35 2023-09-20 07:31:02 -04:00
Hoan Luu Huu
992a5fe897 add support for dual streams in rest:dial (#25) 2023-09-20 07:30:23 -04:00
6 changed files with 126 additions and 14 deletions

View File

@@ -1,4 +1,4 @@
# verb-specificiations
# verb-specifications
Jambonz Verb Specification Utilities
#### Running the test suite

View File

@@ -58,7 +58,8 @@ function validateVerb(name, data, logger) {
const dSpec = specData.properties[dKey];
debug(`Task:validate validating property ${dKey} with value ${JSON.stringify(dVal)}`);
if (typeof dSpec === 'string' && dSpec === 'array') {
if (typeof dVal === 'undefined') continue;
else if (typeof dSpec === 'string' && dSpec === 'array') {
if (!Array.isArray(dVal)) throw new Error(`${name}: property ${dKey} is not an array`);
}
else if (typeof dSpec === 'string' && dSpec.includes('|')) {

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "@jambonz/verb-specifications",
"version": "0.0.34",
"version": "0.0.46",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@jambonz/verb-specifications",
"version": "0.0.34",
"version": "0.0.46",
"license": "MIT",
"dependencies": {
"debug": "^4.3.4",

View File

@@ -1,6 +1,6 @@
{
"name": "@jambonz/verb-specifications",
"version": "0.0.34",
"version": "0.0.46",
"description": "Jambonz Verb Specification Utilities",
"main": "index.js",
"scripts": {

View File

@@ -46,7 +46,9 @@
"amd": "#amd",
"notifyEvents": "boolean",
"reset": "string|array",
"onHoldMusic": "string"
"onHoldMusic": "string",
"actionHookDelayAction": "#actionHookDelayAction",
"sipRequestWithinDialogHook": "object|string"
},
"required": []
},
@@ -174,7 +176,8 @@
"timeout": "number",
"recognizer": "#recognizer",
"play": "#play",
"say": "#say"
"say": "#say",
"actionHookDelayAction": "#actionHookDelayAction"
},
"required": [
]
@@ -407,7 +410,9 @@
"to": "#target",
"headers": "object",
"timeout": "number",
"amd": "#amd"
"amd": "#amd",
"dual_streams": "boolean",
"sipRequestWithinDialogHook": "string"
},
"required": [
"call_hook",
@@ -455,7 +460,8 @@
"vmail": "boolean",
"tenant": "string",
"trunk": "string",
"overrideTo": "string"
"overrideTo": "string",
"proxy": "string"
},
"required": [
"type"
@@ -484,11 +490,11 @@
"vendor": "string",
"label": "string",
"language": "string",
"voice": "string",
"voice": "string|object",
"fallbackVendor": "string",
"fallbackLabel": "string",
"fallbackLanguage": "string",
"fallbackVoice": "string",
"fallbackVoice": "string|object",
"engine": {
"type": "string",
"enum": ["standard", "neural"]
@@ -580,7 +586,9 @@
"nvidiaOptions": "#nvidiaOptions",
"sonioxOptions": "#sonioxOptions",
"cobaltOptions": "#cobaltOptions",
"customOptions": "#customOptions"
"azureOptions": "#azureOptions",
"customOptions": "#customOptions",
"assemblyAiOptions": "#assemblyAiOptions"
},
"required": [
"vendor"
@@ -595,6 +603,13 @@
"required": [
]
},
"azureOptions": {
"properties": {
"speechSegmentationSilenceTimeoutMs": "number"
},
"required": [
]
},
"cobaltOptions": {
"properties": {
"serverUri": "string",
@@ -645,6 +660,7 @@
"customModel": "string",
"version": "string",
"punctuate": "boolean",
"smartFormatting": "boolean",
"profanityFilter": "boolean",
"redact": {
"type": "string",
@@ -665,6 +681,8 @@
"replace": "array",
"keywords": "array",
"endpointing": "boolean | number",
"utteranceEndMs": "number",
"shortUtterance": "boolean",
"vadTurnoff": "number",
"tag": "string"
}
@@ -739,6 +757,11 @@
"required": [
]
},
"assemblyAiOptions": {
"properties": {
"apiKey": "string"
}
},
"resource": {
"properties": {
"externalReference": "#resourceReference",
@@ -839,5 +862,14 @@
"toneTimeoutMs": "number",
"greetingCompletionTimeoutMs": "number"
}
},
"actionHookDelayAction" : {
"properties": {
"enabled": "boolean",
"noResponseTimeout": "number",
"noResponseGiveUpTimeout": "number",
"retries": "number",
"actions": "array"
}
}
}

View File

@@ -37,7 +37,41 @@ test("validate correct verbs", async (t) => {
"input" : ["speech"],
"actionHook": "/userInput"
},
"onHoldMusic": "http://server.com/hold"
"onHoldMusic": "http://server.com/hold",
"actionHookDelayAction": {
"enabled": true,
"noResponseTimeout": 5,
"noResponseGiveUpTimeout": 10,
"retries": 3,
"actions": [
{
"verb": "say",
"text": "To speak to Sales press 1 or say Sales. To speak to customer support press 2 or say Support",
"synthesizer": {
"vendor": "google",
"language": "en-US"
}
},
{
"verb": "play",
"url": "https://example.com/example.mp3",
"timeoutSecs": 10,
"seekOffset": 8000,
"actionHook": "/play/action"
}
]
}
},
{
"verb": "config",
"recognizer": {
"vendor": "google",
"language": "de-DE",
"label": "label1",
"assemblyAiOptions": {
"apiKey": "apikey"
}
}
},
{
"verb": "config",
@@ -50,6 +84,10 @@ test("validate correct verbs", async (t) => {
}
}
},
{
"verb": "config",
"sipRequestWithinDialogHook": "https://jambonz.or/sipIndialogActionHook"
},
{
"verb": "config",
"record": {
@@ -151,6 +189,24 @@ test("validate correct verbs", async (t) => {
"fallbackLabel": "label1",
"fallbackVoice": "voice"
}
},
"say": {
"text": "To speak to Sales press 1 or say Sales. To speak to customer support press 2 or say Support",
"synthesizer": {
"vendor": "google",
"language": "en-US",
"voice": {
"reportedUsage":"REALTIME",
"model":"path/to/model",
},
"fallbackVendor": "google",
"fallbackLanguage": "en-US",
"fallbackLabel": "label1",
"fallbackVoice": {
"reportedUsage":"REALTIME",
"model":"path/to/model",
}
}
}
},
{
@@ -174,6 +230,28 @@ test("validate correct verbs", async (t) => {
"endpointing": true
}
},
"actionHookDelayAction": {
"noResponseTimeout": 5,
"noResponseGiveUpTimeout": 10,
"retries": 3,
"actions": [
{
"verb": "say",
"text": "To speak to Sales press 1 or say Sales. To speak to customer support press 2 or say Support",
"synthesizer": {
"vendor": "google",
"language": "en-US"
}
},
{
"verb": "play",
"url": "https://example.com/example.mp3",
"timeoutSecs": 10,
"seekOffset": 8000,
"actionHook": "/play/action"
}
]
}
},
{
"verb": "hangup",
@@ -313,7 +391,8 @@ test("validate correct verbs", async (t) => {
"amd": {
"actionHook": "/answeringMachineDetection",
}
},
"dual_streams": true
}
];
try {