@memberjunction/server 6.2.0-edge.1 → 6.2.0-edge.3

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.
Files changed (220) hide show
  1. package/README.md +30 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/config.d.ts +2189 -71
  4. package/dist/config.d.ts.map +1 -1
  5. package/dist/config.js +123 -3
  6. package/dist/config.js.map +1 -1
  7. package/dist/context.d.ts.map +1 -1
  8. package/dist/context.js +11 -23
  9. package/dist/context.js.map +1 -1
  10. package/dist/generated/graphql-schemas/__mj.d.ts +2143 -205
  11. package/dist/generated/graphql-schemas/__mj.d.ts.map +1 -1
  12. package/dist/generated/graphql-schemas/__mj.js +24441 -14433
  13. package/dist/generated/graphql-schemas/__mj.js.map +1 -1
  14. package/dist/generic/FireAndForgetHeartbeat.d.ts +15 -1
  15. package/dist/generic/FireAndForgetHeartbeat.d.ts.map +1 -1
  16. package/dist/generic/FireAndForgetHeartbeat.js +16 -2
  17. package/dist/generic/FireAndForgetHeartbeat.js.map +1 -1
  18. package/dist/generic/OrphanedConversationDetailReconciler.d.ts +31 -0
  19. package/dist/generic/OrphanedConversationDetailReconciler.d.ts.map +1 -0
  20. package/dist/generic/OrphanedConversationDetailReconciler.js +215 -0
  21. package/dist/generic/OrphanedConversationDetailReconciler.js.map +1 -0
  22. package/dist/generic/PushStatusResolver.d.ts +38 -0
  23. package/dist/generic/PushStatusResolver.d.ts.map +1 -1
  24. package/dist/generic/PushStatusResolver.js +84 -1
  25. package/dist/generic/PushStatusResolver.js.map +1 -1
  26. package/dist/generic/ResolverBase.d.ts +56 -4
  27. package/dist/generic/ResolverBase.d.ts.map +1 -1
  28. package/dist/generic/ResolverBase.js +191 -74
  29. package/dist/generic/ResolverBase.js.map +1 -1
  30. package/dist/generic/RunViewResolver.d.ts +4 -0
  31. package/dist/generic/RunViewResolver.d.ts.map +1 -1
  32. package/dist/generic/RunViewResolver.js +33 -1
  33. package/dist/generic/RunViewResolver.js.map +1 -1
  34. package/dist/index.d.ts +4 -0
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +204 -50
  37. package/dist/index.js.map +1 -1
  38. package/dist/postgresqlCompat.d.ts +8 -0
  39. package/dist/postgresqlCompat.d.ts.map +1 -0
  40. package/dist/postgresqlCompat.js +19 -0
  41. package/dist/postgresqlCompat.js.map +1 -0
  42. package/dist/postgresqlPoolSettings.d.ts +108 -0
  43. package/dist/postgresqlPoolSettings.d.ts.map +1 -0
  44. package/dist/postgresqlPoolSettings.js +134 -0
  45. package/dist/postgresqlPoolSettings.js.map +1 -0
  46. package/dist/resolvers/AdhocQueryResolver.d.ts +23 -18
  47. package/dist/resolvers/AdhocQueryResolver.d.ts.map +1 -1
  48. package/dist/resolvers/AdhocQueryResolver.js +77 -167
  49. package/dist/resolvers/AdhocQueryResolver.js.map +1 -1
  50. package/dist/resolvers/AgentRunStatusPublisher.d.ts +55 -0
  51. package/dist/resolvers/AgentRunStatusPublisher.d.ts.map +1 -0
  52. package/dist/resolvers/AgentRunStatusPublisher.js +141 -0
  53. package/dist/resolvers/AgentRunStatusPublisher.js.map +1 -0
  54. package/dist/resolvers/ConversationRunEventsResolver.d.ts +90 -0
  55. package/dist/resolvers/ConversationRunEventsResolver.d.ts.map +1 -0
  56. package/dist/resolvers/ConversationRunEventsResolver.js +283 -0
  57. package/dist/resolvers/ConversationRunEventsResolver.js.map +1 -0
  58. package/dist/resolvers/DuplicateEntryCheckResolver.d.ts +98 -0
  59. package/dist/resolvers/DuplicateEntryCheckResolver.d.ts.map +1 -0
  60. package/dist/resolvers/DuplicateEntryCheckResolver.js +227 -0
  61. package/dist/resolvers/DuplicateEntryCheckResolver.js.map +1 -0
  62. package/dist/resolvers/EntityRecordNameResolver.d.ts +7 -23
  63. package/dist/resolvers/EntityRecordNameResolver.d.ts.map +1 -1
  64. package/dist/resolvers/EntityRecordNameResolver.js +9 -47
  65. package/dist/resolvers/EntityRecordNameResolver.js.map +1 -1
  66. package/dist/resolvers/FetchEntityVectorsResolver.d.ts.map +1 -1
  67. package/dist/resolvers/FetchEntityVectorsResolver.js +2 -1
  68. package/dist/resolvers/FetchEntityVectorsResolver.js.map +1 -1
  69. package/dist/resolvers/GetDataResolver.d.ts.map +1 -1
  70. package/dist/resolvers/GetDataResolver.js +9 -0
  71. package/dist/resolvers/GetDataResolver.js.map +1 -1
  72. package/dist/resolvers/HumanHandoffResolver.d.ts +107 -0
  73. package/dist/resolvers/HumanHandoffResolver.d.ts.map +1 -0
  74. package/dist/resolvers/HumanHandoffResolver.js +324 -0
  75. package/dist/resolvers/HumanHandoffResolver.js.map +1 -0
  76. package/dist/resolvers/MeetingResolver.d.ts +69 -0
  77. package/dist/resolvers/MeetingResolver.d.ts.map +1 -0
  78. package/dist/resolvers/MeetingResolver.js +381 -0
  79. package/dist/resolvers/MeetingResolver.js.map +1 -0
  80. package/dist/resolvers/MergeRecordsResolver.d.ts +7 -0
  81. package/dist/resolvers/MergeRecordsResolver.d.ts.map +1 -1
  82. package/dist/resolvers/MergeRecordsResolver.js +16 -2
  83. package/dist/resolvers/MergeRecordsResolver.js.map +1 -1
  84. package/dist/resolvers/RealtimeBridgeResolver.d.ts +34 -1
  85. package/dist/resolvers/RealtimeBridgeResolver.d.ts.map +1 -1
  86. package/dist/resolvers/RealtimeBridgeResolver.js +202 -7
  87. package/dist/resolvers/RealtimeBridgeResolver.js.map +1 -1
  88. package/dist/resolvers/RealtimeClientSessionResolver.d.ts +45 -89
  89. package/dist/resolvers/RealtimeClientSessionResolver.d.ts.map +1 -1
  90. package/dist/resolvers/RealtimeClientSessionResolver.js +94 -240
  91. package/dist/resolvers/RealtimeClientSessionResolver.js.map +1 -1
  92. package/dist/resolvers/RunAIAgentResolver.d.ts +0 -16
  93. package/dist/resolvers/RunAIAgentResolver.d.ts.map +1 -1
  94. package/dist/resolvers/RunAIAgentResolver.js +23 -153
  95. package/dist/resolvers/RunAIAgentResolver.js.map +1 -1
  96. package/dist/resolvers/RunDecisionResolver.d.ts +149 -0
  97. package/dist/resolvers/RunDecisionResolver.d.ts.map +1 -0
  98. package/dist/resolvers/RunDecisionResolver.js +396 -0
  99. package/dist/resolvers/RunDecisionResolver.js.map +1 -0
  100. package/dist/resolvers/VectorizeEntityResolver.d.ts +1 -1
  101. package/dist/resolvers/VectorizeEntityResolver.d.ts.map +1 -1
  102. package/dist/resolvers/VectorizeEntityResolver.js +14 -10
  103. package/dist/resolvers/VectorizeEntityResolver.js.map +1 -1
  104. package/dist/resolvers/adhocTimeout.d.ts +7 -0
  105. package/dist/resolvers/adhocTimeout.d.ts.map +1 -0
  106. package/dist/resolvers/adhocTimeout.js +12 -0
  107. package/dist/resolvers/adhocTimeout.js.map +1 -0
  108. package/dist/resolvers/meetings/index.d.ts +5 -0
  109. package/dist/resolvers/meetings/index.d.ts.map +1 -0
  110. package/dist/resolvers/meetings/index.js +5 -0
  111. package/dist/resolvers/meetings/index.js.map +1 -0
  112. package/dist/resolvers/meetings/meetingHelpers.d.ts +17 -0
  113. package/dist/resolvers/meetings/meetingHelpers.d.ts.map +1 -0
  114. package/dist/resolvers/meetings/meetingHelpers.js +212 -0
  115. package/dist/resolvers/meetings/meetingHelpers.js.map +1 -0
  116. package/dist/resolvers/meetings/meetingMutations.d.ts +12 -0
  117. package/dist/resolvers/meetings/meetingMutations.d.ts.map +1 -0
  118. package/dist/resolvers/meetings/meetingMutations.js +418 -0
  119. package/dist/resolvers/meetings/meetingMutations.js.map +1 -0
  120. package/dist/resolvers/meetings/meetingQueries.d.ts +7 -0
  121. package/dist/resolvers/meetings/meetingQueries.d.ts.map +1 -0
  122. package/dist/resolvers/meetings/meetingQueries.js +113 -0
  123. package/dist/resolvers/meetings/meetingQueries.js.map +1 -0
  124. package/dist/resolvers/meetings/meetingTypes.d.ts +89 -0
  125. package/dist/resolvers/meetings/meetingTypes.d.ts.map +1 -0
  126. package/dist/resolvers/meetings/meetingTypes.js +345 -0
  127. package/dist/resolvers/meetings/meetingTypes.js.map +1 -0
  128. package/dist/rest/ViewOperationsHandler.d.ts.map +1 -1
  129. package/dist/rest/ViewOperationsHandler.js +8 -5
  130. package/dist/rest/ViewOperationsHandler.js.map +1 -1
  131. package/dist/services/TaskGraphActionRunner.d.ts +8 -0
  132. package/dist/services/TaskGraphActionRunner.d.ts.map +1 -1
  133. package/dist/services/TaskGraphActionRunner.js +27 -1
  134. package/dist/services/TaskGraphActionRunner.js.map +1 -1
  135. package/dist/services/WorkQueueHostService.d.ts +36 -0
  136. package/dist/services/WorkQueueHostService.d.ts.map +1 -0
  137. package/dist/services/WorkQueueHostService.js +97 -0
  138. package/dist/services/WorkQueueHostService.js.map +1 -0
  139. package/dist/services/workQueueConfig.d.ts +103 -0
  140. package/dist/services/workQueueConfig.d.ts.map +1 -0
  141. package/dist/services/workQueueConfig.js +48 -0
  142. package/dist/services/workQueueConfig.js.map +1 -0
  143. package/dist/types.d.ts +5 -0
  144. package/dist/types.d.ts.map +1 -1
  145. package/dist/types.js.map +1 -1
  146. package/package.json +95 -92
  147. package/src/__tests__/AdhocQueryResolver.bugs.test.ts +14 -35
  148. package/src/__tests__/AdhocQueryResolver.pagination.test.ts +6 -2
  149. package/src/__tests__/AdhocQueryResolver.scopeGuard.test.ts +3 -3
  150. package/src/__tests__/AgentRunStatusPublisher.test.ts +175 -0
  151. package/src/__tests__/DuplicateEntryCheckResolver.test.ts +300 -0
  152. package/src/__tests__/EntityRecordNameResolver.fieldSecurity.test.ts +27 -72
  153. package/src/__tests__/HumanHandoffResolver.test.ts +233 -0
  154. package/src/__tests__/MeetingResolver.test.ts +374 -0
  155. package/src/__tests__/RealtimeBridgeResolver.test.ts +240 -2
  156. package/src/__tests__/RealtimeClientSessionResolver.test.ts +216 -2
  157. package/src/__tests__/RemoteBrowserActionRecovery.test.ts +7 -1
  158. package/src/__tests__/RemoteBrowserAudioStream.test.ts +7 -1
  159. package/src/__tests__/RemoteBrowserSnapshot.test.ts +7 -1
  160. package/src/__tests__/ResolverBase.adhocReadScope.test.ts +96 -0
  161. package/src/__tests__/ResolverBase.clientOldValues.test.ts +52 -0
  162. package/src/__tests__/ResolverBase.filterEscaping.test.ts +21 -2
  163. package/src/__tests__/ResolverBase.includeBinaryFields.test.ts +291 -0
  164. package/src/__tests__/RunAIAgentResolver.historyFrom.test.ts +182 -12
  165. package/src/__tests__/RunAIAgentResolver.streaming.test.ts +18 -27
  166. package/src/__tests__/RunDecisionResolver.test.ts +699 -0
  167. package/src/__tests__/TaskGraphActionRunner.durablePayload.test.ts +43 -0
  168. package/src/__tests__/VectorizeEntityResolver.test.ts +106 -0
  169. package/src/__tests__/WorkQueueHostService.test.ts +133 -0
  170. package/src/__tests__/adhocTimeoutClamp.test.ts +26 -0
  171. package/src/__tests__/conversationRunEvents.test.ts +399 -0
  172. package/src/__tests__/orphanedConversationDetailReconciler.test.ts +283 -0
  173. package/src/__tests__/postgresqlPoolSettings.test.ts +131 -0
  174. package/src/__tests__/pushStatusFanOut.test.ts +206 -0
  175. package/src/__tests__/translateBracketsToPG.test.ts +20 -0
  176. package/src/auth/__tests__/backward-compatibility.test.ts +1 -0
  177. package/src/config.ts +130 -3
  178. package/src/context.ts +11 -24
  179. package/src/generated/graphql-schemas/__mj.ts +24183 -17182
  180. package/src/generic/FireAndForgetHeartbeat.ts +16 -2
  181. package/src/generic/OrphanedConversationDetailReconciler.ts +267 -0
  182. package/src/generic/PushStatusResolver.ts +97 -1
  183. package/src/generic/ResolverBase.ts +220 -76
  184. package/src/generic/RunViewResolver.ts +33 -2
  185. package/src/index.ts +228 -51
  186. package/src/postgresqlCompat.ts +21 -0
  187. package/src/postgresqlPoolSettings.ts +213 -0
  188. package/src/resolvers/AdhocQueryResolver.ts +88 -188
  189. package/src/resolvers/AgentRunStatusPublisher.ts +175 -0
  190. package/src/resolvers/ConversationRunEventsResolver.ts +308 -0
  191. package/src/resolvers/DuplicateEntryCheckResolver.ts +232 -0
  192. package/src/resolvers/EntityRecordNameResolver.ts +9 -51
  193. package/src/resolvers/FetchEntityVectorsResolver.ts +2 -1
  194. package/src/resolvers/GetDataResolver.ts +10 -0
  195. package/src/resolvers/HumanHandoffResolver.ts +304 -0
  196. package/src/resolvers/MeetingResolver.ts +438 -0
  197. package/src/resolvers/MergeRecordsResolver.ts +14 -2
  198. package/src/resolvers/RealtimeBridgeResolver.ts +227 -13
  199. package/src/resolvers/RealtimeClientSessionResolver.ts +99 -287
  200. package/src/resolvers/RunAIAgentResolver.ts +28 -174
  201. package/src/resolvers/RunDecisionResolver.ts +435 -0
  202. package/src/resolvers/VectorizeEntityResolver.ts +16 -11
  203. package/src/resolvers/__tests__/MergeRecordsResolver.test.ts +93 -0
  204. package/src/resolvers/adhocTimeout.ts +12 -0
  205. package/src/resolvers/meetings/index.ts +4 -0
  206. package/src/resolvers/meetings/meetingHelpers.ts +307 -0
  207. package/src/resolvers/meetings/meetingMutations.ts +535 -0
  208. package/src/resolvers/meetings/meetingQueries.ts +172 -0
  209. package/src/resolvers/meetings/meetingTypes.ts +238 -0
  210. package/src/rest/ViewOperationsHandler.ts +8 -5
  211. package/src/services/TaskGraphActionRunner.ts +29 -1
  212. package/src/services/WorkQueueHostService.ts +129 -0
  213. package/src/services/workQueueConfig.ts +52 -0
  214. package/src/types.ts +5 -0
  215. package/dist/resolvers/adhoc-query-helpers.d.ts +0 -33
  216. package/dist/resolvers/adhoc-query-helpers.d.ts.map +0 -1
  217. package/dist/resolvers/adhoc-query-helpers.js +0 -50
  218. package/dist/resolvers/adhoc-query-helpers.js.map +0 -1
  219. package/src/__tests__/adhoc-query-helpers.test.ts +0 -50
  220. package/src/resolvers/adhoc-query-helpers.ts +0 -67
package/dist/config.d.ts CHANGED
@@ -610,12 +610,12 @@ declare const rateLimitSchema: z.ZodObject<{
610
610
  maxRequests?: number;
611
611
  }>>;
