@openclaw/voice-call 2026.10.2 → 2026.10.5-beta.2
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 +118 -3
- package/dist/.setup/{guarded-json-api-x55yqHvW.mjs → carrier-api-BYKw_fsQ.mjs} +94 -90
- package/dist/.setup/{cli-Cn1leykM.mjs → cli-dyyK8Upw.mjs} +66 -84
- package/dist/.setup/{config-CX9J-053.mjs → config-CsrGuamE.mjs} +95 -69
- package/dist/.setup/{mock-eLv_Dc4o.mjs → mock-rySvj-G6.mjs} +12 -3
- package/dist/.setup/{plivo-CpPIENu4.mjs → plivo-COfD-Kuc.mjs} +35 -89
- package/dist/.setup/{realtime-handler-Do7Sz7Gh.mjs → realtime-handler-BdAuKAC2.mjs} +749 -464
- package/dist/.setup/{response-generator-DAhbXEta.mjs → response-generator-COu0_8-d.mjs} +14 -32
- package/dist/.setup/{runtime-entry-CbSKxSKk.mjs → runtime-entry-STjFmi_B.mjs} +1053 -446
- package/dist/.setup/{telnyx-DPilutCH.mjs → telnyx-B4P0peEe.mjs} +30 -61
- package/dist/.setup/{twilio-BWFNGyVx.mjs → twilio-BzAYgH7M.mjs} +75 -90
- package/dist/.setup/{voice-mapping-B_iAUkER.mjs → voice-mapping-1lzFmzOF.mjs} +0 -10
- package/dist/cli-output-mode.js +1 -0
- package/dist/doctor-contract-api.js +19 -23
- package/dist/index.js +212 -89
- package/dist/runtime-entry.js +1 -1
- package/dist/setup-api.js +7 -6
- package/openclaw.plugin.json +210 -2
- package/package.json +4 -4
package/openclaw.plugin.json
CHANGED
|
@@ -51,6 +51,11 @@
|
|
|
51
51
|
"help": "Inbound overrides keyed by dialed E.164 number.",
|
|
52
52
|
"advanced": true
|
|
53
53
|
},
|
|
54
|
+
"callbacks": {
|
|
55
|
+
"label": "Realtime Callbacks",
|
|
56
|
+
"help": "Accept recent outbound recipients as callbacks only when realtime voice is enabled.",
|
|
57
|
+
"advanced": true
|
|
58
|
+
},
|
|
54
59
|
"telnyx.apiKey": {
|
|
55
60
|
"label": "Telnyx API Key",
|
|
56
61
|
"sensitive": true
|
|
@@ -150,6 +155,11 @@
|
|
|
150
155
|
"label": "Realtime Stream Path",
|
|
151
156
|
"advanced": true
|
|
152
157
|
},
|
|
158
|
+
"realtime.idleHangupMs": {
|
|
159
|
+
"label": "Realtime Speech Idle Hangup (ms)",
|
|
160
|
+
"help": "Ends an active realtime call after neither side speaks for this long. Unset disables speech-idle hangup.",
|
|
161
|
+
"advanced": true
|
|
162
|
+
},
|
|
153
163
|
"realtime.instructions": {
|
|
154
164
|
"label": "Realtime Instructions",
|
|
155
165
|
"advanced": true
|
|
@@ -275,13 +285,13 @@
|
|
|
275
285
|
"id": "inbound-calls",
|
|
276
286
|
"title": "Inbound calls",
|
|
277
287
|
"order": 20,
|
|
278
|
-
"properties": ["inboundPolicy", "allowFrom", "inboundGreeting", "numbers"]
|
|
288
|
+
"properties": ["inboundPolicy", "allowFrom", "inboundGreeting", "numbers", "callbacks"]
|
|
279
289
|
},
|
|
280
290
|
{
|
|
281
291
|
"id": "outbound-calls",
|
|
282
292
|
"title": "Outbound calls",
|
|
283
293
|
"order": 30,
|
|
284
|
-
"properties": ["toNumber", "outbound"]
|
|
294
|
+
"properties": ["toNumber", "outbound", "reports", "live", "voicemail"]
|
|
285
295
|
},
|
|
286
296
|
{
|
|
287
297
|
"id": "call-limits",
|
|
@@ -455,6 +465,200 @@
|
|
|
455
465
|
}
|
|
456
466
|
}
|
|
457
467
|
},
|
|
468
|
+
"reports": {
|
|
469
|
+
"type": "object",
|
|
470
|
+
"additionalProperties": false,
|
|
471
|
+
"properties": {
|
|
472
|
+
"enabled": {
|
|
473
|
+
"type": "boolean",
|
|
474
|
+
"default": false
|
|
475
|
+
},
|
|
476
|
+
"includeTranscript": {
|
|
477
|
+
"type": "boolean",
|
|
478
|
+
"default": true
|
|
479
|
+
},
|
|
480
|
+
"summaryModel": {
|
|
481
|
+
"type": "string",
|
|
482
|
+
"minLength": 1
|
|
483
|
+
},
|
|
484
|
+
"inboundSessionKey": {
|
|
485
|
+
"type": "string",
|
|
486
|
+
"minLength": 1
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
},
|
|
490
|
+
"live": {
|
|
491
|
+
"type": "object",
|
|
492
|
+
"additionalProperties": false,
|
|
493
|
+
"properties": {
|
|
494
|
+
"transcript": {
|
|
495
|
+
"type": "boolean",
|
|
496
|
+
"default": false
|
|
497
|
+
},
|
|
498
|
+
"minIntervalMs": {
|
|
499
|
+
"type": "integer",
|
|
500
|
+
"minimum": 1,
|
|
501
|
+
"default": 5000
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
},
|
|
505
|
+
"callbacks": {
|
|
506
|
+
"type": "object",
|
|
507
|
+
"additionalProperties": false,
|
|
508
|
+
"description": "Accept recent outbound recipients as callbacks only when realtime voice is enabled.",
|
|
509
|
+
"properties": {
|
|
510
|
+
"enabled": {
|
|
511
|
+
"type": "boolean",
|
|
512
|
+
"default": false
|
|
513
|
+
},
|
|
514
|
+
"windowMinutes": {
|
|
515
|
+
"type": "integer",
|
|
516
|
+
"minimum": 1,
|
|
517
|
+
"default": 60
|
|
518
|
+
},
|
|
519
|
+
"greeting": {
|
|
520
|
+
"type": "string",
|
|
521
|
+
"minLength": 1
|
|
522
|
+
},
|
|
523
|
+
"brief": {
|
|
524
|
+
"type": "object",
|
|
525
|
+
"additionalProperties": false,
|
|
526
|
+
"description": "Optional task, facts, identity and permissions for a single call; maximum 8000 JSON characters.",
|
|
527
|
+
"properties": {
|
|
528
|
+
"task": {
|
|
529
|
+
"type": "string",
|
|
530
|
+
"minLength": 1,
|
|
531
|
+
"maxLength": 2000
|
|
532
|
+
},
|
|
533
|
+
"context": {
|
|
534
|
+
"type": "string",
|
|
535
|
+
"minLength": 1,
|
|
536
|
+
"maxLength": 4000
|
|
537
|
+
},
|
|
538
|
+
"language": {
|
|
539
|
+
"type": "string",
|
|
540
|
+
"minLength": 1,
|
|
541
|
+
"maxLength": 100
|
|
542
|
+
},
|
|
543
|
+
"identity": {
|
|
544
|
+
"anyOf": [
|
|
545
|
+
{
|
|
546
|
+
"type": "string",
|
|
547
|
+
"minLength": 1,
|
|
548
|
+
"maxLength": 500
|
|
549
|
+
},
|
|
550
|
+
{
|
|
551
|
+
"type": "object",
|
|
552
|
+
"additionalProperties": false,
|
|
553
|
+
"properties": {
|
|
554
|
+
"introduction": {
|
|
555
|
+
"type": "string",
|
|
556
|
+
"minLength": 1,
|
|
557
|
+
"maxLength": 500
|
|
558
|
+
},
|
|
559
|
+
"disclose": {
|
|
560
|
+
"type": "string",
|
|
561
|
+
"enum": [
|
|
562
|
+
"volunteer",
|
|
563
|
+
"when-asked"
|
|
564
|
+
]
|
|
565
|
+
}
|
|
566
|
+
},
|
|
567
|
+
"required": [
|
|
568
|
+
"introduction"
|
|
569
|
+
]
|
|
570
|
+
}
|
|
571
|
+
]
|
|
572
|
+
},
|
|
573
|
+
"disclosures": {
|
|
574
|
+
"type": "array",
|
|
575
|
+
"maxItems": 20,
|
|
576
|
+
"items": {
|
|
577
|
+
"type": "string",
|
|
578
|
+
"minLength": 1,
|
|
579
|
+
"maxLength": 500
|
|
580
|
+
}
|
|
581
|
+
},
|
|
582
|
+
"approvals": {
|
|
583
|
+
"type": "string",
|
|
584
|
+
"minLength": 1,
|
|
585
|
+
"maxLength": 2000
|
|
586
|
+
},
|
|
587
|
+
"voicemailMessage": {
|
|
588
|
+
"type": "string",
|
|
589
|
+
"minLength": 1,
|
|
590
|
+
"maxLength": 1000
|
|
591
|
+
},
|
|
592
|
+
"successCriteria": {
|
|
593
|
+
"type": "string",
|
|
594
|
+
"minLength": 1,
|
|
595
|
+
"maxLength": 1000
|
|
596
|
+
},
|
|
597
|
+
"maxDurationSeconds": {
|
|
598
|
+
"type": "integer",
|
|
599
|
+
"minimum": 1
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
}
|
|
603
|
+
}
|
|
604
|
+
},
|
|
605
|
+
"voicemail": {
|
|
606
|
+
"type": "object",
|
|
607
|
+
"additionalProperties": false,
|
|
608
|
+
"properties": {
|
|
609
|
+
"machineDetectionSpeechThresholdMs": {
|
|
610
|
+
"type": "integer",
|
|
611
|
+
"minimum": 1000,
|
|
612
|
+
"maximum": 6000,
|
|
613
|
+
"default": 6000,
|
|
614
|
+
"description": "Twilio speech length threshold in milliseconds; the higher default tolerates longer human greetings."
|
|
615
|
+
},
|
|
616
|
+
"machineDetectionSpeechEndThresholdMs": {
|
|
617
|
+
"type": "integer",
|
|
618
|
+
"minimum": 500,
|
|
619
|
+
"maximum": 5000,
|
|
620
|
+
"default": 1200,
|
|
621
|
+
"description": "Twilio silence after speech that ends a greeting, in milliseconds."
|
|
622
|
+
},
|
|
623
|
+
"machineDetectionSilenceTimeoutMs": {
|
|
624
|
+
"type": "integer",
|
|
625
|
+
"minimum": 2000,
|
|
626
|
+
"maximum": 10000,
|
|
627
|
+
"default": 5000,
|
|
628
|
+
"description": "Twilio initial silence timeout before an unknown result, in milliseconds."
|
|
629
|
+
},
|
|
630
|
+
"machineDetectionTimeoutMs": {
|
|
631
|
+
"type": "integer",
|
|
632
|
+
"minimum": 3000,
|
|
633
|
+
"maximum": 59000,
|
|
634
|
+
"multipleOf": 1000,
|
|
635
|
+
"default": 30000,
|
|
636
|
+
"description": "Twilio detection timeout in milliseconds, in whole seconds; sent as MachineDetectionTimeout seconds."
|
|
637
|
+
},
|
|
638
|
+
"holdOpeningMaxMs": {
|
|
639
|
+
"type": "integer",
|
|
640
|
+
"minimum": 1,
|
|
641
|
+
"default": 30000,
|
|
642
|
+
"description": "Maximum realtime opening hold with no AMD classification, in milliseconds."
|
|
643
|
+
},
|
|
644
|
+
"detection": {
|
|
645
|
+
"type": "string",
|
|
646
|
+
"enum": [
|
|
647
|
+
"off",
|
|
648
|
+
"twilio"
|
|
649
|
+
],
|
|
650
|
+
"default": "off"
|
|
651
|
+
},
|
|
652
|
+
"onMachine": {
|
|
653
|
+
"type": "string",
|
|
654
|
+
"enum": [
|
|
655
|
+
"leave-message",
|
|
656
|
+
"hang-up"
|
|
657
|
+
],
|
|
658
|
+
"default": "leave-message"
|
|
659
|
+
}
|
|
660
|
+
}
|
|
661
|
+
},
|
|
458
662
|
"maxDurationSeconds": {
|
|
459
663
|
"type": "integer",
|
|
460
664
|
"minimum": 1
|
|
@@ -605,6 +809,10 @@
|
|
|
605
809
|
"streamPath": {
|
|
606
810
|
"type": "string"
|
|
607
811
|
},
|
|
812
|
+
"idleHangupMs": {
|
|
813
|
+
"type": "integer",
|
|
814
|
+
"minimum": 1
|
|
815
|
+
},
|
|
608
816
|
"instructions": {
|
|
609
817
|
"type": "string"
|
|
610
818
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw/voice-call",
|
|
3
|
-
"version": "2026.10.2",
|
|
3
|
+
"version": "2026.10.5-beta.2",
|
|
4
4
|
"description": "OpenClaw voice-call plugin for Twilio, Telnyx, and Plivo phone calls.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"zod": "4.6.5"
|
|
13
13
|
},
|
|
14
14
|
"peerDependencies": {
|
|
15
|
-
"openclaw": ">=2026.10.2"
|
|
15
|
+
"openclaw": ">=2026.10.5-beta.2"
|
|
16
16
|
},
|
|
17
17
|
"peerDependenciesMeta": {
|
|
18
18
|
"openclaw": {
|
|
@@ -31,10 +31,10 @@
|
|
|
31
31
|
"minHostVersion": ">=2026.4.10"
|
|
32
32
|
},
|
|
33
33
|
"compat": {
|
|
34
|
-
"pluginApi": ">=2026.10.2"
|
|
34
|
+
"pluginApi": ">=2026.10.5-beta.2"
|
|
35
35
|
},
|
|
36
36
|
"build": {
|
|
37
|
-
"openclawVersion": "2026.10.2"
|
|
37
|
+
"openclawVersion": "2026.10.5-beta.2"
|
|
38
38
|
},
|
|
39
39
|
"release": {
|
|
40
40
|
"publishToClawHub": true,
|