@jambonz/node-red-contrib-jambonz 2.5.3 → 2.6.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.
- package/README.md +79 -25
- package/package.json +8 -13
- package/src/nodes/_template.html +2 -2
- package/src/nodes/answer.html +1 -1
- package/src/nodes/auth.html +1 -34
- package/src/nodes/auth.js +0 -14
- package/src/nodes/conference.html +1 -1
- package/src/nodes/config.html +2 -1
- package/src/nodes/create_call.html +9 -4
- package/src/nodes/dequeue.html +1 -1
- package/src/nodes/dial.html +10 -10
- package/src/nodes/dialogflow.html +2 -1
- package/src/nodes/dtmf.html +1 -1
- package/src/nodes/dub.html +1 -1
- package/src/nodes/enqueue.html +1 -1
- package/src/nodes/gather.html +2 -3
- package/src/nodes/generic-verb.html +1 -1
- package/src/nodes/hangup.html +1 -1
- package/src/nodes/lcc.html +2 -2
- package/src/nodes/lcc.js +0 -1
- package/src/nodes/leave.html +1 -1
- package/src/nodes/listen.html +1 -1
- package/src/nodes/message.html +0 -4
- package/src/nodes/pause.html +1 -1
- package/src/nodes/play.html +1 -1
- package/src/nodes/rasa.html +1 -1
- package/src/nodes/redirect.html +1 -1
- package/src/nodes/say.html +2 -1
- package/src/nodes/sip-decline.html +1 -1
- package/src/nodes/sip-refer.html +1 -1
- package/src/nodes/sip-request.html +2 -2
- package/src/nodes/tag.html +1 -1
- package/src/nodes/webhooks.html +2 -2
- package/examples/Voicemail using Listen into S3 bucket.json +0 -130
- package/examples/lex.json +0 -1
- package/src/nodes/jambonz.html +0 -3548
- package/src/nodes/lex.html +0 -281
- package/src/nodes/lex.js +0 -69
- package/src/nodes/s3-upload.html +0 -66
- package/src/nodes/s3-upload.js +0 -140
package/README.md
CHANGED
|
@@ -2,65 +2,119 @@
|
|
|
2
2
|
|
|
3
3
|
[Node-RED](http://nodered.org/) nodes for [jambonz](https://github.com/jambonz).
|
|
4
4
|
|
|
5
|
-
This
|
|
5
|
+
This palette contains a set of nodes that allow the user to create applications that respond to [jambonz webhooks](https://docs.jambonz.org/jambonz/).
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## Documentation
|
|
8
|
+
https://docs.jambonz.org/verbs/verbs/overview
|
|
8
9
|
|
|
9
|
-
|
|
10
|
-
This node is used to receive and process an incoming webhook. Every jambonz flow should begin with a `webhook in` node.
|
|
11
|
-
|
|
12
|
-
This node allows the user to specify the URL path for the webhook as well as http method: GET or PUT
|
|
10
|
+
## Implemented nodes
|
|
13
11
|
|
|
14
|
-
###
|
|
15
|
-
|
|
12
|
+
### alert
|
|
13
|
+
The [alert](https://docs.jambonz.org/verbs/verbs/alert) verb raises an alert in the jambonz platform.
|
|
16
14
|
|
|
17
|
-
###
|
|
18
|
-
|
|
15
|
+
### answer
|
|
16
|
+
The [answer](https://docs.jambonz.org/verbs/verbs/answer) verb answers the call.
|
|
19
17
|
|
|
20
18
|
### conference
|
|
21
|
-
|
|
19
|
+
The [conference](https://docs.jambonz.org/verbs/verbs/conference) verb connects a call into a conference.
|
|
20
|
+
|
|
21
|
+
### config
|
|
22
|
+
The [config](https://docs.jambonz.org/verbs/verbs/config) verb updates default session settings (speech, barge-in, recording, etc.) for subsequent verbs.
|
|
23
|
+
|
|
24
|
+
### create call
|
|
25
|
+
Creates an outbound call via the jambonz REST API.
|
|
26
|
+
|
|
27
|
+
### create sms
|
|
28
|
+
Creates an outbound SMS message via the jambonz REST API.
|
|
22
29
|
|
|
23
30
|
### dequeue
|
|
24
|
-
The [dequeue](https://docs.jambonz.org/
|
|
31
|
+
The [dequeue](https://docs.jambonz.org/verbs/verbs/dequeue) verb removes a call from the front of a specified queue and bridges that call to the current caller.
|
|
25
32
|
|
|
26
33
|
### dial
|
|
27
|
-
The [dial](https://docs.jambonz.org/
|
|
34
|
+
The [dial](https://docs.jambonz.org/verbs/verbs/dial) verb is used to create a new call by dialing out to a number, a registered sip user, a sip endpoint, or a Microsoft Teams user.
|
|
28
35
|
|
|
29
36
|
### dialogflow
|
|
30
|
-
The [dialogflow](https://docs.jambonz.org/
|
|
37
|
+
The [dialogflow](https://docs.jambonz.org/verbs/verbs/dialogflow) verb is used to connect a call to a Google dialogflow bot.
|
|
38
|
+
|
|
39
|
+
### dtmf
|
|
40
|
+
The [dtmf](https://docs.jambonz.org/verbs/verbs/dtmf) verb sends DTMF digits on the call.
|
|
41
|
+
|
|
42
|
+
### dub
|
|
43
|
+
The [dub](https://docs.jambonz.org/verbs/verbs/dub) verb adds or controls additional audio tracks mixed into the call.
|
|
31
44
|
|
|
32
45
|
### enqueue
|
|
33
|
-
The [enqueue](https://docs.jambonz.org/
|
|
46
|
+
The [enqueue](https://docs.jambonz.org/verbs/verbs/enqueue) command is used to place a caller in a queue.
|
|
34
47
|
|
|
35
48
|
### gather
|
|
36
|
-
The [gather](https://docs.jambonz.org/
|
|
49
|
+
The [gather](https://docs.jambonz.org/verbs/verbs/gather) command is used to collect dtmf or speech input.
|
|
50
|
+
|
|
51
|
+
### generic verb
|
|
52
|
+
Sends any Jambonz verb with custom JSON attributes.
|
|
53
|
+
|
|
54
|
+
### get alerts
|
|
55
|
+
Retrieves alert records for an account.
|
|
56
|
+
|
|
57
|
+
### get call
|
|
58
|
+
Retrieves info for a single call.
|
|
59
|
+
|
|
60
|
+
### get calls
|
|
61
|
+
Retrieves info for a group of calls.
|
|
62
|
+
|
|
63
|
+
### get recent calls
|
|
64
|
+
Retrieves recent call detail records (CDRs) with paging.
|
|
37
65
|
|
|
38
66
|
### hangup
|
|
39
|
-
The [hangup](https://docs.jambonz.org/
|
|
67
|
+
The [hangup](https://docs.jambonz.org/verbs/verbs/hangup) command terminates the call and ends the application.
|
|
68
|
+
|
|
69
|
+
### lcc
|
|
70
|
+
Performs live call control on an active call via the jambonz REST API.
|
|
40
71
|
|
|
41
72
|
### leave
|
|
42
|
-
The [leave](https://docs.jambonz.org/
|
|
73
|
+
The [leave](https://docs.jambonz.org/verbs/verbs/leave) verb transfers a call out of a queue. The call then returns to the flow of execution following the enqueue verb that parked the call, or the document returned by that verb's actionHook property, if provided.
|
|
43
74
|
|
|
44
75
|
### listen
|
|
45
|
-
The [listen](https://docs.jambonz.org/
|
|
76
|
+
The [listen](https://docs.jambonz.org/verbs/verbs/listen) verb sends a real-time audio stream for a call to a websocket server.
|
|
77
|
+
|
|
78
|
+
### message
|
|
79
|
+
Sends an SMS message using the `message` verb.
|
|
46
80
|
|
|
47
81
|
### pause
|
|
48
|
-
The [pause](https://docs.jambonz.org/
|
|
82
|
+
The [pause](https://docs.jambonz.org/verbs/verbs/pause) verb waits silently for a specified number of seconds.
|
|
49
83
|
|
|
50
84
|
### play
|
|
51
|
-
The [play](https://docs.jambonz.org/
|
|
85
|
+
The [play](https://docs.jambonz.org/verbs/verbs/play) verb is used to stream recorded audio to a call.
|
|
86
|
+
|
|
87
|
+
### rasa
|
|
88
|
+
The [rasa](https://docs.jambonz.org/verbs/verbs/rasa) verb connects a call to a Rasa assistant.
|
|
52
89
|
|
|
53
90
|
### redirect
|
|
54
|
-
The [redirect](https://docs.jambonz.org/
|
|
91
|
+
The [redirect](https://docs.jambonz.org/verbs/verbs/redirect) action is used to transfer control to another JSON document that is retrieved from the specified url. All actions after redirect are unreachable and ignored.
|
|
55
92
|
|
|
56
93
|
### say
|
|
57
|
-
The [say](https://docs.jambonz.org/
|
|
94
|
+
The [say](https://docs.jambonz.org/verbs/verbs/say) verb is used to send synthesized speech to the remote party. The text provided may be either plain text or may use SSML tags.
|
|
58
95
|
|
|
59
96
|
### sip:decline
|
|
60
|
-
The [sip:decline](https://docs.jambonz.org/
|
|
97
|
+
The [sip:decline](https://docs.jambonz.org/verbs/verbs/sip-decline) verb is used to reject an incoming call with a specific status and, optionally, a reason and SIP headers to include on the response.
|
|
98
|
+
|
|
99
|
+
### sip:refer
|
|
100
|
+
The [sip:refer](https://docs.jambonz.org/verbs/verbs/sip-refer) verb transfers a call via SIP REFER.
|
|
101
|
+
|
|
102
|
+
### sip:request
|
|
103
|
+
The [sip:request](https://docs.jambonz.org/verbs/verbs/sip-request) verb sends a SIP INFO, NOTIFY, or MESSAGE request on an active call leg.
|
|
61
104
|
|
|
62
105
|
### tag
|
|
63
|
-
The [tag](https://docs.jambonz.org/
|
|
106
|
+
The [tag](https://docs.jambonz.org/verbs/verbs/tag) verb is used to add properties to the standard call attributes that jambonz includes on every action or call status HTTP POST request.
|
|
107
|
+
|
|
108
|
+
### user auth
|
|
109
|
+
This node is used to validate a sip user authentication challenge. The incoming webhook that is used for sip user authentication includes the components of the SIP Authorization header in `msg.authRequest`. The `user auth` node allows the user to specify either the associated plaintext or hashed password and performs digest authentication to determine whether the user is authenticated. The determination is recorded in `msg.authResponse` which can subsequently be sent back to the jambonz platform via a `webhook out` node.
|
|
110
|
+
|
|
111
|
+
### webhook in
|
|
112
|
+
This node is used to receive and process an incoming webhook. Every jambonz flow should begin with a `webhook in` node.
|
|
113
|
+
|
|
114
|
+
This node allows the user to specify the URL path for the webhook as well as http method: GET or POST.
|
|
115
|
+
|
|
116
|
+
### webhook out
|
|
117
|
+
This node is used to respond to a webhook request, optionally sending back a jambonz application or a user authentication response.
|
|
64
118
|
|
|
65
119
|
|
|
66
120
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jambonz/node-red-contrib-jambonz",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.6.1",
|
|
4
4
|
"description": "Node-RED nodes for jambonz platform",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"node-red"
|
|
@@ -10,17 +10,15 @@
|
|
|
10
10
|
"url": "git://github.com/jambonz/node-red-contrib-jambonz.git"
|
|
11
11
|
},
|
|
12
12
|
"engines": {
|
|
13
|
-
"node": ">=
|
|
13
|
+
"node": ">=20.x"
|
|
14
14
|
},
|
|
15
15
|
"node-red": {
|
|
16
16
|
"version": ">=2.0.0",
|
|
17
17
|
"nodes": {
|
|
18
18
|
"helpers": "src/utils/http-helpers.js",
|
|
19
19
|
"webhook": "src/nodes/webhooks.js",
|
|
20
|
-
"s3:upload": "src/nodes/s3-upload.js",
|
|
21
20
|
"auth": "src/nodes/auth.js",
|
|
22
21
|
"enqueue": "src/nodes/enqueue.js",
|
|
23
|
-
"lex": "src/nodes/lex.js",
|
|
24
22
|
"say": "src/nodes/say.js",
|
|
25
23
|
"dtmf": "src/nodes/dtmf.js",
|
|
26
24
|
"config": "src/nodes/config.js",
|
|
@@ -58,19 +56,16 @@
|
|
|
58
56
|
"author": "Dave Horton",
|
|
59
57
|
"license": "MIT",
|
|
60
58
|
"dependencies": {
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"cors": "^2.8.5",
|
|
59
|
+
"body-parser": "^1.20.4",
|
|
60
|
+
"cookie-parser": "^1.4.7",
|
|
61
|
+
"cors": "^2.8.6",
|
|
65
62
|
"hash-sum": "^2.0.0",
|
|
66
63
|
"is-utf8": "^0.2.1",
|
|
67
64
|
"media-typer": "^1.1.0",
|
|
68
|
-
"multer": "^2.
|
|
65
|
+
"multer": "^2.1.1",
|
|
69
66
|
"mustache": "^4.2.0",
|
|
70
67
|
"on-headers": "^1.1.0",
|
|
71
|
-
"raw-body": "^2.5.
|
|
72
|
-
"
|
|
73
|
-
"undici": "^5.28.5",
|
|
74
|
-
"ws": "^8.18.0"
|
|
68
|
+
"raw-body": "^2.5.3",
|
|
69
|
+
"undici": "^6.24.0"
|
|
75
70
|
}
|
|
76
71
|
}
|
package/src/nodes/_template.html
CHANGED
|
@@ -46,9 +46,9 @@
|
|
|
46
46
|
</dl>
|
|
47
47
|
|
|
48
48
|
<h3>Details</h3>
|
|
49
|
-
|
|
49
|
+
DETAILS ABOUT THE VERB.<h3>References</h3>
|
|
50
50
|
<ul>
|
|
51
|
-
<li><a href="https://
|
|
51
|
+
<li><a href="https://docs.jambonz.org/verbs/verbs/VERB">Jambonz verb reference</a></li>
|
|
52
52
|
</ul>
|
|
53
53
|
</script>
|
|
54
54
|
</script>
|
package/src/nodes/answer.html
CHANGED
|
@@ -30,6 +30,6 @@
|
|
|
30
30
|
but it can be useful to force an answer before a pause in some cases.
|
|
31
31
|
<h3>References</h3>
|
|
32
32
|
<ul>
|
|
33
|
-
<li><a href="https://
|
|
33
|
+
<li><a href="https://docs.jambonz.org/verbs/verbs/answer">Jambonz answer reference</a></li>
|
|
34
34
|
</ul>
|
|
35
35
|
</script>
|
package/src/nodes/auth.html
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<!-- Javascript -->
|
|
2
|
+
<script src="resources/@jambonz/node-red-contrib-jambonz/editor.js"></script>
|
|
2
3
|
<script type="text/javascript">
|
|
3
4
|
RED.nodes.registerType('jambonz_auth',{
|
|
4
5
|
category: 'config',
|
|
@@ -36,37 +37,10 @@
|
|
|
36
37
|
}
|
|
37
38
|
}
|
|
38
39
|
});
|
|
39
|
-
|
|
40
|
-
RED.nodes.registerType('aws_auth',{
|
|
41
|
-
category: 'config',
|
|
42
|
-
credentials: {
|
|
43
|
-
accessKey: {type: 'text'},
|
|
44
|
-
secretAccessKey: {type: 'text'}
|
|
45
|
-
},
|
|
46
|
-
label: function() {
|
|
47
|
-
if (!this.credentials) return null;
|
|
48
|
-
const akey = this.credentials.accessKey;
|
|
49
|
-
let mask = '';
|
|
50
|
-
for (let i = 4; i < akey.length; i++) mask += '*';
|
|
51
|
-
return akey.substr(0, 4) + mask;
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
40
|
</script>
|
|
55
41
|
|
|
56
42
|
<!-- HTML -->
|
|
57
43
|
|
|
58
|
-
<!-- aws auth -->
|
|
59
|
-
<script type="text/html" data-template-name="aws_auth">
|
|
60
|
-
<div class="form-row">
|
|
61
|
-
<label for="node-config-input-accessKey">AWS Access Key ID</label>
|
|
62
|
-
<input type="text" id="node-config-input-accessKey">
|
|
63
|
-
</div>
|
|
64
|
-
<div class="form-row">
|
|
65
|
-
<label for="node-config-input-secretAccessKey">AWS Secret Access Key</label>
|
|
66
|
-
<input type="text" id="node-config-input-secretAccessKey">
|
|
67
|
-
</div>
|
|
68
|
-
</script>
|
|
69
|
-
|
|
70
44
|
<!-- jambonz auth -->
|
|
71
45
|
<script type="text/html" data-template-name="jambonz_auth">
|
|
72
46
|
<div class="form-row">
|
|
@@ -97,13 +71,6 @@
|
|
|
97
71
|
|
|
98
72
|
<!-- Help Text -->
|
|
99
73
|
|
|
100
|
-
<!-- AWS auth-->
|
|
101
|
-
<script type="text/x-red" data-help-name="aws_auth">
|
|
102
|
-
<p>AWS access key and secret access key to use for Lex</p>
|
|
103
|
-
<h3>Properties</h3>
|
|
104
|
-
<p>Enter the AWS access key and secret access key</p>
|
|
105
|
-
</script>
|
|
106
|
-
|
|
107
74
|
<!-- jambonz auth -->
|
|
108
75
|
<script type="text/x-red" data-help-name="jambonz_auth">
|
|
109
76
|
<p>Creates a new jambonz server credential </p>
|
package/src/nodes/auth.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
module.exports = function(RED) {
|
|
2
2
|
function jambonz_auth(config) {
|
|
3
3
|
RED.nodes.createNode(this, config);
|
|
4
|
-
var node = this;
|
|
5
4
|
this.name = config.name;
|
|
6
5
|
this.url = config.url;
|
|
7
6
|
this.urlType = config.urlType;
|
|
@@ -21,17 +20,4 @@ module.exports = function(RED) {
|
|
|
21
20
|
apiTokenType: {}
|
|
22
21
|
}
|
|
23
22
|
});
|
|
24
|
-
|
|
25
|
-
function aws_auth(config) {
|
|
26
|
-
RED.nodes.createNode(this, config);
|
|
27
|
-
this.accessKey = config.accessKey;
|
|
28
|
-
this.secretAccessKey = config.secretAccessKey;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
RED.nodes.registerType('aws_auth', aws_auth, {
|
|
32
|
-
credentials: {
|
|
33
|
-
accessKey: {type: 'text'},
|
|
34
|
-
secretAccessKey: {type: 'text'}
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
23
|
}
|
|
@@ -145,7 +145,7 @@
|
|
|
145
145
|
The conference verb places a call into a conference.
|
|
146
146
|
<h3>References</h3>
|
|
147
147
|
<ul>
|
|
148
|
-
<li><a href="https://
|
|
148
|
+
<li><a href="https://docs.jambonz.org/verbs/verbs/conference">Jambonz conference reference</a></li>
|
|
149
149
|
</ul>
|
|
150
150
|
</script>
|
|
151
151
|
|
package/src/nodes/config.html
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
<script src="resources/@jambonz/node-red-contrib-jambonz/editor.js"></script>
|
|
1
2
|
<!-- Javascript -->
|
|
2
3
|
<script type="text/javascript">
|
|
3
4
|
RED.nodes.registerType("cfg", {
|
|
@@ -656,7 +657,7 @@
|
|
|
656
657
|
<h3>References</h3>
|
|
657
658
|
<ul>
|
|
658
659
|
<li>
|
|
659
|
-
<a href="https://
|
|
660
|
+
<a href="https://docs.jambonz.org/verbs/verbs/config"
|
|
660
661
|
>Jambonz config reference</a
|
|
661
662
|
>
|
|
662
663
|
</li>
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<!-- Javascript -->
|
|
2
|
+
<script src="resources/@jambonz/node-red-contrib-jambonz/editor.js"></script>
|
|
2
3
|
<script type="text/javascript">
|
|
3
4
|
var mustacheType = {
|
|
4
5
|
value: 'mustache',
|
|
@@ -43,7 +44,6 @@
|
|
|
43
44
|
call_status_urlType : {value: 'str'},
|
|
44
45
|
call_status_method : {value : 'GET'},
|
|
45
46
|
vendor: {value: 'default', validate : function (v) {
|
|
46
|
-
console.log(v)
|
|
47
47
|
if ( v == null && $('#node-input-mode').val() == 'url'){
|
|
48
48
|
return(false)
|
|
49
49
|
} else {
|
|
@@ -55,7 +55,6 @@
|
|
|
55
55
|
voice: {value: 'default'},
|
|
56
56
|
xvoice: {},
|
|
57
57
|
transcriptionvendor: {value: 'default', validate : function (v) {
|
|
58
|
-
console.log(v)
|
|
59
58
|
if ( v == null && $('#node-input-mode').val() == 'url'){
|
|
60
59
|
return(false)
|
|
61
60
|
} else {
|
|
@@ -88,7 +87,7 @@
|
|
|
88
87
|
var trunkDiv = $('#trunk');
|
|
89
88
|
var sipDiv = $('#sip');
|
|
90
89
|
prepareTtsControls(node);
|
|
91
|
-
prepareSttControls(node);
|
|
90
|
+
prepareSttControls(node, '#node-input-amd_recognizer_vendor', '#node-input-amd_recognizer_lang');
|
|
92
91
|
|
|
93
92
|
var onDestChanged = function () {
|
|
94
93
|
var selectedDest = destElem.find(':selected').val();
|
|
@@ -161,6 +160,12 @@
|
|
|
161
160
|
});
|
|
162
161
|
var populateApplications = function() {
|
|
163
162
|
var serverId = $('#node-input-server option:selected').val();
|
|
163
|
+
if (serverId === '_ADD_') {
|
|
164
|
+
// do not get application list if server is empty
|
|
165
|
+
applicationElem.find('option').remove();
|
|
166
|
+
applicationElem.append('<option value="msg.application_sid">--msg.application_sid--</option>');
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
164
169
|
$.ajax({
|
|
165
170
|
url: `_jambonz/applications/${serverId}`,
|
|
166
171
|
dataType: 'json',
|
|
@@ -354,7 +359,7 @@
|
|
|
354
359
|
<fieldset>
|
|
355
360
|
<legend>Answering Machine Detection</legend>
|
|
356
361
|
<div class="form-row">
|
|
357
|
-
<label for="node-input-amd_actionHook">
|
|
362
|
+
<label for="node-input-amd_actionHook">Action Hook</label>
|
|
358
363
|
<input type="text" id="node-input-amd_actionHook">
|
|
359
364
|
<input type="hidden" id="node-input-amd_actionHookType">
|
|
360
365
|
</div>
|
package/src/nodes/dequeue.html
CHANGED
|
@@ -113,6 +113,6 @@
|
|
|
113
113
|
The dequeue verb removes the a call from the front of a specified queue and bridges that call to the current caller.
|
|
114
114
|
<h3>References</h3>
|
|
115
115
|
<ul>
|
|
116
|
-
<li><a href="https://
|
|
116
|
+
<li><a href="https://docs.jambonz.org/verbs/verbs/dequeue">Jambonz dequeue reference</a></li>
|
|
117
117
|
</ul>
|
|
118
118
|
</script>
|
package/src/nodes/dial.html
CHANGED
|
@@ -570,14 +570,14 @@
|
|
|
570
570
|
<input type="text" id="node-input-tag" placeholder="tag object">
|
|
571
571
|
<input type="hidden" id="node-input-tagType">
|
|
572
572
|
</div>
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
573
|
+
<div class="form-row">
|
|
574
|
+
<label for="node-input-forwardPAI">Forward PAI</label>
|
|
575
|
+
<select id="node-input-forwardPAI">
|
|
576
|
+
<option value="default" selected>default</option>
|
|
577
|
+
<option value=true>true</option>
|
|
578
|
+
<option value=false>false</option>
|
|
579
|
+
</select>
|
|
580
|
+
</div>
|
|
581
581
|
<fieldset>
|
|
582
582
|
<legend>Live audio</legend>
|
|
583
583
|
<div class="form-row">
|
|
@@ -721,7 +721,7 @@
|
|
|
721
721
|
<fieldset>
|
|
722
722
|
<legend>Answering Machine Detection</legend>
|
|
723
723
|
<div class="form-row">
|
|
724
|
-
<label for="node-input-amd_actionHook">
|
|
724
|
+
<label for="node-input-amd_actionHook">Action Hook</label>
|
|
725
725
|
<input type="text" id="node-input-amd_actionHook">
|
|
726
726
|
<input type="hidden" id="node-input-amd_actionHookType">
|
|
727
727
|
</div>
|
|
@@ -822,6 +822,6 @@
|
|
|
822
822
|
<h3>Details</h3>
|
|
823
823
|
The dial verb is used to create a new call by dialing out to a number, a registered sip user, or sip endpoint
|
|
824
824
|
<ul>
|
|
825
|
-
<li><a href="https://
|
|
825
|
+
<li><a href="https://docs.jambonz.org/verbs/verbs/dial">Jambonz dial reference</a></li>
|
|
826
826
|
</ul>
|
|
827
827
|
</script>
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<!-- Javascript -->
|
|
2
|
+
<script src="resources/@jambonz/node-red-contrib-jambonz/editor.js"></script>
|
|
2
3
|
<script type="text/javascript">
|
|
3
4
|
var mustacheType = {
|
|
4
5
|
value: 'mustache',
|
|
@@ -251,6 +252,6 @@
|
|
|
251
252
|
|
|
252
253
|
<h3>References</h3>
|
|
253
254
|
<ul>
|
|
254
|
-
<li><a href="https://
|
|
255
|
+
<li><a href="https://docs.jambonz.org/verbs/verbs/dialogflow">Jambonz dialogflow reference</a></li>
|
|
255
256
|
</ul>
|
|
256
257
|
</script>
|
package/src/nodes/dtmf.html
CHANGED
package/src/nodes/dub.html
CHANGED
package/src/nodes/enqueue.html
CHANGED
|
@@ -97,6 +97,6 @@
|
|
|
97
97
|
The enqueue command is used to place a caller in a queue.
|
|
98
98
|
<h3>References</h3>
|
|
99
99
|
<ul>
|
|
100
|
-
<li><a href="https://
|
|
100
|
+
<li><a href="https://docs.jambonz.org/verbs/verbs/enqueue">Jambonz enqueue reference</a></li>
|
|
101
101
|
</ul>
|
|
102
102
|
</script>
|
package/src/nodes/gather.html
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<!-- Javascript -->
|
|
2
|
+
<script src="resources/@jambonz/node-red-contrib-jambonz/editor.js"></script>
|
|
2
3
|
<script type="text/javascript">
|
|
3
4
|
var mustacheType = {
|
|
4
5
|
value: 'mustache',
|
|
@@ -99,12 +100,10 @@
|
|
|
99
100
|
});
|
|
100
101
|
|
|
101
102
|
var enableSpeech = function(enabled) {
|
|
102
|
-
console.log(`enable speech: ${enabled}`);
|
|
103
103
|
if (enabled) $('#speech-input-container').show();
|
|
104
104
|
else $('#speech-input-container').hide();
|
|
105
105
|
}
|
|
106
106
|
var enableDtmf = function(enabled) {
|
|
107
|
-
console.log(`enable dtmf: ${enabled}`);
|
|
108
107
|
if (enabled) $('#dtmf-input-container').show();
|
|
109
108
|
else $('#dtmf-input-container').hide();
|
|
110
109
|
}
|
|
@@ -368,6 +367,6 @@
|
|
|
368
367
|
<code>The payload is {{msg.payload}}</code>
|
|
369
368
|
<h3>References</h3>
|
|
370
369
|
<ul>
|
|
371
|
-
<li><a href="https://
|
|
370
|
+
<li><a href="https://docs.jambonz.org/verbs/verbs/gather">Jambonz gather reference</a></li>
|
|
372
371
|
</ul>
|
|
373
372
|
</script>
|
|
@@ -76,6 +76,6 @@
|
|
|
76
76
|
Allows use of complex or new verbs in Jambonz that may not have nodes, set the verb name and then pass any additional attributes as a JSON object in the data field.
|
|
77
77
|
<h3>References</h3>
|
|
78
78
|
<ul>
|
|
79
|
-
<li><a href="https://
|
|
79
|
+
<li><a href="https://docs.jambonz.org/verbs/verbs/overview">Jambonz Verbs Reference</a></li>
|
|
80
80
|
</ul>
|
|
81
81
|
</script>
|
package/src/nodes/hangup.html
CHANGED
|
@@ -103,6 +103,6 @@
|
|
|
103
103
|
The hangup command terminates the call and ends the application.
|
|
104
104
|
<h3>References</h3>
|
|
105
105
|
<ul>
|
|
106
|
-
<li><a href="https://
|
|
106
|
+
<li><a href="https://docs.jambonz.org/verbs/verbs/hangup">Jambonz hangup reference</a></li>
|
|
107
107
|
</ul>
|
|
108
108
|
</script>
|
package/src/nodes/lcc.html
CHANGED
|
@@ -546,8 +546,8 @@
|
|
|
546
546
|
<h3>Details</h3>
|
|
547
547
|
The lcc command is used to perform live call control on a call in progress.
|
|
548
548
|
The call can be terminated, the caller can be muted or unmuted, or the live
|
|
549
|
-
audio feed that is being sent via a <a href="https://
|
|
549
|
+
audio feed that is being sent via a <a href="https://docs.jambonz.org/verbs/verbs/listen">listen</a> verb can be paused or resumed.
|
|
550
550
|
<br/><br/>
|
|
551
|
-
A common use case is to use dtmf captures in a <a href="https://
|
|
551
|
+
A common use case is to use dtmf captures in a <a href="https://docs.jambonz.org/verbs/verbs/dial">dial</a> verb to call a webhook
|
|
552
552
|
that then uses lcc to modify the state of the call.
|
|
553
553
|
</script>
|
package/src/nodes/lcc.js
CHANGED
|
@@ -141,7 +141,6 @@ function lcc(config) {
|
|
|
141
141
|
opts.dub.track = await new_resolve(RED, config.dubTrack, config.dubTrackType, node, msg);
|
|
142
142
|
break
|
|
143
143
|
case 'dubPlay':
|
|
144
|
-
console.log(config)
|
|
145
144
|
opts.dub = { action: 'playOnTrack' };
|
|
146
145
|
opts.dub.track = await new_resolve(RED, config.dubTrack, config.dubTrackType, node, msg);
|
|
147
146
|
opts.dub.play = await new_resolve(RED, config.dubPlay, config.dubPlayType, node, msg);
|
package/src/nodes/leave.html
CHANGED
|
@@ -34,6 +34,6 @@
|
|
|
34
34
|
<h3>Details</h3>
|
|
35
35
|
The leave verb transfers a call out of a queue. The call then returns to the flow of execution following the enqueue verb that parked the call, or the document returned by that verbs actionHook property, if provided.<h3>References</h3>
|
|
36
36
|
<ul>
|
|
37
|
-
<li><a href="https://
|
|
37
|
+
<li><a href="https://docs.jambonz.org/verbs/verbs/leave">Jambonz leave reference</a></li>
|
|
38
38
|
</ul>
|
|
39
39
|
</script>
|
package/src/nodes/listen.html
CHANGED
|
@@ -356,6 +356,6 @@ RED.nodes.registerType('listen',{
|
|
|
356
356
|
<h3>Details</h3>
|
|
357
357
|
The listen verb establishes a connection to a websocket server and sends live audio for the current call.<h3>References</h3>
|
|
358
358
|
<ul>
|
|
359
|
-
<li><a href="https://
|
|
359
|
+
<li><a href="https://docs.jambonz.org/verbs/verbs/listen">Jambonz listen reference</a></li>
|
|
360
360
|
</ul>
|
|
361
361
|
</script>
|
package/src/nodes/message.html
CHANGED
package/src/nodes/pause.html
CHANGED
|
@@ -61,6 +61,6 @@
|
|
|
61
61
|
The pause verb waits a specified number of seconds before continuing to execute the application.
|
|
62
62
|
<h3>References</h3>
|
|
63
63
|
<ul>
|
|
64
|
-
<li><a href="https://
|
|
64
|
+
<li><a href="https://docs.jambonz.org/verbs/verbs/pause">Jambonz pause reference</a></li>
|
|
65
65
|
</ul>
|
|
66
66
|
</script>
|
package/src/nodes/play.html
CHANGED
|
@@ -114,6 +114,6 @@ RED.nodes.registerType('play',{
|
|
|
114
114
|
|
|
115
115
|
<h3>References</h3>
|
|
116
116
|
<ul>
|
|
117
|
-
<li><a href="https://
|
|
117
|
+
<li><a href="https://docs.jambonz.org/verbs/verbs/play">Jambonz play reference</a></li>
|
|
118
118
|
</ul>
|
|
119
119
|
</script>
|
package/src/nodes/rasa.html
CHANGED
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
|
|
99
99
|
<h3>References</h3>
|
|
100
100
|
<ul>
|
|
101
|
-
<li><a href="https://
|
|
101
|
+
<li><a href="https://docs.jambonz.org/verbs/verbs/rasa">Jambonz rasa reference</a></li>
|
|
102
102
|
</ul>
|
|
103
103
|
</script>
|
|
104
104
|
</script>
|
package/src/nodes/redirect.html
CHANGED
|
@@ -61,6 +61,6 @@
|
|
|
61
61
|
The redirect verb retrieves a new URL to execute for the current call.
|
|
62
62
|
<h3>References</h3>
|
|
63
63
|
<ul>
|
|
64
|
-
<li><a href="https://
|
|
64
|
+
<li><a href="https://docs.jambonz.org/verbs/verbs/redirect">Jambonz redirect reference</a></li>
|
|
65
65
|
</ul>
|
|
66
66
|
</script>
|
package/src/nodes/say.html
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<!-- Javascript -->
|
|
2
|
+
<script src="resources/@jambonz/node-red-contrib-jambonz/editor.js"></script>
|
|
2
3
|
<script type="text/javascript">
|
|
3
4
|
RED.nodes.registerType('say',{
|
|
4
5
|
category: 'jambonz',
|
|
@@ -113,5 +114,5 @@
|
|
|
113
114
|
<code>The payload is {{msg.payload}}</code>
|
|
114
115
|
<h3>References</h3>
|
|
115
116
|
<ul>
|
|
116
|
-
<li><a href="https://
|
|
117
|
+
<li><a href="https://docs.jambonz.org/verbs/verbs/say">Jambonz say reference</a></li>
|
|
117
118
|
</script>
|
|
@@ -88,6 +88,6 @@
|
|
|
88
88
|
The sip:decline verb rejects an incoming call.
|
|
89
89
|
<h3>References</h3>
|
|
90
90
|
<ul>
|
|
91
|
-
<li><a href="https://
|
|
91
|
+
<li><a href="https://docs.jambonz.org/verbs/verbs/sip-decline">Jambonz sip:decline reference</a></li>
|
|
92
92
|
</ul>
|
|
93
93
|
</script>
|