612
612
  }, "strip", z.ZodTypeAny, {
613
+ enabled?: boolean;
613
614
  global?: {
614
615
  message?: string;
615
616
  windowMs?: number;
616
617
  maxRequests?: number;
617
618
  };
618
- enabled?: boolean;
619
619
  graphql?: {
620
620
  windowMs?: number;
621
621
  maxRequests?: number;
@@ -625,12 +625,12 @@ declare const rateLimitSchema: z.ZodObject<{
625
625
  maxAttempts?: number;
626
626
  };
627
627
  }, {
628
+ enabled?: boolean;
628
629
  global?: {
629
630
  message?: string;
630
631
  windowMs?: number;
631
632
  maxRequests?: number;
632
633
  };
633
- enabled?: boolean;
634
634
  graphql?: {
635
635
  windowMs?: number;
636
636
  maxRequests?: number;
@@ -1083,10 +1083,20 @@ declare const twilioTelephonySchema: z.ZodObject<{
1083
1083
  apiKeySecret: z.ZodOptional<z.ZodString>;
1084
1084
  /** The publicly reachable `wss://…/telephony/twilio/media` URL Twilio's <Connect><Stream> connects to. */
1085
1085
  streamPublicUrl: z.ZodString;
1086
- /** Optional shared secret gating the public webhook/WSS endpoints (defense-in-depth beyond signature verification). */
1086
+ /**
1087
+ * Reserved; currently unused. The Media-Streams websocket is authenticated by a per-call token MJ mints and
1088
+ * embeds in the TwiML (`<Parameter name="mjToken">`), and webhooks by `X-Twilio-Signature`.
1089
+ */
1087
1090
  webhookSigningSecret: z.ZodOptional<z.ZodString>;
1088
- /** Optional status-callback URL Twilio posts call lifecycle events to. */
1091
+ /**
1092
+ * URL Twilio posts outbound-call lifecycle events to. Defaults to `<public URL>/telephony/twilio/status`, the
1093
+ * route that ends the bridge session when a call is busy / unanswered / failed / completed.
1094
+ */
1089
1095
  statusCallbackUrl: z.ZodOptional<z.ZodString>;
1096
+ /** URL Twilio posts the async answering-machine verdict to. Defaults to `<public URL>/telephony/twilio/amd`. */
1097
+ amdStatusCallbackUrl: z.ZodOptional<z.ZodString>;
1098
+ /** What to do when a machine or fax answers an outbound call: `hangup` (default) ends it, `continue` only logs the verdict. */
1099
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
1090
1100
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1091
1101
  /** Twilio Account SID (`AC…`). */
1092
1102
  accountSid: z.ZodString;
@@ -1098,10 +1108,20 @@ declare const twilioTelephonySchema: z.ZodObject<{
1098
1108
  apiKeySecret: z.ZodOptional<z.ZodString>;
1099
1109
  /** The publicly reachable `wss://…/telephony/twilio/media` URL Twilio's <Connect><Stream> connects to. */
1100
1110
  streamPublicUrl: z.ZodString;
1101
- /** Optional shared secret gating the public webhook/WSS endpoints (defense-in-depth beyond signature verification). */
1111
+ /**
1112
+ * Reserved; currently unused. The Media-Streams websocket is authenticated by a per-call token MJ mints and
1113
+ * embeds in the TwiML (`<Parameter name="mjToken">`), and webhooks by `X-Twilio-Signature`.
1114
+ */
1102
1115
  webhookSigningSecret: z.ZodOptional<z.ZodString>;
1103
- /** Optional status-callback URL Twilio posts call lifecycle events to. */
1116
+ /**
1117
+ * URL Twilio posts outbound-call lifecycle events to. Defaults to `<public URL>/telephony/twilio/status`, the
1118
+ * route that ends the bridge session when a call is busy / unanswered / failed / completed.
1119
+ */
1104
1120
  statusCallbackUrl: z.ZodOptional<z.ZodString>;
1121
+ /** URL Twilio posts the async answering-machine verdict to. Defaults to `<public URL>/telephony/twilio/amd`. */
1122
+ amdStatusCallbackUrl: z.ZodOptional<z.ZodString>;
1123
+ /** What to do when a machine or fax answers an outbound call: `hangup` (default) ends it, `continue` only logs the verdict. */
1124
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
1105
1125
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1106
1126
  /** Twilio Account SID (`AC…`). */
1107
1127
  accountSid: z.ZodString;
@@ -1113,10 +1133,20 @@ declare const twilioTelephonySchema: z.ZodObject<{
1113
1133
  apiKeySecret: z.ZodOptional<z.ZodString>;
1114
1134
  /** The publicly reachable `wss://…/telephony/twilio/media` URL Twilio's <Connect><Stream> connects to. */
1115
1135
  streamPublicUrl: z.ZodString;
1116
- /** Optional shared secret gating the public webhook/WSS endpoints (defense-in-depth beyond signature verification). */
1136
+ /**
1137
+ * Reserved; currently unused. The Media-Streams websocket is authenticated by a per-call token MJ mints and
1138
+ * embeds in the TwiML (`<Parameter name="mjToken">`), and webhooks by `X-Twilio-Signature`.
1139
+ */
1117
1140
  webhookSigningSecret: z.ZodOptional<z.ZodString>;
1118
- /** Optional status-callback URL Twilio posts call lifecycle events to. */
1141
+ /**
1142
+ * URL Twilio posts outbound-call lifecycle events to. Defaults to `<public URL>/telephony/twilio/status`, the
1143
+ * route that ends the bridge session when a call is busy / unanswered / failed / completed.
1144
+ */
1119
1145
  statusCallbackUrl: z.ZodOptional<z.ZodString>;
1146
+ /** URL Twilio posts the async answering-machine verdict to. Defaults to `<public URL>/telephony/twilio/amd`. */
1147
+ amdStatusCallbackUrl: z.ZodOptional<z.ZodString>;
1148
+ /** What to do when a machine or fax answers an outbound call: `hangup` (default) ends it, `continue` only logs the verdict. */
1149
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
1120
1150
  }, z.ZodTypeAny, "passthrough">>;
1121
1151
  /**
1122
1152
  * Vonage Voice + WebSocket-media telephony binding. Voice-API auth is application-scoped
@@ -1137,8 +1167,14 @@ declare const vonageTelephonySchema: z.ZodObject<{
1137
1167
  mediaPublicUrl: z.ZodString;
1138
1168
  /** Vonage account signature secret — HMAC key for signed-request `sig` AND HS256 webhook-JWT verification. */
1139
1169
  signatureSecret: z.ZodOptional<z.ZodString>;
1140
- /** Optional event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). */
1170
+ /**
1171
+ * Event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). Defaults to
1172
+ * `<public URL>/telephony/vonage/event`, the route that ends the bridge session when a call is busy /
1173
+ * unanswered / failed / completed.
1174
+ */
1141
1175
  eventUrl: z.ZodOptional<z.ZodString>;
1176
+ /** What to do when a machine answers an outbound call — Vonage's `machine_detection`: `hangup` (default) or `continue`. */
1177
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
1142
1178
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1143
1179
  /** Vonage Application ID (UUID) — the JWT-auth identity for the Voice API. */
1144
1180
  applicationId: z.ZodOptional<z.ZodString>;
@@ -1152,8 +1188,14 @@ declare const vonageTelephonySchema: z.ZodObject<{
1152
1188
  mediaPublicUrl: z.ZodString;
1153
1189
  /** Vonage account signature secret — HMAC key for signed-request `sig` AND HS256 webhook-JWT verification. */
1154
1190
  signatureSecret: z.ZodOptional<z.ZodString>;
1155
- /** Optional event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). */
1191
+ /**
1192
+ * Event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). Defaults to
1193
+ * `<public URL>/telephony/vonage/event`, the route that ends the bridge session when a call is busy /
1194
+ * unanswered / failed / completed.
1195
+ */
1156
1196
  eventUrl: z.ZodOptional<z.ZodString>;
1197
+ /** What to do when a machine answers an outbound call — Vonage's `machine_detection`: `hangup` (default) or `continue`. */
1198
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
1157
1199
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1158
1200
  /** Vonage Application ID (UUID) — the JWT-auth identity for the Voice API. */
1159
1201
  applicationId: z.ZodOptional<z.ZodString>;
@@ -1167,8 +1209,14 @@ declare const vonageTelephonySchema: z.ZodObject<{
1167
1209
  mediaPublicUrl: z.ZodString;
1168
1210
  /** Vonage account signature secret — HMAC key for signed-request `sig` AND HS256 webhook-JWT verification. */
1169
1211
  signatureSecret: z.ZodOptional<z.ZodString>;
1170
- /** Optional event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). */
1212
+ /**
1213
+ * Event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). Defaults to
1214
+ * `<public URL>/telephony/vonage/event`, the route that ends the bridge session when a call is busy /
1215
+ * unanswered / failed / completed.
1216
+ */
1171
1217
  eventUrl: z.ZodOptional<z.ZodString>;
1218
+ /** What to do when a machine answers an outbound call — Vonage's `machine_detection`: `hangup` (default) or `continue`. */
1219
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
1172
1220
  }, z.ZodTypeAny, "passthrough">>;
1173
1221
  /**
1174
1222
  * RingCentral telephony binding: **SIP device credentials** for the headless softphone (the
@@ -1279,9 +1327,237 @@ declare const teamsMeetingsSchema: z.ZodObject<{
1279
1327
  /** The realtime model's PCM16 sample rate (Hz) the binding resamples to/from. Defaults to 16000. */
1280
1328
  modelSampleRate: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1281
1329
  }, z.ZodTypeAny, "passthrough">>;
1330
+ /**
1331
+ * LiveKit SIP binding: phone calls carried by a SIP trunk and landed in a LiveKit room (every conversation lives in a room;
1332
+ * the carrier is only the pipe). LiveKit credentials default to the `LIVEKIT_URL` / `LIVEKIT_API_KEY` /
1333
+ * `LIVEKIT_API_SECRET` env vars the Meet room already uses. When `livekitSip` is omitted, the LiveKit SIP webhook is not mounted.
1334
+ * Point a LiveKit project webhook at `<public URL>/telephony/livekit-sip/webhook` (the signature is verified with the API secret).
1335
+ */
1336
+ declare const livekitSipTelephonySchema: z.ZodObject<{
1337
+ /** LiveKit server URL (`wss://…`). Defaults to `LIVEKIT_URL`. */
1338
+ serverUrl: z.ZodOptional<z.ZodString>;
1339
+ /** LiveKit API key. Defaults to `LIVEKIT_API_KEY`. */
1340
+ apiKey: z.ZodOptional<z.ZodString>;
1341
+ /** LiveKit API secret (resolved upstream — never inlined). Defaults to `LIVEKIT_API_SECRET`. */
1342
+ apiSecret: z.ZodOptional<z.ZodString>;
1343
+ /** Inbound calls land in a room whose name starts with this. Defaults to `call-`. */
1344
+ roomPrefix: z.ZodOptional<z.ZodString>;
1345
+ /** The numbers (E.164) this deployment answers. Each routes to the agent identity registered for it (on the LiveKit provider). */
1346
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1347
+ /** The LiveKit inbound trunk id, when created by hand. */
1348
+ inboundTrunkId: z.ZodOptional<z.ZodString>;
1349
+ /** The LiveKit OUTBOUND trunk used to dial out (outbound calls, fallback legs, transfers to a number). Dialing out is off without it. */
1350
+ outboundTrunkId: z.ZodOptional<z.ZodString>;
1351
+ /** The caller ID presented on calls dialed out through the outbound trunk. */
1352
+ outboundFromNumber: z.ZodOptional<z.ZodString>;
1353
+ /** Create the inbound trunk and dispatch rule at startup when missing (idempotent). Defaults to false. */
1354
+ autoProvision: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>>;
1355
+ /** Source addresses the inbound trunk accepts calls from (the carrier's SIP signalling addresses). Used when provisioning. */
1356
+ allowedAddresses: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1357
+ /** The carrier behind the trunk, for configuration checks only (no carrier API is called). */
1358
+ carrier: z.ZodOptional<z.ZodObject<{
1359
+ type: z.ZodLiteral<"twilio-elastic-sip">;
1360
+ /** The LiveKit SIP URI the Twilio trunk's origination URI points at, e.g. `sip:<project>.sip.livekit.cloud`. */
1361
+ originationUri: z.ZodOptional<z.ZodString>;
1362
+ /** The trunk's Termination SIP URI on Twilio (`<name>.pstn.twilio.com`). Needed only when dialing out. */
1363
+ terminationUri: z.ZodOptional<z.ZodString>;
1364
+ /** How Twilio authenticates LiveKit's outbound requests. */
1365
+ terminationAuth: z.ZodOptional<z.ZodEnum<["credential-list", "ip-acl"]>>;
1366
+ /** The Twilio numbers associated with the trunk (E.164). */
1367
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1368
+ }, "strip", z.ZodTypeAny, {
1369
+ type?: "twilio-elastic-sip";
1370
+ numbers?: string[];
1371
+ originationUri?: string;
1372
+ terminationUri?: string;
1373
+ terminationAuth?: "credential-list" | "ip-acl";
1374
+ }, {
1375
+ type?: "twilio-elastic-sip";
1376
+ numbers?: string[];
1377
+ originationUri?: string;
1378
+ terminationUri?: string;
1379
+ terminationAuth?: "credential-list" | "ip-acl";
1380
+ }>>;
1381
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1382
+ /** LiveKit server URL (`wss://…`). Defaults to `LIVEKIT_URL`. */
1383
+ serverUrl: z.ZodOptional<z.ZodString>;
1384
+ /** LiveKit API key. Defaults to `LIVEKIT_API_KEY`. */
1385
+ apiKey: z.ZodOptional<z.ZodString>;
1386
+ /** LiveKit API secret (resolved upstream — never inlined). Defaults to `LIVEKIT_API_SECRET`. */
1387
+ apiSecret: z.ZodOptional<z.ZodString>;
1388
+ /** Inbound calls land in a room whose name starts with this. Defaults to `call-`. */
1389
+ roomPrefix: z.ZodOptional<z.ZodString>;
1390
+ /** The numbers (E.164) this deployment answers. Each routes to the agent identity registered for it (on the LiveKit provider). */
1391
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1392
+ /** The LiveKit inbound trunk id, when created by hand. */
1393
+ inboundTrunkId: z.ZodOptional<z.ZodString>;
1394
+ /** The LiveKit OUTBOUND trunk used to dial out (outbound calls, fallback legs, transfers to a number). Dialing out is off without it. */
1395
+ outboundTrunkId: z.ZodOptional<z.ZodString>;
1396
+ /** The caller ID presented on calls dialed out through the outbound trunk. */
1397
+ outboundFromNumber: z.ZodOptional<z.ZodString>;
1398
+ /** Create the inbound trunk and dispatch rule at startup when missing (idempotent). Defaults to false. */
1399
+ autoProvision: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>>;
1400
+ /** Source addresses the inbound trunk accepts calls from (the carrier's SIP signalling addresses). Used when provisioning. */
1401
+ allowedAddresses: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1402
+ /** The carrier behind the trunk, for configuration checks only (no carrier API is called). */
1403
+ carrier: z.ZodOptional<z.ZodObject<{
1404
+ type: z.ZodLiteral<"twilio-elastic-sip">;
1405
+ /** The LiveKit SIP URI the Twilio trunk's origination URI points at, e.g. `sip:<project>.sip.livekit.cloud`. */
1406
+ originationUri: z.ZodOptional<z.ZodString>;
1407
+ /** The trunk's Termination SIP URI on Twilio (`<name>.pstn.twilio.com`). Needed only when dialing out. */
1408
+ terminationUri: z.ZodOptional<z.ZodString>;
1409
+ /** How Twilio authenticates LiveKit's outbound requests. */
1410
+ terminationAuth: z.ZodOptional<z.ZodEnum<["credential-list", "ip-acl"]>>;
1411
+ /** The Twilio numbers associated with the trunk (E.164). */
1412
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1413
+ }, "strip", z.ZodTypeAny, {
1414
+ type?: "twilio-elastic-sip";
1415
+ numbers?: string[];
1416
+ originationUri?: string;
1417
+ terminationUri?: string;
1418
+ terminationAuth?: "credential-list" | "ip-acl";
1419
+ }, {
1420
+ type?: "twilio-elastic-sip";
1421
+ numbers?: string[];
1422
+ originationUri?: string;
1423
+ terminationUri?: string;
1424
+ terminationAuth?: "credential-list" | "ip-acl";
1425
+ }>>;
1426
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1427
+ /** LiveKit server URL (`wss://…`). Defaults to `LIVEKIT_URL`. */
1428
+ serverUrl: z.ZodOptional<z.ZodString>;
1429
+ /** LiveKit API key. Defaults to `LIVEKIT_API_KEY`. */
1430
+ apiKey: z.ZodOptional<z.ZodString>;
1431
+ /** LiveKit API secret (resolved upstream — never inlined). Defaults to `LIVEKIT_API_SECRET`. */
1432
+ apiSecret: z.ZodOptional<z.ZodString>;
1433
+ /** Inbound calls land in a room whose name starts with this. Defaults to `call-`. */
1434
+ roomPrefix: z.ZodOptional<z.ZodString>;
1435
+ /** The numbers (E.164) this deployment answers. Each routes to the agent identity registered for it (on the LiveKit provider). */
1436
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1437
+ /** The LiveKit inbound trunk id, when created by hand. */
1438
+ inboundTrunkId: z.ZodOptional<z.ZodString>;
1439
+ /** The LiveKit OUTBOUND trunk used to dial out (outbound calls, fallback legs, transfers to a number). Dialing out is off without it. */
1440
+ outboundTrunkId: z.ZodOptional<z.ZodString>;
1441
+ /** The caller ID presented on calls dialed out through the outbound trunk. */
1442
+ outboundFromNumber: z.ZodOptional<z.ZodString>;
1443
+ /** Create the inbound trunk and dispatch rule at startup when missing (idempotent). Defaults to false. */
1444
+ autoProvision: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>>;
1445
+ /** Source addresses the inbound trunk accepts calls from (the carrier's SIP signalling addresses). Used when provisioning. */
1446
+ allowedAddresses: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1447
+ /** The carrier behind the trunk, for configuration checks only (no carrier API is called). */
1448
+ carrier: z.ZodOptional<z.ZodObject<{
1449
+ type: z.ZodLiteral<"twilio-elastic-sip">;
1450
+ /** The LiveKit SIP URI the Twilio trunk's origination URI points at, e.g. `sip:<project>.sip.livekit.cloud`. */
1451
+ originationUri: z.ZodOptional<z.ZodString>;
1452
+ /** The trunk's Termination SIP URI on Twilio (`<name>.pstn.twilio.com`). Needed only when dialing out. */
1453
+ terminationUri: z.ZodOptional<z.ZodString>;
1454
+ /** How Twilio authenticates LiveKit's outbound requests. */
1455
+ terminationAuth: z.ZodOptional<z.ZodEnum<["credential-list", "ip-acl"]>>;
1456
+ /** The Twilio numbers associated with the trunk (E.164). */
1457
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1458
+ }, "strip", z.ZodTypeAny, {
1459
+ type?: "twilio-elastic-sip";
1460
+ numbers?: string[];
1461
+ originationUri?: string;
1462
+ terminationUri?: string;
1463
+ terminationAuth?: "credential-list" | "ip-acl";
1464
+ }, {
1465
+ type?: "twilio-elastic-sip";
1466
+ numbers?: string[];
1467
+ originationUri?: string;
1468
+ terminationUri?: string;
1469
+ terminationAuth?: "credential-list" | "ip-acl";
1470
+ }>>;
1471
+ }, z.ZodTypeAny, "passthrough">>;
1282
1472
  declare const telephonySchema: z.ZodObject<{
1283
1473
  /** Master switch. When false (or when no vendor block is present), telephony routes are not mounted. */
1284
1474
  enabled: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
1475
+ /**
1476
+ * Email of the user INBOUND calls run as. A caller is an anonymous member of the public, so the call needs a
1477
+ * principal to create its agent session and run the agent. Point this at a DEDICATED LEAST-PRIVILEGE user.
1478
+ * There is deliberately no fallback: if unset, unknown, inactive, or the system user, inbound calls are
1479
+ * rejected with a polite message and the rejection is logged. Applies to Twilio, Vonage and RingCentral.
1480
+ */
1481
+ inboundRunAsUserEmail: z.ZodOptional<z.ZodString>;
1482
+ /** Maximum length of one phone call, in seconds. The bridge session is stopped (and the call hung up) at the cap. Defaults to 1800. */
1483
+ maxCallSeconds: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1484
+ /**
1485
+ * Most phone calls (every carrier together, both directions) the server carries at once. Past it an inbound
1486
+ * caller hears "all agents are busy" and an outbound request is refused. Keep it at or below the realtime
1487
+ * model plan's concurrent-session limit. Defaults to 25.
1488
+ */
1489
+ maxConcurrentCalls: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1490
+ /** Outbound destination policy + per-user rate limit (see {@link outboundTelephonySchema}). */
1491
+ outbound: z.ZodDefault<z.ZodOptional<z.ZodObject<{
1492
+ /** Destination prefixes a call may go to (E.164, e.g. `+1`). An empty list refuses every destination. Defaults to `['+1']`. */
1493
+ allowedPrefixes: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
1494
+ /**
1495
+ * Destination prefixes that are always refused, even when an allowed prefix matches. Deliberately has NO default
1496
+ * here: when omitted, `@memberjunction/telephony-adapters` applies its own `DEFAULT_BLOCKED_PREFIXES` (NANP
1497
+ * premium-rate plus the Caribbean +1 countries abused for toll fraud), so the list lives in exactly one place.
1498
+ * Setting this REPLACES that list.
1499
+ */
1500
+ blockedPrefixes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1501
+ /** Max outbound calls one user may place per rolling hour (per process). Defaults to 20. */
1502
+ maxCallsPerUserPerHour: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1503
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1504
+ /** Destination prefixes a call may go to (E.164, e.g. `+1`). An empty list refuses every destination. Defaults to `['+1']`. */
1505
+ allowedPrefixes: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
1506
+ /**
1507
+ * Destination prefixes that are always refused, even when an allowed prefix matches. Deliberately has NO default
1508
+ * here: when omitted, `@memberjunction/telephony-adapters` applies its own `DEFAULT_BLOCKED_PREFIXES` (NANP
1509
+ * premium-rate plus the Caribbean +1 countries abused for toll fraud), so the list lives in exactly one place.
1510
+ * Setting this REPLACES that list.
1511
+ */
1512
+ blockedPrefixes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1513
+ /** Max outbound calls one user may place per rolling hour (per process). Defaults to 20. */
1514
+ maxCallsPerUserPerHour: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1515
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1516
+ /** Destination prefixes a call may go to (E.164, e.g. `+1`). An empty list refuses every destination. Defaults to `['+1']`. */
1517
+ allowedPrefixes: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
1518
+ /**
1519
+ * Destination prefixes that are always refused, even when an allowed prefix matches. Deliberately has NO default
1520
+ * here: when omitted, `@memberjunction/telephony-adapters` applies its own `DEFAULT_BLOCKED_PREFIXES` (NANP
1521
+ * premium-rate plus the Caribbean +1 countries abused for toll fraud), so the list lives in exactly one place.
1522
+ * Setting this REPLACES that list.
1523
+ */
1524
+ blockedPrefixes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1525
+ /** Max outbound calls one user may place per rolling hour (per process). Defaults to 20. */
1526
+ maxCallsPerUserPerHour: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1527
+ }, z.ZodTypeAny, "passthrough">>>>;
1528
+ /**
1529
+ * The places the agent may hand a live call to, by name (the agent names a target, never a number, an email or an agent
1530
+ * id). `kind` is `number` (the default; a phone number), `user` (a person at an Explorer console, who may accept or
1531
+ * decline; `userEmail`, optional `fallbackNumber` the room dials if they do not take it) or `agent` (another MJ AI agent,
1532
+ * by `agentName`). `user` and `agent` targets work on calls that live in a LiveKit room; a carrier call can only transfer to
1533
+ * a `number`. Every number is validated at startup against the outbound allow/block lists; an invalid entry is dropped
1534
+ * and logged. Empty (the default) means the agent cannot hand calls over at all.
1535
+ */
1536
+ transferTargets: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
1537
+ name: z.ZodString;
1538
+ kind: z.ZodOptional<z.ZodEnum<["number", "user", "agent"]>>;
1539
+ number: z.ZodOptional<z.ZodString>;
1540
+ userEmail: z.ZodOptional<z.ZodString>;
1541
+ fallbackNumber: z.ZodOptional<z.ZodString>;
1542
+ agentName: z.ZodOptional<z.ZodString>;
1543
+ description: z.ZodOptional<z.ZodString>;
1544
+ }, "strip", z.ZodTypeAny, {
1545
+ number?: string;
1546
+ name?: string;
1547
+ kind?: "number" | "user" | "agent";
1548
+ userEmail?: string;
1549
+ fallbackNumber?: string;
1550
+ agentName?: string;
1551
+ description?: string;
1552
+ }, {
1553
+ number?: string;
1554
+ name?: string;
1555
+ kind?: "number" | "user" | "agent";
1556
+ userEmail?: string;
1557
+ fallbackNumber?: string;
1558
+ agentName?: string;
1559
+ description?: string;
1560
+ }>, "many">>>;
1285
1561
  /** Twilio Programmable Voice + Media Streams binding. */
1286
1562
  twilio: z.ZodOptional<z.ZodObject<{
1287
1563
  /** Twilio Account SID (`AC…`). */
@@ -1294,10 +1570,20 @@ declare const telephonySchema: z.ZodObject<{
1294
1570
  apiKeySecret: z.ZodOptional<z.ZodString>;
1295
1571
  /** The publicly reachable `wss://…/telephony/twilio/media` URL Twilio's <Connect><Stream> connects to. */
1296
1572
  streamPublicUrl: z.ZodString;
1297
- /** Optional shared secret gating the public webhook/WSS endpoints (defense-in-depth beyond signature verification). */
1573
+ /**
1574
+ * Reserved; currently unused. The Media-Streams websocket is authenticated by a per-call token MJ mints and
1575
+ * embeds in the TwiML (`<Parameter name="mjToken">`), and webhooks by `X-Twilio-Signature`.
1576
+ */
1298
1577
  webhookSigningSecret: z.ZodOptional<z.ZodString>;
1299
- /** Optional status-callback URL Twilio posts call lifecycle events to. */
1578
+ /**
1579
+ * URL Twilio posts outbound-call lifecycle events to. Defaults to `<public URL>/telephony/twilio/status`, the
1580
+ * route that ends the bridge session when a call is busy / unanswered / failed / completed.
1581
+ */
1300
1582
  statusCallbackUrl: z.ZodOptional<z.ZodString>;
1583
+ /** URL Twilio posts the async answering-machine verdict to. Defaults to `<public URL>/telephony/twilio/amd`. */
1584
+ amdStatusCallbackUrl: z.ZodOptional<z.ZodString>;
1585
+ /** What to do when a machine or fax answers an outbound call: `hangup` (default) ends it, `continue` only logs the verdict. */
1586
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
1301
1587
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1302
1588
  /** Twilio Account SID (`AC…`). */
1303
1589
  accountSid: z.ZodString;
@@ -1309,10 +1595,20 @@ declare const telephonySchema: z.ZodObject<{
1309
1595
  apiKeySecret: z.ZodOptional<z.ZodString>;
1310
1596
  /** The publicly reachable `wss://…/telephony/twilio/media` URL Twilio's <Connect><Stream> connects to. */
1311
1597
  streamPublicUrl: z.ZodString;
1312
- /** Optional shared secret gating the public webhook/WSS endpoints (defense-in-depth beyond signature verification). */
1598
+ /**
1599
+ * Reserved; currently unused. The Media-Streams websocket is authenticated by a per-call token MJ mints and
1600
+ * embeds in the TwiML (`<Parameter name="mjToken">`), and webhooks by `X-Twilio-Signature`.
1601
+ */
1313
1602
  webhookSigningSecret: z.ZodOptional<z.ZodString>;
1314
- /** Optional status-callback URL Twilio posts call lifecycle events to. */
1603
+ /**
1604
+ * URL Twilio posts outbound-call lifecycle events to. Defaults to `<public URL>/telephony/twilio/status`, the
1605
+ * route that ends the bridge session when a call is busy / unanswered / failed / completed.
1606
+ */
1315
1607
  statusCallbackUrl: z.ZodOptional<z.ZodString>;
1608
+ /** URL Twilio posts the async answering-machine verdict to. Defaults to `<public URL>/telephony/twilio/amd`. */
1609
+ amdStatusCallbackUrl: z.ZodOptional<z.ZodString>;
1610
+ /** What to do when a machine or fax answers an outbound call: `hangup` (default) ends it, `continue` only logs the verdict. */
1611
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
1316
1612
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1317
1613
  /** Twilio Account SID (`AC…`). */
1318
1614
  accountSid: z.ZodString;
@@ -1324,10 +1620,20 @@ declare const telephonySchema: z.ZodObject<{
1324
1620
  apiKeySecret: z.ZodOptional<z.ZodString>;
1325
1621
  /** The publicly reachable `wss://…/telephony/twilio/media` URL Twilio's <Connect><Stream> connects to. */
1326
1622
  streamPublicUrl: z.ZodString;
1327
- /** Optional shared secret gating the public webhook/WSS endpoints (defense-in-depth beyond signature verification). */
1623
+ /**
1624
+ * Reserved; currently unused. The Media-Streams websocket is authenticated by a per-call token MJ mints and
1625
+ * embeds in the TwiML (`<Parameter name="mjToken">`), and webhooks by `X-Twilio-Signature`.
1626
+ */
1328
1627
  webhookSigningSecret: z.ZodOptional<z.ZodString>;
1329
- /** Optional status-callback URL Twilio posts call lifecycle events to. */
1628
+ /**
1629
+ * URL Twilio posts outbound-call lifecycle events to. Defaults to `<public URL>/telephony/twilio/status`, the
1630
+ * route that ends the bridge session when a call is busy / unanswered / failed / completed.
1631
+ */
1330
1632
  statusCallbackUrl: z.ZodOptional<z.ZodString>;
1633
+ /** URL Twilio posts the async answering-machine verdict to. Defaults to `<public URL>/telephony/twilio/amd`. */
1634
+ amdStatusCallbackUrl: z.ZodOptional<z.ZodString>;
1635
+ /** What to do when a machine or fax answers an outbound call: `hangup` (default) ends it, `continue` only logs the verdict. */
1636
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
1331
1637
  }, z.ZodTypeAny, "passthrough">>>;
1332
1638
  /** Vonage Voice + WebSocket-media binding. */
1333
1639
  vonage: z.ZodOptional<z.ZodObject<{
@@ -1343,8 +1649,14 @@ declare const telephonySchema: z.ZodObject<{
1343
1649
  mediaPublicUrl: z.ZodString;
1344
1650
  /** Vonage account signature secret — HMAC key for signed-request `sig` AND HS256 webhook-JWT verification. */
1345
1651
  signatureSecret: z.ZodOptional<z.ZodString>;
1346
- /** Optional event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). */
1652
+ /**
1653
+ * Event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). Defaults to
1654
+ * `<public URL>/telephony/vonage/event`, the route that ends the bridge session when a call is busy /
1655
+ * unanswered / failed / completed.
1656
+ */
1347
1657
  eventUrl: z.ZodOptional<z.ZodString>;
1658
+ /** What to do when a machine answers an outbound call — Vonage's `machine_detection`: `hangup` (default) or `continue`. */
1659
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
1348
1660
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1349
1661
  /** Vonage Application ID (UUID) — the JWT-auth identity for the Voice API. */
1350
1662
  applicationId: z.ZodOptional<z.ZodString>;
@@ -1358,8 +1670,14 @@ declare const telephonySchema: z.ZodObject<{
1358
1670
  mediaPublicUrl: z.ZodString;
1359
1671
  /** Vonage account signature secret — HMAC key for signed-request `sig` AND HS256 webhook-JWT verification. */
1360
1672
  signatureSecret: z.ZodOptional<z.ZodString>;
1361
- /** Optional event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). */
1673
+ /**
1674
+ * Event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). Defaults to
1675
+ * `<public URL>/telephony/vonage/event`, the route that ends the bridge session when a call is busy /
1676
+ * unanswered / failed / completed.
1677
+ */
1362
1678
  eventUrl: z.ZodOptional<z.ZodString>;
1679
+ /** What to do when a machine answers an outbound call — Vonage's `machine_detection`: `hangup` (default) or `continue`. */
1680
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
1363
1681
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1364
1682
  /** Vonage Application ID (UUID) — the JWT-auth identity for the Voice API. */
1365
1683
  applicationId: z.ZodOptional<z.ZodString>;
@@ -1373,8 +1691,14 @@ declare const telephonySchema: z.ZodObject<{
1373
1691
  mediaPublicUrl: z.ZodString;
1374
1692
  /** Vonage account signature secret — HMAC key for signed-request `sig` AND HS256 webhook-JWT verification. */
1375
1693
  signatureSecret: z.ZodOptional<z.ZodString>;
1376
- /** Optional event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). */
1694
+ /**
1695
+ * Event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). Defaults to
1696
+ * `<public URL>/telephony/vonage/event`, the route that ends the bridge session when a call is busy /
1697
+ * unanswered / failed / completed.
1698
+ */
1377
1699
  eventUrl: z.ZodOptional<z.ZodString>;
1700
+ /** What to do when a machine answers an outbound call — Vonage's `machine_detection`: `hangup` (default) or `continue`. */
1701
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
1378
1702
  }, z.ZodTypeAny, "passthrough">>>;
1379
1703
  /** RingCentral Call Control + media-stream binding. */
1380
1704
  ringcentral: z.ZodOptional<z.ZodObject<{
@@ -1423,6 +1747,143 @@ declare const telephonySchema: z.ZodObject<{
1423
1747
  /** Skip TLS cert validation (sandbox/test only — never in production). */
1424
1748
  ignoreTlsCertErrors: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>>;
1425
1749
  }, z.ZodTypeAny, "passthrough">>>;
1750
+ /** LiveKit SIP binding: phone calls carried by a SIP trunk, landed in a LiveKit room. */
1751
+ livekitSip: z.ZodOptional<z.ZodObject<{
1752
+ /** LiveKit server URL (`wss://…`). Defaults to `LIVEKIT_URL`. */
1753
+ serverUrl: z.ZodOptional<z.ZodString>;
1754
+ /** LiveKit API key. Defaults to `LIVEKIT_API_KEY`. */
1755
+ apiKey: z.ZodOptional<z.ZodString>;
1756
+ /** LiveKit API secret (resolved upstream — never inlined). Defaults to `LIVEKIT_API_SECRET`. */
1757
+ apiSecret: z.ZodOptional<z.ZodString>;
1758
+ /** Inbound calls land in a room whose name starts with this. Defaults to `call-`. */
1759
+ roomPrefix: z.ZodOptional<z.ZodString>;
1760
+ /** The numbers (E.164) this deployment answers. Each routes to the agent identity registered for it (on the LiveKit provider). */
1761
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1762
+ /** The LiveKit inbound trunk id, when created by hand. */
1763
+ inboundTrunkId: z.ZodOptional<z.ZodString>;
1764
+ /** The LiveKit OUTBOUND trunk used to dial out (outbound calls, fallback legs, transfers to a number). Dialing out is off without it. */
1765
+ outboundTrunkId: z.ZodOptional<z.ZodString>;
1766
+ /** The caller ID presented on calls dialed out through the outbound trunk. */
1767
+ outboundFromNumber: z.ZodOptional<z.ZodString>;
1768
+ /** Create the inbound trunk and dispatch rule at startup when missing (idempotent). Defaults to false. */
1769
+ autoProvision: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>>;
1770
+ /** Source addresses the inbound trunk accepts calls from (the carrier's SIP signalling addresses). Used when provisioning. */
1771
+ allowedAddresses: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1772
+ /** The carrier behind the trunk, for configuration checks only (no carrier API is called). */
1773
+ carrier: z.ZodOptional<z.ZodObject<{
1774
+ type: z.ZodLiteral<"twilio-elastic-sip">;
1775
+ /** The LiveKit SIP URI the Twilio trunk's origination URI points at, e.g. `sip:<project>.sip.livekit.cloud`. */
1776
+ originationUri: z.ZodOptional<z.ZodString>;
1777
+ /** The trunk's Termination SIP URI on Twilio (`<name>.pstn.twilio.com`). Needed only when dialing out. */
1778
+ terminationUri: z.ZodOptional<z.ZodString>;
1779
+ /** How Twilio authenticates LiveKit's outbound requests. */
1780
+ terminationAuth: z.ZodOptional<z.ZodEnum<["credential-list", "ip-acl"]>>;
1781
+ /** The Twilio numbers associated with the trunk (E.164). */
1782
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1783
+ }, "strip", z.ZodTypeAny, {
1784
+ type?: "twilio-elastic-sip";
1785
+ numbers?: string[];
1786
+ originationUri?: string;
1787
+ terminationUri?: string;
1788
+ terminationAuth?: "credential-list" | "ip-acl";
1789
+ }, {
1790
+ type?: "twilio-elastic-sip";
1791
+ numbers?: string[];
1792
+ originationUri?: string;
1793
+ terminationUri?: string;
1794
+ terminationAuth?: "credential-list" | "ip-acl";
1795
+ }>>;
1796
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1797
+ /** LiveKit server URL (`wss://…`). Defaults to `LIVEKIT_URL`. */
1798
+ serverUrl: z.ZodOptional<z.ZodString>;
1799
+ /** LiveKit API key. Defaults to `LIVEKIT_API_KEY`. */
1800
+ apiKey: z.ZodOptional<z.ZodString>;
1801
+ /** LiveKit API secret (resolved upstream — never inlined). Defaults to `LIVEKIT_API_SECRET`. */
1802
+ apiSecret: z.ZodOptional<z.ZodString>;
1803
+ /** Inbound calls land in a room whose name starts with this. Defaults to `call-`. */
1804
+ roomPrefix: z.ZodOptional<z.ZodString>;
1805
+ /** The numbers (E.164) this deployment answers. Each routes to the agent identity registered for it (on the LiveKit provider). */
1806
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1807
+ /** The LiveKit inbound trunk id, when created by hand. */
1808
+ inboundTrunkId: z.ZodOptional<z.ZodString>;
1809
+ /** The LiveKit OUTBOUND trunk used to dial out (outbound calls, fallback legs, transfers to a number). Dialing out is off without it. */
1810
+ outboundTrunkId: z.ZodOptional<z.ZodString>;
1811
+ /** The caller ID presented on calls dialed out through the outbound trunk. */
1812
+ outboundFromNumber: z.ZodOptional<z.ZodString>;
1813
+ /** Create the inbound trunk and dispatch rule at startup when missing (idempotent). Defaults to false. */
1814
+ autoProvision: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>>;
1815
+ /** Source addresses the inbound trunk accepts calls from (the carrier's SIP signalling addresses). Used when provisioning. */
1816
+ allowedAddresses: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1817
+ /** The carrier behind the trunk, for configuration checks only (no carrier API is called). */
1818
+ carrier: z.ZodOptional<z.ZodObject<{
1819
+ type: z.ZodLiteral<"twilio-elastic-sip">;
1820
+ /** The LiveKit SIP URI the Twilio trunk's origination URI points at, e.g. `sip:<project>.sip.livekit.cloud`. */
1821
+ originationUri: z.ZodOptional<z.ZodString>;
1822
+ /** The trunk's Termination SIP URI on Twilio (`<name>.pstn.twilio.com`). Needed only when dialing out. */
1823
+ terminationUri: z.ZodOptional<z.ZodString>;
1824
+ /** How Twilio authenticates LiveKit's outbound requests. */
1825
+ terminationAuth: z.ZodOptional<z.ZodEnum<["credential-list", "ip-acl"]>>;
1826
+ /** The Twilio numbers associated with the trunk (E.164). */
1827
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1828
+ }, "strip", z.ZodTypeAny, {
1829
+ type?: "twilio-elastic-sip";
1830
+ numbers?: string[];
1831
+ originationUri?: string;
1832
+ terminationUri?: string;
1833
+ terminationAuth?: "credential-list" | "ip-acl";
1834
+ }, {
1835
+ type?: "twilio-elastic-sip";
1836
+ numbers?: string[];
1837
+ originationUri?: string;
1838
+ terminationUri?: string;
1839
+ terminationAuth?: "credential-list" | "ip-acl";
1840
+ }>>;
1841
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1842
+ /** LiveKit server URL (`wss://…`). Defaults to `LIVEKIT_URL`. */
1843
+ serverUrl: z.ZodOptional<z.ZodString>;
1844
+ /** LiveKit API key. Defaults to `LIVEKIT_API_KEY`. */
1845
+ apiKey: z.ZodOptional<z.ZodString>;
1846
+ /** LiveKit API secret (resolved upstream — never inlined). Defaults to `LIVEKIT_API_SECRET`. */
1847
+ apiSecret: z.ZodOptional<z.ZodString>;
1848
+ /** Inbound calls land in a room whose name starts with this. Defaults to `call-`. */
1849
+ roomPrefix: z.ZodOptional<z.ZodString>;
1850
+ /** The numbers (E.164) this deployment answers. Each routes to the agent identity registered for it (on the LiveKit provider). */
1851
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1852
+ /** The LiveKit inbound trunk id, when created by hand. */
1853
+ inboundTrunkId: z.ZodOptional<z.ZodString>;
1854
+ /** The LiveKit OUTBOUND trunk used to dial out (outbound calls, fallback legs, transfers to a number). Dialing out is off without it. */
1855
+ outboundTrunkId: z.ZodOptional<z.ZodString>;
1856
+ /** The caller ID presented on calls dialed out through the outbound trunk. */
1857
+ outboundFromNumber: z.ZodOptional<z.ZodString>;
1858
+ /** Create the inbound trunk and dispatch rule at startup when missing (idempotent). Defaults to false. */
1859
+ autoProvision: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>>;
1860
+ /** Source addresses the inbound trunk accepts calls from (the carrier's SIP signalling addresses). Used when provisioning. */
1861
+ allowedAddresses: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1862
+ /** The carrier behind the trunk, for configuration checks only (no carrier API is called). */
1863
+ carrier: z.ZodOptional<z.ZodObject<{
1864
+ type: z.ZodLiteral<"twilio-elastic-sip">;
1865
+ /** The LiveKit SIP URI the Twilio trunk's origination URI points at, e.g. `sip:<project>.sip.livekit.cloud`. */
1866
+ originationUri: z.ZodOptional<z.ZodString>;
1867
+ /** The trunk's Termination SIP URI on Twilio (`<name>.pstn.twilio.com`). Needed only when dialing out. */
1868
+ terminationUri: z.ZodOptional<z.ZodString>;
1869
+ /** How Twilio authenticates LiveKit's outbound requests. */
1870
+ terminationAuth: z.ZodOptional<z.ZodEnum<["credential-list", "ip-acl"]>>;
1871
+ /** The Twilio numbers associated with the trunk (E.164). */
1872
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1873
+ }, "strip", z.ZodTypeAny, {
1874
+ type?: "twilio-elastic-sip";
1875
+ numbers?: string[];
1876
+ originationUri?: string;
1877
+ terminationUri?: string;
1878
+ terminationAuth?: "credential-list" | "ip-acl";
1879
+ }, {
1880
+ type?: "twilio-elastic-sip";
1881
+ numbers?: string[];
1882
+ originationUri?: string;
1883
+ terminationUri?: string;
1884
+ terminationAuth?: "credential-list" | "ip-acl";
1885
+ }>>;
1886
+ }, z.ZodTypeAny, "passthrough">>>;
1426
1887
  /** Microsoft Teams meetings (Graph cloud-communications + ACS application-hosted media) binding. */
1427
1888
  teams: z.ZodOptional<z.ZodObject<{
1428
1889
  /** Master switch for the Teams meetings ingress. */
@@ -1473,6 +1934,92 @@ declare const telephonySchema: z.ZodObject<{
1473
1934
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1474
1935
  /** Master switch. When false (or when no vendor block is present), telephony routes are not mounted. */
1475
1936
  enabled: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
1937
+ /**
1938
+ * Email of the user INBOUND calls run as. A caller is an anonymous member of the public, so the call needs a
1939
+ * principal to create its agent session and run the agent. Point this at a DEDICATED LEAST-PRIVILEGE user.
1940
+ * There is deliberately no fallback: if unset, unknown, inactive, or the system user, inbound calls are
1941
+ * rejected with a polite message and the rejection is logged. Applies to Twilio, Vonage and RingCentral.
1942
+ */
1943
+ inboundRunAsUserEmail: z.ZodOptional<z.ZodString>;
1944
+ /** Maximum length of one phone call, in seconds. The bridge session is stopped (and the call hung up) at the cap. Defaults to 1800. */
1945
+ maxCallSeconds: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1946
+ /**
1947
+ * Most phone calls (every carrier together, both directions) the server carries at once. Past it an inbound
1948
+ * caller hears "all agents are busy" and an outbound request is refused. Keep it at or below the realtime
1949
+ * model plan's concurrent-session limit. Defaults to 25.
1950
+ */
1951
+ maxConcurrentCalls: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1952
+ /** Outbound destination policy + per-user rate limit (see {@link outboundTelephonySchema}). */
1953
+ outbound: z.ZodDefault<z.ZodOptional<z.ZodObject<{
1954
+ /** Destination prefixes a call may go to (E.164, e.g. `+1`). An empty list refuses every destination. Defaults to `['+1']`. */
1955
+ allowedPrefixes: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
1956
+ /**
1957
+ * Destination prefixes that are always refused, even when an allowed prefix matches. Deliberately has NO default
1958
+ * here: when omitted, `@memberjunction/telephony-adapters` applies its own `DEFAULT_BLOCKED_PREFIXES` (NANP
1959
+ * premium-rate plus the Caribbean +1 countries abused for toll fraud), so the list lives in exactly one place.
1960
+ * Setting this REPLACES that list.
1961
+ */
1962
+ blockedPrefixes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1963
+ /** Max outbound calls one user may place per rolling hour (per process). Defaults to 20. */
1964
+ maxCallsPerUserPerHour: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1965
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1966
+ /** Destination prefixes a call may go to (E.164, e.g. `+1`). An empty list refuses every destination. Defaults to `['+1']`. */
1967
+ allowedPrefixes: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
1968
+ /**
1969
+ * Destination prefixes that are always refused, even when an allowed prefix matches. Deliberately has NO default
1970
+ * here: when omitted, `@memberjunction/telephony-adapters` applies its own `DEFAULT_BLOCKED_PREFIXES` (NANP
1971
+ * premium-rate plus the Caribbean +1 countries abused for toll fraud), so the list lives in exactly one place.
1972
+ * Setting this REPLACES that list.
1973
+ */
1974
+ blockedPrefixes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1975
+ /** Max outbound calls one user may place per rolling hour (per process). Defaults to 20. */
1976
+ maxCallsPerUserPerHour: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1977
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1978
+ /** Destination prefixes a call may go to (E.164, e.g. `+1`). An empty list refuses every destination. Defaults to `['+1']`. */
1979
+ allowedPrefixes: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
1980
+ /**
1981
+ * Destination prefixes that are always refused, even when an allowed prefix matches. Deliberately has NO default
1982
+ * here: when omitted, `@memberjunction/telephony-adapters` applies its own `DEFAULT_BLOCKED_PREFIXES` (NANP
1983
+ * premium-rate plus the Caribbean +1 countries abused for toll fraud), so the list lives in exactly one place.
1984
+ * Setting this REPLACES that list.
1985
+ */
1986
+ blockedPrefixes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1987
+ /** Max outbound calls one user may place per rolling hour (per process). Defaults to 20. */
1988
+ maxCallsPerUserPerHour: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1989
+ }, z.ZodTypeAny, "passthrough">>>>;
1990
+ /**
1991
+ * The places the agent may hand a live call to, by name (the agent names a target, never a number, an email or an agent
1992
+ * id). `kind` is `number` (the default; a phone number), `user` (a person at an Explorer console, who may accept or
1993
+ * decline; `userEmail`, optional `fallbackNumber` the room dials if they do not take it) or `agent` (another MJ AI agent,
1994
+ * by `agentName`). `user` and `agent` targets work on calls that live in a LiveKit room; a carrier call can only transfer to
1995
+ * a `number`. Every number is validated at startup against the outbound allow/block lists; an invalid entry is dropped
1996
+ * and logged. Empty (the default) means the agent cannot hand calls over at all.
1997
+ */
1998
+ transferTargets: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
1999
+ name: z.ZodString;
2000
+ kind: z.ZodOptional<z.ZodEnum<["number", "user", "agent"]>>;
2001
+ number: z.ZodOptional<z.ZodString>;
2002
+ userEmail: z.ZodOptional<z.ZodString>;
2003
+ fallbackNumber: z.ZodOptional<z.ZodString>;
2004
+ agentName: z.ZodOptional<z.ZodString>;
2005
+ description: z.ZodOptional<z.ZodString>;
2006
+ }, "strip", z.ZodTypeAny, {
2007
+ number?: string;
2008
+ name?: string;
2009
+ kind?: "number" | "user" | "agent";
2010
+ userEmail?: string;
2011
+ fallbackNumber?: string;
2012
+ agentName?: string;
2013
+ description?: string;
2014
+ }, {
2015
+ number?: string;
2016
+ name?: string;
2017
+ kind?: "number" | "user" | "agent";
2018
+ userEmail?: string;
2019
+ fallbackNumber?: string;
2020
+ agentName?: string;
2021
+ description?: string;
2022
+ }>, "many">>>;
1476
2023
  /** Twilio Programmable Voice + Media Streams binding. */
1477
2024
  twilio: z.ZodOptional<z.ZodObject<{
1478
2025
  /** Twilio Account SID (`AC…`). */
@@ -1485,10 +2032,20 @@ declare const telephonySchema: z.ZodObject<{
1485
2032
  apiKeySecret: z.ZodOptional<z.ZodString>;
1486
2033
  /** The publicly reachable `wss://…/telephony/twilio/media` URL Twilio's <Connect><Stream> connects to. */
1487
2034
  streamPublicUrl: z.ZodString;
1488
- /** Optional shared secret gating the public webhook/WSS endpoints (defense-in-depth beyond signature verification). */
2035
+ /**
2036
+ * Reserved; currently unused. The Media-Streams websocket is authenticated by a per-call token MJ mints and
2037
+ * embeds in the TwiML (`<Parameter name="mjToken">`), and webhooks by `X-Twilio-Signature`.
2038
+ */
1489
2039
  webhookSigningSecret: z.ZodOptional<z.ZodString>;
1490
- /** Optional status-callback URL Twilio posts call lifecycle events to. */
2040
+ /**
2041
+ * URL Twilio posts outbound-call lifecycle events to. Defaults to `<public URL>/telephony/twilio/status`, the
2042
+ * route that ends the bridge session when a call is busy / unanswered / failed / completed.
2043
+ */
1491
2044
  statusCallbackUrl: z.ZodOptional<z.ZodString>;
2045
+ /** URL Twilio posts the async answering-machine verdict to. Defaults to `<public URL>/telephony/twilio/amd`. */
2046
+ amdStatusCallbackUrl: z.ZodOptional<z.ZodString>;
2047
+ /** What to do when a machine or fax answers an outbound call: `hangup` (default) ends it, `continue` only logs the verdict. */
2048
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
1492
2049
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1493
2050
  /** Twilio Account SID (`AC…`). */
1494
2051
  accountSid: z.ZodString;
@@ -1500,10 +2057,20 @@ declare const telephonySchema: z.ZodObject<{
1500
2057
  apiKeySecret: z.ZodOptional<z.ZodString>;
1501
2058
  /** The publicly reachable `wss://…/telephony/twilio/media` URL Twilio's <Connect><Stream> connects to. */
1502
2059
  streamPublicUrl: z.ZodString;
1503
- /** Optional shared secret gating the public webhook/WSS endpoints (defense-in-depth beyond signature verification). */
2060
+ /**
2061
+ * Reserved; currently unused. The Media-Streams websocket is authenticated by a per-call token MJ mints and
2062
+ * embeds in the TwiML (`<Parameter name="mjToken">`), and webhooks by `X-Twilio-Signature`.
2063
+ */
1504
2064
  webhookSigningSecret: z.ZodOptional<z.ZodString>;
1505
- /** Optional status-callback URL Twilio posts call lifecycle events to. */
2065
+ /**
2066
+ * URL Twilio posts outbound-call lifecycle events to. Defaults to `<public URL>/telephony/twilio/status`, the
2067
+ * route that ends the bridge session when a call is busy / unanswered / failed / completed.
2068
+ */
1506
2069
  statusCallbackUrl: z.ZodOptional<z.ZodString>;
2070
+ /** URL Twilio posts the async answering-machine verdict to. Defaults to `<public URL>/telephony/twilio/amd`. */
2071
+ amdStatusCallbackUrl: z.ZodOptional<z.ZodString>;
2072
+ /** What to do when a machine or fax answers an outbound call: `hangup` (default) ends it, `continue` only logs the verdict. */
2073
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
1507
2074
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1508
2075
  /** Twilio Account SID (`AC…`). */
1509
2076
  accountSid: z.ZodString;
@@ -1515,10 +2082,20 @@ declare const telephonySchema: z.ZodObject<{
1515
2082
  apiKeySecret: z.ZodOptional<z.ZodString>;
1516
2083
  /** The publicly reachable `wss://…/telephony/twilio/media` URL Twilio's <Connect><Stream> connects to. */
1517
2084
  streamPublicUrl: z.ZodString;
1518
- /** Optional shared secret gating the public webhook/WSS endpoints (defense-in-depth beyond signature verification). */
2085
+ /**
2086
+ * Reserved; currently unused. The Media-Streams websocket is authenticated by a per-call token MJ mints and
2087
+ * embeds in the TwiML (`<Parameter name="mjToken">`), and webhooks by `X-Twilio-Signature`.
2088
+ */
1519
2089
  webhookSigningSecret: z.ZodOptional<z.ZodString>;
1520
- /** Optional status-callback URL Twilio posts call lifecycle events to. */
2090
+ /**
2091
+ * URL Twilio posts outbound-call lifecycle events to. Defaults to `<public URL>/telephony/twilio/status`, the
2092
+ * route that ends the bridge session when a call is busy / unanswered / failed / completed.
2093
+ */
1521
2094
  statusCallbackUrl: z.ZodOptional<z.ZodString>;
2095
+ /** URL Twilio posts the async answering-machine verdict to. Defaults to `<public URL>/telephony/twilio/amd`. */
2096
+ amdStatusCallbackUrl: z.ZodOptional<z.ZodString>;
2097
+ /** What to do when a machine or fax answers an outbound call: `hangup` (default) ends it, `continue` only logs the verdict. */
2098
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
1522
2099
  }, z.ZodTypeAny, "passthrough">>>;
1523
2100
  /** Vonage Voice + WebSocket-media binding. */
1524
2101
  vonage: z.ZodOptional<z.ZodObject<{
@@ -1534,8 +2111,14 @@ declare const telephonySchema: z.ZodObject<{
1534
2111
  mediaPublicUrl: z.ZodString;
1535
2112
  /** Vonage account signature secret — HMAC key for signed-request `sig` AND HS256 webhook-JWT verification. */
1536
2113
  signatureSecret: z.ZodOptional<z.ZodString>;
1537
- /** Optional event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). */
2114
+ /**
2115
+ * Event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). Defaults to
2116
+ * `<public URL>/telephony/vonage/event`, the route that ends the bridge session when a call is busy /
2117
+ * unanswered / failed / completed.
2118
+ */
1538
2119
  eventUrl: z.ZodOptional<z.ZodString>;
2120
+ /** What to do when a machine answers an outbound call — Vonage's `machine_detection`: `hangup` (default) or `continue`. */
2121
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
1539
2122
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1540
2123
  /** Vonage Application ID (UUID) — the JWT-auth identity for the Voice API. */
1541
2124
  applicationId: z.ZodOptional<z.ZodString>;
@@ -1549,8 +2132,14 @@ declare const telephonySchema: z.ZodObject<{
1549
2132
  mediaPublicUrl: z.ZodString;
1550
2133
  /** Vonage account signature secret — HMAC key for signed-request `sig` AND HS256 webhook-JWT verification. */
1551
2134
  signatureSecret: z.ZodOptional<z.ZodString>;
1552
- /** Optional event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). */
2135
+ /**
2136
+ * Event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). Defaults to
2137
+ * `<public URL>/telephony/vonage/event`, the route that ends the bridge session when a call is busy /
2138
+ * unanswered / failed / completed.
2139
+ */
1553
2140
  eventUrl: z.ZodOptional<z.ZodString>;
2141
+ /** What to do when a machine answers an outbound call — Vonage's `machine_detection`: `hangup` (default) or `continue`. */
2142
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
1554
2143
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1555
2144
  /** Vonage Application ID (UUID) — the JWT-auth identity for the Voice API. */
1556
2145
  applicationId: z.ZodOptional<z.ZodString>;
@@ -1564,8 +2153,14 @@ declare const telephonySchema: z.ZodObject<{
1564
2153
  mediaPublicUrl: z.ZodString;
1565
2154
  /** Vonage account signature secret — HMAC key for signed-request `sig` AND HS256 webhook-JWT verification. */
1566
2155
  signatureSecret: z.ZodOptional<z.ZodString>;
1567
- /** Optional event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). */
2156
+ /**
2157
+ * Event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). Defaults to
2158
+ * `<public URL>/telephony/vonage/event`, the route that ends the bridge session when a call is busy /
2159
+ * unanswered / failed / completed.
2160
+ */
1568
2161
  eventUrl: z.ZodOptional<z.ZodString>;
2162
+ /** What to do when a machine answers an outbound call — Vonage's `machine_detection`: `hangup` (default) or `continue`. */
2163
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
1569
2164
  }, z.ZodTypeAny, "passthrough">>>;
1570
2165
  /** RingCentral Call Control + media-stream binding. */
1571
2166
  ringcentral: z.ZodOptional<z.ZodObject<{
@@ -1614,6 +2209,143 @@ declare const telephonySchema: z.ZodObject<{
1614
2209
  /** Skip TLS cert validation (sandbox/test only — never in production). */
1615
2210
  ignoreTlsCertErrors: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>>;
1616
2211
  }, z.ZodTypeAny, "passthrough">>>;
2212
+ /** LiveKit SIP binding: phone calls carried by a SIP trunk, landed in a LiveKit room. */
2213
+ livekitSip: z.ZodOptional<z.ZodObject<{
2214
+ /** LiveKit server URL (`wss://…`). Defaults to `LIVEKIT_URL`. */
2215
+ serverUrl: z.ZodOptional<z.ZodString>;
2216
+ /** LiveKit API key. Defaults to `LIVEKIT_API_KEY`. */
2217
+ apiKey: z.ZodOptional<z.ZodString>;
2218
+ /** LiveKit API secret (resolved upstream — never inlined). Defaults to `LIVEKIT_API_SECRET`. */
2219
+ apiSecret: z.ZodOptional<z.ZodString>;
2220
+ /** Inbound calls land in a room whose name starts with this. Defaults to `call-`. */
2221
+ roomPrefix: z.ZodOptional<z.ZodString>;
2222
+ /** The numbers (E.164) this deployment answers. Each routes to the agent identity registered for it (on the LiveKit provider). */
2223
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2224
+ /** The LiveKit inbound trunk id, when created by hand. */
2225
+ inboundTrunkId: z.ZodOptional<z.ZodString>;
2226
+ /** The LiveKit OUTBOUND trunk used to dial out (outbound calls, fallback legs, transfers to a number). Dialing out is off without it. */
2227
+ outboundTrunkId: z.ZodOptional<z.ZodString>;
2228
+ /** The caller ID presented on calls dialed out through the outbound trunk. */
2229
+ outboundFromNumber: z.ZodOptional<z.ZodString>;
2230
+ /** Create the inbound trunk and dispatch rule at startup when missing (idempotent). Defaults to false. */
2231
+ autoProvision: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>>;
2232
+ /** Source addresses the inbound trunk accepts calls from (the carrier's SIP signalling addresses). Used when provisioning. */
2233
+ allowedAddresses: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2234
+ /** The carrier behind the trunk, for configuration checks only (no carrier API is called). */
2235
+ carrier: z.ZodOptional<z.ZodObject<{
2236
+ type: z.ZodLiteral<"twilio-elastic-sip">;
2237
+ /** The LiveKit SIP URI the Twilio trunk's origination URI points at, e.g. `sip:<project>.sip.livekit.cloud`. */
2238
+ originationUri: z.ZodOptional<z.ZodString>;
2239
+ /** The trunk's Termination SIP URI on Twilio (`<name>.pstn.twilio.com`). Needed only when dialing out. */
2240
+ terminationUri: z.ZodOptional<z.ZodString>;
2241
+ /** How Twilio authenticates LiveKit's outbound requests. */
2242
+ terminationAuth: z.ZodOptional<z.ZodEnum<["credential-list", "ip-acl"]>>;
2243
+ /** The Twilio numbers associated with the trunk (E.164). */
2244
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2245
+ }, "strip", z.ZodTypeAny, {
2246
+ type?: "twilio-elastic-sip";
2247
+ numbers?: string[];
2248
+ originationUri?: string;
2249
+ terminationUri?: string;
2250
+ terminationAuth?: "credential-list" | "ip-acl";
2251
+ }, {
2252
+ type?: "twilio-elastic-sip";
2253
+ numbers?: string[];
2254
+ originationUri?: string;
2255
+ terminationUri?: string;
2256
+ terminationAuth?: "credential-list" | "ip-acl";
2257
+ }>>;
2258
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
2259
+ /** LiveKit server URL (`wss://…`). Defaults to `LIVEKIT_URL`. */
2260
+ serverUrl: z.ZodOptional<z.ZodString>;
2261
+ /** LiveKit API key. Defaults to `LIVEKIT_API_KEY`. */
2262
+ apiKey: z.ZodOptional<z.ZodString>;
2263
+ /** LiveKit API secret (resolved upstream — never inlined). Defaults to `LIVEKIT_API_SECRET`. */
2264
+ apiSecret: z.ZodOptional<z.ZodString>;
2265
+ /** Inbound calls land in a room whose name starts with this. Defaults to `call-`. */
2266
+ roomPrefix: z.ZodOptional<z.ZodString>;
2267
+ /** The numbers (E.164) this deployment answers. Each routes to the agent identity registered for it (on the LiveKit provider). */
2268
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2269
+ /** The LiveKit inbound trunk id, when created by hand. */
2270
+ inboundTrunkId: z.ZodOptional<z.ZodString>;
2271
+ /** The LiveKit OUTBOUND trunk used to dial out (outbound calls, fallback legs, transfers to a number). Dialing out is off without it. */
2272
+ outboundTrunkId: z.ZodOptional<z.ZodString>;
2273
+ /** The caller ID presented on calls dialed out through the outbound trunk. */
2274
+ outboundFromNumber: z.ZodOptional<z.ZodString>;
2275
+ /** Create the inbound trunk and dispatch rule at startup when missing (idempotent). Defaults to false. */
2276
+ autoProvision: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>>;
2277
+ /** Source addresses the inbound trunk accepts calls from (the carrier's SIP signalling addresses). Used when provisioning. */
2278
+ allowedAddresses: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2279
+ /** The carrier behind the trunk, for configuration checks only (no carrier API is called). */
2280
+ carrier: z.ZodOptional<z.ZodObject<{
2281
+ type: z.ZodLiteral<"twilio-elastic-sip">;
2282
+ /** The LiveKit SIP URI the Twilio trunk's origination URI points at, e.g. `sip:<project>.sip.livekit.cloud`. */
2283
+ originationUri: z.ZodOptional<z.ZodString>;
2284
+ /** The trunk's Termination SIP URI on Twilio (`<name>.pstn.twilio.com`). Needed only when dialing out. */
2285
+ terminationUri: z.ZodOptional<z.ZodString>;
2286
+ /** How Twilio authenticates LiveKit's outbound requests. */
2287
+ terminationAuth: z.ZodOptional<z.ZodEnum<["credential-list", "ip-acl"]>>;
2288
+ /** The Twilio numbers associated with the trunk (E.164). */
2289
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2290
+ }, "strip", z.ZodTypeAny, {
2291
+ type?: "twilio-elastic-sip";
2292
+ numbers?: string[];
2293
+ originationUri?: string;
2294
+ terminationUri?: string;
2295
+ terminationAuth?: "credential-list" | "ip-acl";
2296
+ }, {
2297
+ type?: "twilio-elastic-sip";
2298
+ numbers?: string[];
2299
+ originationUri?: string;
2300
+ terminationUri?: string;
2301
+ terminationAuth?: "credential-list" | "ip-acl";
2302
+ }>>;
2303
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
2304
+ /** LiveKit server URL (`wss://…`). Defaults to `LIVEKIT_URL`. */
2305
+ serverUrl: z.ZodOptional<z.ZodString>;
2306
+ /** LiveKit API key. Defaults to `LIVEKIT_API_KEY`. */
2307
+ apiKey: z.ZodOptional<z.ZodString>;
2308
+ /** LiveKit API secret (resolved upstream — never inlined). Defaults to `LIVEKIT_API_SECRET`. */
2309
+ apiSecret: z.ZodOptional<z.ZodString>;
2310
+ /** Inbound calls land in a room whose name starts with this. Defaults to `call-`. */
2311
+ roomPrefix: z.ZodOptional<z.ZodString>;
2312
+ /** The numbers (E.164) this deployment answers. Each routes to the agent identity registered for it (on the LiveKit provider). */
2313
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2314
+ /** The LiveKit inbound trunk id, when created by hand. */
2315
+ inboundTrunkId: z.ZodOptional<z.ZodString>;
2316
+ /** The LiveKit OUTBOUND trunk used to dial out (outbound calls, fallback legs, transfers to a number). Dialing out is off without it. */
2317
+ outboundTrunkId: z.ZodOptional<z.ZodString>;
2318
+ /** The caller ID presented on calls dialed out through the outbound trunk. */
2319
+ outboundFromNumber: z.ZodOptional<z.ZodString>;
2320
+ /** Create the inbound trunk and dispatch rule at startup when missing (idempotent). Defaults to false. */
2321
+ autoProvision: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>>;
2322
+ /** Source addresses the inbound trunk accepts calls from (the carrier's SIP signalling addresses). Used when provisioning. */
2323
+ allowedAddresses: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2324
+ /** The carrier behind the trunk, for configuration checks only (no carrier API is called). */
2325
+ carrier: z.ZodOptional<z.ZodObject<{
2326
+ type: z.ZodLiteral<"twilio-elastic-sip">;
2327
+ /** The LiveKit SIP URI the Twilio trunk's origination URI points at, e.g. `sip:<project>.sip.livekit.cloud`. */
2328
+ originationUri: z.ZodOptional<z.ZodString>;
2329
+ /** The trunk's Termination SIP URI on Twilio (`<name>.pstn.twilio.com`). Needed only when dialing out. */
2330
+ terminationUri: z.ZodOptional<z.ZodString>;
2331
+ /** How Twilio authenticates LiveKit's outbound requests. */
2332
+ terminationAuth: z.ZodOptional<z.ZodEnum<["credential-list", "ip-acl"]>>;
2333
+ /** The Twilio numbers associated with the trunk (E.164). */
2334
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2335
+ }, "strip", z.ZodTypeAny, {
2336
+ type?: "twilio-elastic-sip";
2337
+ numbers?: string[];
2338
+ originationUri?: string;
2339
+ terminationUri?: string;
2340
+ terminationAuth?: "credential-list" | "ip-acl";
2341
+ }, {
2342
+ type?: "twilio-elastic-sip";
2343
+ numbers?: string[];
2344
+ originationUri?: string;
2345
+ terminationUri?: string;
2346
+ terminationAuth?: "credential-list" | "ip-acl";
2347
+ }>>;
2348
+ }, z.ZodTypeAny, "passthrough">>>;
1617
2349
  /** Microsoft Teams meetings (Graph cloud-communications + ACS application-hosted media) binding. */
1618
2350
  teams: z.ZodOptional<z.ZodObject<{
1619
2351
  /** Master switch for the Teams meetings ingress. */
@@ -1664,6 +2396,92 @@ declare const telephonySchema: z.ZodObject<{
1664
2396
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1665
2397
  /** Master switch. When false (or when no vendor block is present), telephony routes are not mounted. */
1666
2398
  enabled: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
2399
+ /**
2400
+ * Email of the user INBOUND calls run as. A caller is an anonymous member of the public, so the call needs a
2401
+ * principal to create its agent session and run the agent. Point this at a DEDICATED LEAST-PRIVILEGE user.
2402
+ * There is deliberately no fallback: if unset, unknown, inactive, or the system user, inbound calls are
2403
+ * rejected with a polite message and the rejection is logged. Applies to Twilio, Vonage and RingCentral.
2404
+ */
2405
+ inboundRunAsUserEmail: z.ZodOptional<z.ZodString>;
2406
+ /** Maximum length of one phone call, in seconds. The bridge session is stopped (and the call hung up) at the cap. Defaults to 1800. */
2407
+ maxCallSeconds: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2408
+ /**
2409
+ * Most phone calls (every carrier together, both directions) the server carries at once. Past it an inbound
2410
+ * caller hears "all agents are busy" and an outbound request is refused. Keep it at or below the realtime
2411
+ * model plan's concurrent-session limit. Defaults to 25.
2412
+ */
2413
+ maxConcurrentCalls: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2414
+ /** Outbound destination policy + per-user rate limit (see {@link outboundTelephonySchema}). */
2415
+ outbound: z.ZodDefault<z.ZodOptional<z.ZodObject<{
2416
+ /** Destination prefixes a call may go to (E.164, e.g. `+1`). An empty list refuses every destination. Defaults to `['+1']`. */
2417
+ allowedPrefixes: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
2418
+ /**
2419
+ * Destination prefixes that are always refused, even when an allowed prefix matches. Deliberately has NO default
2420
+ * here: when omitted, `@memberjunction/telephony-adapters` applies its own `DEFAULT_BLOCKED_PREFIXES` (NANP
2421
+ * premium-rate plus the Caribbean +1 countries abused for toll fraud), so the list lives in exactly one place.
2422
+ * Setting this REPLACES that list.
2423
+ */
2424
+ blockedPrefixes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2425
+ /** Max outbound calls one user may place per rolling hour (per process). Defaults to 20. */
2426
+ maxCallsPerUserPerHour: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2427
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
2428
+ /** Destination prefixes a call may go to (E.164, e.g. `+1`). An empty list refuses every destination. Defaults to `['+1']`. */
2429
+ allowedPrefixes: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
2430
+ /**
2431
+ * Destination prefixes that are always refused, even when an allowed prefix matches. Deliberately has NO default
2432
+ * here: when omitted, `@memberjunction/telephony-adapters` applies its own `DEFAULT_BLOCKED_PREFIXES` (NANP
2433
+ * premium-rate plus the Caribbean +1 countries abused for toll fraud), so the list lives in exactly one place.
2434
+ * Setting this REPLACES that list.
2435
+ */
2436
+ blockedPrefixes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2437
+ /** Max outbound calls one user may place per rolling hour (per process). Defaults to 20. */
2438
+ maxCallsPerUserPerHour: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2439
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
2440
+ /** Destination prefixes a call may go to (E.164, e.g. `+1`). An empty list refuses every destination. Defaults to `['+1']`. */
2441
+ allowedPrefixes: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
2442
+ /**
2443
+ * Destination prefixes that are always refused, even when an allowed prefix matches. Deliberately has NO default
2444
+ * here: when omitted, `@memberjunction/telephony-adapters` applies its own `DEFAULT_BLOCKED_PREFIXES` (NANP
2445
+ * premium-rate plus the Caribbean +1 countries abused for toll fraud), so the list lives in exactly one place.
2446
+ * Setting this REPLACES that list.
2447
+ */
2448
+ blockedPrefixes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2449
+ /** Max outbound calls one user may place per rolling hour (per process). Defaults to 20. */
2450
+ maxCallsPerUserPerHour: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2451
+ }, z.ZodTypeAny, "passthrough">>>>;
2452
+ /**
2453
+ * The places the agent may hand a live call to, by name (the agent names a target, never a number, an email or an agent
2454
+ * id). `kind` is `number` (the default; a phone number), `user` (a person at an Explorer console, who may accept or
2455
+ * decline; `userEmail`, optional `fallbackNumber` the room dials if they do not take it) or `agent` (another MJ AI agent,
2456
+ * by `agentName`). `user` and `agent` targets work on calls that live in a LiveKit room; a carrier call can only transfer to
2457
+ * a `number`. Every number is validated at startup against the outbound allow/block lists; an invalid entry is dropped
2458
+ * and logged. Empty (the default) means the agent cannot hand calls over at all.
2459
+ */
2460
+ transferTargets: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
2461
+ name: z.ZodString;
2462
+ kind: z.ZodOptional<z.ZodEnum<["number", "user", "agent"]>>;
2463
+ number: z.ZodOptional<z.ZodString>;
2464
+ userEmail: z.ZodOptional<z.ZodString>;
2465
+ fallbackNumber: z.ZodOptional<z.ZodString>;
2466
+ agentName: z.ZodOptional<z.ZodString>;
2467
+ description: z.ZodOptional<z.ZodString>;
2468
+ }, "strip", z.ZodTypeAny, {
2469
+ number?: string;
2470
+ name?: string;
2471
+ kind?: "number" | "user" | "agent";
2472
+ userEmail?: string;
2473
+ fallbackNumber?: string;
2474
+ agentName?: string;
2475
+ description?: string;
2476
+ }, {
2477
+ number?: string;
2478
+ name?: string;
2479
+ kind?: "number" | "user" | "agent";
2480
+ userEmail?: string;
2481
+ fallbackNumber?: string;
2482
+ agentName?: string;
2483
+ description?: string;
2484
+ }>, "many">>>;
1667
2485
  /** Twilio Programmable Voice + Media Streams binding. */
1668
2486
  twilio: z.ZodOptional<z.ZodObject<{
1669
2487
  /** Twilio Account SID (`AC…`). */
@@ -1676,10 +2494,20 @@ declare const telephonySchema: z.ZodObject<{
1676
2494
  apiKeySecret: z.ZodOptional<z.ZodString>;
1677
2495
  /** The publicly reachable `wss://…/telephony/twilio/media` URL Twilio's <Connect><Stream> connects to. */
1678
2496
  streamPublicUrl: z.ZodString;
1679
- /** Optional shared secret gating the public webhook/WSS endpoints (defense-in-depth beyond signature verification). */
2497
+ /**
2498
+ * Reserved; currently unused. The Media-Streams websocket is authenticated by a per-call token MJ mints and
2499
+ * embeds in the TwiML (`<Parameter name="mjToken">`), and webhooks by `X-Twilio-Signature`.
2500
+ */
1680
2501
  webhookSigningSecret: z.ZodOptional<z.ZodString>;
1681
- /** Optional status-callback URL Twilio posts call lifecycle events to. */
2502
+ /**
2503
+ * URL Twilio posts outbound-call lifecycle events to. Defaults to `<public URL>/telephony/twilio/status`, the
2504
+ * route that ends the bridge session when a call is busy / unanswered / failed / completed.
2505
+ */
1682
2506
  statusCallbackUrl: z.ZodOptional<z.ZodString>;
2507
+ /** URL Twilio posts the async answering-machine verdict to. Defaults to `<public URL>/telephony/twilio/amd`. */
2508
+ amdStatusCallbackUrl: z.ZodOptional<z.ZodString>;
2509
+ /** What to do when a machine or fax answers an outbound call: `hangup` (default) ends it, `continue` only logs the verdict. */
2510
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
1683
2511
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1684
2512
  /** Twilio Account SID (`AC…`). */
1685
2513
  accountSid: z.ZodString;
@@ -1691,10 +2519,20 @@ declare const telephonySchema: z.ZodObject<{
1691
2519
  apiKeySecret: z.ZodOptional<z.ZodString>;
1692
2520
  /** The publicly reachable `wss://…/telephony/twilio/media` URL Twilio's <Connect><Stream> connects to. */
1693
2521
  streamPublicUrl: z.ZodString;
1694
- /** Optional shared secret gating the public webhook/WSS endpoints (defense-in-depth beyond signature verification). */
2522
+ /**
2523
+ * Reserved; currently unused. The Media-Streams websocket is authenticated by a per-call token MJ mints and
2524
+ * embeds in the TwiML (`<Parameter name="mjToken">`), and webhooks by `X-Twilio-Signature`.
2525
+ */
1695
2526
  webhookSigningSecret: z.ZodOptional<z.ZodString>;
1696
- /** Optional status-callback URL Twilio posts call lifecycle events to. */
2527
+ /**
2528
+ * URL Twilio posts outbound-call lifecycle events to. Defaults to `<public URL>/telephony/twilio/status`, the
2529
+ * route that ends the bridge session when a call is busy / unanswered / failed / completed.
2530
+ */
1697
2531
  statusCallbackUrl: z.ZodOptional<z.ZodString>;
2532
+ /** URL Twilio posts the async answering-machine verdict to. Defaults to `<public URL>/telephony/twilio/amd`. */
2533
+ amdStatusCallbackUrl: z.ZodOptional<z.ZodString>;
2534
+ /** What to do when a machine or fax answers an outbound call: `hangup` (default) ends it, `continue` only logs the verdict. */
2535
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
1698
2536
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1699
2537
  /** Twilio Account SID (`AC…`). */
1700
2538
  accountSid: z.ZodString;
@@ -1706,10 +2544,20 @@ declare const telephonySchema: z.ZodObject<{
1706
2544
  apiKeySecret: z.ZodOptional<z.ZodString>;
1707
2545
  /** The publicly reachable `wss://…/telephony/twilio/media` URL Twilio's <Connect><Stream> connects to. */
1708
2546
  streamPublicUrl: z.ZodString;
1709
- /** Optional shared secret gating the public webhook/WSS endpoints (defense-in-depth beyond signature verification). */
2547
+ /**
2548
+ * Reserved; currently unused. The Media-Streams websocket is authenticated by a per-call token MJ mints and
2549
+ * embeds in the TwiML (`<Parameter name="mjToken">`), and webhooks by `X-Twilio-Signature`.
2550
+ */
1710
2551
  webhookSigningSecret: z.ZodOptional<z.ZodString>;
1711
- /** Optional status-callback URL Twilio posts call lifecycle events to. */
2552
+ /**
2553
+ * URL Twilio posts outbound-call lifecycle events to. Defaults to `<public URL>/telephony/twilio/status`, the
2554
+ * route that ends the bridge session when a call is busy / unanswered / failed / completed.
2555
+ */
1712
2556
  statusCallbackUrl: z.ZodOptional<z.ZodString>;
2557
+ /** URL Twilio posts the async answering-machine verdict to. Defaults to `<public URL>/telephony/twilio/amd`. */
2558
+ amdStatusCallbackUrl: z.ZodOptional<z.ZodString>;
2559
+ /** What to do when a machine or fax answers an outbound call: `hangup` (default) ends it, `continue` only logs the verdict. */
2560
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
1713
2561
  }, z.ZodTypeAny, "passthrough">>>;
1714
2562
  /** Vonage Voice + WebSocket-media binding. */
1715
2563
  vonage: z.ZodOptional<z.ZodObject<{
@@ -1725,8 +2573,14 @@ declare const telephonySchema: z.ZodObject<{
1725
2573
  mediaPublicUrl: z.ZodString;
1726
2574
  /** Vonage account signature secret — HMAC key for signed-request `sig` AND HS256 webhook-JWT verification. */
1727
2575
  signatureSecret: z.ZodOptional<z.ZodString>;
1728
- /** Optional event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). */
2576
+ /**
2577
+ * Event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). Defaults to
2578
+ * `<public URL>/telephony/vonage/event`, the route that ends the bridge session when a call is busy /
2579
+ * unanswered / failed / completed.
2580
+ */
1729
2581
  eventUrl: z.ZodOptional<z.ZodString>;
2582
+ /** What to do when a machine answers an outbound call — Vonage's `machine_detection`: `hangup` (default) or `continue`. */
2583
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
1730
2584
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1731
2585
  /** Vonage Application ID (UUID) — the JWT-auth identity for the Voice API. */
1732
2586
  applicationId: z.ZodOptional<z.ZodString>;
@@ -1740,8 +2594,14 @@ declare const telephonySchema: z.ZodObject<{
1740
2594
  mediaPublicUrl: z.ZodString;
1741
2595
  /** Vonage account signature secret — HMAC key for signed-request `sig` AND HS256 webhook-JWT verification. */
1742
2596
  signatureSecret: z.ZodOptional<z.ZodString>;
1743
- /** Optional event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). */
2597
+ /**
2598
+ * Event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). Defaults to
2599
+ * `<public URL>/telephony/vonage/event`, the route that ends the bridge session when a call is busy /
2600
+ * unanswered / failed / completed.
2601
+ */
1744
2602
  eventUrl: z.ZodOptional<z.ZodString>;
2603
+ /** What to do when a machine answers an outbound call — Vonage's `machine_detection`: `hangup` (default) or `continue`. */
2604
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
1745
2605
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1746
2606
  /** Vonage Application ID (UUID) — the JWT-auth identity for the Voice API. */
1747
2607
  applicationId: z.ZodOptional<z.ZodString>;
@@ -1755,8 +2615,14 @@ declare const telephonySchema: z.ZodObject<{
1755
2615
  mediaPublicUrl: z.ZodString;
1756
2616
  /** Vonage account signature secret — HMAC key for signed-request `sig` AND HS256 webhook-JWT verification. */
1757
2617
  signatureSecret: z.ZodOptional<z.ZodString>;
1758
- /** Optional event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). */
2618
+ /**
2619
+ * Event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). Defaults to
2620
+ * `<public URL>/telephony/vonage/event`, the route that ends the bridge session when a call is busy /
2621
+ * unanswered / failed / completed.
2622
+ */
1759
2623
  eventUrl: z.ZodOptional<z.ZodString>;
2624
+ /** What to do when a machine answers an outbound call — Vonage's `machine_detection`: `hangup` (default) or `continue`. */
2625
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
1760
2626
  }, z.ZodTypeAny, "passthrough">>>;
1761
2627
  /** RingCentral Call Control + media-stream binding. */
1762
2628
  ringcentral: z.ZodOptional<z.ZodObject<{
@@ -1805,6 +2671,143 @@ declare const telephonySchema: z.ZodObject<{
1805
2671
  /** Skip TLS cert validation (sandbox/test only — never in production). */
1806
2672
  ignoreTlsCertErrors: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>>;
1807
2673
  }, z.ZodTypeAny, "passthrough">>>;
2674
+ /** LiveKit SIP binding: phone calls carried by a SIP trunk, landed in a LiveKit room. */
2675
+ livekitSip: z.ZodOptional<z.ZodObject<{
2676
+ /** LiveKit server URL (`wss://…`). Defaults to `LIVEKIT_URL`. */
2677
+ serverUrl: z.ZodOptional<z.ZodString>;
2678
+ /** LiveKit API key. Defaults to `LIVEKIT_API_KEY`. */
2679
+ apiKey: z.ZodOptional<z.ZodString>;
2680
+ /** LiveKit API secret (resolved upstream — never inlined). Defaults to `LIVEKIT_API_SECRET`. */
2681
+ apiSecret: z.ZodOptional<z.ZodString>;
2682
+ /** Inbound calls land in a room whose name starts with this. Defaults to `call-`. */
2683
+ roomPrefix: z.ZodOptional<z.ZodString>;
2684
+ /** The numbers (E.164) this deployment answers. Each routes to the agent identity registered for it (on the LiveKit provider). */
2685
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2686
+ /** The LiveKit inbound trunk id, when created by hand. */
2687
+ inboundTrunkId: z.ZodOptional<z.ZodString>;
2688
+ /** The LiveKit OUTBOUND trunk used to dial out (outbound calls, fallback legs, transfers to a number). Dialing out is off without it. */
2689
+ outboundTrunkId: z.ZodOptional<z.ZodString>;
2690
+ /** The caller ID presented on calls dialed out through the outbound trunk. */
2691
+ outboundFromNumber: z.ZodOptional<z.ZodString>;
2692
+ /** Create the inbound trunk and dispatch rule at startup when missing (idempotent). Defaults to false. */
2693
+ autoProvision: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>>;
2694
+ /** Source addresses the inbound trunk accepts calls from (the carrier's SIP signalling addresses). Used when provisioning. */
2695
+ allowedAddresses: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2696
+ /** The carrier behind the trunk, for configuration checks only (no carrier API is called). */
2697
+ carrier: z.ZodOptional<z.ZodObject<{
2698
+ type: z.ZodLiteral<"twilio-elastic-sip">;
2699
+ /** The LiveKit SIP URI the Twilio trunk's origination URI points at, e.g. `sip:<project>.sip.livekit.cloud`. */
2700
+ originationUri: z.ZodOptional<z.ZodString>;
2701
+ /** The trunk's Termination SIP URI on Twilio (`<name>.pstn.twilio.com`). Needed only when dialing out. */
2702
+ terminationUri: z.ZodOptional<z.ZodString>;
2703
+ /** How Twilio authenticates LiveKit's outbound requests. */
2704
+ terminationAuth: z.ZodOptional<z.ZodEnum<["credential-list", "ip-acl"]>>;
2705
+ /** The Twilio numbers associated with the trunk (E.164). */
2706
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2707
+ }, "strip", z.ZodTypeAny, {
2708
+ type?: "twilio-elastic-sip";
2709
+ numbers?: string[];
2710
+ originationUri?: string;
2711
+ terminationUri?: string;
2712
+ terminationAuth?: "credential-list" | "ip-acl";
2713
+ }, {
2714
+ type?: "twilio-elastic-sip";
2715
+ numbers?: string[];
2716
+ originationUri?: string;
2717
+ terminationUri?: string;
2718
+ terminationAuth?: "credential-list" | "ip-acl";
2719
+ }>>;
2720
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
2721
+ /** LiveKit server URL (`wss://…`). Defaults to `LIVEKIT_URL`. */
2722
+ serverUrl: z.ZodOptional<z.ZodString>;
2723
+ /** LiveKit API key. Defaults to `LIVEKIT_API_KEY`. */
2724
+ apiKey: z.ZodOptional<z.ZodString>;
2725
+ /** LiveKit API secret (resolved upstream — never inlined). Defaults to `LIVEKIT_API_SECRET`. */
2726
+ apiSecret: z.ZodOptional<z.ZodString>;
2727
+ /** Inbound calls land in a room whose name starts with this. Defaults to `call-`. */
2728
+ roomPrefix: z.ZodOptional<z.ZodString>;
2729
+ /** The numbers (E.164) this deployment answers. Each routes to the agent identity registered for it (on the LiveKit provider). */
2730
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2731
+ /** The LiveKit inbound trunk id, when created by hand. */
2732
+ inboundTrunkId: z.ZodOptional<z.ZodString>;
2733
+ /** The LiveKit OUTBOUND trunk used to dial out (outbound calls, fallback legs, transfers to a number). Dialing out is off without it. */
2734
+ outboundTrunkId: z.ZodOptional<z.ZodString>;
2735
+ /** The caller ID presented on calls dialed out through the outbound trunk. */
2736
+ outboundFromNumber: z.ZodOptional<z.ZodString>;
2737
+ /** Create the inbound trunk and dispatch rule at startup when missing (idempotent). Defaults to false. */
2738
+ autoProvision: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>>;
2739
+ /** Source addresses the inbound trunk accepts calls from (the carrier's SIP signalling addresses). Used when provisioning. */
2740
+ allowedAddresses: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2741
+ /** The carrier behind the trunk, for configuration checks only (no carrier API is called). */
2742
+ carrier: z.ZodOptional<z.ZodObject<{
2743
+ type: z.ZodLiteral<"twilio-elastic-sip">;
2744
+ /** The LiveKit SIP URI the Twilio trunk's origination URI points at, e.g. `sip:<project>.sip.livekit.cloud`. */
2745
+ originationUri: z.ZodOptional<z.ZodString>;
2746
+ /** The trunk's Termination SIP URI on Twilio (`<name>.pstn.twilio.com`). Needed only when dialing out. */
2747
+ terminationUri: z.ZodOptional<z.ZodString>;
2748
+ /** How Twilio authenticates LiveKit's outbound requests. */
2749
+ terminationAuth: z.ZodOptional<z.ZodEnum<["credential-list", "ip-acl"]>>;
2750
+ /** The Twilio numbers associated with the trunk (E.164). */
2751
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2752
+ }, "strip", z.ZodTypeAny, {
2753
+ type?: "twilio-elastic-sip";
2754
+ numbers?: string[];
2755
+ originationUri?: string;
2756
+ terminationUri?: string;
2757
+ terminationAuth?: "credential-list" | "ip-acl";
2758
+ }, {
2759
+ type?: "twilio-elastic-sip";
2760
+ numbers?: string[];
2761
+ originationUri?: string;
2762
+ terminationUri?: string;
2763
+ terminationAuth?: "credential-list" | "ip-acl";
2764
+ }>>;
2765
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
2766
+ /** LiveKit server URL (`wss://…`). Defaults to `LIVEKIT_URL`. */
2767
+ serverUrl: z.ZodOptional<z.ZodString>;
2768
+ /** LiveKit API key. Defaults to `LIVEKIT_API_KEY`. */
2769
+ apiKey: z.ZodOptional<z.ZodString>;
2770
+ /** LiveKit API secret (resolved upstream — never inlined). Defaults to `LIVEKIT_API_SECRET`. */
2771
+ apiSecret: z.ZodOptional<z.ZodString>;
2772
+ /** Inbound calls land in a room whose name starts with this. Defaults to `call-`. */
2773
+ roomPrefix: z.ZodOptional<z.ZodString>;
2774
+ /** The numbers (E.164) this deployment answers. Each routes to the agent identity registered for it (on the LiveKit provider). */
2775
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2776
+ /** The LiveKit inbound trunk id, when created by hand. */
2777
+ inboundTrunkId: z.ZodOptional<z.ZodString>;
2778
+ /** The LiveKit OUTBOUND trunk used to dial out (outbound calls, fallback legs, transfers to a number). Dialing out is off without it. */
2779
+ outboundTrunkId: z.ZodOptional<z.ZodString>;
2780
+ /** The caller ID presented on calls dialed out through the outbound trunk. */
2781
+ outboundFromNumber: z.ZodOptional<z.ZodString>;
2782
+ /** Create the inbound trunk and dispatch rule at startup when missing (idempotent). Defaults to false. */
2783
+ autoProvision: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>>;
2784
+ /** Source addresses the inbound trunk accepts calls from (the carrier's SIP signalling addresses). Used when provisioning. */
2785
+ allowedAddresses: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2786
+ /** The carrier behind the trunk, for configuration checks only (no carrier API is called). */
2787
+ carrier: z.ZodOptional<z.ZodObject<{
2788
+ type: z.ZodLiteral<"twilio-elastic-sip">;
2789
+ /** The LiveKit SIP URI the Twilio trunk's origination URI points at, e.g. `sip:<project>.sip.livekit.cloud`. */
2790
+ originationUri: z.ZodOptional<z.ZodString>;
2791
+ /** The trunk's Termination SIP URI on Twilio (`<name>.pstn.twilio.com`). Needed only when dialing out. */
2792
+ terminationUri: z.ZodOptional<z.ZodString>;
2793
+ /** How Twilio authenticates LiveKit's outbound requests. */
2794
+ terminationAuth: z.ZodOptional<z.ZodEnum<["credential-list", "ip-acl"]>>;
2795
+ /** The Twilio numbers associated with the trunk (E.164). */
2796
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2797
+ }, "strip", z.ZodTypeAny, {
2798
+ type?: "twilio-elastic-sip";
2799
+ numbers?: string[];
2800
+ originationUri?: string;
2801
+ terminationUri?: string;
2802
+ terminationAuth?: "credential-list" | "ip-acl";
2803
+ }, {
2804
+ type?: "twilio-elastic-sip";
2805
+ numbers?: string[];
2806
+ originationUri?: string;
2807
+ terminationUri?: string;
2808
+ terminationAuth?: "credential-list" | "ip-acl";
2809
+ }>>;
2810
+ }, z.ZodTypeAny, "passthrough">>>;
1808
2811
  /** Microsoft Teams meetings (Graph cloud-communications + ACS application-hosted media) binding. */
1809
2812
  teams: z.ZodOptional<z.ZodObject<{
1810
2813
  /** Master switch for the Teams meetings ingress. */
@@ -2268,6 +3271,92 @@ declare const configInfoSchema: z.ZodObject<{
2268
3271
  telephony: z.ZodDefault<z.ZodOptional<z.ZodObject<{
2269
3272
  /** Master switch. When false (or when no vendor block is present), telephony routes are not mounted. */
2270
3273
  enabled: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
3274
+ /**
3275
+ * Email of the user INBOUND calls run as. A caller is an anonymous member of the public, so the call needs a
3276
+ * principal to create its agent session and run the agent. Point this at a DEDICATED LEAST-PRIVILEGE user.
3277
+ * There is deliberately no fallback: if unset, unknown, inactive, or the system user, inbound calls are
3278
+ * rejected with a polite message and the rejection is logged. Applies to Twilio, Vonage and RingCentral.
3279
+ */
3280
+ inboundRunAsUserEmail: z.ZodOptional<z.ZodString>;
3281
+ /** Maximum length of one phone call, in seconds. The bridge session is stopped (and the call hung up) at the cap. Defaults to 1800. */
3282
+ maxCallSeconds: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3283
+ /**
3284
+ * Most phone calls (every carrier together, both directions) the server carries at once. Past it an inbound
3285
+ * caller hears "all agents are busy" and an outbound request is refused. Keep it at or below the realtime
3286
+ * model plan's concurrent-session limit. Defaults to 25.
3287
+ */
3288
+ maxConcurrentCalls: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3289
+ /** Outbound destination policy + per-user rate limit (see {@link outboundTelephonySchema}). */
3290
+ outbound: z.ZodDefault<z.ZodOptional<z.ZodObject<{
3291
+ /** Destination prefixes a call may go to (E.164, e.g. `+1`). An empty list refuses every destination. Defaults to `['+1']`. */
3292
+ allowedPrefixes: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
3293
+ /**
3294
+ * Destination prefixes that are always refused, even when an allowed prefix matches. Deliberately has NO default
3295
+ * here: when omitted, `@memberjunction/telephony-adapters` applies its own `DEFAULT_BLOCKED_PREFIXES` (NANP
3296
+ * premium-rate plus the Caribbean +1 countries abused for toll fraud), so the list lives in exactly one place.
3297
+ * Setting this REPLACES that list.
3298
+ */
3299
+ blockedPrefixes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3300
+ /** Max outbound calls one user may place per rolling hour (per process). Defaults to 20. */
3301
+ maxCallsPerUserPerHour: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3302
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
3303
+ /** Destination prefixes a call may go to (E.164, e.g. `+1`). An empty list refuses every destination. Defaults to `['+1']`. */
3304
+ allowedPrefixes: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
3305
+ /**
3306
+ * Destination prefixes that are always refused, even when an allowed prefix matches. Deliberately has NO default
3307
+ * here: when omitted, `@memberjunction/telephony-adapters` applies its own `DEFAULT_BLOCKED_PREFIXES` (NANP
3308
+ * premium-rate plus the Caribbean +1 countries abused for toll fraud), so the list lives in exactly one place.
3309
+ * Setting this REPLACES that list.
3310
+ */
3311
+ blockedPrefixes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3312
+ /** Max outbound calls one user may place per rolling hour (per process). Defaults to 20. */
3313
+ maxCallsPerUserPerHour: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3314
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
3315
+ /** Destination prefixes a call may go to (E.164, e.g. `+1`). An empty list refuses every destination. Defaults to `['+1']`. */
3316
+ allowedPrefixes: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
3317
+ /**
3318
+ * Destination prefixes that are always refused, even when an allowed prefix matches. Deliberately has NO default
3319
+ * here: when omitted, `@memberjunction/telephony-adapters` applies its own `DEFAULT_BLOCKED_PREFIXES` (NANP
3320
+ * premium-rate plus the Caribbean +1 countries abused for toll fraud), so the list lives in exactly one place.
3321
+ * Setting this REPLACES that list.
3322
+ */
3323
+ blockedPrefixes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3324
+ /** Max outbound calls one user may place per rolling hour (per process). Defaults to 20. */
3325
+ maxCallsPerUserPerHour: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3326
+ }, z.ZodTypeAny, "passthrough">>>>;
3327
+ /**
3328
+ * The places the agent may hand a live call to, by name (the agent names a target, never a number, an email or an agent
3329
+ * id). `kind` is `number` (the default; a phone number), `user` (a person at an Explorer console, who may accept or
3330
+ * decline; `userEmail`, optional `fallbackNumber` the room dials if they do not take it) or `agent` (another MJ AI agent,
3331
+ * by `agentName`). `user` and `agent` targets work on calls that live in a LiveKit room; a carrier call can only transfer to
3332
+ * a `number`. Every number is validated at startup against the outbound allow/block lists; an invalid entry is dropped
3333
+ * and logged. Empty (the default) means the agent cannot hand calls over at all.
3334
+ */
3335
+ transferTargets: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
3336
+ name: z.ZodString;
3337
+ kind: z.ZodOptional<z.ZodEnum<["number", "user", "agent"]>>;
3338
+ number: z.ZodOptional<z.ZodString>;
3339
+ userEmail: z.ZodOptional<z.ZodString>;
3340
+ fallbackNumber: z.ZodOptional<z.ZodString>;
3341
+ agentName: z.ZodOptional<z.ZodString>;
3342
+ description: z.ZodOptional<z.ZodString>;
3343
+ }, "strip", z.ZodTypeAny, {
3344
+ number?: string;
3345
+ name?: string;
3346
+ kind?: "number" | "user" | "agent";
3347
+ userEmail?: string;
3348
+ fallbackNumber?: string;
3349
+ agentName?: string;
3350
+ description?: string;
3351
+ }, {
3352
+ number?: string;
3353
+ name?: string;
3354
+ kind?: "number" | "user" | "agent";
3355
+ userEmail?: string;
3356
+ fallbackNumber?: string;
3357
+ agentName?: string;
3358
+ description?: string;
3359
+ }>, "many">>>;
2271
3360
  /** Twilio Programmable Voice + Media Streams binding. */
2272
3361
  twilio: z.ZodOptional<z.ZodObject<{
2273
3362
  /** Twilio Account SID (`AC…`). */
@@ -2280,10 +3369,20 @@ declare const configInfoSchema: z.ZodObject<{
2280
3369
  apiKeySecret: z.ZodOptional<z.ZodString>;
2281
3370
  /** The publicly reachable `wss://…/telephony/twilio/media` URL Twilio's <Connect><Stream> connects to. */
2282
3371
  streamPublicUrl: z.ZodString;
2283
- /** Optional shared secret gating the public webhook/WSS endpoints (defense-in-depth beyond signature verification). */
3372
+ /**
3373
+ * Reserved; currently unused. The Media-Streams websocket is authenticated by a per-call token MJ mints and
3374
+ * embeds in the TwiML (`<Parameter name="mjToken">`), and webhooks by `X-Twilio-Signature`.
3375
+ */
2284
3376
  webhookSigningSecret: z.ZodOptional<z.ZodString>;
2285
- /** Optional status-callback URL Twilio posts call lifecycle events to. */
3377
+ /**
3378
+ * URL Twilio posts outbound-call lifecycle events to. Defaults to `<public URL>/telephony/twilio/status`, the
3379
+ * route that ends the bridge session when a call is busy / unanswered / failed / completed.
3380
+ */
2286
3381
  statusCallbackUrl: z.ZodOptional<z.ZodString>;
3382
+ /** URL Twilio posts the async answering-machine verdict to. Defaults to `<public URL>/telephony/twilio/amd`. */
3383
+ amdStatusCallbackUrl: z.ZodOptional<z.ZodString>;
3384
+ /** What to do when a machine or fax answers an outbound call: `hangup` (default) ends it, `continue` only logs the verdict. */
3385
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
2287
3386
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
2288
3387
  /** Twilio Account SID (`AC…`). */
2289
3388
  accountSid: z.ZodString;
@@ -2295,10 +3394,20 @@ declare const configInfoSchema: z.ZodObject<{
2295
3394
  apiKeySecret: z.ZodOptional<z.ZodString>;
2296
3395
  /** The publicly reachable `wss://…/telephony/twilio/media` URL Twilio's <Connect><Stream> connects to. */
2297
3396
  streamPublicUrl: z.ZodString;
2298
- /** Optional shared secret gating the public webhook/WSS endpoints (defense-in-depth beyond signature verification). */
3397
+ /**
3398
+ * Reserved; currently unused. The Media-Streams websocket is authenticated by a per-call token MJ mints and
3399
+ * embeds in the TwiML (`<Parameter name="mjToken">`), and webhooks by `X-Twilio-Signature`.
3400
+ */
2299
3401
  webhookSigningSecret: z.ZodOptional<z.ZodString>;
2300
- /** Optional status-callback URL Twilio posts call lifecycle events to. */
3402
+ /**
3403
+ * URL Twilio posts outbound-call lifecycle events to. Defaults to `<public URL>/telephony/twilio/status`, the
3404
+ * route that ends the bridge session when a call is busy / unanswered / failed / completed.
3405
+ */
2301
3406
  statusCallbackUrl: z.ZodOptional<z.ZodString>;
3407
+ /** URL Twilio posts the async answering-machine verdict to. Defaults to `<public URL>/telephony/twilio/amd`. */
3408
+ amdStatusCallbackUrl: z.ZodOptional<z.ZodString>;
3409
+ /** What to do when a machine or fax answers an outbound call: `hangup` (default) ends it, `continue` only logs the verdict. */
3410
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
2302
3411
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
2303
3412
  /** Twilio Account SID (`AC…`). */
2304
3413
  accountSid: z.ZodString;
@@ -2310,10 +3419,20 @@ declare const configInfoSchema: z.ZodObject<{
2310
3419
  apiKeySecret: z.ZodOptional<z.ZodString>;
2311
3420
  /** The publicly reachable `wss://…/telephony/twilio/media` URL Twilio's <Connect><Stream> connects to. */
2312
3421
  streamPublicUrl: z.ZodString;
2313
- /** Optional shared secret gating the public webhook/WSS endpoints (defense-in-depth beyond signature verification). */
3422
+ /**
3423
+ * Reserved; currently unused. The Media-Streams websocket is authenticated by a per-call token MJ mints and
3424
+ * embeds in the TwiML (`<Parameter name="mjToken">`), and webhooks by `X-Twilio-Signature`.
3425
+ */
2314
3426
  webhookSigningSecret: z.ZodOptional<z.ZodString>;
2315
- /** Optional status-callback URL Twilio posts call lifecycle events to. */
3427
+ /**
3428
+ * URL Twilio posts outbound-call lifecycle events to. Defaults to `<public URL>/telephony/twilio/status`, the
3429
+ * route that ends the bridge session when a call is busy / unanswered / failed / completed.
3430
+ */
2316
3431
  statusCallbackUrl: z.ZodOptional<z.ZodString>;
3432
+ /** URL Twilio posts the async answering-machine verdict to. Defaults to `<public URL>/telephony/twilio/amd`. */
3433
+ amdStatusCallbackUrl: z.ZodOptional<z.ZodString>;
3434
+ /** What to do when a machine or fax answers an outbound call: `hangup` (default) ends it, `continue` only logs the verdict. */
3435
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
2317
3436
  }, z.ZodTypeAny, "passthrough">>>;
2318
3437
  /** Vonage Voice + WebSocket-media binding. */
2319
3438
  vonage: z.ZodOptional<z.ZodObject<{
@@ -2329,8 +3448,14 @@ declare const configInfoSchema: z.ZodObject<{
2329
3448
  mediaPublicUrl: z.ZodString;
2330
3449
  /** Vonage account signature secret — HMAC key for signed-request `sig` AND HS256 webhook-JWT verification. */
2331
3450
  signatureSecret: z.ZodOptional<z.ZodString>;
2332
- /** Optional event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). */
3451
+ /**
3452
+ * Event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). Defaults to
3453
+ * `<public URL>/telephony/vonage/event`, the route that ends the bridge session when a call is busy /
3454
+ * unanswered / failed / completed.
3455
+ */
2333
3456
  eventUrl: z.ZodOptional<z.ZodString>;
3457
+ /** What to do when a machine answers an outbound call — Vonage's `machine_detection`: `hangup` (default) or `continue`. */
3458
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
2334
3459
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
2335
3460
  /** Vonage Application ID (UUID) — the JWT-auth identity for the Voice API. */
2336
3461
  applicationId: z.ZodOptional<z.ZodString>;
@@ -2344,8 +3469,14 @@ declare const configInfoSchema: z.ZodObject<{
2344
3469
  mediaPublicUrl: z.ZodString;
2345
3470
  /** Vonage account signature secret — HMAC key for signed-request `sig` AND HS256 webhook-JWT verification. */
2346
3471
  signatureSecret: z.ZodOptional<z.ZodString>;
2347
- /** Optional event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). */
3472
+ /**
3473
+ * Event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). Defaults to
3474
+ * `<public URL>/telephony/vonage/event`, the route that ends the bridge session when a call is busy /
3475
+ * unanswered / failed / completed.
3476
+ */
2348
3477
  eventUrl: z.ZodOptional<z.ZodString>;
3478
+ /** What to do when a machine answers an outbound call — Vonage's `machine_detection`: `hangup` (default) or `continue`. */
3479
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
2349
3480
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
2350
3481
  /** Vonage Application ID (UUID) — the JWT-auth identity for the Voice API. */
2351
3482
  applicationId: z.ZodOptional<z.ZodString>;
@@ -2359,8 +3490,14 @@ declare const configInfoSchema: z.ZodObject<{
2359
3490
  mediaPublicUrl: z.ZodString;
2360
3491
  /** Vonage account signature secret — HMAC key for signed-request `sig` AND HS256 webhook-JWT verification. */
2361
3492
  signatureSecret: z.ZodOptional<z.ZodString>;
2362
- /** Optional event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). */
3493
+ /**
3494
+ * Event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). Defaults to
3495
+ * `<public URL>/telephony/vonage/event`, the route that ends the bridge session when a call is busy /
3496
+ * unanswered / failed / completed.
3497
+ */
2363
3498
  eventUrl: z.ZodOptional<z.ZodString>;
3499
+ /** What to do when a machine answers an outbound call — Vonage's `machine_detection`: `hangup` (default) or `continue`. */
3500
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
2364
3501
  }, z.ZodTypeAny, "passthrough">>>;
2365
3502
  /** RingCentral Call Control + media-stream binding. */
2366
3503
  ringcentral: z.ZodOptional<z.ZodObject<{
@@ -2409,6 +3546,143 @@ declare const configInfoSchema: z.ZodObject<{
2409
3546
  /** Skip TLS cert validation (sandbox/test only — never in production). */
2410
3547
  ignoreTlsCertErrors: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>>;
2411
3548
  }, z.ZodTypeAny, "passthrough">>>;
3549
+ /** LiveKit SIP binding: phone calls carried by a SIP trunk, landed in a LiveKit room. */
3550
+ livekitSip: z.ZodOptional<z.ZodObject<{
3551
+ /** LiveKit server URL (`wss://…`). Defaults to `LIVEKIT_URL`. */
3552
+ serverUrl: z.ZodOptional<z.ZodString>;
3553
+ /** LiveKit API key. Defaults to `LIVEKIT_API_KEY`. */
3554
+ apiKey: z.ZodOptional<z.ZodString>;
3555
+ /** LiveKit API secret (resolved upstream — never inlined). Defaults to `LIVEKIT_API_SECRET`. */
3556
+ apiSecret: z.ZodOptional<z.ZodString>;
3557
+ /** Inbound calls land in a room whose name starts with this. Defaults to `call-`. */
3558
+ roomPrefix: z.ZodOptional<z.ZodString>;
3559
+ /** The numbers (E.164) this deployment answers. Each routes to the agent identity registered for it (on the LiveKit provider). */
3560
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3561
+ /** The LiveKit inbound trunk id, when created by hand. */
3562
+ inboundTrunkId: z.ZodOptional<z.ZodString>;
3563
+ /** The LiveKit OUTBOUND trunk used to dial out (outbound calls, fallback legs, transfers to a number). Dialing out is off without it. */
3564
+ outboundTrunkId: z.ZodOptional<z.ZodString>;
3565
+ /** The caller ID presented on calls dialed out through the outbound trunk. */
3566
+ outboundFromNumber: z.ZodOptional<z.ZodString>;
3567
+ /** Create the inbound trunk and dispatch rule at startup when missing (idempotent). Defaults to false. */
3568
+ autoProvision: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>>;
3569
+ /** Source addresses the inbound trunk accepts calls from (the carrier's SIP signalling addresses). Used when provisioning. */
3570
+ allowedAddresses: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3571
+ /** The carrier behind the trunk, for configuration checks only (no carrier API is called). */
3572
+ carrier: z.ZodOptional<z.ZodObject<{
3573
+ type: z.ZodLiteral<"twilio-elastic-sip">;
3574
+ /** The LiveKit SIP URI the Twilio trunk's origination URI points at, e.g. `sip:<project>.sip.livekit.cloud`. */
3575
+ originationUri: z.ZodOptional<z.ZodString>;
3576
+ /** The trunk's Termination SIP URI on Twilio (`<name>.pstn.twilio.com`). Needed only when dialing out. */
3577
+ terminationUri: z.ZodOptional<z.ZodString>;
3578
+ /** How Twilio authenticates LiveKit's outbound requests. */
3579
+ terminationAuth: z.ZodOptional<z.ZodEnum<["credential-list", "ip-acl"]>>;
3580
+ /** The Twilio numbers associated with the trunk (E.164). */
3581
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3582
+ }, "strip", z.ZodTypeAny, {
3583
+ type?: "twilio-elastic-sip";
3584
+ numbers?: string[];
3585
+ originationUri?: string;
3586
+ terminationUri?: string;
3587
+ terminationAuth?: "credential-list" | "ip-acl";
3588
+ }, {
3589
+ type?: "twilio-elastic-sip";
3590
+ numbers?: string[];
3591
+ originationUri?: string;
3592
+ terminationUri?: string;
3593
+ terminationAuth?: "credential-list" | "ip-acl";
3594
+ }>>;
3595
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
3596
+ /** LiveKit server URL (`wss://…`). Defaults to `LIVEKIT_URL`. */
3597
+ serverUrl: z.ZodOptional<z.ZodString>;
3598
+ /** LiveKit API key. Defaults to `LIVEKIT_API_KEY`. */
3599
+ apiKey: z.ZodOptional<z.ZodString>;
3600
+ /** LiveKit API secret (resolved upstream — never inlined). Defaults to `LIVEKIT_API_SECRET`. */
3601
+ apiSecret: z.ZodOptional<z.ZodString>;
3602
+ /** Inbound calls land in a room whose name starts with this. Defaults to `call-`. */
3603
+ roomPrefix: z.ZodOptional<z.ZodString>;
3604
+ /** The numbers (E.164) this deployment answers. Each routes to the agent identity registered for it (on the LiveKit provider). */
3605
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3606
+ /** The LiveKit inbound trunk id, when created by hand. */
3607
+ inboundTrunkId: z.ZodOptional<z.ZodString>;
3608
+ /** The LiveKit OUTBOUND trunk used to dial out (outbound calls, fallback legs, transfers to a number). Dialing out is off without it. */
3609
+ outboundTrunkId: z.ZodOptional<z.ZodString>;
3610
+ /** The caller ID presented on calls dialed out through the outbound trunk. */
3611
+ outboundFromNumber: z.ZodOptional<z.ZodString>;
3612
+ /** Create the inbound trunk and dispatch rule at startup when missing (idempotent). Defaults to false. */
3613
+ autoProvision: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>>;
3614
+ /** Source addresses the inbound trunk accepts calls from (the carrier's SIP signalling addresses). Used when provisioning. */
3615
+ allowedAddresses: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3616
+ /** The carrier behind the trunk, for configuration checks only (no carrier API is called). */
3617
+ carrier: z.ZodOptional<z.ZodObject<{
3618
+ type: z.ZodLiteral<"twilio-elastic-sip">;
3619
+ /** The LiveKit SIP URI the Twilio trunk's origination URI points at, e.g. `sip:<project>.sip.livekit.cloud`. */
3620
+ originationUri: z.ZodOptional<z.ZodString>;
3621
+ /** The trunk's Termination SIP URI on Twilio (`<name>.pstn.twilio.com`). Needed only when dialing out. */
3622
+ terminationUri: z.ZodOptional<z.ZodString>;
3623
+ /** How Twilio authenticates LiveKit's outbound requests. */
3624
+ terminationAuth: z.ZodOptional<z.ZodEnum<["credential-list", "ip-acl"]>>;
3625
+ /** The Twilio numbers associated with the trunk (E.164). */
3626
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3627
+ }, "strip", z.ZodTypeAny, {
3628
+ type?: "twilio-elastic-sip";
3629
+ numbers?: string[];
3630
+ originationUri?: string;
3631
+ terminationUri?: string;
3632
+ terminationAuth?: "credential-list" | "ip-acl";
3633
+ }, {
3634
+ type?: "twilio-elastic-sip";
3635
+ numbers?: string[];
3636
+ originationUri?: string;
3637
+ terminationUri?: string;
3638
+ terminationAuth?: "credential-list" | "ip-acl";
3639
+ }>>;
3640
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
3641
+ /** LiveKit server URL (`wss://…`). Defaults to `LIVEKIT_URL`. */
3642
+ serverUrl: z.ZodOptional<z.ZodString>;
3643
+ /** LiveKit API key. Defaults to `LIVEKIT_API_KEY`. */
3644
+ apiKey: z.ZodOptional<z.ZodString>;
3645
+ /** LiveKit API secret (resolved upstream — never inlined). Defaults to `LIVEKIT_API_SECRET`. */
3646
+ apiSecret: z.ZodOptional<z.ZodString>;
3647
+ /** Inbound calls land in a room whose name starts with this. Defaults to `call-`. */
3648
+ roomPrefix: z.ZodOptional<z.ZodString>;
3649
+ /** The numbers (E.164) this deployment answers. Each routes to the agent identity registered for it (on the LiveKit provider). */
3650
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3651
+ /** The LiveKit inbound trunk id, when created by hand. */
3652
+ inboundTrunkId: z.ZodOptional<z.ZodString>;
3653
+ /** The LiveKit OUTBOUND trunk used to dial out (outbound calls, fallback legs, transfers to a number). Dialing out is off without it. */
3654
+ outboundTrunkId: z.ZodOptional<z.ZodString>;
3655
+ /** The caller ID presented on calls dialed out through the outbound trunk. */
3656
+ outboundFromNumber: z.ZodOptional<z.ZodString>;
3657
+ /** Create the inbound trunk and dispatch rule at startup when missing (idempotent). Defaults to false. */
3658
+ autoProvision: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>>;
3659
+ /** Source addresses the inbound trunk accepts calls from (the carrier's SIP signalling addresses). Used when provisioning. */
3660
+ allowedAddresses: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3661
+ /** The carrier behind the trunk, for configuration checks only (no carrier API is called). */
3662
+ carrier: z.ZodOptional<z.ZodObject<{
3663
+ type: z.ZodLiteral<"twilio-elastic-sip">;
3664
+ /** The LiveKit SIP URI the Twilio trunk's origination URI points at, e.g. `sip:<project>.sip.livekit.cloud`. */
3665
+ originationUri: z.ZodOptional<z.ZodString>;
3666
+ /** The trunk's Termination SIP URI on Twilio (`<name>.pstn.twilio.com`). Needed only when dialing out. */
3667
+ terminationUri: z.ZodOptional<z.ZodString>;
3668
+ /** How Twilio authenticates LiveKit's outbound requests. */
3669
+ terminationAuth: z.ZodOptional<z.ZodEnum<["credential-list", "ip-acl"]>>;
3670
+ /** The Twilio numbers associated with the trunk (E.164). */
3671
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3672
+ }, "strip", z.ZodTypeAny, {
3673
+ type?: "twilio-elastic-sip";
3674
+ numbers?: string[];
3675
+ originationUri?: string;
3676
+ terminationUri?: string;
3677
+ terminationAuth?: "credential-list" | "ip-acl";
3678
+ }, {
3679
+ type?: "twilio-elastic-sip";
3680
+ numbers?: string[];
3681
+ originationUri?: string;
3682
+ terminationUri?: string;
3683
+ terminationAuth?: "credential-list" | "ip-acl";
3684
+ }>>;
3685
+ }, z.ZodTypeAny, "passthrough">>>;
2412
3686
  /** Microsoft Teams meetings (Graph cloud-communications + ACS application-hosted media) binding. */
2413
3687
  teams: z.ZodOptional<z.ZodObject<{
2414
3688
  /** Master switch for the Teams meetings ingress. */
@@ -2459,6 +3733,92 @@ declare const configInfoSchema: z.ZodObject<{
2459
3733
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
2460
3734
  /** Master switch. When false (or when no vendor block is present), telephony routes are not mounted. */
2461
3735
  enabled: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
3736
+ /**
3737
+ * Email of the user INBOUND calls run as. A caller is an anonymous member of the public, so the call needs a
3738
+ * principal to create its agent session and run the agent. Point this at a DEDICATED LEAST-PRIVILEGE user.
3739
+ * There is deliberately no fallback: if unset, unknown, inactive, or the system user, inbound calls are
3740
+ * rejected with a polite message and the rejection is logged. Applies to Twilio, Vonage and RingCentral.
3741
+ */
3742
+ inboundRunAsUserEmail: z.ZodOptional<z.ZodString>;
3743
+ /** Maximum length of one phone call, in seconds. The bridge session is stopped (and the call hung up) at the cap. Defaults to 1800. */
3744
+ maxCallSeconds: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3745
+ /**
3746
+ * Most phone calls (every carrier together, both directions) the server carries at once. Past it an inbound
3747
+ * caller hears "all agents are busy" and an outbound request is refused. Keep it at or below the realtime
3748
+ * model plan's concurrent-session limit. Defaults to 25.
3749
+ */
3750
+ maxConcurrentCalls: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3751
+ /** Outbound destination policy + per-user rate limit (see {@link outboundTelephonySchema}). */
3752
+ outbound: z.ZodDefault<z.ZodOptional<z.ZodObject<{
3753
+ /** Destination prefixes a call may go to (E.164, e.g. `+1`). An empty list refuses every destination. Defaults to `['+1']`. */
3754
+ allowedPrefixes: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
3755
+ /**
3756
+ * Destination prefixes that are always refused, even when an allowed prefix matches. Deliberately has NO default
3757
+ * here: when omitted, `@memberjunction/telephony-adapters` applies its own `DEFAULT_BLOCKED_PREFIXES` (NANP
3758
+ * premium-rate plus the Caribbean +1 countries abused for toll fraud), so the list lives in exactly one place.
3759
+ * Setting this REPLACES that list.
3760
+ */
3761
+ blockedPrefixes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3762
+ /** Max outbound calls one user may place per rolling hour (per process). Defaults to 20. */
3763
+ maxCallsPerUserPerHour: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3764
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
3765
+ /** Destination prefixes a call may go to (E.164, e.g. `+1`). An empty list refuses every destination. Defaults to `['+1']`. */
3766
+ allowedPrefixes: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
3767
+ /**
3768
+ * Destination prefixes that are always refused, even when an allowed prefix matches. Deliberately has NO default
3769
+ * here: when omitted, `@memberjunction/telephony-adapters` applies its own `DEFAULT_BLOCKED_PREFIXES` (NANP
3770
+ * premium-rate plus the Caribbean +1 countries abused for toll fraud), so the list lives in exactly one place.
3771
+ * Setting this REPLACES that list.
3772
+ */
3773
+ blockedPrefixes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3774
+ /** Max outbound calls one user may place per rolling hour (per process). Defaults to 20. */
3775
+ maxCallsPerUserPerHour: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3776
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
3777
+ /** Destination prefixes a call may go to (E.164, e.g. `+1`). An empty list refuses every destination. Defaults to `['+1']`. */
3778
+ allowedPrefixes: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
3779
+ /**
3780
+ * Destination prefixes that are always refused, even when an allowed prefix matches. Deliberately has NO default
3781
+ * here: when omitted, `@memberjunction/telephony-adapters` applies its own `DEFAULT_BLOCKED_PREFIXES` (NANP
3782
+ * premium-rate plus the Caribbean +1 countries abused for toll fraud), so the list lives in exactly one place.
3783
+ * Setting this REPLACES that list.
3784
+ */
3785
+ blockedPrefixes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3786
+ /** Max outbound calls one user may place per rolling hour (per process). Defaults to 20. */
3787
+ maxCallsPerUserPerHour: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3788
+ }, z.ZodTypeAny, "passthrough">>>>;
3789
+ /**
3790
+ * The places the agent may hand a live call to, by name (the agent names a target, never a number, an email or an agent
3791
+ * id). `kind` is `number` (the default; a phone number), `user` (a person at an Explorer console, who may accept or
3792
+ * decline; `userEmail`, optional `fallbackNumber` the room dials if they do not take it) or `agent` (another MJ AI agent,
3793
+ * by `agentName`). `user` and `agent` targets work on calls that live in a LiveKit room; a carrier call can only transfer to
3794
+ * a `number`. Every number is validated at startup against the outbound allow/block lists; an invalid entry is dropped
3795
+ * and logged. Empty (the default) means the agent cannot hand calls over at all.
3796
+ */
3797
+ transferTargets: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
3798
+ name: z.ZodString;
3799
+ kind: z.ZodOptional<z.ZodEnum<["number", "user", "agent"]>>;
3800
+ number: z.ZodOptional<z.ZodString>;
3801
+ userEmail: z.ZodOptional<z.ZodString>;
3802
+ fallbackNumber: z.ZodOptional<z.ZodString>;
3803
+ agentName: z.ZodOptional<z.ZodString>;
3804
+ description: z.ZodOptional<z.ZodString>;
3805
+ }, "strip", z.ZodTypeAny, {
3806
+ number?: string;
3807
+ name?: string;
3808
+ kind?: "number" | "user" | "agent";
3809
+ userEmail?: string;
3810
+ fallbackNumber?: string;
3811
+ agentName?: string;
3812
+ description?: string;
3813
+ }, {
3814
+ number?: string;
3815
+ name?: string;
3816
+ kind?: "number" | "user" | "agent";
3817
+ userEmail?: string;
3818
+ fallbackNumber?: string;
3819
+ agentName?: string;
3820
+ description?: string;
3821
+ }>, "many">>>;
2462
3822
  /** Twilio Programmable Voice + Media Streams binding. */
2463
3823
  twilio: z.ZodOptional<z.ZodObject<{
2464
3824
  /** Twilio Account SID (`AC…`). */
@@ -2471,10 +3831,20 @@ declare const configInfoSchema: z.ZodObject<{
2471
3831
  apiKeySecret: z.ZodOptional<z.ZodString>;
2472
3832
  /** The publicly reachable `wss://…/telephony/twilio/media` URL Twilio's <Connect><Stream> connects to. */
2473
3833
  streamPublicUrl: z.ZodString;
2474
- /** Optional shared secret gating the public webhook/WSS endpoints (defense-in-depth beyond signature verification). */
3834
+ /**
3835
+ * Reserved; currently unused. The Media-Streams websocket is authenticated by a per-call token MJ mints and
3836
+ * embeds in the TwiML (`<Parameter name="mjToken">`), and webhooks by `X-Twilio-Signature`.
3837
+ */
2475
3838
  webhookSigningSecret: z.ZodOptional<z.ZodString>;
2476
- /** Optional status-callback URL Twilio posts call lifecycle events to. */
3839
+ /**
3840
+ * URL Twilio posts outbound-call lifecycle events to. Defaults to `<public URL>/telephony/twilio/status`, the
3841
+ * route that ends the bridge session when a call is busy / unanswered / failed / completed.
3842
+ */
2477
3843
  statusCallbackUrl: z.ZodOptional<z.ZodString>;
3844
+ /** URL Twilio posts the async answering-machine verdict to. Defaults to `<public URL>/telephony/twilio/amd`. */
3845
+ amdStatusCallbackUrl: z.ZodOptional<z.ZodString>;
3846
+ /** What to do when a machine or fax answers an outbound call: `hangup` (default) ends it, `continue` only logs the verdict. */
3847
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
2478
3848
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
2479
3849
  /** Twilio Account SID (`AC…`). */
2480
3850
  accountSid: z.ZodString;
@@ -2486,10 +3856,20 @@ declare const configInfoSchema: z.ZodObject<{
2486
3856
  apiKeySecret: z.ZodOptional<z.ZodString>;
2487
3857
  /** The publicly reachable `wss://…/telephony/twilio/media` URL Twilio's <Connect><Stream> connects to. */
2488
3858
  streamPublicUrl: z.ZodString;
2489
- /** Optional shared secret gating the public webhook/WSS endpoints (defense-in-depth beyond signature verification). */
3859
+ /**
3860
+ * Reserved; currently unused. The Media-Streams websocket is authenticated by a per-call token MJ mints and
3861
+ * embeds in the TwiML (`<Parameter name="mjToken">`), and webhooks by `X-Twilio-Signature`.
3862
+ */
2490
3863
  webhookSigningSecret: z.ZodOptional<z.ZodString>;
2491
- /** Optional status-callback URL Twilio posts call lifecycle events to. */
3864
+ /**
3865
+ * URL Twilio posts outbound-call lifecycle events to. Defaults to `<public URL>/telephony/twilio/status`, the
3866
+ * route that ends the bridge session when a call is busy / unanswered / failed / completed.
3867
+ */
2492
3868
  statusCallbackUrl: z.ZodOptional<z.ZodString>;
3869
+ /** URL Twilio posts the async answering-machine verdict to. Defaults to `<public URL>/telephony/twilio/amd`. */
3870
+ amdStatusCallbackUrl: z.ZodOptional<z.ZodString>;
3871
+ /** What to do when a machine or fax answers an outbound call: `hangup` (default) ends it, `continue` only logs the verdict. */
3872
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
2493
3873
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
2494
3874
  /** Twilio Account SID (`AC…`). */
2495
3875
  accountSid: z.ZodString;
@@ -2501,10 +3881,20 @@ declare const configInfoSchema: z.ZodObject<{
2501
3881
  apiKeySecret: z.ZodOptional<z.ZodString>;
2502
3882
  /** The publicly reachable `wss://…/telephony/twilio/media` URL Twilio's <Connect><Stream> connects to. */
2503
3883
  streamPublicUrl: z.ZodString;
2504
- /** Optional shared secret gating the public webhook/WSS endpoints (defense-in-depth beyond signature verification). */
3884
+ /**
3885
+ * Reserved; currently unused. The Media-Streams websocket is authenticated by a per-call token MJ mints and
3886
+ * embeds in the TwiML (`<Parameter name="mjToken">`), and webhooks by `X-Twilio-Signature`.
3887
+ */
2505
3888
  webhookSigningSecret: z.ZodOptional<z.ZodString>;
2506
- /** Optional status-callback URL Twilio posts call lifecycle events to. */
3889
+ /**
3890
+ * URL Twilio posts outbound-call lifecycle events to. Defaults to `<public URL>/telephony/twilio/status`, the
3891
+ * route that ends the bridge session when a call is busy / unanswered / failed / completed.
3892
+ */
2507
3893
  statusCallbackUrl: z.ZodOptional<z.ZodString>;
3894
+ /** URL Twilio posts the async answering-machine verdict to. Defaults to `<public URL>/telephony/twilio/amd`. */
3895
+ amdStatusCallbackUrl: z.ZodOptional<z.ZodString>;
3896
+ /** What to do when a machine or fax answers an outbound call: `hangup` (default) ends it, `continue` only logs the verdict. */
3897
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
2508
3898
  }, z.ZodTypeAny, "passthrough">>>;
2509
3899
  /** Vonage Voice + WebSocket-media binding. */
2510
3900
  vonage: z.ZodOptional<z.ZodObject<{
@@ -2520,8 +3910,14 @@ declare const configInfoSchema: z.ZodObject<{
2520
3910
  mediaPublicUrl: z.ZodString;
2521
3911
  /** Vonage account signature secret — HMAC key for signed-request `sig` AND HS256 webhook-JWT verification. */
2522
3912
  signatureSecret: z.ZodOptional<z.ZodString>;
2523
- /** Optional event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). */
3913
+ /**
3914
+ * Event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). Defaults to
3915
+ * `<public URL>/telephony/vonage/event`, the route that ends the bridge session when a call is busy /
3916
+ * unanswered / failed / completed.
3917
+ */
2524
3918
  eventUrl: z.ZodOptional<z.ZodString>;
3919
+ /** What to do when a machine answers an outbound call — Vonage's `machine_detection`: `hangup` (default) or `continue`. */
3920
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
2525
3921
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
2526
3922
  /** Vonage Application ID (UUID) — the JWT-auth identity for the Voice API. */
2527
3923
  applicationId: z.ZodOptional<z.ZodString>;
@@ -2535,8 +3931,14 @@ declare const configInfoSchema: z.ZodObject<{
2535
3931
  mediaPublicUrl: z.ZodString;
2536
3932
  /** Vonage account signature secret — HMAC key for signed-request `sig` AND HS256 webhook-JWT verification. */
2537
3933
  signatureSecret: z.ZodOptional<z.ZodString>;
2538
- /** Optional event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). */
3934
+ /**
3935
+ * Event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). Defaults to
3936
+ * `<public URL>/telephony/vonage/event`, the route that ends the bridge session when a call is busy /
3937
+ * unanswered / failed / completed.
3938
+ */
2539
3939
  eventUrl: z.ZodOptional<z.ZodString>;
3940
+ /** What to do when a machine answers an outbound call — Vonage's `machine_detection`: `hangup` (default) or `continue`. */
3941
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
2540
3942
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
2541
3943
  /** Vonage Application ID (UUID) — the JWT-auth identity for the Voice API. */
2542
3944
  applicationId: z.ZodOptional<z.ZodString>;
@@ -2550,8 +3952,14 @@ declare const configInfoSchema: z.ZodObject<{
2550
3952
  mediaPublicUrl: z.ZodString;
2551
3953
  /** Vonage account signature secret — HMAC key for signed-request `sig` AND HS256 webhook-JWT verification. */
2552
3954
  signatureSecret: z.ZodOptional<z.ZodString>;
2553
- /** Optional event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). */
3955
+ /**
3956
+ * Event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). Defaults to
3957
+ * `<public URL>/telephony/vonage/event`, the route that ends the bridge session when a call is busy /
3958
+ * unanswered / failed / completed.
3959
+ */
2554
3960
  eventUrl: z.ZodOptional<z.ZodString>;
3961
+ /** What to do when a machine answers an outbound call — Vonage's `machine_detection`: `hangup` (default) or `continue`. */
3962
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
2555
3963
  }, z.ZodTypeAny, "passthrough">>>;
2556
3964
  /** RingCentral Call Control + media-stream binding. */
2557
3965
  ringcentral: z.ZodOptional<z.ZodObject<{
@@ -2600,6 +4008,143 @@ declare const configInfoSchema: z.ZodObject<{
2600
4008
  /** Skip TLS cert validation (sandbox/test only — never in production). */
2601
4009
  ignoreTlsCertErrors: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>>;
2602
4010
  }, z.ZodTypeAny, "passthrough">>>;
4011
+ /** LiveKit SIP binding: phone calls carried by a SIP trunk, landed in a LiveKit room. */
4012
+ livekitSip: z.ZodOptional<z.ZodObject<{
4013
+ /** LiveKit server URL (`wss://…`). Defaults to `LIVEKIT_URL`. */
4014
+ serverUrl: z.ZodOptional<z.ZodString>;
4015
+ /** LiveKit API key. Defaults to `LIVEKIT_API_KEY`. */
4016
+ apiKey: z.ZodOptional<z.ZodString>;
4017
+ /** LiveKit API secret (resolved upstream — never inlined). Defaults to `LIVEKIT_API_SECRET`. */
4018
+ apiSecret: z.ZodOptional<z.ZodString>;
4019
+ /** Inbound calls land in a room whose name starts with this. Defaults to `call-`. */
4020
+ roomPrefix: z.ZodOptional<z.ZodString>;
4021
+ /** The numbers (E.164) this deployment answers. Each routes to the agent identity registered for it (on the LiveKit provider). */
4022
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4023
+ /** The LiveKit inbound trunk id, when created by hand. */
4024
+ inboundTrunkId: z.ZodOptional<z.ZodString>;
4025
+ /** The LiveKit OUTBOUND trunk used to dial out (outbound calls, fallback legs, transfers to a number). Dialing out is off without it. */
4026
+ outboundTrunkId: z.ZodOptional<z.ZodString>;
4027
+ /** The caller ID presented on calls dialed out through the outbound trunk. */
4028
+ outboundFromNumber: z.ZodOptional<z.ZodString>;
4029
+ /** Create the inbound trunk and dispatch rule at startup when missing (idempotent). Defaults to false. */
4030
+ autoProvision: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>>;
4031
+ /** Source addresses the inbound trunk accepts calls from (the carrier's SIP signalling addresses). Used when provisioning. */
4032
+ allowedAddresses: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4033
+ /** The carrier behind the trunk, for configuration checks only (no carrier API is called). */
4034
+ carrier: z.ZodOptional<z.ZodObject<{
4035
+ type: z.ZodLiteral<"twilio-elastic-sip">;
4036
+ /** The LiveKit SIP URI the Twilio trunk's origination URI points at, e.g. `sip:<project>.sip.livekit.cloud`. */
4037
+ originationUri: z.ZodOptional<z.ZodString>;
4038
+ /** The trunk's Termination SIP URI on Twilio (`<name>.pstn.twilio.com`). Needed only when dialing out. */
4039
+ terminationUri: z.ZodOptional<z.ZodString>;
4040
+ /** How Twilio authenticates LiveKit's outbound requests. */
4041
+ terminationAuth: z.ZodOptional<z.ZodEnum<["credential-list", "ip-acl"]>>;
4042
+ /** The Twilio numbers associated with the trunk (E.164). */
4043
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4044
+ }, "strip", z.ZodTypeAny, {
4045
+ type?: "twilio-elastic-sip";
4046
+ numbers?: string[];
4047
+ originationUri?: string;
4048
+ terminationUri?: string;
4049
+ terminationAuth?: "credential-list" | "ip-acl";
4050
+ }, {
4051
+ type?: "twilio-elastic-sip";
4052
+ numbers?: string[];
4053
+ originationUri?: string;
4054
+ terminationUri?: string;
4055
+ terminationAuth?: "credential-list" | "ip-acl";
4056
+ }>>;
4057
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
4058
+ /** LiveKit server URL (`wss://…`). Defaults to `LIVEKIT_URL`. */
4059
+ serverUrl: z.ZodOptional<z.ZodString>;
4060
+ /** LiveKit API key. Defaults to `LIVEKIT_API_KEY`. */
4061
+ apiKey: z.ZodOptional<z.ZodString>;
4062
+ /** LiveKit API secret (resolved upstream — never inlined). Defaults to `LIVEKIT_API_SECRET`. */
4063
+ apiSecret: z.ZodOptional<z.ZodString>;
4064
+ /** Inbound calls land in a room whose name starts with this. Defaults to `call-`. */
4065
+ roomPrefix: z.ZodOptional<z.ZodString>;
4066
+ /** The numbers (E.164) this deployment answers. Each routes to the agent identity registered for it (on the LiveKit provider). */
4067
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4068
+ /** The LiveKit inbound trunk id, when created by hand. */
4069
+ inboundTrunkId: z.ZodOptional<z.ZodString>;
4070
+ /** The LiveKit OUTBOUND trunk used to dial out (outbound calls, fallback legs, transfers to a number). Dialing out is off without it. */
4071
+ outboundTrunkId: z.ZodOptional<z.ZodString>;
4072
+ /** The caller ID presented on calls dialed out through the outbound trunk. */
4073
+ outboundFromNumber: z.ZodOptional<z.ZodString>;
4074
+ /** Create the inbound trunk and dispatch rule at startup when missing (idempotent). Defaults to false. */
4075
+ autoProvision: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>>;
4076
+ /** Source addresses the inbound trunk accepts calls from (the carrier's SIP signalling addresses). Used when provisioning. */
4077
+ allowedAddresses: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4078
+ /** The carrier behind the trunk, for configuration checks only (no carrier API is called). */
4079
+ carrier: z.ZodOptional<z.ZodObject<{
4080
+ type: z.ZodLiteral<"twilio-elastic-sip">;
4081
+ /** The LiveKit SIP URI the Twilio trunk's origination URI points at, e.g. `sip:<project>.sip.livekit.cloud`. */
4082
+ originationUri: z.ZodOptional<z.ZodString>;
4083
+ /** The trunk's Termination SIP URI on Twilio (`<name>.pstn.twilio.com`). Needed only when dialing out. */
4084
+ terminationUri: z.ZodOptional<z.ZodString>;
4085
+ /** How Twilio authenticates LiveKit's outbound requests. */
4086
+ terminationAuth: z.ZodOptional<z.ZodEnum<["credential-list", "ip-acl"]>>;
4087
+ /** The Twilio numbers associated with the trunk (E.164). */
4088
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4089
+ }, "strip", z.ZodTypeAny, {
4090
+ type?: "twilio-elastic-sip";
4091
+ numbers?: string[];
4092
+ originationUri?: string;
4093
+ terminationUri?: string;
4094
+ terminationAuth?: "credential-list" | "ip-acl";
4095
+ }, {
4096
+ type?: "twilio-elastic-sip";
4097
+ numbers?: string[];
4098
+ originationUri?: string;
4099
+ terminationUri?: string;
4100
+ terminationAuth?: "credential-list" | "ip-acl";
4101
+ }>>;
4102
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
4103
+ /** LiveKit server URL (`wss://…`). Defaults to `LIVEKIT_URL`. */
4104
+ serverUrl: z.ZodOptional<z.ZodString>;
4105
+ /** LiveKit API key. Defaults to `LIVEKIT_API_KEY`. */
4106
+ apiKey: z.ZodOptional<z.ZodString>;
4107
+ /** LiveKit API secret (resolved upstream — never inlined). Defaults to `LIVEKIT_API_SECRET`. */
4108
+ apiSecret: z.ZodOptional<z.ZodString>;
4109
+ /** Inbound calls land in a room whose name starts with this. Defaults to `call-`. */
4110
+ roomPrefix: z.ZodOptional<z.ZodString>;
4111
+ /** The numbers (E.164) this deployment answers. Each routes to the agent identity registered for it (on the LiveKit provider). */
4112
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4113
+ /** The LiveKit inbound trunk id, when created by hand. */
4114
+ inboundTrunkId: z.ZodOptional<z.ZodString>;
4115
+ /** The LiveKit OUTBOUND trunk used to dial out (outbound calls, fallback legs, transfers to a number). Dialing out is off without it. */
4116
+ outboundTrunkId: z.ZodOptional<z.ZodString>;
4117
+ /** The caller ID presented on calls dialed out through the outbound trunk. */
4118
+ outboundFromNumber: z.ZodOptional<z.ZodString>;
4119
+ /** Create the inbound trunk and dispatch rule at startup when missing (idempotent). Defaults to false. */
4120
+ autoProvision: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>>;
4121
+ /** Source addresses the inbound trunk accepts calls from (the carrier's SIP signalling addresses). Used when provisioning. */
4122
+ allowedAddresses: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4123
+ /** The carrier behind the trunk, for configuration checks only (no carrier API is called). */
4124
+ carrier: z.ZodOptional<z.ZodObject<{
4125
+ type: z.ZodLiteral<"twilio-elastic-sip">;
4126
+ /** The LiveKit SIP URI the Twilio trunk's origination URI points at, e.g. `sip:<project>.sip.livekit.cloud`. */
4127
+ originationUri: z.ZodOptional<z.ZodString>;
4128
+ /** The trunk's Termination SIP URI on Twilio (`<name>.pstn.twilio.com`). Needed only when dialing out. */
4129
+ terminationUri: z.ZodOptional<z.ZodString>;
4130
+ /** How Twilio authenticates LiveKit's outbound requests. */
4131
+ terminationAuth: z.ZodOptional<z.ZodEnum<["credential-list", "ip-acl"]>>;
4132
+ /** The Twilio numbers associated with the trunk (E.164). */
4133
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4134
+ }, "strip", z.ZodTypeAny, {
4135
+ type?: "twilio-elastic-sip";
4136
+ numbers?: string[];
4137
+ originationUri?: string;
4138
+ terminationUri?: string;
4139
+ terminationAuth?: "credential-list" | "ip-acl";
4140
+ }, {
4141
+ type?: "twilio-elastic-sip";
4142
+ numbers?: string[];
4143
+ originationUri?: string;
4144
+ terminationUri?: string;
4145
+ terminationAuth?: "credential-list" | "ip-acl";
4146
+ }>>;
4147
+ }, z.ZodTypeAny, "passthrough">>>;
2603
4148
  /** Microsoft Teams meetings (Graph cloud-communications + ACS application-hosted media) binding. */
2604
4149
  teams: z.ZodOptional<z.ZodObject<{
2605
4150
  /** Master switch for the Teams meetings ingress. */
@@ -2650,6 +4195,92 @@ declare const configInfoSchema: z.ZodObject<{
2650
4195
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
2651
4196
  /** Master switch. When false (or when no vendor block is present), telephony routes are not mounted. */
2652
4197
  enabled: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
4198
+ /**
4199
+ * Email of the user INBOUND calls run as. A caller is an anonymous member of the public, so the call needs a
4200
+ * principal to create its agent session and run the agent. Point this at a DEDICATED LEAST-PRIVILEGE user.
4201
+ * There is deliberately no fallback: if unset, unknown, inactive, or the system user, inbound calls are
4202
+ * rejected with a polite message and the rejection is logged. Applies to Twilio, Vonage and RingCentral.
4203
+ */
4204
+ inboundRunAsUserEmail: z.ZodOptional<z.ZodString>;
4205
+ /** Maximum length of one phone call, in seconds. The bridge session is stopped (and the call hung up) at the cap. Defaults to 1800. */
4206
+ maxCallSeconds: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
4207
+ /**
4208
+ * Most phone calls (every carrier together, both directions) the server carries at once. Past it an inbound
4209
+ * caller hears "all agents are busy" and an outbound request is refused. Keep it at or below the realtime
4210
+ * model plan's concurrent-session limit. Defaults to 25.
4211
+ */
4212
+ maxConcurrentCalls: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
4213
+ /** Outbound destination policy + per-user rate limit (see {@link outboundTelephonySchema}). */
4214
+ outbound: z.ZodDefault<z.ZodOptional<z.ZodObject<{
4215
+ /** Destination prefixes a call may go to (E.164, e.g. `+1`). An empty list refuses every destination. Defaults to `['+1']`. */
4216
+ allowedPrefixes: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
4217
+ /**
4218
+ * Destination prefixes that are always refused, even when an allowed prefix matches. Deliberately has NO default
4219
+ * here: when omitted, `@memberjunction/telephony-adapters` applies its own `DEFAULT_BLOCKED_PREFIXES` (NANP
4220
+ * premium-rate plus the Caribbean +1 countries abused for toll fraud), so the list lives in exactly one place.
4221
+ * Setting this REPLACES that list.
4222
+ */
4223
+ blockedPrefixes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4224
+ /** Max outbound calls one user may place per rolling hour (per process). Defaults to 20. */
4225
+ maxCallsPerUserPerHour: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
4226
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
4227
+ /** Destination prefixes a call may go to (E.164, e.g. `+1`). An empty list refuses every destination. Defaults to `['+1']`. */
4228
+ allowedPrefixes: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
4229
+ /**
4230
+ * Destination prefixes that are always refused, even when an allowed prefix matches. Deliberately has NO default
4231
+ * here: when omitted, `@memberjunction/telephony-adapters` applies its own `DEFAULT_BLOCKED_PREFIXES` (NANP
4232
+ * premium-rate plus the Caribbean +1 countries abused for toll fraud), so the list lives in exactly one place.
4233
+ * Setting this REPLACES that list.
4234
+ */
4235
+ blockedPrefixes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4236
+ /** Max outbound calls one user may place per rolling hour (per process). Defaults to 20. */
4237
+ maxCallsPerUserPerHour: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
4238
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
4239
+ /** Destination prefixes a call may go to (E.164, e.g. `+1`). An empty list refuses every destination. Defaults to `['+1']`. */
4240
+ allowedPrefixes: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
4241
+ /**
4242
+ * Destination prefixes that are always refused, even when an allowed prefix matches. Deliberately has NO default
4243
+ * here: when omitted, `@memberjunction/telephony-adapters` applies its own `DEFAULT_BLOCKED_PREFIXES` (NANP
4244
+ * premium-rate plus the Caribbean +1 countries abused for toll fraud), so the list lives in exactly one place.
4245
+ * Setting this REPLACES that list.
4246
+ */
4247
+ blockedPrefixes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4248
+ /** Max outbound calls one user may place per rolling hour (per process). Defaults to 20. */
4249
+ maxCallsPerUserPerHour: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
4250
+ }, z.ZodTypeAny, "passthrough">>>>;
4251
+ /**
4252
+ * The places the agent may hand a live call to, by name (the agent names a target, never a number, an email or an agent
4253
+ * id). `kind` is `number` (the default; a phone number), `user` (a person at an Explorer console, who may accept or
4254
+ * decline; `userEmail`, optional `fallbackNumber` the room dials if they do not take it) or `agent` (another MJ AI agent,
4255
+ * by `agentName`). `user` and `agent` targets work on calls that live in a LiveKit room; a carrier call can only transfer to
4256
+ * a `number`. Every number is validated at startup against the outbound allow/block lists; an invalid entry is dropped
4257
+ * and logged. Empty (the default) means the agent cannot hand calls over at all.
4258
+ */
4259
+ transferTargets: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
4260
+ name: z.ZodString;
4261
+ kind: z.ZodOptional<z.ZodEnum<["number", "user", "agent"]>>;
4262
+ number: z.ZodOptional<z.ZodString>;
4263
+ userEmail: z.ZodOptional<z.ZodString>;
4264
+ fallbackNumber: z.ZodOptional<z.ZodString>;
4265
+ agentName: z.ZodOptional<z.ZodString>;
4266
+ description: z.ZodOptional<z.ZodString>;
4267
+ }, "strip", z.ZodTypeAny, {
4268
+ number?: string;
4269
+ name?: string;
4270
+ kind?: "number" | "user" | "agent";
4271
+ userEmail?: string;
4272
+ fallbackNumber?: string;
4273
+ agentName?: string;
4274
+ description?: string;
4275
+ }, {
4276
+ number?: string;
4277
+ name?: string;
4278
+ kind?: "number" | "user" | "agent";
4279
+ userEmail?: string;
4280
+ fallbackNumber?: string;
4281
+ agentName?: string;
4282
+ description?: string;
4283
+ }>, "many">>>;
2653
4284
  /** Twilio Programmable Voice + Media Streams binding. */
2654
4285
  twilio: z.ZodOptional<z.ZodObject<{
2655
4286
  /** Twilio Account SID (`AC…`). */
@@ -2662,10 +4293,20 @@ declare const configInfoSchema: z.ZodObject<{
2662
4293
  apiKeySecret: z.ZodOptional<z.ZodString>;
2663
4294
  /** The publicly reachable `wss://…/telephony/twilio/media` URL Twilio's <Connect><Stream> connects to. */
2664
4295
  streamPublicUrl: z.ZodString;
2665
- /** Optional shared secret gating the public webhook/WSS endpoints (defense-in-depth beyond signature verification). */
4296
+ /**
4297
+ * Reserved; currently unused. The Media-Streams websocket is authenticated by a per-call token MJ mints and
4298
+ * embeds in the TwiML (`<Parameter name="mjToken">`), and webhooks by `X-Twilio-Signature`.
4299
+ */
2666
4300
  webhookSigningSecret: z.ZodOptional<z.ZodString>;
2667
- /** Optional status-callback URL Twilio posts call lifecycle events to. */
4301
+ /**
4302
+ * URL Twilio posts outbound-call lifecycle events to. Defaults to `<public URL>/telephony/twilio/status`, the
4303
+ * route that ends the bridge session when a call is busy / unanswered / failed / completed.
4304
+ */
2668
4305
  statusCallbackUrl: z.ZodOptional<z.ZodString>;
4306
+ /** URL Twilio posts the async answering-machine verdict to. Defaults to `<public URL>/telephony/twilio/amd`. */
4307
+ amdStatusCallbackUrl: z.ZodOptional<z.ZodString>;
4308
+ /** What to do when a machine or fax answers an outbound call: `hangup` (default) ends it, `continue` only logs the verdict. */
4309
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
2669
4310
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
2670
4311
  /** Twilio Account SID (`AC…`). */
2671
4312
  accountSid: z.ZodString;
@@ -2677,10 +4318,20 @@ declare const configInfoSchema: z.ZodObject<{
2677
4318
  apiKeySecret: z.ZodOptional<z.ZodString>;
2678
4319
  /** The publicly reachable `wss://…/telephony/twilio/media` URL Twilio's <Connect><Stream> connects to. */
2679
4320
  streamPublicUrl: z.ZodString;
2680
- /** Optional shared secret gating the public webhook/WSS endpoints (defense-in-depth beyond signature verification). */
4321
+ /**
4322
+ * Reserved; currently unused. The Media-Streams websocket is authenticated by a per-call token MJ mints and
4323
+ * embeds in the TwiML (`<Parameter name="mjToken">`), and webhooks by `X-Twilio-Signature`.
4324
+ */
2681
4325
  webhookSigningSecret: z.ZodOptional<z.ZodString>;
2682
- /** Optional status-callback URL Twilio posts call lifecycle events to. */
4326
+ /**
4327
+ * URL Twilio posts outbound-call lifecycle events to. Defaults to `<public URL>/telephony/twilio/status`, the
4328
+ * route that ends the bridge session when a call is busy / unanswered / failed / completed.
4329
+ */
2683
4330
  statusCallbackUrl: z.ZodOptional<z.ZodString>;
4331
+ /** URL Twilio posts the async answering-machine verdict to. Defaults to `<public URL>/telephony/twilio/amd`. */
4332
+ amdStatusCallbackUrl: z.ZodOptional<z.ZodString>;
4333
+ /** What to do when a machine or fax answers an outbound call: `hangup` (default) ends it, `continue` only logs the verdict. */
4334
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
2684
4335
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
2685
4336
  /** Twilio Account SID (`AC…`). */
2686
4337
  accountSid: z.ZodString;
@@ -2692,10 +4343,20 @@ declare const configInfoSchema: z.ZodObject<{
2692
4343
  apiKeySecret: z.ZodOptional<z.ZodString>;
2693
4344
  /** The publicly reachable `wss://…/telephony/twilio/media` URL Twilio's <Connect><Stream> connects to. */
2694
4345
  streamPublicUrl: z.ZodString;
2695
- /** Optional shared secret gating the public webhook/WSS endpoints (defense-in-depth beyond signature verification). */
4346
+ /**
4347
+ * Reserved; currently unused. The Media-Streams websocket is authenticated by a per-call token MJ mints and
4348
+ * embeds in the TwiML (`<Parameter name="mjToken">`), and webhooks by `X-Twilio-Signature`.
4349
+ */
2696
4350
  webhookSigningSecret: z.ZodOptional<z.ZodString>;
2697
- /** Optional status-callback URL Twilio posts call lifecycle events to. */
4351
+ /**
4352
+ * URL Twilio posts outbound-call lifecycle events to. Defaults to `<public URL>/telephony/twilio/status`, the
4353
+ * route that ends the bridge session when a call is busy / unanswered / failed / completed.
4354
+ */
2698
4355
  statusCallbackUrl: z.ZodOptional<z.ZodString>;
4356
+ /** URL Twilio posts the async answering-machine verdict to. Defaults to `<public URL>/telephony/twilio/amd`. */
4357
+ amdStatusCallbackUrl: z.ZodOptional<z.ZodString>;
4358
+ /** What to do when a machine or fax answers an outbound call: `hangup` (default) ends it, `continue` only logs the verdict. */
4359
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
2699
4360
  }, z.ZodTypeAny, "passthrough">>>;
2700
4361
  /** Vonage Voice + WebSocket-media binding. */
2701
4362
  vonage: z.ZodOptional<z.ZodObject<{
@@ -2711,8 +4372,14 @@ declare const configInfoSchema: z.ZodObject<{
2711
4372
  mediaPublicUrl: z.ZodString;
2712
4373
  /** Vonage account signature secret — HMAC key for signed-request `sig` AND HS256 webhook-JWT verification. */
2713
4374
  signatureSecret: z.ZodOptional<z.ZodString>;
2714
- /** Optional event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). */
4375
+ /**
4376
+ * Event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). Defaults to
4377
+ * `<public URL>/telephony/vonage/event`, the route that ends the bridge session when a call is busy /
4378
+ * unanswered / failed / completed.
4379
+ */
2715
4380
  eventUrl: z.ZodOptional<z.ZodString>;
4381
+ /** What to do when a machine answers an outbound call — Vonage's `machine_detection`: `hangup` (default) or `continue`. */
4382
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
2716
4383
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
2717
4384
  /** Vonage Application ID (UUID) — the JWT-auth identity for the Voice API. */
2718
4385
  applicationId: z.ZodOptional<z.ZodString>;
@@ -2726,8 +4393,14 @@ declare const configInfoSchema: z.ZodObject<{
2726
4393
  mediaPublicUrl: z.ZodString;
2727
4394
  /** Vonage account signature secret — HMAC key for signed-request `sig` AND HS256 webhook-JWT verification. */
2728
4395
  signatureSecret: z.ZodOptional<z.ZodString>;
2729
- /** Optional event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). */
4396
+ /**
4397
+ * Event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). Defaults to
4398
+ * `<public URL>/telephony/vonage/event`, the route that ends the bridge session when a call is busy /
4399
+ * unanswered / failed / completed.
4400
+ */
2730
4401
  eventUrl: z.ZodOptional<z.ZodString>;
4402
+ /** What to do when a machine answers an outbound call — Vonage's `machine_detection`: `hangup` (default) or `continue`. */
4403
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
2731
4404
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
2732
4405
  /** Vonage Application ID (UUID) — the JWT-auth identity for the Voice API. */
2733
4406
  applicationId: z.ZodOptional<z.ZodString>;
@@ -2741,8 +4414,14 @@ declare const configInfoSchema: z.ZodObject<{
2741
4414
  mediaPublicUrl: z.ZodString;
2742
4415
  /** Vonage account signature secret — HMAC key for signed-request `sig` AND HS256 webhook-JWT verification. */
2743
4416
  signatureSecret: z.ZodOptional<z.ZodString>;
2744
- /** Optional event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). */
4417
+ /**
4418
+ * Event-webhook URL Vonage posts call lifecycle events to (passed on outbound createCall). Defaults to
4419
+ * `<public URL>/telephony/vonage/event`, the route that ends the bridge session when a call is busy /
4420
+ * unanswered / failed / completed.
4421
+ */
2745
4422
  eventUrl: z.ZodOptional<z.ZodString>;
4423
+ /** What to do when a machine answers an outbound call — Vonage's `machine_detection`: `hangup` (default) or `continue`. */
4424
+ onMachine: z.ZodOptional<z.ZodEnum<["hangup", "continue"]>>;
2746
4425
  }, z.ZodTypeAny, "passthrough">>>;
2747
4426
  /** RingCentral Call Control + media-stream binding. */
2748
4427
  ringcentral: z.ZodOptional<z.ZodObject<{
@@ -2791,6 +4470,143 @@ declare const configInfoSchema: z.ZodObject<{
2791
4470
  /** Skip TLS cert validation (sandbox/test only — never in production). */
2792
4471
  ignoreTlsCertErrors: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>>;
2793
4472
  }, z.ZodTypeAny, "passthrough">>>;
4473
+ /** LiveKit SIP binding: phone calls carried by a SIP trunk, landed in a LiveKit room. */
4474
+ livekitSip: z.ZodOptional<z.ZodObject<{
4475
+ /** LiveKit server URL (`wss://…`). Defaults to `LIVEKIT_URL`. */
4476
+ serverUrl: z.ZodOptional<z.ZodString>;
4477
+ /** LiveKit API key. Defaults to `LIVEKIT_API_KEY`. */
4478
+ apiKey: z.ZodOptional<z.ZodString>;
4479
+ /** LiveKit API secret (resolved upstream — never inlined). Defaults to `LIVEKIT_API_SECRET`. */
4480
+ apiSecret: z.ZodOptional<z.ZodString>;
4481
+ /** Inbound calls land in a room whose name starts with this. Defaults to `call-`. */
4482
+ roomPrefix: z.ZodOptional<z.ZodString>;
4483
+ /** The numbers (E.164) this deployment answers. Each routes to the agent identity registered for it (on the LiveKit provider). */
4484
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4485
+ /** The LiveKit inbound trunk id, when created by hand. */
4486
+ inboundTrunkId: z.ZodOptional<z.ZodString>;
4487
+ /** The LiveKit OUTBOUND trunk used to dial out (outbound calls, fallback legs, transfers to a number). Dialing out is off without it. */
4488
+ outboundTrunkId: z.ZodOptional<z.ZodString>;
4489
+ /** The caller ID presented on calls dialed out through the outbound trunk. */
4490
+ outboundFromNumber: z.ZodOptional<z.ZodString>;
4491
+ /** Create the inbound trunk and dispatch rule at startup when missing (idempotent). Defaults to false. */
4492
+ autoProvision: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>>;
4493
+ /** Source addresses the inbound trunk accepts calls from (the carrier's SIP signalling addresses). Used when provisioning. */
4494
+ allowedAddresses: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4495
+ /** The carrier behind the trunk, for configuration checks only (no carrier API is called). */
4496
+ carrier: z.ZodOptional<z.ZodObject<{
4497
+ type: z.ZodLiteral<"twilio-elastic-sip">;
4498
+ /** The LiveKit SIP URI the Twilio trunk's origination URI points at, e.g. `sip:<project>.sip.livekit.cloud`. */
4499
+ originationUri: z.ZodOptional<z.ZodString>;
4500
+ /** The trunk's Termination SIP URI on Twilio (`<name>.pstn.twilio.com`). Needed only when dialing out. */
4501
+ terminationUri: z.ZodOptional<z.ZodString>;
4502
+ /** How Twilio authenticates LiveKit's outbound requests. */
4503
+ terminationAuth: z.ZodOptional<z.ZodEnum<["credential-list", "ip-acl"]>>;
4504
+ /** The Twilio numbers associated with the trunk (E.164). */
4505
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4506
+ }, "strip", z.ZodTypeAny, {
4507
+ type?: "twilio-elastic-sip";
4508
+ numbers?: string[];
4509
+ originationUri?: string;
4510
+ terminationUri?: string;
4511
+ terminationAuth?: "credential-list" | "ip-acl";
4512
+ }, {
4513
+ type?: "twilio-elastic-sip";
4514
+ numbers?: string[];
4515
+ originationUri?: string;
4516
+ terminationUri?: string;
4517
+ terminationAuth?: "credential-list" | "ip-acl";
4518
+ }>>;
4519
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
4520
+ /** LiveKit server URL (`wss://…`). Defaults to `LIVEKIT_URL`. */
4521
+ serverUrl: z.ZodOptional<z.ZodString>;
4522
+ /** LiveKit API key. Defaults to `LIVEKIT_API_KEY`. */
4523
+ apiKey: z.ZodOptional<z.ZodString>;
4524
+ /** LiveKit API secret (resolved upstream — never inlined). Defaults to `LIVEKIT_API_SECRET`. */
4525
+ apiSecret: z.ZodOptional<z.ZodString>;
4526
+ /** Inbound calls land in a room whose name starts with this. Defaults to `call-`. */
4527
+ roomPrefix: z.ZodOptional<z.ZodString>;
4528
+ /** The numbers (E.164) this deployment answers. Each routes to the agent identity registered for it (on the LiveKit provider). */
4529
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4530
+ /** The LiveKit inbound trunk id, when created by hand. */
4531
+ inboundTrunkId: z.ZodOptional<z.ZodString>;
4532
+ /** The LiveKit OUTBOUND trunk used to dial out (outbound calls, fallback legs, transfers to a number). Dialing out is off without it. */
4533
+ outboundTrunkId: z.ZodOptional<z.ZodString>;
4534
+ /** The caller ID presented on calls dialed out through the outbound trunk. */
4535
+ outboundFromNumber: z.ZodOptional<z.ZodString>;
4536
+ /** Create the inbound trunk and dispatch rule at startup when missing (idempotent). Defaults to false. */
4537
+ autoProvision: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>>;
4538
+ /** Source addresses the inbound trunk accepts calls from (the carrier's SIP signalling addresses). Used when provisioning. */
4539
+ allowedAddresses: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4540
+ /** The carrier behind the trunk, for configuration checks only (no carrier API is called). */
4541
+ carrier: z.ZodOptional<z.ZodObject<{
4542
+ type: z.ZodLiteral<"twilio-elastic-sip">;
4543
+ /** The LiveKit SIP URI the Twilio trunk's origination URI points at, e.g. `sip:<project>.sip.livekit.cloud`. */
4544
+ originationUri: z.ZodOptional<z.ZodString>;
4545
+ /** The trunk's Termination SIP URI on Twilio (`<name>.pstn.twilio.com`). Needed only when dialing out. */
4546
+ terminationUri: z.ZodOptional<z.ZodString>;
4547
+ /** How Twilio authenticates LiveKit's outbound requests. */
4548
+ terminationAuth: z.ZodOptional<z.ZodEnum<["credential-list", "ip-acl"]>>;
4549
+ /** The Twilio numbers associated with the trunk (E.164). */
4550
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4551
+ }, "strip", z.ZodTypeAny, {
4552
+ type?: "twilio-elastic-sip";
4553
+ numbers?: string[];
4554
+ originationUri?: string;
4555
+ terminationUri?: string;
4556
+ terminationAuth?: "credential-list" | "ip-acl";
4557
+ }, {
4558
+ type?: "twilio-elastic-sip";
4559
+ numbers?: string[];
4560
+ originationUri?: string;
4561
+ terminationUri?: string;
4562
+ terminationAuth?: "credential-list" | "ip-acl";
4563
+ }>>;
4564
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
4565
+ /** LiveKit server URL (`wss://…`). Defaults to `LIVEKIT_URL`. */
4566
+ serverUrl: z.ZodOptional<z.ZodString>;
4567
+ /** LiveKit API key. Defaults to `LIVEKIT_API_KEY`. */
4568
+ apiKey: z.ZodOptional<z.ZodString>;
4569
+ /** LiveKit API secret (resolved upstream — never inlined). Defaults to `LIVEKIT_API_SECRET`. */
4570
+ apiSecret: z.ZodOptional<z.ZodString>;
4571
+ /** Inbound calls land in a room whose name starts with this. Defaults to `call-`. */
4572
+ roomPrefix: z.ZodOptional<z.ZodString>;
4573
+ /** The numbers (E.164) this deployment answers. Each routes to the agent identity registered for it (on the LiveKit provider). */
4574
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4575
+ /** The LiveKit inbound trunk id, when created by hand. */
4576
+ inboundTrunkId: z.ZodOptional<z.ZodString>;
4577
+ /** The LiveKit OUTBOUND trunk used to dial out (outbound calls, fallback legs, transfers to a number). Dialing out is off without it. */
4578
+ outboundTrunkId: z.ZodOptional<z.ZodString>;
4579
+ /** The caller ID presented on calls dialed out through the outbound trunk. */
4580
+ outboundFromNumber: z.ZodOptional<z.ZodString>;
4581
+ /** Create the inbound trunk and dispatch rule at startup when missing (idempotent). Defaults to false. */
4582
+ autoProvision: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>>;
4583
+ /** Source addresses the inbound trunk accepts calls from (the carrier's SIP signalling addresses). Used when provisioning. */
4584
+ allowedAddresses: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4585
+ /** The carrier behind the trunk, for configuration checks only (no carrier API is called). */
4586
+ carrier: z.ZodOptional<z.ZodObject<{
4587
+ type: z.ZodLiteral<"twilio-elastic-sip">;
4588
+ /** The LiveKit SIP URI the Twilio trunk's origination URI points at, e.g. `sip:<project>.sip.livekit.cloud`. */
4589
+ originationUri: z.ZodOptional<z.ZodString>;
4590
+ /** The trunk's Termination SIP URI on Twilio (`<name>.pstn.twilio.com`). Needed only when dialing out. */
4591
+ terminationUri: z.ZodOptional<z.ZodString>;
4592
+ /** How Twilio authenticates LiveKit's outbound requests. */
4593
+ terminationAuth: z.ZodOptional<z.ZodEnum<["credential-list", "ip-acl"]>>;
4594
+ /** The Twilio numbers associated with the trunk (E.164). */
4595
+ numbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4596
+ }, "strip", z.ZodTypeAny, {
4597
+ type?: "twilio-elastic-sip";
4598
+ numbers?: string[];
4599
+ originationUri?: string;
4600
+ terminationUri?: string;
4601
+ terminationAuth?: "credential-list" | "ip-acl";
4602
+ }, {
4603
+ type?: "twilio-elastic-sip";
4604
+ numbers?: string[];
4605
+ originationUri?: string;
4606
+ terminationUri?: string;
4607
+ terminationAuth?: "credential-list" | "ip-acl";
4608
+ }>>;
4609
+ }, z.ZodTypeAny, "passthrough">>>;
2794
4610
  /** Microsoft Teams meetings (Graph cloud-communications + ACS application-hosted media) binding. */
2795
4611
  teams: z.ZodOptional<z.ZodObject<{
2796
4612
  /** Master switch for the Teams meetings ingress. */
@@ -3136,6 +4952,78 @@ declare const configInfoSchema: z.ZodObject<{
3136
4952
  pollingIntervalMs?: number;
3137
4953
  maxConcurrentRuns?: number;
3138
4954
  }>>>;
4955
+ workQueue: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodObject<{
4956
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
4957
+ systemUserEmail: z.ZodDefault<z.ZodOptional<z.ZodString>>;
4958
+ subscriptions: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
4959
+ name: z.ZodString;
4960
+ concurrency: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
4961
+ }, "strip", z.ZodTypeAny, {
4962
+ name?: string;
4963
+ concurrency?: number;
4964
+ }, {
4965
+ name?: string;
4966
+ concurrency?: number;
4967
+ }>, "many">>>;
4968
+ idlePollMinMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
4969
+ idlePollMaxMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
4970
+ shutdownDrainMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
4971
+ sweeperEnabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
4972
+ sweeperIntervalMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
4973
+ reconcileIntervalMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
4974
+ }, "strip", z.ZodTypeAny, {
4975
+ enabled?: boolean;
4976
+ systemUserEmail?: string;
4977
+ subscriptions?: {
4978
+ name?: string;
4979
+ concurrency?: number;
4980
+ }[];
4981
+ idlePollMinMs?: number;
4982
+ idlePollMaxMs?: number;
4983
+ shutdownDrainMs?: number;
4984
+ sweeperEnabled?: boolean;
4985
+ sweeperIntervalMs?: number;
4986
+ reconcileIntervalMs?: number;
4987
+ }, {
4988
+ enabled?: boolean;
4989
+ systemUserEmail?: string;
4990
+ subscriptions?: {
4991
+ name?: string;
4992
+ concurrency?: number;
4993
+ }[];
4994
+ idlePollMinMs?: number;
4995
+ idlePollMaxMs?: number;
4996
+ shutdownDrainMs?: number;
4997
+ sweeperEnabled?: boolean;
4998
+ sweeperIntervalMs?: number;
4999
+ reconcileIntervalMs?: number;
5000
+ }>, {
5001
+ enabled?: boolean;
5002
+ systemUserEmail?: string;
5003
+ subscriptions?: {
5004
+ name?: string;
5005
+ concurrency?: number;
5006
+ }[];
5007
+ idlePollMinMs?: number;
5008
+ idlePollMaxMs?: number;
5009
+ shutdownDrainMs?: number;
5010
+ sweeperEnabled?: boolean;
5011
+ sweeperIntervalMs?: number;
5012
+ reconcileIntervalMs?: number;
5013
+ }, {
5014
+ enabled?: boolean;
5015
+ systemUserEmail?: string;
5016
+ subscriptions?: {
5017
+ name?: string;
5018
+ concurrency?: number;
5019
+ }[];
5020
+ idlePollMinMs?: number;
5021
+ idlePollMaxMs?: number;
5022
+ shutdownDrainMs?: number;
5023
+ sweeperEnabled?: boolean;
5024
+ sweeperIntervalMs?: number;
5025
+ reconcileIntervalMs?: number;
5026
+ }>>>;
3139
5027
  telemetry: z.ZodDefault<z.ZodOptional<z.ZodObject<{
3140
5028
  enabled: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
3141
5029
  level: z.ZodDefault<z.ZodOptional<z.ZodEnum<["minimal", "standard", "verbose", "debug"]>>>;
@@ -3400,12 +5288,12 @@ declare const configInfoSchema: z.ZodObject<{
3400
5288
  maxRequests?: number;
3401
5289
  }>>;
3402
5290
  }, "strip", z.ZodTypeAny, {
5291
+ enabled?: boolean;
3403
5292
  global?: {
3404
5293
  message?: string;
3405
5294
  windowMs?: number;
3406
5295
  maxRequests?: number;
3407
5296
  };
3408
- enabled?: boolean;
3409
5297
  graphql?: {
3410
5298
  windowMs?: number;
3411
5299
  maxRequests?: number;
@@ -3415,12 +5303,12 @@ declare const configInfoSchema: z.ZodObject<{
3415
5303
  maxAttempts?: number;
3416
5304
  };
3417
5305
  }, {
5306
+ enabled?: boolean;
3418
5307
  global?: {
3419
5308
  message?: string;
3420
5309
  windowMs?: number;
3421
5310
  maxRequests?: number;
3422
5311
  };
3423
- enabled?: boolean;
3424
5312
  graphql?: {
3425
5313
  windowMs?: number;
3426
5314
  maxRequests?: number;
@@ -3521,6 +5409,25 @@ declare const configInfoSchema: z.ZodObject<{
3521
5409
  };
3522
5410
  telephony?: {
3523
5411
  enabled?: boolean;
5412
+ inboundRunAsUserEmail?: string;
5413
+ maxCallSeconds?: number;
5414
+ maxConcurrentCalls?: number;
5415
+ outbound?: {
5416
+ allowedPrefixes?: string[];
5417
+ blockedPrefixes?: string[];
5418
+ maxCallsPerUserPerHour?: number;
5419
+ } & {
5420
+ [k: string]: unknown;
5421
+ };
5422
+ transferTargets?: {
5423
+ number?: string;
5424
+ name?: string;
5425
+ kind?: "number" | "user" | "agent";
5426
+ userEmail?: string;
5427
+ fallbackNumber?: string;
5428
+ agentName?: string;
5429
+ description?: string;
5430
+ }[];
3524
5431
  twilio?: {
3525
5432
  accountSid?: string;
3526
5433
  authToken?: string;
@@ -3529,11 +5436,14 @@ declare const configInfoSchema: z.ZodObject<{
3529
5436
  streamPublicUrl?: string;
3530
5437
  webhookSigningSecret?: string;
3531
5438
  statusCallbackUrl?: string;
5439
+ amdStatusCallbackUrl?: string;
5440
+ onMachine?: "hangup" | "continue";
3532
5441
  } & {
3533
5442
  [k: string]: unknown;
3534
5443
  };
3535
5444
  vonage?: {
3536
5445
  apiKey?: string;
5446
+ onMachine?: "hangup" | "continue";
3537
5447
  applicationId?: string;
3538
5448
  privateKey?: string;
3539
5449
  apiSecret?: string;
@@ -3554,6 +5464,27 @@ declare const configInfoSchema: z.ZodObject<{
3554
5464
  } & {
3555
5465
  [k: string]: unknown;
3556
5466
  };
5467
+ livekitSip?: {
5468
+ apiKey?: string;
5469
+ apiSecret?: string;
5470
+ serverUrl?: string;
5471
+ roomPrefix?: string;
5472
+ numbers?: string[];
5473
+ inboundTrunkId?: string;
5474
+ outboundTrunkId?: string;
5475
+ outboundFromNumber?: string;
5476
+ autoProvision?: boolean;
5477
+ allowedAddresses?: string[];
5478
+ carrier?: {
5479
+ type?: "twilio-elastic-sip";
5480
+ numbers?: string[];
5481
+ originationUri?: string;
5482
+ terminationUri?: string;
5483
+ terminationAuth?: "credential-list" | "ip-acl";
5484
+ };
5485
+ } & {
5486
+ [k: string]: unknown;
5487
+ };
3557
5488
  teams?: {
3558
5489
  enabled?: boolean;
3559
5490
  tenantId?: string;
@@ -3661,6 +5592,20 @@ declare const configInfoSchema: z.ZodObject<{
3661
5592
  pollingIntervalMs?: number;
3662
5593
  maxConcurrentRuns?: number;
3663
5594
  };
5595
+ workQueue?: {
5596
+ enabled?: boolean;
5597
+ systemUserEmail?: string;
5598
+ subscriptions?: {
5599
+ name?: string;
5600
+ concurrency?: number;
5601
+ }[];
5602
+ idlePollMinMs?: number;
5603
+ idlePollMaxMs?: number;
5604
+ shutdownDrainMs?: number;
5605
+ sweeperEnabled?: boolean;
5606
+ sweeperIntervalMs?: number;
5607
+ reconcileIntervalMs?: number;
5608
+ };
3664
5609
  telemetry?: {
3665
5610
  enabled?: boolean;
3666
5611
  level?: "minimal" | "standard" | "verbose" | "debug";
@@ -3717,12 +5662,12 @@ declare const configInfoSchema: z.ZodObject<{
3717
5662
  maxAge?: number;
3718
5663
  };
3719
5664
  rateLimiting?: {
5665
+ enabled?: boolean;
3720
5666
  global?: {
3721
5667
  message?: string;
3722
5668
  windowMs?: number;
3723
5669
  maxRequests?: number;
3724
5670
  };
3725
- enabled?: boolean;
3726
5671
  graphql?: {
3727
5672
  windowMs?: number;
3728
5673
  maxRequests?: number;
@@ -3808,6 +5753,25 @@ declare const configInfoSchema: z.ZodObject<{
3808
5753
  };
3809
5754
  telephony?: {
3810
5755
  enabled?: string | number | boolean;
5756
+ inboundRunAsUserEmail?: string;
5757
+ maxCallSeconds?: number;
5758
+ maxConcurrentCalls?: number;
5759
+ outbound?: {
5760
+ allowedPrefixes?: string[];
5761
+ blockedPrefixes?: string[];
5762
+ maxCallsPerUserPerHour?: number;
5763
+ } & {
5764
+ [k: string]: unknown;
5765
+ };
5766
+ transferTargets?: {
5767
+ number?: string;
5768
+ name?: string;
5769
+ kind?: "number" | "user" | "agent";
5770
+ userEmail?: string;
5771
+ fallbackNumber?: string;
5772
+ agentName?: string;
5773
+ description?: string;
5774
+ }[];
3811
5775
  twilio?: {
3812
5776
  accountSid?: string;
3813
5777
  authToken?: string;
@@ -3816,11 +5780,14 @@ declare const configInfoSchema: z.ZodObject<{
3816
5780
  streamPublicUrl?: string;
3817
5781
  webhookSigningSecret?: string;
3818
5782
  statusCallbackUrl?: string;
5783
+ amdStatusCallbackUrl?: string;
5784
+ onMachine?: "hangup" | "continue";
3819
5785
  } & {
3820
5786
  [k: string]: unknown;
3821
5787
  };
3822
5788
  vonage?: {
3823
5789
  apiKey?: string;
5790
+ onMachine?: "hangup" | "continue";
3824
5791
  applicationId?: string;
3825
5792
  privateKey?: string;
3826
5793
  apiSecret?: string;
@@ -3841,6 +5808,27 @@ declare const configInfoSchema: z.ZodObject<{
3841
5808
  } & {
3842
5809
  [k: string]: unknown;
3843
5810
  };
5811
+ livekitSip?: {
5812
+ apiKey?: string;
5813
+ apiSecret?: string;
5814
+ serverUrl?: string;
5815
+ roomPrefix?: string;
5816
+ numbers?: string[];
5817
+ inboundTrunkId?: string;
5818
+ outboundTrunkId?: string;
5819
+ outboundFromNumber?: string;
5820
+ autoProvision?: string | number | boolean;
5821
+ allowedAddresses?: string[];
5822
+ carrier?: {
5823
+ type?: "twilio-elastic-sip";
5824
+ numbers?: string[];
5825
+ originationUri?: string;
5826
+ terminationUri?: string;
5827
+ terminationAuth?: "credential-list" | "ip-acl";
5828
+ };
5829
+ } & {
5830
+ [k: string]: unknown;
5831
+ };
3844
5832
  teams?: {
3845
5833
  enabled?: string | number | boolean;
3846
5834
  tenantId?: string;
@@ -3948,6 +5936,20 @@ declare const configInfoSchema: z.ZodObject<{
3948
5936
  pollingIntervalMs?: number;
3949
5937
  maxConcurrentRuns?: number;
3950
5938
  };
5939
+ workQueue?: {
5940
+ enabled?: boolean;
5941
+ systemUserEmail?: string;
5942
+ subscriptions?: {
5943
+ name?: string;
5944
+ concurrency?: number;
5945
+ }[];
5946
+ idlePollMinMs?: number;
5947
+ idlePollMaxMs?: number;
5948
+ shutdownDrainMs?: number;
5949
+ sweeperEnabled?: boolean;
5950
+ sweeperIntervalMs?: number;
5951
+ reconcileIntervalMs?: number;
5952
+ };
3951
5953
  telemetry?: {
3952
5954
  enabled?: string | number | boolean;
3953
5955
  level?: "minimal" | "standard" | "verbose" | "debug";
@@ -4004,12 +6006,12 @@ declare const configInfoSchema: z.ZodObject<{
4004
6006
  maxAge?: number;
4005
6007
  };
4006
6008
  rateLimiting?: {
6009
+ enabled?: boolean;
4007
6010
  global?: {
4008
6011
  message?: string;
4009
6012
  windowMs?: number;
4010
6013
  maxRequests?: number;
4011
6014
  };
4012
- enabled?: boolean;
4013
6015
  graphql?: {
4014
6016
  windowMs?: number;
4015
6017
  maxRequests?: number;
@@ -4049,6 +6051,7 @@ export type RealtimeConfig = z.infer<typeof realtimeSchema>;
4049
6051
  export type TwilioTelephonyConfig = z.infer<typeof twilioTelephonySchema>;
4050
6052
  export type VonageTelephonyConfig = z.infer<typeof vonageTelephonySchema>;
4051
6053
  export type RingCentralTelephonyConfig = z.infer<typeof ringcentralTelephonySchema>;
6054
+ export type LiveKitSipTelephonyConfig = z.infer<typeof livekitSipTelephonySchema>;
4052
6055
  export type TeamsMeetingsConfig = z.infer<typeof teamsMeetingsSchema>;
4053
6056
  export type DatabaseSettingsInfo = z.infer<typeof databaseSettingsInfoSchema>;
4054
6057
  export type ViewingSystemSettingsInfo = z.infer<typeof viewingSystemInfoSchema>;
@@ -4059,6 +6062,7 @@ export type AuthProviderConfig = z.infer<typeof authProviderSchema>;
4059
6062
  export type ComponentRegistryConfig = z.infer<typeof componentRegistrySchema>;
4060
6063
  export type ScheduledJobsConfig = z.infer<typeof scheduledJobsSchema>;
4061
6064
  export type IntegrationSyncWorkerConfig = z.infer<typeof integrationSyncWorkerSchema>;
6065
+ export type { WorkQueueConfig } from './services/workQueueConfig.js';
4062
6066
  export type TelemetryConfig = z.infer<typeof telemetrySchema>;
4063
6067
  export type QueryDialectConfig = z.infer<typeof queryDialectSchema>;
4064
6068
  export type MultiTenancyConfig = z.infer<typeof multiTenancySchema>;
@@ -4157,6 +6161,25 @@ export declare function LoadConfig(): {
4157
6161
  };
4158
6162
  telephony?: {
4159
6163
  enabled?: boolean;
6164
+ inboundRunAsUserEmail?: string;
6165
+ maxCallSeconds?: number;
6166
+ maxConcurrentCalls?: number;
6167
+ outbound?: {
6168
+ allowedPrefixes?: string[];
6169
+ blockedPrefixes?: string[];
6170
+ maxCallsPerUserPerHour?: number;
6171
+ } & {
6172
+ [k: string]: unknown;
6173
+ };
6174
+ transferTargets?: {
6175
+ number?: string;
6176
+ name?: string;
6177
+ kind?: "number" | "user" | "agent";
6178
+ userEmail?: string;
6179
+ fallbackNumber?: string;
6180
+ agentName?: string;
6181
+ description?: string;
6182
+ }[];
4160
6183
  twilio?: {
4161
6184
  accountSid?: string;
4162
6185
  authToken?: string;
@@ -4165,11 +6188,14 @@ export declare function LoadConfig(): {
4165
6188
  streamPublicUrl?: string;
4166
6189
  webhookSigningSecret?: string;
4167
6190
  statusCallbackUrl?: string;
6191
+ amdStatusCallbackUrl?: string;
6192
+ onMachine?: "hangup" | "continue";
4168
6193
  } & {
4169
6194
  [k: string]: unknown;
4170
6195
  };
4171
6196
  vonage?: {
4172
6197
  apiKey?: string;
6198
+ onMachine?: "hangup" | "continue";
4173
6199
  applicationId?: string;
4174
6200
  privateKey?: string;
4175
6201
  apiSecret?: string;
@@ -4190,6 +6216,27 @@ export declare function LoadConfig(): {
4190
6216
  } & {
4191
6217
  [k: string]: unknown;
4192
6218
  };
6219
+ livekitSip?: {
6220
+ apiKey?: string;
6221
+ apiSecret?: string;
6222
+ serverUrl?: string;
6223
+ roomPrefix?: string;
6224
+ numbers?: string[];
6225
+ inboundTrunkId?: string;
6226
+ outboundTrunkId?: string;
6227
+ outboundFromNumber?: string;
6228
+ autoProvision?: boolean;
6229
+ allowedAddresses?: string[];
6230
+ carrier?: {
6231
+ type?: "twilio-elastic-sip";
6232
+ numbers?: string[];
6233
+ originationUri?: string;
6234
+ terminationUri?: string;
6235
+ terminationAuth?: "credential-list" | "ip-acl";
6236
+ };
6237
+ } & {
6238
+ [k: string]: unknown;
6239
+ };
4193
6240
  teams?: {
4194
6241
  enabled?: boolean;
4195
6242
  tenantId?: string;
@@ -4297,6 +6344,20 @@ export declare function LoadConfig(): {
4297
6344
  pollingIntervalMs?: number;
4298
6345
  maxConcurrentRuns?: number;
4299
6346
  };
6347
+ workQueue?: {
6348
+ enabled?: boolean;
6349
+ systemUserEmail?: string;
6350
+ subscriptions?: {
6351
+ name?: string;
6352
+ concurrency?: number;
6353
+ }[];
6354
+ idlePollMinMs?: number;
6355
+ idlePollMaxMs?: number;
6356
+ shutdownDrainMs?: number;
6357
+ sweeperEnabled?: boolean;
6358
+ sweeperIntervalMs?: number;
6359
+ reconcileIntervalMs?: number;
6360
+ };
4300
6361
  telemetry?: {
4301
6362
  enabled?: boolean;
4302
6363
  level?: "minimal" | "standard" | "verbose" | "debug";
@@ -4353,12 +6414,12 @@ export declare function LoadConfig(): {
4353
6414
  maxAge?: number;
4354
6415
  };
4355
6416
  rateLimiting?: {
6417
+ enabled?: boolean;
4356
6418
  global?: {
4357
6419
  message?: string;
4358
6420
  windowMs?: number;
4359
6421
  maxRequests?: number;
4360
6422
  };
4361
- enabled?: boolean;
4362
6423
  graphql?: {
4363
6424
  windowMs?: number;
4364
6425
  maxRequests?: number;
@@ -4446,6 +6507,25 @@ export declare function loadConfig(): {
4446
6507
  };
4447
6508
  telephony?: {
4448
6509
  enabled?: boolean;
6510
+ inboundRunAsUserEmail?: string;
6511
+ maxCallSeconds?: number;
6512
+ maxConcurrentCalls?: number;
6513
+ outbound?: {
6514
+ allowedPrefixes?: string[];
6515
+ blockedPrefixes?: string[];
6516
+ maxCallsPerUserPerHour?: number;
6517
+ } & {
6518
+ [k: string]: unknown;
6519
+ };
6520
+ transferTargets?: {
6521
+ number?: string;
6522
+ name?: string;
6523
+ kind?: "number" | "user" | "agent";
6524
+ userEmail?: string;
6525
+ fallbackNumber?: string;
6526
+ agentName?: string;
6527
+ description?: string;
6528
+ }[];
4449
6529
  twilio?: {
4450
6530
  accountSid?: string;
4451
6531
  authToken?: string;
@@ -4454,11 +6534,14 @@ export declare function loadConfig(): {
4454
6534
  streamPublicUrl?: string;
4455
6535
  webhookSigningSecret?: string;
4456
6536
  statusCallbackUrl?: string;
6537
+ amdStatusCallbackUrl?: string;
6538
+ onMachine?: "hangup" | "continue";
4457
6539
  } & {
4458
6540
  [k: string]: unknown;
4459
6541
  };
4460
6542
  vonage?: {
4461
6543
  apiKey?: string;
6544
+ onMachine?: "hangup" | "continue";
4462
6545
  applicationId?: string;
4463
6546
  privateKey?: string;
4464
6547
  apiSecret?: string;
@@ -4479,6 +6562,27 @@ export declare function loadConfig(): {
4479
6562
  } & {
4480
6563
  [k: string]: unknown;
4481
6564
  };
6565
+ livekitSip?: {
6566
+ apiKey?: string;
6567
+ apiSecret?: string;
6568
+ serverUrl?: string;
6569
+ roomPrefix?: string;
6570
+ numbers?: string[];
6571
+ inboundTrunkId?: string;
6572
+ outboundTrunkId?: string;
6573
+ outboundFromNumber?: string;
6574
+ autoProvision?: boolean;
6575
+ allowedAddresses?: string[];
6576
+ carrier?: {
6577
+ type?: "twilio-elastic-sip";
6578
+ numbers?: string[];
6579
+ originationUri?: string;
6580
+ terminationUri?: string;
6581
+ terminationAuth?: "credential-list" | "ip-acl";
6582
+ };
6583
+ } & {
6584
+ [k: string]: unknown;
6585
+ };
4482
6586
  teams?: {
4483
6587
  enabled?: boolean;
4484
6588
  tenantId?: string;
@@ -4586,6 +6690,20 @@ export declare function loadConfig(): {
4586
6690
  pollingIntervalMs?: number;
4587
6691
  maxConcurrentRuns?: number;
4588
6692
  };
6693
+ workQueue?: {
6694
+ enabled?: boolean;
6695
+ systemUserEmail?: string;
6696
+ subscriptions?: {
6697
+ name?: string;
6698
+ concurrency?: number;
6699
+ }[];
6700
+ idlePollMinMs?: number;
6701
+ idlePollMaxMs?: number;
6702
+ shutdownDrainMs?: number;
6703
+ sweeperEnabled?: boolean;
6704
+ sweeperIntervalMs?: number;
6705
+ reconcileIntervalMs?: number;
6706
+ };
4589
6707
  telemetry?: {
4590
6708
  enabled?: boolean;
4591
6709
  level?: "minimal" | "standard" | "verbose" | "debug";
@@ -4642,12 +6760,12 @@ export declare function loadConfig(): {
4642
6760
  maxAge?: number;
4643
6761
  };
4644
6762
  rateLimiting?: {
6763
+ enabled?: boolean;
4645
6764
  global?: {
4646
6765
  message?: string;
4647
6766
  windowMs?: number;
4648
6767
  maxRequests?: number;
4649
6768
  };
4650
- enabled?: boolean;
4651
6769
  graphql?: {
4652
6770
  windowMs?: number;
4653
6771
  maxRequests?: number;