@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.
@@ -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,